@@ -166,7 +166,7 @@ CommandCost CmdBuildObject(TileIndex til
bool allow_water = (spec->flags & (OBJECT_FLAG_BUILT_ON_WATER | OBJECT_FLAG_NOT_ON_LAND)) != 0;
bool allow_ground = (spec->flags & OBJECT_FLAG_NOT_ON_LAND) == 0;
TILE_AREA_LOOP(t, ta) {
if (HasTileWaterClass(t) && IsTileOnWater(t)) {
if (HasTileWaterClass(t) && IsTileOnWater(t) && !IsCoastTile(t)) {
if (!allow_water) return_cmd_error(STR_ERROR_CAN_T_BUILD_ON_WATER);
if (!IsWaterTile(t)) {
/* Normal water tiles don't have to be cleared. For all other tile types clear
@@ -171,6 +171,16 @@ static inline bool IsCoast(TileIndex t)
}
/**
* Is it a coast tile
* @param t Tile to query.
* @return \c true if it is a coast.
*/
static inline bool IsCoastTile(TileIndex t)
{
return IsTileType(t, MP_WATER) && IsCoast(t);
* Get the other tile of the ship depot.
* @param t Tile to query, containing one section of a ship depot.
* @return Tile containing the other section of the depot.
Status change: