(svn r10681) -Codechange: do not determine whether a tile is a hangar based on the graphics index to be drawn on the given tile, but do it based on the specification of the location of hangars of the airport.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
rubidium 17 years ago
parent fe8e297995
commit e640900e8a

@ -78,6 +78,26 @@ DEFINE_OLD_POOL(Station, Station, StationPoolNewBlock, StationPoolCleanBlock)
DEFINE_OLD_POOL(RoadStop, RoadStop, RoadStopPoolNewBlock, NULL)
/**
* Check whether the given tile is a hangar.
* @param t the tile to of whether it is a hangar.
* @pre IsTileType(t, MP_STATION)
* @return true if and only if the tile is a hangar.
*/
bool IsHangar(TileIndex t)
{
assert(IsTileType(t, MP_STATION));
const Station *st = GetStationByTile(t);
const AirportFTAClass *apc = st->Airport();
for (uint i = 0; i < apc->nof_depots; i++) {
if (st->airport_tile + ToTileIndexDiff(apc->airport_depots[i]) == t) return true;
}
return false;
}
RoadStop* GetRoadStopByTile(TileIndex tile, RoadStop::Type type)
{
const Station* st = GetStationByTile(tile);

@ -42,15 +42,6 @@ enum {
GFX_WINDSACK_INTERCON_LAST = 143,
};
enum HangarTile {
HANGAR_TILE_0 = 24,
HANGAR_TILE_1 = 57,
HANGAR_TILE_2 = 62,
HANGAR_TILE_3 = 105, // added for west facing hangar
HANGAR_TILE_4 = 106, // added for north facing hangar
HANGAR_TILE_5 = 107 // added for east facing hangar
};
static inline StationType GetStationType(TileIndex t)
{
return (StationType)GB(_m[t].m6, 3, 3);
@ -89,17 +80,7 @@ static inline bool IsAirport(TileIndex t)
return GetStationType(t) == STATION_AIRPORT;
}
static inline bool IsHangar(TileIndex t)
{
StationGfx gfx = GetStationGfx(t);
return IsAirport(t) && (
gfx == HANGAR_TILE_0 ||
gfx == HANGAR_TILE_1 ||
gfx == HANGAR_TILE_2 ||
gfx == HANGAR_TILE_3 ||
gfx == HANGAR_TILE_4 ||
gfx == HANGAR_TILE_5);
}
bool IsHangar(TileIndex t);
static inline bool IsTruckStop(TileIndex t)
{

Loading…
Cancel
Save