summaryrefslogtreecommitdiff
path: root/src
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
commit542f552f6e7eaacaf0eb79668caeb232649668a5 (patch)
treed06ccafbe3bf6b917dc22e2b1c2d253b231b0e58 /src
parent151262c1eb882f9857e74e8c59f5c5ba2b670da4 (diff)
downloadopenttd-542f552f6e7eaacaf0eb79668caeb232649668a5.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.
Diffstat (limited to 'src')
-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)
{