|
@@ -45,24 +45,41 @@ static inline bool IsOwnedLand(TileIndex
|
|
|
}
|
|
|
|
|
|
static inline bool IsOwnedLandTile(TileIndex t)
|
|
|
{
|
|
|
return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t);
|
|
|
}
|
|
|
|
|
|
static inline bool IsCompanyHQ(TileIndex t)
|
|
|
{
|
|
|
return IS_INT_INSIDE(GetUnmovableType(t), UNMOVABLE_HQ_NORTH, UNMOVABLE_HQ_END);
|
|
|
}
|
|
|
|
|
|
static inline bool IsStatue(TileIndex t)
|
|
|
{
|
|
|
assert(IsTileType(t, MP_UNMOVABLE));
|
|
|
return GetUnmovableType(t) == UNMOVABLE_STATUE;
|
|
|
}
|
|
|
|
|
|
static inline bool IsStatueTile(TileIndex t)
|
|
|
{
|
|
|
return IsTileType(t, MP_UNMOVABLE) && IsStatue(t);
|
|
|
}
|
|
|
|
|
|
static inline TownID GetStatueTownID(TileIndex t)
|
|
|
{
|
|
|
assert(IsStatue(t));
|
|
|
return _m[t].m2;
|
|
|
}
|
|
|
|
|
|
static inline byte GetCompanyHQSize(TileIndex t)
|
|
|
{
|
|
|
assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t));
|
|
|
return GB(_m[t].m5, 2, 3);
|
|
|
}
|
|
|
|
|
|
static inline byte GetCompanyHQSection(TileIndex t)
|
|
|
{
|
|
|
assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t));
|
|
|
return GB(_m[t].m5, 0, 5);
|
|
|
}
|
|
|
|
|
@@ -91,27 +108,28 @@ static inline void MakeUnmovable(TileInd
|
|
|
|
|
|
|
|
|
static inline void MakeTransmitter(TileIndex t)
|
|
|
{
|
|
|
MakeUnmovable(t, UNMOVABLE_TRANSMITTER, OWNER_NONE);
|
|
|
}
|
|
|
|
|
|
static inline void MakeLighthouse(TileIndex t)
|
|
|
{
|
|
|
MakeUnmovable(t, UNMOVABLE_LIGHTHOUSE, OWNER_NONE);
|
|
|
}
|
|
|
|
|
|
static inline void MakeStatue(TileIndex t, Owner o)
|
|
|
static inline void MakeStatue(TileIndex t, Owner o, TownID town_id)
|
|
|
{
|
|
|
MakeUnmovable(t, UNMOVABLE_STATUE, o);
|
|
|
_m[t].m2 = town_id;
|
|
|
}
|
|
|
|
|
|
static inline void MakeOwnedLand(TileIndex t, Owner o)
|
|
|
{
|
|
|
MakeUnmovable(t, UNMOVABLE_OWNED_LAND, o);
|
|
|
}
|
|
|
|
|
|
static inline void MakeCompanyHQ(TileIndex t, Owner o)
|
|
|
{
|
|
|
MakeUnmovable(t + TileDiffXY(0, 0), UNMOVABLE_HQ_NORTH, o);
|
|
|
MakeUnmovable(t + TileDiffXY(0, 1), UNMOVABLE_HQ_WEST, o);
|
|
|
MakeUnmovable(t + TileDiffXY(1, 0), UNMOVABLE_HQ_EAST, o);
|