author | bjarni |
Thu, 30 Mar 2006 20:14:06 +0000 | |
changeset 3380 | f473785f812c |
parent 3371 | 919a6f9f4ed8 |
child 3404 | 3ac4f7fedfb5 |
permissions | -rw-r--r-- |
3315
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
1 |
/* $Id$ */ |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
2 |
|
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
3 |
#ifndef STATION_MAP_H |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
4 |
#define STATION_MAP_H |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
5 |
|
3315
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
6 |
#include "station.h" |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
7 |
|
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
8 |
static inline StationID GetStationIndex(TileIndex t) |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
9 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
10 |
assert(IsTileType(t, MP_STATION)); |
3315
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
11 |
return (StationID)_m[t].m2; |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
12 |
} |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
13 |
|
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
14 |
static inline Station* GetStationByTile(TileIndex t) |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
15 |
{ |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
16 |
return GetStation(GetStationIndex(t)); |
1f65f8260092
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
17 |
} |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
18 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
19 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
20 |
enum { |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
21 |
RAILWAY_BASE = 0x0, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
22 |
AIRPORT_BASE = 0x8, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
23 |
TRUCK_BASE = 0x43, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
24 |
BUS_BASE = 0x47, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
25 |
OILRIG_BASE = 0x4B, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
26 |
DOCK_BASE = 0x4C, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
27 |
DOCK_BASE_WATER_PART = 0x50, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
28 |
BUOY_BASE = 0x52, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
29 |
AIRPORT_BASE_EXTENDED = 0x53, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
30 |
|
3353
2f6e03bd3c29
(svn r4143) -[FS#86]: Fixed and obi-wan error in station_map.h that would lead to assertions in the airport handling (of international airports)
celestar
parents:
3338
diff
changeset
|
31 |
BASE_END = 0x73 |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
32 |
}; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
33 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
34 |
enum { |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
35 |
RAILWAY_SIZE = AIRPORT_BASE - RAILWAY_BASE, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
36 |
AIRPORT_SIZE = TRUCK_BASE - AIRPORT_BASE, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
37 |
TRUCK_SIZE = BUS_BASE - TRUCK_BASE, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
38 |
BUS_SIZE = OILRIG_BASE - BUS_BASE, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
39 |
DOCK_SIZE_TOTAL = BUOY_BASE - DOCK_BASE, |
3353
2f6e03bd3c29
(svn r4143) -[FS#86]: Fixed and obi-wan error in station_map.h that would lead to assertions in the airport handling (of international airports)
celestar
parents:
3338
diff
changeset
|
40 |
AIRPORT_SIZE_EXTENDED = BASE_END - AIRPORT_BASE_EXTENDED |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
41 |
}; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
42 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
43 |
typedef enum HangarTiles { |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
44 |
HANGAR_TILE_0 = 32, |
3337
07e476ea35b5
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
45 |
HANGAR_TILE_1 = 65, |
07e476ea35b5
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
46 |
HANGAR_TILE_2 = 86 |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
47 |
} HangarTiles; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
48 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
49 |
typedef enum StationType { |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
50 |
STATION_RAIL, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
51 |
STATION_HANGAR, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
52 |
STATION_AIRPORT, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
53 |
STATION_TRUCK, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
54 |
STATION_BUS, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
55 |
STATION_OILRIG, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
56 |
STATION_DOCK, |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
57 |
STATION_BUOY |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
58 |
} StationType; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
59 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
60 |
StationType GetStationType(TileIndex); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
61 |
|
3360
edef9ad64773
(svn r4155) -Changed GetRoadStopByTile to use GetStationType and moved it. TODO: unify RS_TRUCK and STATION_TRUCK (same for bus)
celestar
parents:
3353
diff
changeset
|
62 |
static inline RoadStopType GetRoadStopType(TileIndex t) |
edef9ad64773
(svn r4155) -Changed GetRoadStopByTile to use GetStationType and moved it. TODO: unify RS_TRUCK and STATION_TRUCK (same for bus)
celestar
parents:
3353
diff
changeset
|
63 |
{ |
edef9ad64773
(svn r4155) -Changed GetRoadStopByTile to use GetStationType and moved it. TODO: unify RS_TRUCK and STATION_TRUCK (same for bus)
celestar
parents:
3353
diff
changeset
|
64 |
assert(GetStationType(t) == STATION_TRUCK || GetStationType(t) == STATION_BUS); |
edef9ad64773
(svn r4155) -Changed GetRoadStopByTile to use GetStationType and moved it. TODO: unify RS_TRUCK and STATION_TRUCK (same for bus)
celestar
parents:
3353
diff
changeset
|
65 |
return GetStationType(t) == STATION_TRUCK ? RS_TRUCK : RS_BUS; |
edef9ad64773
(svn r4155) -Changed GetRoadStopByTile to use GetStationType and moved it. TODO: unify RS_TRUCK and STATION_TRUCK (same for bus)
celestar
parents:
3353
diff
changeset
|
66 |
} |
edef9ad64773
(svn r4155) -Changed GetRoadStopByTile to use GetStationType and moved it. TODO: unify RS_TRUCK and STATION_TRUCK (same for bus)
celestar
parents:
3353
diff
changeset
|
67 |
|
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
68 |
static inline bool IsRailwayStation(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
69 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
70 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
71 |
return _m[t].m5 < RAILWAY_BASE + RAILWAY_SIZE; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
72 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
73 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
74 |
static inline bool IsHangar(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
75 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
76 |
assert(IsTileType(t, MP_STATION)); |
3337
07e476ea35b5
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
77 |
return |
07e476ea35b5
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
78 |
_m[t].m5 == HANGAR_TILE_0 || |
07e476ea35b5
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
79 |
_m[t].m5 == HANGAR_TILE_1 || |
07e476ea35b5
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
80 |
_m[t].m5 == HANGAR_TILE_2; |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
81 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
82 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
83 |
static inline bool IsAirport(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
84 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
85 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
86 |
return |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
87 |
IS_INT_INSIDE(_m[t].m5, AIRPORT_BASE, AIRPORT_BASE + AIRPORT_SIZE) || |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
88 |
IS_INT_INSIDE(_m[t].m5, AIRPORT_BASE_EXTENDED, AIRPORT_BASE_EXTENDED + AIRPORT_SIZE_EXTENDED); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
89 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
90 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
91 |
static inline bool IsTruckStop(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
92 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
93 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
94 |
return IS_INT_INSIDE(_m[t].m5, TRUCK_BASE, TRUCK_BASE + TRUCK_SIZE); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
95 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
96 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
97 |
static inline bool IsBusStop(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
98 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
99 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
100 |
return IS_INT_INSIDE(_m[t].m5, BUS_BASE, BUS_BASE + BUS_SIZE); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
101 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
102 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
103 |
static inline bool IsRoadStop(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
104 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
105 |
return IsTruckStop(t) || IsBusStop(t); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
106 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
107 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
108 |
static inline bool IsOilRig(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
109 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
110 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
111 |
return _m[t].m5 == OILRIG_BASE; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
112 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
113 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
114 |
static inline bool IsDock(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
115 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
116 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
117 |
return IS_INT_INSIDE(_m[t].m5, DOCK_BASE, DOCK_BASE + DOCK_SIZE_TOTAL); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
118 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
119 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
120 |
static inline bool IsBuoy_(TileIndex t) // XXX _ due to naming conflict |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
121 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
122 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
123 |
return _m[t].m5 == BUOY_BASE; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
124 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
125 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
126 |
|
3338
2c60ed0dcce3
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
127 |
static inline bool IsHangarTile(TileIndex t) |
2c60ed0dcce3
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
128 |
{ |
2c60ed0dcce3
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
129 |
return IsTileType(t, MP_STATION) && IsHangar(t); |
2c60ed0dcce3
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
130 |
} |
2c60ed0dcce3
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
131 |
|
2c60ed0dcce3
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
132 |
|
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
133 |
static inline Axis GetRailStationAxis(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
134 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
135 |
assert(IsRailwayStation(t)); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
136 |
return HASBIT(_m[t].m5, 0) ? AXIS_Y : AXIS_X; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
137 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
138 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
139 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
140 |
static inline Track GetRailStationTrack(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
141 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
142 |
return GetRailStationAxis(t) == AXIS_X ? TRACK_X : TRACK_Y; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
143 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
144 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
145 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
146 |
static inline DiagDirection GetDockDirection(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
147 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
148 |
assert(IsTileType(t, MP_STATION)); |
3370
575f27ec6d14
(svn r4168) -Fix: Fixed a typo in previous commit
celestar
parents:
3369
diff
changeset
|
149 |
assert(_m[t].m5 < DOCK_BASE_WATER_PART); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
150 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
151 |
return (DiagDirection)(_m[t].m5 - DOCK_BASE); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
152 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
153 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
154 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
155 |
static inline bool IsCustomStationSprite(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
156 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
157 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
158 |
return HASBIT(_m[t].m3, 4); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
159 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
160 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
161 |
static inline void SetCustomStationSprite(TileIndex t, byte sprite) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
162 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
163 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
164 |
SETBIT(_m[t].m3, 4); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
165 |
_m[t].m4 = sprite; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
166 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
167 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
168 |
static inline uint GetCustomStationSprite(TileIndex t) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
169 |
{ |
3369
00c2ca209a89
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
170 |
assert(IsTileType(t, MP_STATION)); |
3334
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
171 |
return _m[t].m4; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
172 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
173 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
174 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
175 |
static inline void MakeStation(TileIndex t, Owner o, StationID sid, byte m5) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
176 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
177 |
SetTileType(t, MP_STATION); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
178 |
SetTileOwner(t, o); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
179 |
_m[t].m2 = sid; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
180 |
_m[t].m3 = 0; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
181 |
_m[t].m4 = 0; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
182 |
_m[t].m5 = m5; |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
183 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
184 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
185 |
static inline void MakeRailStation(TileIndex t, Owner o, StationID sid, Axis a, byte section, RailType rt) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
186 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
187 |
MakeStation(t, o, sid, section + a); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
188 |
SetRailType(t, rt); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
189 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
190 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
191 |
static inline void MakeRoadStop(TileIndex t, Owner o, StationID sid, RoadStopType rst, DiagDirection d) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
192 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
193 |
MakeStation(t, o, sid, (rst == RS_BUS ? BUS_BASE : TRUCK_BASE) + d); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
194 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
195 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
196 |
static inline void MakeAirport(TileIndex t, Owner o, StationID sid, byte section) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
197 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
198 |
MakeStation(t, o, sid, section); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
199 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
200 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
201 |
static inline void MakeBuoy(TileIndex t, StationID sid) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
202 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
203 |
MakeStation(t, OWNER_NONE, sid, BUOY_BASE); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
204 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
205 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
206 |
static inline void MakeDock(TileIndex t, Owner o, StationID sid, DiagDirection d) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
207 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
208 |
MakeStation(t, o, sid, DOCK_BASE + d); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
209 |
MakeStation(t + TileOffsByDir(d), o, sid, DOCK_BASE_WATER_PART + DiagDirToAxis(d)); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
210 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
211 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
212 |
static inline void MakeOilrig(TileIndex t, StationID sid) |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
213 |
{ |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
214 |
MakeStation(t, OWNER_NONE, sid, OILRIG_BASE); |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
215 |
} |
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
216 |
|
b72ac8637a30
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
217 |
#endif |