@@ -1138,8 +1138,6 @@ TileType tile_type; TileInfo tile_info; _cur_ti = &tile_info; - tile_info.x = tilecoord.x * TILE_SIZE; // FIXME tile_info should use signed integers - tile_info.y = tilecoord.y * TILE_SIZE; if (IsInsideBS(tilecoord.x, 0, MapMaxX()) && IsInsideBS(tilecoord.y, 0, MapMaxY())) { /* We are inside the map => paint landscape. */ @@ -1184,6 +1182,14 @@ if (visible) { last_row = false; + + tile_info.tileh = (tile_type != MP_VOID) ? + GetTilePixelSlope(tile_info.tile, &tile_info.z) : + GetTilePixelSlopeOutsideMap(tilecoord.x, tilecoord.y, &tile_info.z); + + tile_info.x = tilecoord.x * TILE_SIZE; // FIXME tile_info should use signed integers + tile_info.y = tilecoord.y * TILE_SIZE; + _vd.foundation_part = FOUNDATION_PART_NONE; _vd.foundation[0] = -1; _vd.foundation[1] = -1; @@ -1191,7 +1197,7 @@ _vd.last_foundation_child[1] = NULL; _tile_type_procs[tile_type]->draw_tile_proc(&tile_info); - DrawTileSelection(&tile_info); + if (tile_info.tile != INVALID_TILE) DrawTileSelection(&tile_info); } } }