author | KUDr |
Fri, 20 Apr 2007 19:43:06 +0000 | |
changeset 6513 | 454347ca3dfb |
parent 6420 | 456c275f3313 |
child 6661 | 1716fce5ad29 |
permissions | -rw-r--r-- |
3315
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
1 |
/* $Id$ */ |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
2 |
|
6420
456c275f3313
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6248
diff
changeset
|
3 |
/** @file station_map.h */ |
456c275f3313
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6248
diff
changeset
|
4 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
5 |
#ifndef STATION_MAP_H |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
6 |
#define STATION_MAP_H |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
7 |
|
4041
72276cd8ee2b
(svn r5309) Partially fix the rail header dependency fiasco: rail_map.h now depends on rail.h and not the other way round anymore
tron
parents:
3900
diff
changeset
|
8 |
#include "rail_map.h" |
3315
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
9 |
#include "station.h" |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
10 |
|
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
11 |
typedef byte StationGfx; |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
12 |
|
3315
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
13 |
static inline StationID GetStationIndex(TileIndex t) |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
14 |
{ |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
15 |
assert(IsTileType(t, MP_STATION)); |
3315
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
16 |
return (StationID)_m[t].m2; |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
17 |
} |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
18 |
|
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
19 |
static inline Station* GetStationByTile(TileIndex t) |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
20 |
{ |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
21 |
return GetStation(GetStationIndex(t)); |
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
diff
changeset
|
22 |
} |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
23 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
24 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
25 |
enum { |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
26 |
GFX_RAILWAY_BASE = 0, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
27 |
GFX_AIRPORT_BASE = 8, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
28 |
GFX_RADAR_LARGE_FIRST = 39, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
29 |
GFX_RADAR_LARGE_LAST = 50, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
30 |
GFX_WINDSACK_FIRST = 58, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
31 |
GFX_WINDSACK_LAST = 61, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
32 |
GFX_TRUCK_BASE = 67, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
33 |
GFX_BUS_BASE = 71, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
34 |
GFX_OILRIG_BASE = 75, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
35 |
GFX_DOCK_BASE = 76, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
36 |
GFX_DOCK_BASE_WATER_PART = 80, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
37 |
GFX_BUOY_BASE = 82, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
38 |
GFX_AIRPORT_BASE_EXTENDED = 83, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
39 |
GFX_RADAR_INTERNATIONAL_FIRST = 90, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
40 |
GFX_RADAR_INTERNATIONAL_LAST = 101, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
41 |
GFX_RADAR_METROPOLITAN_FIRST = 102, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
42 |
GFX_RADAR_METROPOLITAN_LAST = 113, |
4059
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
43 |
GFX_RADAR_DISTRICTWE_FIRST = 145, |
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
44 |
GFX_RADAR_DISTRICTWE_LAST = 156, |
4066
2d099b946f10
(svn r5362) - Fix: Updated sprites in New Airports to be allow cleaner replacement by newgrf graphics. All tiles now use SPR_AIRPORT_APRON as the tarmac. Created two new sprites in airports.grf for half-grass half-tarmac tiles on Intercontinental airport.
richk
parents:
4059
diff
changeset
|
45 |
GFX_WINDSACK_INTERCON_FIRST = 164, |
2d099b946f10
(svn r5362) - Fix: Updated sprites in New Airports to be allow cleaner replacement by newgrf graphics. All tiles now use SPR_AIRPORT_APRON as the tarmac. Created two new sprites in airports.grf for half-grass half-tarmac tiles on Intercontinental airport.
richk
parents:
4059
diff
changeset
|
46 |
GFX_WINDSACK_INTERCON_LAST = 167, |
6012
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
47 |
GFX_TRUCK_BASE_EXT = 168, |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
48 |
GFX_BUS_BASE_EXT = 170, |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
49 |
GFX_BASE_END = 172 |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
50 |
}; |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
51 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
52 |
enum { |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
53 |
RAILWAY_SIZE = GFX_AIRPORT_BASE - GFX_RAILWAY_BASE, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
54 |
AIRPORT_SIZE = GFX_TRUCK_BASE - GFX_AIRPORT_BASE, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
55 |
TRUCK_SIZE = GFX_BUS_BASE - GFX_TRUCK_BASE, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
56 |
BUS_SIZE = GFX_OILRIG_BASE - GFX_BUS_BASE, |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
57 |
DOCK_SIZE_TOTAL = GFX_BUOY_BASE - GFX_DOCK_BASE, |
6012
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
58 |
AIRPORT_SIZE_EXTENDED = GFX_TRUCK_BASE_EXT - GFX_AIRPORT_BASE_EXTENDED, |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
59 |
TRUCK_SIZE_EXT = GFX_BUS_BASE_EXT - GFX_TRUCK_BASE_EXT, |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
60 |
BUS_SIZE_EXT = GFX_BASE_END - GFX_BUS_BASE_EXT, |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
61 |
}; |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
62 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6098
diff
changeset
|
63 |
enum HangarTile { |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
64 |
HANGAR_TILE_0 = 32, |
3337
3a9b086c6369
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
65 |
HANGAR_TILE_1 = 65, |
4059
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
66 |
HANGAR_TILE_2 = 86, |
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
67 |
HANGAR_TILE_3 = 129, // added for west facing hangar |
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
68 |
HANGAR_TILE_4 = 130, // added for north facing hangar |
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
69 |
HANGAR_TILE_5 = 131 // added for east facing hangar |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6098
diff
changeset
|
70 |
}; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
71 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6098
diff
changeset
|
72 |
enum StationType { |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
73 |
STATION_RAIL, |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
74 |
STATION_AIRPORT, |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
75 |
STATION_TRUCK, |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
76 |
STATION_BUS, |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
77 |
STATION_OILRIG, |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
78 |
STATION_DOCK, |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
79 |
STATION_BUOY |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6098
diff
changeset
|
80 |
}; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
81 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
82 |
StationType GetStationType(TileIndex); |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
83 |
|
5836
a60d2114780e
(svn r8402) -Codechange: Move RoadStop-specific enums to the RoadStop class, and changed a one-member enum into a static const. Simplify their naming and add some doxygen-comments to RoadStop
celestar
parents:
5475
diff
changeset
|
84 |
static inline RoadStop::Type GetRoadStopType(TileIndex t) |
3360
4fddbd48d36c
(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
|
85 |
{ |
4fddbd48d36c
(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
|
86 |
assert(GetStationType(t) == STATION_TRUCK || GetStationType(t) == STATION_BUS); |
5836
a60d2114780e
(svn r8402) -Codechange: Move RoadStop-specific enums to the RoadStop class, and changed a one-member enum into a static const. Simplify their naming and add some doxygen-comments to RoadStop
celestar
parents:
5475
diff
changeset
|
87 |
return GetStationType(t) == STATION_TRUCK ? RoadStop::TRUCK : RoadStop::BUS; |
3360
4fddbd48d36c
(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
|
88 |
} |
4fddbd48d36c
(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
|
89 |
|
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
90 |
static inline StationGfx GetStationGfx(TileIndex t) |
3540
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
91 |
{ |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
92 |
assert(IsTileType(t, MP_STATION)); |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
93 |
return _m[t].m5; |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
94 |
} |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
95 |
|
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
96 |
static inline void SetStationGfx(TileIndex t, StationGfx gfx) |
3540
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
97 |
{ |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
98 |
assert(IsTileType(t, MP_STATION)); |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
99 |
_m[t].m5 = gfx; |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
100 |
} |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
101 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
102 |
static inline bool IsRailwayStation(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
103 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
104 |
return GetStationGfx(t) < GFX_RAILWAY_BASE + RAILWAY_SIZE; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
105 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
106 |
|
3442
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
107 |
static inline bool IsRailwayStationTile(TileIndex t) |
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
108 |
{ |
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
109 |
return IsTileType(t, MP_STATION) && IsRailwayStation(t); |
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
110 |
} |
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
111 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
112 |
static inline bool IsHangar(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
113 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
114 |
StationGfx gfx = GetStationGfx(t); |
3337
3a9b086c6369
(svn r4119) There's one more possible hangar tile. Check for this in IsHangar(), too
tron
parents:
3334
diff
changeset
|
115 |
return |
3540
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
116 |
gfx == HANGAR_TILE_0 || |
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
117 |
gfx == HANGAR_TILE_1 || |
4059
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
118 |
gfx == HANGAR_TILE_2 || |
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
119 |
gfx == HANGAR_TILE_3 || |
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
120 |
gfx == HANGAR_TILE_4 || |
b1e1c1193f0a
(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.
richk
parents:
4041
diff
changeset
|
121 |
gfx == HANGAR_TILE_5; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
122 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
123 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
124 |
static inline bool IsAirport(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
125 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
126 |
StationGfx gfx = GetStationGfx(t); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
127 |
return |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
128 |
(IS_BYTE_INSIDE(gfx, GFX_AIRPORT_BASE, GFX_AIRPORT_BASE + AIRPORT_SIZE)) || |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
129 |
(IS_BYTE_INSIDE(gfx, GFX_AIRPORT_BASE_EXTENDED, GFX_AIRPORT_BASE_EXTENDED + AIRPORT_SIZE_EXTENDED)); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
130 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
131 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
132 |
static inline bool IsTruckStop(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
133 |
{ |
6012
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
134 |
return (IS_BYTE_INSIDE(GetStationGfx(t), GFX_TRUCK_BASE, GFX_TRUCK_BASE + TRUCK_SIZE)) || |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
135 |
(IS_BYTE_INSIDE(GetStationGfx(t), GFX_TRUCK_BASE_EXT, GFX_TRUCK_BASE_EXT + TRUCK_SIZE_EXT)); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
136 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
137 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
138 |
static inline bool IsBusStop(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
139 |
{ |
6012
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
140 |
return (IS_BYTE_INSIDE(GetStationGfx(t), GFX_BUS_BASE, GFX_BUS_BASE + BUS_SIZE)) || |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
141 |
(IS_BYTE_INSIDE(GetStationGfx(t), GFX_BUS_BASE_EXT, GFX_BUS_BASE_EXT + BUS_SIZE_EXT)); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
142 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
143 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
144 |
static inline bool IsRoadStop(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
145 |
{ |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
146 |
return IsTruckStop(t) || IsBusStop(t); |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
147 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
148 |
|
3404
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
149 |
static inline bool IsRoadStopTile(TileIndex t) |
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
150 |
{ |
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
151 |
return IsTileType(t, MP_STATION) && IsRoadStop(t); |
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
152 |
} |
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
153 |
|
6012
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
154 |
static inline bool IsStandardRoadStopTile(TileIndex t) |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
155 |
{ |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
156 |
return IsTileType(t, MP_STATION) && |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
157 |
(IS_BYTE_INSIDE(GetStationGfx(t), GFX_TRUCK_BASE, GFX_TRUCK_BASE + TRUCK_SIZE) || |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
158 |
IS_BYTE_INSIDE(GetStationGfx(t), GFX_BUS_BASE, GFX_BUS_BASE + BUS_SIZE)); |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
159 |
} |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
160 |
|
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
161 |
static inline bool IsDriveThroughStopTile(TileIndex t) |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
162 |
{ |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
163 |
return IsTileType(t, MP_STATION) && |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
164 |
(IS_BYTE_INSIDE(GetStationGfx(t), GFX_TRUCK_BASE_EXT, GFX_TRUCK_BASE_EXT + TRUCK_SIZE_EXT) || |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
165 |
IS_BYTE_INSIDE(GetStationGfx(t), GFX_BUS_BASE_EXT, GFX_BUS_BASE_EXT + BUS_SIZE_EXT)); |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
166 |
} |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
167 |
|
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
168 |
static inline bool GetStopBuiltOnTownRoad(TileIndex t) |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
169 |
{ |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
170 |
assert(IsDriveThroughStopTile(t)); |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
171 |
return HASBIT(_m[t].m6, 3); |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
172 |
} |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
173 |
|
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
174 |
|
3404
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
175 |
/** |
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
176 |
* Gets the direction the road stop entrance points towards. |
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
177 |
*/ |
3540
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
178 |
static inline DiagDirection GetRoadStopDir(TileIndex t) |
3404
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
179 |
{ |
6012
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
180 |
StationGfx gfx = GetStationGfx(t); |
3540
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
181 |
assert(IsRoadStopTile(t)); |
6012
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
182 |
if (gfx < GFX_TRUCK_BASE_EXT) { |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
183 |
return (DiagDirection)((gfx - GFX_TRUCK_BASE) & 3); |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
184 |
} else { |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
185 |
return (DiagDirection)((gfx - GFX_TRUCK_BASE_EXT) & 1); |
065d7234a7a9
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
5953
diff
changeset
|
186 |
} |
3404
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
187 |
} |
eb8ebfe5df67
(svn r4215) -Codechange: Renamed *RoadStation* functions to *RoadStop* and moved them to station_map.h to keep consistency
celestar
parents:
3371
diff
changeset
|
188 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
189 |
static inline bool IsOilRig(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
190 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
191 |
return GetStationGfx(t) == GFX_OILRIG_BASE; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
192 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
193 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
194 |
static inline bool IsDock(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
195 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
196 |
return IS_BYTE_INSIDE(GetStationGfx(t), GFX_DOCK_BASE, GFX_DOCK_BASE + DOCK_SIZE_TOTAL); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
197 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
198 |
|
5905
422a010c5286
(svn r8528) -Codechange: Rename IsBuoy_() to IsBuoy() now that the naming conflict no longer exists.
celestar
parents:
5836
diff
changeset
|
199 |
static inline bool IsBuoy(TileIndex t) |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
200 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
201 |
return GetStationGfx(t) == GFX_BUOY_BASE; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
202 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
203 |
|
3442
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
204 |
static inline bool IsBuoyTile(TileIndex t) |
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
205 |
{ |
5905
422a010c5286
(svn r8528) -Codechange: Rename IsBuoy_() to IsBuoy() now that the naming conflict no longer exists.
celestar
parents:
5836
diff
changeset
|
206 |
return IsTileType(t, MP_STATION) && IsBuoy(t); |
3442
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
207 |
} |
41d828e2d5ab
(svn r4272) -Codechange: Moved the map-accessing stuff from station.h into station_map.h
celestar
parents:
3404
diff
changeset
|
208 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
209 |
|
3338
7cff208f0446
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
210 |
static inline bool IsHangarTile(TileIndex t) |
7cff208f0446
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
211 |
{ |
7cff208f0446
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
212 |
return IsTileType(t, MP_STATION) && IsHangar(t); |
7cff208f0446
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
213 |
} |
7cff208f0446
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
214 |
|
7cff208f0446
(svn r4120) Use the new station functions where appropriate
tron
parents:
3337
diff
changeset
|
215 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
216 |
static inline Axis GetRailStationAxis(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
217 |
{ |
3541
de660582cff4
(svn r4404) Reverted part of r4403. GetRailStationAxis need assertion on IsRailwayStation. Thanks glx for spotting it
belugas
parents:
3540
diff
changeset
|
218 |
assert(IsRailwayStation(t)); |
3540
3bcf5348842b
(svn r4403) CodeChange : Add GetStationGfx and make use of [G|S]etStationGfx accessors. Also, use GetStationGfx instead of directly accessing the map for functions in station_map.h
belugas
parents:
3474
diff
changeset
|
219 |
return HASBIT(GetStationGfx(t), 0) ? AXIS_Y : AXIS_X; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
220 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
221 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
222 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
223 |
static inline Track GetRailStationTrack(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
224 |
{ |
4158 | 225 |
return AxisToTrack(GetRailStationAxis(t)); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
226 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
227 |
|
3444
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
228 |
static inline bool IsCompatibleTrainStationTile(TileIndex t1, TileIndex t2) |
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
229 |
{ |
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
230 |
assert(IsRailwayStationTile(t2)); |
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
231 |
return |
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
232 |
IsRailwayStationTile(t1) && |
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
233 |
IsCompatibleRail(GetRailType(t1), GetRailType(t2)) && |
3766
fc2dea6ef369
(svn r4758) - Newstations: add support for 'blocked' station tiles, which no train can pass.
peter1138
parents:
3742
diff
changeset
|
234 |
GetRailStationAxis(t1) == GetRailStationAxis(t2) && |
fc2dea6ef369
(svn r4758) - Newstations: add support for 'blocked' station tiles, which no train can pass.
peter1138
parents:
3742
diff
changeset
|
235 |
!IsStationTileBlocked(t1); |
3444
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
236 |
} |
80cfd2f70922
(svn r4275) -Codechange: Use of map accessor functions inside station_map.h when possible
celestar
parents:
3443
diff
changeset
|
237 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
238 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
239 |
static inline DiagDirection GetDockDirection(TileIndex t) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
240 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
241 |
StationGfx gfx = GetStationGfx(t); |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
242 |
assert(gfx < GFX_DOCK_BASE_WATER_PART); |
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
243 |
return (DiagDirection)(gfx - GFX_DOCK_BASE); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
244 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
245 |
|
3472
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
246 |
static inline TileIndexDiffC GetDockOffset(TileIndex t) |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
247 |
{ |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
248 |
static const TileIndexDiffC buoy_offset = {0, 0}; |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
249 |
static const TileIndexDiffC oilrig_offset = {2, 0}; |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
250 |
static const TileIndexDiffC dock_offset[DIAGDIR_END] = { |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
251 |
{-2, 0}, |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
252 |
{ 0, 2}, |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
253 |
{ 2, 0}, |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
254 |
{ 0, -2}, |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
255 |
}; |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
256 |
assert(IsTileType(t, MP_STATION)); |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
257 |
|
5905
422a010c5286
(svn r8528) -Codechange: Rename IsBuoy_() to IsBuoy() now that the naming conflict no longer exists.
celestar
parents:
5836
diff
changeset
|
258 |
if (IsBuoy(t)) return buoy_offset; |
3472
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
259 |
if (IsOilRig(t)) return oilrig_offset; |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
260 |
|
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
261 |
assert(IsDock(t)); |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
262 |
|
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
263 |
return dock_offset[GetDockDirection(t)]; |
04173b5ed0d2
(svn r4317) -Codechange: More map accessors for ship_cmd. it is now map-access free, but still requires a huge cleanup
celestar
parents:
3444
diff
changeset
|
264 |
} |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
265 |
|
3568
c60d7aceed1a
(svn r4450) - NewStations, rename *CustomStationSprite() to *CustomStationSpecIndex() to reflect their use, and alter the test for determining if a station has customised graphics.
peter1138
parents:
3545
diff
changeset
|
266 |
static inline bool IsCustomStationSpecIndex(TileIndex t) |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
267 |
{ |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
268 |
assert(IsTileType(t, MP_STATION)); |
3568
c60d7aceed1a
(svn r4450) - NewStations, rename *CustomStationSprite() to *CustomStationSpecIndex() to reflect their use, and alter the test for determining if a station has customised graphics.
peter1138
parents:
3545
diff
changeset
|
269 |
return _m[t].m4 != 0; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
270 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
271 |
|
3568
c60d7aceed1a
(svn r4450) - NewStations, rename *CustomStationSprite() to *CustomStationSpecIndex() to reflect their use, and alter the test for determining if a station has customised graphics.
peter1138
parents:
3545
diff
changeset
|
272 |
static inline void SetCustomStationSpecIndex(TileIndex t, byte specindex) |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
273 |
{ |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
274 |
assert(IsTileType(t, MP_STATION)); |
3568
c60d7aceed1a
(svn r4450) - NewStations, rename *CustomStationSprite() to *CustomStationSpecIndex() to reflect their use, and alter the test for determining if a station has customised graphics.
peter1138
parents:
3545
diff
changeset
|
275 |
_m[t].m4 = specindex; |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
276 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
277 |
|
3568
c60d7aceed1a
(svn r4450) - NewStations, rename *CustomStationSprite() to *CustomStationSpecIndex() to reflect their use, and alter the test for determining if a station has customised graphics.
peter1138
parents:
3545
diff
changeset
|
278 |
static inline uint GetCustomStationSpecIndex(TileIndex t) |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
279 |
{ |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3360
diff
changeset
|
280 |
assert(IsTileType(t, MP_STATION)); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
281 |
return _m[t].m4; |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
282 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
283 |
|
3742
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
284 |
static inline void SetStationTileRandomBits(TileIndex t, byte random_bits) |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
285 |
{ |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
286 |
assert(IsTileType(t, MP_STATION)); |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
287 |
SB(_m[t].m3, 4, 4, random_bits); |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
288 |
} |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
289 |
|
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
290 |
static inline byte GetStationTileRandomBits(TileIndex t) |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
291 |
{ |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
292 |
assert(IsTileType(t, MP_STATION)); |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
293 |
return GB(_m[t].m3, 4, 4); |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
294 |
} |
c5ef7a92daa5
(svn r4724) - Newstations: Add per-tile random data for station tiles.
peter1138
parents:
3568
diff
changeset
|
295 |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
296 |
static inline void MakeStation(TileIndex t, Owner o, StationID sid, byte m5) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
297 |
{ |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
298 |
SetTileType(t, MP_STATION); |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
299 |
SetTileOwner(t, o); |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
300 |
_m[t].m2 = sid; |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
301 |
_m[t].m3 = 0; |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
302 |
_m[t].m4 = 0; |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
303 |
_m[t].m5 = m5; |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
304 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
305 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
306 |
static inline void MakeRailStation(TileIndex t, Owner o, StationID sid, Axis a, byte section, RailType rt) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
307 |
{ |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
308 |
MakeStation(t, o, sid, section + a); |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
309 |
SetRailType(t, rt); |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
310 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
311 |
|
6098 | 312 |
static inline void MakeRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, DiagDirection d) |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
313 |
{ |
6098 | 314 |
MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE : GFX_TRUCK_BASE) + d); |
315 |
} |
|
316 |
||
317 |
static inline void MakeDriveThroughRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, Axis a, bool on_town_road) |
|
318 |
{ |
|
319 |
MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE_EXT : GFX_TRUCK_BASE_EXT) + a); |
|
320 |
SB(_m[t].m6, 3, 1, on_town_road); |
|
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
321 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
322 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
323 |
static inline void MakeAirport(TileIndex t, Owner o, StationID sid, byte section) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
324 |
{ |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
325 |
MakeStation(t, o, sid, section); |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
326 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
327 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
328 |
static inline void MakeBuoy(TileIndex t, StationID sid) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
329 |
{ |
5953
b40dc8f4dc69
(svn r8619) -Fix: store the ownership of a water tile in the buoy tile and set the ownership of the water tile when the buoy is removed. This solves the issue of removing ownership from canal tiles thus making is possible for other players to remove the canal tile.
rubidium
parents:
5905
diff
changeset
|
330 |
/* Make the owner of the buoy tile the same as the current owner of the |
b40dc8f4dc69
(svn r8619) -Fix: store the ownership of a water tile in the buoy tile and set the ownership of the water tile when the buoy is removed. This solves the issue of removing ownership from canal tiles thus making is possible for other players to remove the canal tile.
rubidium
parents:
5905
diff
changeset
|
331 |
* water tile. In this way, we can reset the owner of the water to its |
b40dc8f4dc69
(svn r8619) -Fix: store the ownership of a water tile in the buoy tile and set the ownership of the water tile when the buoy is removed. This solves the issue of removing ownership from canal tiles thus making is possible for other players to remove the canal tile.
rubidium
parents:
5905
diff
changeset
|
332 |
* original state when the buoy gets removed. */ |
b40dc8f4dc69
(svn r8619) -Fix: store the ownership of a water tile in the buoy tile and set the ownership of the water tile when the buoy is removed. This solves the issue of removing ownership from canal tiles thus making is possible for other players to remove the canal tile.
rubidium
parents:
5905
diff
changeset
|
333 |
MakeStation(t, GetTileOwner(t), sid, GFX_BUOY_BASE); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
334 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
335 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
336 |
static inline void MakeDock(TileIndex t, Owner o, StationID sid, DiagDirection d) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
337 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
338 |
MakeStation(t, o, sid, GFX_DOCK_BASE + d); |
4559
aa0c13e39840
(svn r6406) -Codechange: Rename TileOffsByDir to TileOffsByDiagDir because it accepts
Darkvater
parents:
4158
diff
changeset
|
339 |
MakeStation(t + TileOffsByDiagDir(d), o, sid, GFX_DOCK_BASE_WATER_PART + DiagDirToAxis(d)); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
340 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
341 |
|
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
342 |
static inline void MakeOilrig(TileIndex t, StationID sid) |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
343 |
{ |
3545
b08ce1bbb589
(svn r4411) CodeChange : Define and use some Gfx for both stations and industries. More are still to come
belugas
parents:
3541
diff
changeset
|
344 |
MakeStation(t, OWNER_NONE, sid, GFX_OILRIG_BASE); |
3334
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
345 |
} |
2999d2ddc0f9
(svn r4113) Moved all relevant map functions for stations to station_map.[ch]
celestar
parents:
3315
diff
changeset
|
346 |
|
4666
172a0cdf28a6
(svn r6560) - Codechange: Minor fix; add missing #include guards and comments, and correct svn properties on bmp.[ch]
peter1138
parents:
4559
diff
changeset
|
347 |
#endif /* STATION_MAP_H */ |