mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
(svn r20909) -Fix [FS#4137]: don't see coasts as water for object construction
This commit is contained in:
parent
322e4ab86f
commit
7bbc19288f
@ -166,7 +166,7 @@ CommandCost CmdBuildObject(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
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
|
||||
|
@ -170,6 +170,16 @@ static inline bool IsCoast(TileIndex t)
|
||||
return GetWaterTileType(t) == WATER_TILE_COAST;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
|
Loading…
Reference in New Issue
Block a user