diff options
author | rubidium <rubidium@openttd.org> | 2007-07-24 21:48:50 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-07-24 21:48:50 +0000 |
commit | e640900e8ac5e35dad2242bda391903a04906852 (patch) | |
tree | d06ccafbe3bf6b917dc22e2b1c2d253b231b0e58 | |
parent | fe8e2979954ed2e129af7a23ec76c6aea73c36da (diff) | |
download | openttd-e640900e8ac5e35dad2242bda391903a04906852.tar.xz |
(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.
-rw-r--r-- | src/station_cmd.cpp | 20 | ||||
-rw-r--r-- | src/station_map.h | 21 |
2 files changed, 21 insertions, 20 deletions
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index df788d997..1c858c91a 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -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); diff --git a/src/station_map.h b/src/station_map.h index eaa092c2a..dd81c3f08 100644 --- a/src/station_map.h +++ b/src/station_map.h @@ -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) { |