From f34c666bc5d83a7ed32a2aadbafab79333d60f0b Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 16 Aug 2011 21:25:33 +0000 Subject: (svn r22755) -Fix [FS#4727]: When marking tile selections dirty, use the height information of the corners instead of the surface slope. This is more accurate when the foundation is kind of undefined. --- src/viewport.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/viewport.cpp b/src/viewport.cpp index f73f5f817..800d2d359 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1723,8 +1723,13 @@ static void SetSelectionTilesDirty() int bot_y = top_y; do { - Point top = RemapCoords2(top_x, top_y); // topmost dirty point - Point bot = RemapCoords2(bot_x + TILE_SIZE - 1, bot_y + TILE_SIZE - 1); // bottommost point + /* topmost dirty point */ + TileIndex top_tile = TileVirtXY(top_x, top_y); + Point top = RemapCoords(top_x, top_y, GetTileMaxZ(top_tile)); + + /* bottommost point */ + TileIndex bottom_tile = TileVirtXY(bot_x, bot_y); + Point bot = RemapCoords(bot_x + TILE_SIZE, bot_y + TILE_SIZE, GetTileZ(bottom_tile)); // bottommost point /* the 'x' coordinate of 'top' and 'bot' is the same (and always in the same distance from tile middle), * tile height/slope affects only the 'y' on-screen coordinate! */ -- cgit v1.2.3-70-g09d2