diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -19,6 +19,7 @@ #include "genworld.h" #include "autoslope.h" #include "functions.h" +#include "water.h" #include "window_func.h" #include "company_gui.h" #include "cheat_type.h" @@ -316,7 +317,7 @@ static CommandCost ClearTile_Object(Tile } if (flags & DC_EXEC) { - TILE_AREA_LOOP(tile_cur, ta) DoClearSquare(tile_cur); + TILE_AREA_LOOP(tile_cur, ta) MakeWaterKeepingClass(tile_cur, GetTileOwner(tile_cur)); delete o; } @@ -356,6 +357,8 @@ static void GetTileDesc_Object(TileIndex static void TileLoop_Object(TileIndex tile) { + if (IsTileOnWater(tile)) TileLoop_Water(tile); + if (!IsCompanyHQ(tile)) return; /* HQ accepts passenger and mail; but we have to divide the values diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -499,6 +499,8 @@ static bool IsWateredTile(TileIndex tile return IsTileOnWater(tile); } + case MP_OBJECT: return IsTileOnWater(tile); + case MP_TUNNELBRIDGE: return GetTunnelBridgeTransportType(tile) == TRANSPORT_WATER && ReverseDiagDir(GetTunnelBridgeDirection(tile)) == DirToDiagDir(from); default: return false; @@ -935,6 +937,7 @@ FloodingBehaviour GetFloodingBehaviour(T /* FALL THROUGH */ case MP_STATION: case MP_INDUSTRY: + case MP_OBJECT: return (GetWaterClass(tile) == WATER_CLASS_SEA) ? FLOOD_ACTIVE : FLOOD_NONE; case MP_RAILWAY: