(svn r4172) -Codechange: Added a few accessors to work with ShipDepots and Locks
This commit is contained in:
28
water_map.h
28
water_map.h
@@ -5,7 +5,8 @@
|
||||
|
||||
typedef enum DepotPart {
|
||||
DEPOT_NORTH = 0x80,
|
||||
DEPOT_SOUTH = 0x81
|
||||
DEPOT_SOUTH = 0x81,
|
||||
DEPOT_END = 0x84,
|
||||
} DepotPart;
|
||||
|
||||
typedef enum LockPart {
|
||||
@@ -14,6 +15,30 @@ typedef enum LockPart {
|
||||
LOCK_UPPER = 0x18
|
||||
} LockPart;
|
||||
|
||||
static inline bool IsClearWaterTile(TileIndex tile)
|
||||
{
|
||||
return
|
||||
IsTileType(tile, MP_WATER) &&
|
||||
_m[tile].m5 == 0 &&
|
||||
GetTileSlope(tile, NULL) == 0;
|
||||
}
|
||||
|
||||
static inline TileIndex GetOtherShipDepotTile(TileIndex t)
|
||||
{
|
||||
return t + (HASBIT(_m[t].m5, 0) ? -1 : 1) * (HASBIT(_m[t].m5, 1) ? TileDiffXY(0, 1) : TileDiffXY(1, 0));
|
||||
}
|
||||
|
||||
static inline TileIndex IsShipDepot(TileIndex t)
|
||||
{
|
||||
return IS_INT_INSIDE(_m[t].m5, DEPOT_NORTH, DEPOT_END);
|
||||
}
|
||||
|
||||
static inline DiagDirection GetLockDirection(TileIndex t)
|
||||
{
|
||||
return (DiagDirection)GB(_m[t].m5, 0, 2);
|
||||
}
|
||||
|
||||
|
||||
static inline void MakeWater(TileIndex t)
|
||||
{
|
||||
SetTileType(t, MP_WATER);
|
||||
@@ -24,7 +49,6 @@ static inline void MakeWater(TileIndex t)
|
||||
_m[t].m5 = 0;
|
||||
}
|
||||
|
||||
|
||||
static inline void MakeShore(TileIndex t)
|
||||
{
|
||||
SetTileType(t, MP_WATER);
|
||||
|
||||
Reference in New Issue
Block a user