From 3254155930feb807f81031ebfdc9acedbe33745e Mon Sep 17 00:00:00 2001 From: tron Date: Sun, 6 Aug 2006 16:32:49 +0000 Subject: (svn r5794) Pass the TileIndex plus x and y coordinates into GetSlopeZ_* instead of a TileInfo --- viewport.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'viewport.c') diff --git a/viewport.c b/viewport.c index eb0cbe51e..200098188 100644 --- a/viewport.c +++ b/viewport.c @@ -294,7 +294,6 @@ ViewPort *IsPtInWindowViewport(const Window *w, int x, int y) static Point TranslateXYToTileCoord(const ViewPort *vp, int x, int y) { - int z; Point pt; int a,b; @@ -314,16 +313,19 @@ static Point TranslateXYToTileCoord(const ViewPort *vp, int x, int y) a = x+y; b = x-y; #endif - z = GetSlopeZ(a, b) >> 1; - z = GetSlopeZ(a+z, b+z) >> 1; - z = GetSlopeZ(a+z, b+z) >> 1; - z = GetSlopeZ(a+z, b+z) >> 1; - z = GetSlopeZ(a+z, b+z) >> 1; - pt.x = a+z; - pt.y = b+z; + if ((uint)a < MapMaxX() * TILE_SIZE && (uint)b < MapMaxY() * TILE_SIZE) { + uint z; - if ((uint)pt.x >= MapMaxX() * TILE_SIZE || (uint)pt.y >= MapMaxY() * TILE_SIZE) { + z = GetSlopeZ(a, b ) / 2; + z = GetSlopeZ(a + z, b + z) / 2; + z = GetSlopeZ(a + z, b + z) / 2; + z = GetSlopeZ(a + z, b + z) / 2; + z = GetSlopeZ(a + z, b + z) / 2; + + pt.x = a + z; + pt.y = b + z; + } else { pt.x = pt.y = -1; } -- cgit v1.2.3-54-g00ecf