mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Add and use GetWaterTileClass.
parent
cf2a12dfc4
commit
3e9b7f19cb
|
@ -78,6 +78,16 @@ enum LockPart {
|
||||||
|
|
||||||
bool IsPossibleDockingTile(Tile t);
|
bool IsPossibleDockingTile(Tile t);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the type of water tile: clear, lock or depot.
|
||||||
|
* @param t Water tile to query.
|
||||||
|
* @return WBL_TYPE_NORMAL, WBL_TYPE_LOCK or WBL_TYPE_DEPOT.
|
||||||
|
*/
|
||||||
|
static inline WaterTileTypeBitLayout GetWaterTileClass(Tile t) {
|
||||||
|
assert(IsTileType(t, MP_WATER));
|
||||||
|
return (WaterTileTypeBitLayout)GB(t.m5(), WBL_TYPE_BEGIN, WBL_TYPE_COUNT);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the water tile type at a tile.
|
* Get the water tile type at a tile.
|
||||||
* @param t Water tile to query.
|
* @param t Water tile to query.
|
||||||
|
@ -87,7 +97,7 @@ inline WaterTileType GetWaterTileType(Tile t)
|
||||||
{
|
{
|
||||||
assert(IsTileType(t, MP_WATER));
|
assert(IsTileType(t, MP_WATER));
|
||||||
|
|
||||||
switch (GB(t.m5(), WBL_TYPE_BEGIN, WBL_TYPE_COUNT)) {
|
switch (GetWaterTileClass(t)) {
|
||||||
case WBL_TYPE_NORMAL: return HasBit(t.m5(), WBL_COAST_FLAG) ? WATER_TILE_COAST : WATER_TILE_CLEAR;
|
case WBL_TYPE_NORMAL: return HasBit(t.m5(), WBL_COAST_FLAG) ? WATER_TILE_COAST : WATER_TILE_CLEAR;
|
||||||
case WBL_TYPE_LOCK: return WATER_TILE_LOCK;
|
case WBL_TYPE_LOCK: return WATER_TILE_LOCK;
|
||||||
case WBL_TYPE_DEPOT: return WATER_TILE_DEPOT;
|
case WBL_TYPE_DEPOT: return WATER_TILE_DEPOT;
|
||||||
|
@ -224,7 +234,8 @@ inline bool IsCoastTile(Tile t)
|
||||||
*/
|
*/
|
||||||
inline bool IsShipDepot(Tile t)
|
inline bool IsShipDepot(Tile t)
|
||||||
{
|
{
|
||||||
return GetWaterTileType(t) == WATER_TILE_DEPOT;
|
assert(IsTileType(t, MP_WATER));
|
||||||
|
return GetWaterTileClass(t) == WBL_TYPE_DEPOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -305,7 +316,8 @@ inline TileIndex GetShipDepotNorthTile(Tile t)
|
||||||
*/
|
*/
|
||||||
inline bool IsLock(Tile t)
|
inline bool IsLock(Tile t)
|
||||||
{
|
{
|
||||||
return GetWaterTileType(t) == WATER_TILE_LOCK;
|
assert(IsTileType(t, MP_WATER));
|
||||||
|
return GetWaterTileClass(t) == WBL_TYPE_LOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue