diff options
-rw-r--r-- | src/industry_cmd.cpp | 6 | ||||
-rw-r--r-- | src/station_cmd.cpp | 4 | ||||
-rw-r--r-- | src/water_cmd.cpp | 14 | ||||
-rw-r--r-- | src/waypoint_cmd.cpp | 1 |
4 files changed, 8 insertions, 17 deletions
diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 8aa4ef7d9..013de136f 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -145,12 +145,6 @@ Industry::~Industry() /* MakeWaterKeepingClass() can also handle 'land' */ MakeWaterKeepingClass(tile_cur, OWNER_NONE); - - /* MakeWaterKeepingClass() doesn't remove animation if the tiles - * become watery, but be on the safe side an always remote it. */ - DeleteAnimatedTile(tile_cur); - - MarkTileDirtyByTile(tile_cur); } } else if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) { DeleteOilRig(tile_cur); diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 39a98453c..9ef27c6f7 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2492,13 +2492,12 @@ static CommandCost RemoveDock(TileIndex tile, DoCommandFlag flags) if (flags & DC_EXEC) { DoClearSquare(tile1); + MarkTileDirtyByTile(tile1); MakeWaterKeepingClass(tile2, st->owner); st->rect.AfterRemoveTile(st, tile1); st->rect.AfterRemoveTile(st, tile2); - MarkTileDirtyByTile(tile2); - st->dock_tile = INVALID_TILE; st->facilities &= ~FACIL_DOCK; @@ -3398,7 +3397,6 @@ void DeleteOilRig(TileIndex tile) Station *st = Station::GetByTile(tile); MakeWaterKeepingClass(tile, OWNER_NONE); - MarkTileDirtyByTile(tile); st->dock_tile = INVALID_TILE; st->airport.Clear(); diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index cb96e89ba..fcd834052 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -136,8 +136,6 @@ CommandCost CmdBuildShipDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, ui void MakeWaterKeepingClass(TileIndex tile, Owner o) { - assert(IsTileType(tile, MP_WATER) || (IsTileType(tile, MP_STATION) && (IsBuoy(tile) || IsDock(tile) || IsOilRig(tile))) || IsTileType(tile, MP_INDUSTRY)); - WaterClass wc = GetWaterClass(tile); /* Autoslope might turn an originally canal or river tile into land */ @@ -146,12 +144,18 @@ void MakeWaterKeepingClass(TileIndex tile, Owner o) if (wc == WATER_CLASS_SEA && z > 0) wc = WATER_CLASS_CANAL; + /* Zero map array and terminate animation */ + DoClearSquare(tile); + + /* Maybe change to water */ switch (wc) { case WATER_CLASS_SEA: MakeSea(tile); break; case WATER_CLASS_CANAL: MakeCanal(tile, o, Random()); break; case WATER_CLASS_RIVER: MakeRiver(tile, Random()); break; - default: DoClearSquare(tile); break; + default: break; } + + MarkTileDirtyByTile(tile); } static CommandCost RemoveShipDepot(TileIndex tile, DoCommandFlag flags) @@ -175,8 +179,6 @@ static CommandCost RemoveShipDepot(TileIndex tile, DoCommandFlag flags) MakeWaterKeepingClass(tile, GetTileOwner(tile)); MakeWaterKeepingClass(tile2, GetTileOwner(tile2)); - MarkTileDirtyByTile(tile); - MarkTileDirtyByTile(tile2); } return CommandCost(EXPENSES_CONSTRUCTION, _price[PR_CLEAR_DEPOT_SHIP]); @@ -269,8 +271,6 @@ static CommandCost RemoveLock(TileIndex tile, DoCommandFlag flags) DoClearSquare(tile); MakeWaterKeepingClass(tile + delta, GetTileOwner(tile)); MakeWaterKeepingClass(tile - delta, GetTileOwner(tile)); - MarkTileDirtyByTile(tile - delta); - MarkTileDirtyByTile(tile + delta); MarkCanalsAndRiversAroundDirty(tile - delta); MarkCanalsAndRiversAroundDirty(tile + delta); } diff --git a/src/waypoint_cmd.cpp b/src/waypoint_cmd.cpp index 9a0954aef..9733ac951 100644 --- a/src/waypoint_cmd.cpp +++ b/src/waypoint_cmd.cpp @@ -349,7 +349,6 @@ CommandCost RemoveBuoy(TileIndex tile, DoCommandFlag flags) * buoy was placed. Otherwise one could plant a buoy on a canal edge, * remove it and flood the land (if the canal edge is at level 0) */ MakeWaterKeepingClass(tile, GetTileOwner(tile)); - MarkTileDirtyByTile(tile); wp->rect.AfterRemoveTile(wp, tile); |