summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-07-24 21:48:50 +0000
committerrubidium <rubidium@openttd.org>2007-07-24 21:48:50 +0000
commite640900e8ac5e35dad2242bda391903a04906852 (patch)
treed06ccafbe3bf6b917dc22e2b1c2d253b231b0e58
parentfe8e2979954ed2e129af7a23ec76c6aea73c36da (diff)
downloadopenttd-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.cpp20
-rw-r--r--src/station_map.h21
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)
{