OpenTTD Source: src/table/station_land.h Source File

OpenTTD Source 15.0-beta1

station_land.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6 */
7
20#define TILE_SEQ_LINE(dx, dy, dz, sx, sy, sz, img) TILE_SEQ_LINE_PAL(dx, dy, dz, sx, sy, sz, img, PAL_NONE)
21
33#define TILE_SEQ_LINE_PAL(dx, dy, dz, sx, sy, sz, img, pal) { dx, dy, dz, sx, sy, sz, {img, pal} },
34
42#define TILE_SEQ_CHILD(dx, dy, img, pal) TILE_SEQ_LINE_PAL(dx, dy, (int8_t)0x80, 0, 0, 0, img, pal)
43
52#define TILE_SEQ_GROUND(dx, dy, dz, img) TILE_SEQ_CHILD(2 * (dy - dx), dx + dy - dz, img, PAL_NONE)
53
55#define TILE_SEQ_END() { (int8_t)0x80, 0, 0, 0, 0, 0, {0, 0} }
56
57static const DrawTileSeqStruct _station_display_nothing[] = {
58 TILE_SEQ_END()
59};
60
61static const DrawTileSeqStruct _station_display_datas_0[] = {
62 TILE_SEQ_LINE( 0, 0, 0, 16, 5, 2, SPR_RAIL_PLATFORM_X_REAR | (1U << PALETTE_MODIFIER_COLOUR))
63 TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, SPR_RAIL_PLATFORM_X_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
64 TILE_SEQ_END()
65};
66
67static const DrawTileSeqStruct _station_display_datas_1[] = {
68 TILE_SEQ_LINE( 0, 0, 0, 5, 16, 2, SPR_RAIL_PLATFORM_Y_REAR | (1U << PALETTE_MODIFIER_COLOUR))
69 TILE_SEQ_LINE(11, 0, 0, 5, 16, 2, SPR_RAIL_PLATFORM_Y_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
70 TILE_SEQ_END()
71};
72
73static const DrawTileSeqStruct _station_display_datas_2[] = {
74 TILE_SEQ_LINE( 0, 0, 0, 16, 5, 15, SPR_RAIL_PLATFORM_BUILDING_X | (1U << PALETTE_MODIFIER_COLOUR))
75 TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, SPR_RAIL_PLATFORM_X_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
76 TILE_SEQ_END()
77};
78
79static const DrawTileSeqStruct _station_display_datas_3[] = {
80 TILE_SEQ_LINE( 0, 0, 0, 5, 16, 15, SPR_RAIL_PLATFORM_BUILDING_Y | (1U << PALETTE_MODIFIER_COLOUR))
81 TILE_SEQ_LINE(11, 0, 0, 5, 16, 2, SPR_RAIL_PLATFORM_Y_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
82 TILE_SEQ_END()
83};
84
85static const DrawTileSeqStruct _station_display_datas_4[] = {
86 TILE_SEQ_LINE( 0, 0, 0, 16, 5, 7, SPR_RAIL_PLATFORM_PILLARS_X_REAR | (1U << PALETTE_MODIFIER_COLOUR))
87 TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, SPR_RAIL_PLATFORM_X_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
88 TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, SPR_RAIL_ROOF_STRUCTURE_X_TILE_A | (1U << PALETTE_MODIFIER_COLOUR))
89 TILE_SEQ_CHILD( 0, 0, SPR_RAIL_ROOF_GLASS_X_TILE_A | (1U << PALETTE_MODIFIER_TRANSPARENT), PALETTE_TO_TRANSPARENT)
90 TILE_SEQ_END()
91};
92
93static const DrawTileSeqStruct _station_display_datas_5[] = {
94 TILE_SEQ_LINE( 0, 0, 0, 5, 16, 2, SPR_RAIL_PLATFORM_PILLARS_Y_REAR | (1U << PALETTE_MODIFIER_COLOUR))
95 TILE_SEQ_LINE(11, 0, 0, 5, 16, 2, SPR_RAIL_PLATFORM_Y_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
96 TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, SPR_RAIL_ROOF_STRUCTURE_Y_TILE_A | (1U << PALETTE_MODIFIER_COLOUR))
97 TILE_SEQ_CHILD( 0, 0, SPR_RAIL_ROOF_GLASS_Y_TILE_A | (1U << PALETTE_MODIFIER_TRANSPARENT), PALETTE_TO_TRANSPARENT)
98 TILE_SEQ_END()
99};
100
101static const DrawTileSeqStruct _station_display_datas_6[] = {
102 TILE_SEQ_LINE( 0, 0, 0, 16, 5, 2, SPR_RAIL_PLATFORM_X_REAR | (1U << PALETTE_MODIFIER_COLOUR))
103 TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, SPR_RAIL_PLATFORM_PILLARS_X_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
104 TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, SPR_RAIL_ROOF_STRUCTURE_X_TILE_B | (1U << PALETTE_MODIFIER_COLOUR))
105 TILE_SEQ_CHILD( 0, 0, SPR_RAIL_ROOF_GLASS_X_TILE_B | (1U << PALETTE_MODIFIER_TRANSPARENT), PALETTE_TO_TRANSPARENT)
106 TILE_SEQ_END()
107};
108
109static const DrawTileSeqStruct _station_display_datas_7[] = {
110 TILE_SEQ_LINE( 0, 0, 0, 5, 16, 2, SPR_RAIL_PLATFORM_Y_REAR | (1U << PALETTE_MODIFIER_COLOUR))
111 TILE_SEQ_LINE(11, 0, 0, 5, 16, 2, SPR_RAIL_PLATFORM_PILLARS_Y_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
112 TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, SPR_RAIL_ROOF_STRUCTURE_Y_TILE_B | (1U << PALETTE_MODIFIER_COLOUR))
113 TILE_SEQ_CHILD( 0, 0, SPR_RAIL_ROOF_GLASS_Y_TILE_B | (1U << PALETTE_MODIFIER_TRANSPARENT), PALETTE_TO_TRANSPARENT)
114 TILE_SEQ_END()
115};
116
117static const DrawTileSeqStruct _station_display_fence_nw[] = {
118 TILE_SEQ_GROUND( 0, 0, 0, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences north
119 TILE_SEQ_END()
120};
121
122static const DrawTileSeqStruct _station_display_fence_ne[] = {
123 TILE_SEQ_GROUND( 0, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
124 TILE_SEQ_END()
125};
126
127static const DrawTileSeqStruct _station_display_fence_sw[] = {
128 TILE_SEQ_GROUND(15, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences west
129 TILE_SEQ_END()
130};
131
132static const DrawTileSeqStruct _station_display_fence_se[] = {
133 TILE_SEQ_GROUND( 0, 15, 0, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR))
134 TILE_SEQ_END()
135};
136
137static const DrawTileSeqStruct _station_display_terminal_a[] = {
138 TILE_SEQ_LINE( 2, 0, 0, 11, 16, 40, SPR_AIRPORT_TERMINAL_A | (1U << PALETTE_MODIFIER_COLOUR))
139 TILE_SEQ_END()
140};
141
142static const DrawTileSeqStruct _station_display_tower_fence_sw[] = {
143 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_TOWER | (1U << PALETTE_MODIFIER_COLOUR))
144 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
145 TILE_SEQ_END()
146};
147
148static const DrawTileSeqStruct _station_display_concourse[] = {
149 TILE_SEQ_LINE( 0, 1, 0, 14, 14, 30, SPR_AIRPORT_CONCOURSE | (1U << PALETTE_MODIFIER_COLOUR))
150 TILE_SEQ_END()
151};
152
153static const DrawTileSeqStruct _station_display_datas_terminal_b[] = {
154 TILE_SEQ_LINE( 3, 3, 0, 10, 11, 35, SPR_AIRPORT_TERMINAL_B | (1U << PALETTE_MODIFIER_COLOUR))
155 TILE_SEQ_END()
156};
157
158static const DrawTileSeqStruct _station_display_datas_terminal_c[] = {
159 TILE_SEQ_LINE( 0, 3, 0, 16, 11, 40, SPR_AIRPORT_TERMINAL_C | (1U << PALETTE_MODIFIER_COLOUR))
160 TILE_SEQ_END()
161};
162
163static const DrawTileSeqStruct _station_display_hangar_se[] = {
164 TILE_SEQ_LINE(14, 0, 0, 2, 17, 28, SPR_AIRPORT_HANGAR_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
165 TILE_SEQ_LINE( 0, 0, 0, 2, 17, 28, SPR_AIRPORT_HANGAR_REAR | (1U << PALETTE_MODIFIER_COLOUR))
166 TILE_SEQ_END()
167};
168
169static const DrawTileSeqStruct _station_display_jetway_1[] = {
170 TILE_SEQ_LINE( 7, 11, 0, 3, 3, 14, SPR_AIRPORT_JETWAY_1 | (1U << PALETTE_MODIFIER_COLOUR))
171 TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR))
172 TILE_SEQ_END()
173};
174
175static const DrawTileSeqStruct _station_display_jetway_2[] = {
176 TILE_SEQ_LINE( 2, 7, 0, 3, 3, 14, SPR_AIRPORT_JETWAY_2 | (1U << PALETTE_MODIFIER_COLOUR))
177 TILE_SEQ_END()
178};
179
180static const DrawTileSeqStruct _station_display_jetway_3[] = {
181 TILE_SEQ_LINE( 3, 2, 0, 3, 3, 14, SPR_AIRPORT_JETWAY_3 | (1U << PALETTE_MODIFIER_COLOUR))
182 TILE_SEQ_END()
183};
184
185static const DrawTileSeqStruct _station_display_passenger_tunnel[] = {
186 TILE_SEQ_LINE( 0, 8, 0, 14, 3, 14, SPR_AIRPORT_PASSENGER_TUNNEL | (1U << PALETTE_MODIFIER_COLOUR))
187 TILE_SEQ_END()
188};
189
190static const DrawTileSeqStruct _station_display_radar_1_fence_sw[] = {
191 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_1)
192 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
193 TILE_SEQ_END()
194};
195
196static const DrawTileSeqStruct _station_display_radar_2_fence_sw[] = {
197 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_2)
198 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
199 TILE_SEQ_END()
200};
201
202static const DrawTileSeqStruct _station_display_radar_3_fence_sw[] = {
203 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_3)
204 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
205 TILE_SEQ_END()
206};
207
208static const DrawTileSeqStruct _station_display_radar_4_fence_sw[] = {
209 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_4)
210 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
211 TILE_SEQ_END()
212};
213
214static const DrawTileSeqStruct _station_display_radar_5_fence_sw[] = {
215 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_5)
216 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
217 TILE_SEQ_END()
218};
219
220static const DrawTileSeqStruct _station_display_radar_6_fence_sw[] = {
221 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_6)
222 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
223 TILE_SEQ_END()
224};
225
226static const DrawTileSeqStruct _station_display_radar_7_fence_sw[] = {
227 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_7)
228 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
229 TILE_SEQ_END()
230};
231
232static const DrawTileSeqStruct _station_display_radar_8_fence_sw[] = {
233 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_8)
234 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
235 TILE_SEQ_END()
236};
237
238static const DrawTileSeqStruct _station_display_radar_9_fence_sw[] = {
239 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_9)
240 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
241 TILE_SEQ_END()
242};
243
244static const DrawTileSeqStruct _station_display_radar_10_fence_sw[] = {
245 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_A)
246 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
247 TILE_SEQ_END()
248};
249
250static const DrawTileSeqStruct _station_display_radar_11_fence_sw[] = {
251 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_B)
252 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
253 TILE_SEQ_END()
254};
255
256static const DrawTileSeqStruct _station_display_radar_12_fence_sw[] = {
257 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_C)
258 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
259 TILE_SEQ_END()
260};
261
262static const DrawTileSeqStruct _station_display_transmitter_fence_ne[] = {
263 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 70, SPR_TRANSMITTER)
264 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
265 TILE_SEQ_END()
266};
267
268static const DrawTileSeqStruct _station_display_datas_terminal_c_2[] = {
269 TILE_SEQ_LINE( 0, 0, 0, 15, 15, 30, SPR_AIRFIELD_TERM_C_BUILD | (1U << PALETTE_MODIFIER_COLOUR))
270 TILE_SEQ_END()
271};
272
273static const DrawTileSeqStruct _station_display_flag_1_fence_ne[] = {
274 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
275 TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, SPR_AIRFIELD_WIND_1 | (1U << PALETTE_MODIFIER_COLOUR))
276 TILE_SEQ_END()
277};
278
279static const DrawTileSeqStruct _station_display_flag_2_fence_ne[] = {
280 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
281 TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, SPR_AIRFIELD_WIND_2 | (1U << PALETTE_MODIFIER_COLOUR))
282 TILE_SEQ_END()
283};
284
285static const DrawTileSeqStruct _station_display_flag_3_fence_ne[] = {
286 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
287 TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, SPR_AIRFIELD_WIND_3 | (1U << PALETTE_MODIFIER_COLOUR))
288 TILE_SEQ_END()
289};
290
291static const DrawTileSeqStruct _station_display_flag_4_fence_ne[] = {
292 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
293 TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, SPR_AIRFIELD_WIND_4 | (1U << PALETTE_MODIFIER_COLOUR))
294 TILE_SEQ_END()
295};
296
297static const DrawTileSeqStruct _station_display_small_depot_se[] = {
298 TILE_SEQ_LINE(14, 0, 0, 2, 17, 28, SPR_AIRFIELD_HANGAR_FRONT | (1U << PALETTE_MODIFIER_COLOUR))
299 TILE_SEQ_LINE( 0, 0, 0, 2, 17, 28, SPR_AIRFIELD_HANGAR_REAR | (1U << PALETTE_MODIFIER_COLOUR))
300 TILE_SEQ_END()
301};
302
303static const DrawTileSeqStruct _station_display_heliport[] = {
304 TILE_SEQ_LINE( 0, 0, 0, 16, 16, 60, SPR_HELIPORT | (1U << PALETTE_MODIFIER_COLOUR))
305 TILE_SEQ_END()
306};
307
308static const DrawTileSeqStruct _station_display_datas_67[] = {
309 TILE_SEQ_LINE( 0, 15, 0, 13, 1, 10, SPR_TRUCK_STOP_NE_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
310 TILE_SEQ_LINE(13, 0, 0, 3, 16, 10, SPR_TRUCK_STOP_NE_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
311 TILE_SEQ_LINE( 2, 0, 0, 11, 1, 10, SPR_TRUCK_STOP_NE_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
312 TILE_SEQ_END()
313};
314
315static const DrawTileSeqStruct _station_display_datas_68[] = {
316 TILE_SEQ_LINE(15, 3, 0, 1, 13, 10, SPR_TRUCK_STOP_SE_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
317 TILE_SEQ_LINE( 0, 0, 0, 16, 3, 10, SPR_TRUCK_STOP_SE_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
318 TILE_SEQ_LINE( 0, 3, 0, 1, 11, 10, SPR_TRUCK_STOP_SE_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
319 TILE_SEQ_END()
320};
321
322static const DrawTileSeqStruct _station_display_datas_69[] = {
323 TILE_SEQ_LINE( 3, 0, 0, 13, 1, 10, SPR_TRUCK_STOP_SW_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
324 TILE_SEQ_LINE( 0, 0, 0, 3, 16, 10, SPR_TRUCK_STOP_SW_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
325 TILE_SEQ_LINE( 3, 15, 0, 11, 1, 10, SPR_TRUCK_STOP_SW_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
326 TILE_SEQ_END()
327};
328
329static const DrawTileSeqStruct _station_display_datas_70[] = {
330 TILE_SEQ_LINE( 0, 0, 0, 1, 13, 10, SPR_TRUCK_STOP_NW_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
331 TILE_SEQ_LINE( 0, 13, 0, 16, 3, 10, SPR_TRUCK_STOP_NW_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
332 TILE_SEQ_LINE(15, 2, 0, 1, 11, 10, SPR_TRUCK_STOP_NW_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
333 TILE_SEQ_END()
334};
335
336static const DrawTileSeqStruct _station_display_datas_71[] = {
337 TILE_SEQ_LINE( 2, 0, 0, 11, 1, 10, SPR_BUS_STOP_NE_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
338 TILE_SEQ_LINE(13, 0, 0, 3, 16, 10, SPR_BUS_STOP_NE_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
339 TILE_SEQ_LINE( 0, 13, 0, 13, 3, 10, SPR_BUS_STOP_NE_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
340 TILE_SEQ_END()
341};
342
343static const DrawTileSeqStruct _station_display_datas_72[] = {
344 TILE_SEQ_LINE( 0, 3, 0, 1, 11, 10, SPR_BUS_STOP_SE_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
345 TILE_SEQ_LINE( 0, 0, 0, 16, 3, 10, SPR_BUS_STOP_SE_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
346 TILE_SEQ_LINE(13, 3, 0, 3, 13, 10, SPR_BUS_STOP_SE_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
347 TILE_SEQ_END()
348};
349
350static const DrawTileSeqStruct _station_display_datas_73[] = {
351 TILE_SEQ_LINE( 3, 15, 0, 11, 1, 10, SPR_BUS_STOP_SW_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
352 TILE_SEQ_LINE( 0, 0, 0, 3, 16, 10, SPR_BUS_STOP_SW_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
353 TILE_SEQ_LINE( 3, 0, 0, 13, 3, 10, SPR_BUS_STOP_SW_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
354 TILE_SEQ_END()
355};
356
357static const DrawTileSeqStruct _station_display_datas_74[] = {
358 TILE_SEQ_LINE(15, 2, 0, 1, 11, 10, SPR_BUS_STOP_NW_BUILD_A | (1U << PALETTE_MODIFIER_COLOUR))
359 TILE_SEQ_LINE( 0, 13, 0, 16, 3, 10, SPR_BUS_STOP_NW_BUILD_B | (1U << PALETTE_MODIFIER_COLOUR))
360 TILE_SEQ_LINE( 0, 0, 0, 3, 13, 10, SPR_BUS_STOP_NW_BUILD_C | (1U << PALETTE_MODIFIER_COLOUR))
361 TILE_SEQ_END()
362};
363
364static const DrawTileSeqStruct _station_display_datas_76[] = {
365 TILE_SEQ_LINE( 0, 4, 0, 16, 8, 8, SPR_DOCK_SLOPE_NE | (1U << PALETTE_MODIFIER_COLOUR))
366 TILE_SEQ_END()
367};
368
369static const DrawTileSeqStruct _station_display_datas_77[] = {
370 TILE_SEQ_LINE( 4, 0, 0, 8, 16, 8, SPR_DOCK_SLOPE_SE | (1U << PALETTE_MODIFIER_COLOUR))
371 TILE_SEQ_END()
372};
373
374static const DrawTileSeqStruct _station_display_datas_78[] = {
375 TILE_SEQ_LINE( 0, 4, 0, 16, 8, 8, SPR_DOCK_SLOPE_SW | (1U << PALETTE_MODIFIER_COLOUR))
376 TILE_SEQ_END()
377};
378
379static const DrawTileSeqStruct _station_display_datas_79[] = {
380 TILE_SEQ_LINE( 4, 0, 0, 8, 16, 8, SPR_DOCK_SLOPE_NW | (1U << PALETTE_MODIFIER_COLOUR))
381 TILE_SEQ_END()
382};
383
384static const DrawTileSeqStruct _station_display_datas_80[] = {
385 TILE_SEQ_LINE( 0, 4, 0, 16, 8, 8, SPR_DOCK_FLAT_X | (1U << PALETTE_MODIFIER_COLOUR))
386 TILE_SEQ_END()
387};
388
389static const DrawTileSeqStruct _station_display_datas_81[] = {
390 TILE_SEQ_LINE( 4, 0, 0, 8, 16, 8, SPR_DOCK_FLAT_Y | (1U << PALETTE_MODIFIER_COLOUR))
391 TILE_SEQ_END()
392};
393
394/* Buoy, which will _always_ drown under the ship */
395static const DrawTileSeqStruct _station_display_datas_82[] = {
396 TILE_SEQ_LINE( 4, -1, 0, 0, 0, 0, SPR_IMG_BUOY)
397 TILE_SEQ_END()
398};
399
400/* control tower without fence */
401static const DrawTileSeqStruct _station_display_tower[] = {
402 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_TOWER | (1U << PALETTE_MODIFIER_COLOUR)) // control tower
403 TILE_SEQ_END()
404};
405
406/* turning radar with fences on north -- needs 12 tiles
407 *BEGIN */
408static const DrawTileSeqStruct _station_display_radar_1_fence_ne[] = {
409 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_1) // turning radar
410 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
411 TILE_SEQ_END()
412};
413
414static const DrawTileSeqStruct _station_display_radar_2_fence_ne[] = {
415 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_2)
416 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
417 TILE_SEQ_END()
418};
419
420static const DrawTileSeqStruct _station_display_radar_3_fence_ne[] = {
421 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_3)
422 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
423 TILE_SEQ_END()
424};
425
426static const DrawTileSeqStruct _station_display_radar_4_fence_ne[] = {
427 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_4)
428 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
429 TILE_SEQ_END()
430};
431
432static const DrawTileSeqStruct _station_display_radar_5_fence_ne[] = {
433 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_5)
434 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
435 TILE_SEQ_END()
436};
437
438static const DrawTileSeqStruct _station_display_radar_6_fence_ne[] = {
439 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_6)
440 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
441 TILE_SEQ_END()
442};
443
444static const DrawTileSeqStruct _station_display_radar_7_fence_ne[] = {
445 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_7)
446 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
447 TILE_SEQ_END()
448};
449
450static const DrawTileSeqStruct _station_display_radar_8_fence_ne[] = {
451 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_8)
452 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
453 TILE_SEQ_END()
454};
455
456static const DrawTileSeqStruct _station_display_radar_9_fence_ne[] = {
457 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_9)
458 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
459 TILE_SEQ_END()
460};
461
462static const DrawTileSeqStruct _station_display_radar_10_fence_ne[] = {
463 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_A)
464 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
465 TILE_SEQ_END()
466};
467
468static const DrawTileSeqStruct _station_display_radar_11_fence_ne[] = {
469 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_B)
470 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
471 TILE_SEQ_END()
472};
473
474static const DrawTileSeqStruct _station_display_radar_12_fence_ne[] = {
475 TILE_SEQ_LINE(7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_C)
476 TILE_SEQ_LINE(0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
477 TILE_SEQ_END()
478};
479/* END */
480
481/* helipad for international airport */
482static const DrawTileSeqStruct _station_display_helipad_fence_sw[] = {
483 TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_AIRPORT_HELIPAD)
484 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences bottom
485 TILE_SEQ_END()
486};
487
488/* helipad for commuter airport */
489static const DrawTileSeqStruct _station_display_helipad_fence_nw[] = {
490 TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_AIRPORT_HELIPAD)
491 TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences left
492 TILE_SEQ_END()
493};
494
495/* helipad for continental airport */
496static const DrawTileSeqStruct _station_display_helipad[] = {
497 TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_AIRPORT_HELIPAD)
498 TILE_SEQ_END()
499};
500
501/* asphalt tile with fences in north and south */
502static const DrawTileSeqStruct _station_display_fence_ne_sw[] = {
503 TILE_SEQ_GROUND( 0, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
504 TILE_SEQ_GROUND(15, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR))
505 TILE_SEQ_END()
506};
507
508/* runway tiles with 2 corner fences */
509static const DrawTileSeqStruct _station_display_fence_nw_sw[] = {
510 TILE_SEQ_GROUND( 0, 0, 0, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences north
511 TILE_SEQ_GROUND(15, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences west
512 TILE_SEQ_END()
513};
514
515/* runway tiles with 2 corner fences */
516static const DrawTileSeqStruct _station_display_fence_se_sw[] = {
517 TILE_SEQ_GROUND(15, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences west
518 TILE_SEQ_GROUND( 0, 15, 0, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
519 TILE_SEQ_END()
520};
521
522/* runway tiles with 2 corner fences */
523static const DrawTileSeqStruct _station_display_fence_ne_nw[] = {
524 TILE_SEQ_GROUND( 0, 0, 0, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences north
525 TILE_SEQ_GROUND( 0, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences east
526 TILE_SEQ_END()
527};
528
529/* runway tiles with 2 corner fences */
530static const DrawTileSeqStruct _station_display_fence_ne_se[] = {
531 TILE_SEQ_GROUND( 0, 0, 0, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences east
532 TILE_SEQ_GROUND( 0, 15, 0, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
533 TILE_SEQ_END()
534};
535
536/* helipad tiles with 2 corner fences top+right */
537static const DrawTileSeqStruct _station_display_helipad_fence_NE_SE[] = {
538 TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_AIRPORT_HELIPAD)
539 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences east
540 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
541 TILE_SEQ_END()
542};
543
544/* helidepot office with fences top + left */
545static const DrawTileSeqStruct _station_display_low_building_fence_ne_nw[] = {
546 TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences left
547 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences east
548 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_HELIDEPOT_OFFICE | (1U << PALETTE_MODIFIER_COLOUR)) // helidepot office
549 TILE_SEQ_END()
550};
551
552/* West facing hangar */
553static const DrawTileSeqStruct _station_display_hangar_sw[] = {
554 TILE_SEQ_LINE(14, 0, 0, 2, 17, 28, SPR_NEWHANGAR_W | (1U << PALETTE_MODIFIER_COLOUR))
555 TILE_SEQ_LINE( 0, 0, 0, 2, 17, 28, SPR_NEWHANGAR_W_WALL | (1U << PALETTE_MODIFIER_COLOUR))
556 TILE_SEQ_END()
557};
558
559/* North facing hangar */
560static const DrawTileSeqStruct _station_display_hangar_nw[] = {
561 TILE_SEQ_LINE(14, 0, 0, 2, 16, 28, SPR_NEWHANGAR_N | (1U << PALETTE_MODIFIER_COLOUR))
562 TILE_SEQ_END()
563};
564
565/* East facing hangar */
566static const DrawTileSeqStruct _station_display_hangar_ne[] = {
567 TILE_SEQ_LINE(14, 0, 0, 2, 16, 28, SPR_NEWHANGAR_E | (1U << PALETTE_MODIFIER_COLOUR))
568 TILE_SEQ_END()
569};
570
571/* helipad for district airport NS */
572static const DrawTileSeqStruct _station_display_helipad_fence_se_sw[] = {
573 TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_AIRPORT_HELIPAD)
574 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences bottom
575 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences right
576 TILE_SEQ_END()
577};
578
579/* helipad for district airport NS */
580static const DrawTileSeqStruct _station_display_helipad_fence_se[] = {
581 TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_AIRPORT_HELIPAD)
582 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
583 TILE_SEQ_END()
584};
585
586/* helidepot office with fence north */
587static const DrawTileSeqStruct _station_display_low_building_fence_nw[] = {
588 TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences north
589 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_HELIDEPOT_OFFICE | (1U << PALETTE_MODIFIER_COLOUR)) // helidepot office
590 TILE_SEQ_END()
591};
592
593/* helidepot office with fence east */
594static const DrawTileSeqStruct _station_display_low_building_fence_ne[] = {
595 TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences east
596 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_HELIDEPOT_OFFICE | (1U << PALETTE_MODIFIER_COLOUR)) // helidepot office
597 TILE_SEQ_END()
598};
599
600/* helidepot office with fence west */
601static const DrawTileSeqStruct _station_display_low_building_fence_sw[] = {
602 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences west
603 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_HELIDEPOT_OFFICE | (1U << PALETTE_MODIFIER_COLOUR)) // helidepot office
604 TILE_SEQ_END()
605};
606
607/* helidepot office with fence south */
608static const DrawTileSeqStruct _station_display_low_building_fence_se[] = {
609 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
610 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_HELIDEPOT_OFFICE | (1U << PALETTE_MODIFIER_COLOUR)) // helidepot office
611 TILE_SEQ_END()
612};
613
614/* helipad for district airport EW*/
615static const DrawTileSeqStruct _station_display_helipad_fence_nw_sw[] = {
616 TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_AIRPORT_HELIPAD)
617 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences west
618 TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences north
619 TILE_SEQ_END()
620};
621
622/* turning radar with fences on south -- needs 12 tiles
623 *BEGIN */
624static const DrawTileSeqStruct _station_display_radar_1_fence_se[] = {
625 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_1) // turning radar
626 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
627 TILE_SEQ_END()
628};
629
630static const DrawTileSeqStruct _station_display_radar_2_fence_se[] = {
631 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_2)
632 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
633 TILE_SEQ_END()
634};
635
636static const DrawTileSeqStruct _station_display_radar_3_fence_se[] = {
637 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_3)
638 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
639 TILE_SEQ_END()
640};
641
642static const DrawTileSeqStruct _station_display_radar_4_fence_se[] = {
643 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_4)
644 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
645 TILE_SEQ_END()
646};
647
648static const DrawTileSeqStruct _station_display_radar_5_fence_se[] = {
649 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_5)
650 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
651 TILE_SEQ_END()
652};
653
654static const DrawTileSeqStruct _station_display_radar_6_fence_se[] = {
655 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_6)
656 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
657 TILE_SEQ_END()
658};
659
660static const DrawTileSeqStruct _station_display_radar_7_fence_se[] = {
661 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_7)
662 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
663 TILE_SEQ_END()
664};
665
666static const DrawTileSeqStruct _station_display_radar_8_fence_se[] = {
667 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_8)
668 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
669 TILE_SEQ_END()
670};
671
672static const DrawTileSeqStruct _station_display_radar_9_fence_se[] = {
673 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_9)
674 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
675 TILE_SEQ_END()
676};
677
678static const DrawTileSeqStruct _station_display_radar_10_fence_se[] = {
679 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_A)
680 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
681 TILE_SEQ_END()
682};
683
684static const DrawTileSeqStruct _station_display_radar_11_fence_se[] = {
685 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_B)
686 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
687 TILE_SEQ_END()
688};
689
690static const DrawTileSeqStruct _station_display_radar_12_fence_se[] = {
691 TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, SPR_AIRPORT_RADAR_C)
692 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
693 TILE_SEQ_END()
694};
695/* END */
696
697/* helipad for helistation */
698static const DrawTileSeqStruct _station_display_newhelipad_fence_se_sw[] = {
699 TILE_SEQ_LINE( 0, 1, 2, 0, 0, 0, SPR_NEWHELIPAD)
700 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences west
701 TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences south
702 TILE_SEQ_END()
703};
704
705/* helipad for helistation */
706static const DrawTileSeqStruct _station_display_newhelipad_fence_nw_sw[] = {
707 TILE_SEQ_LINE( 0, 1, 2, 0, 0, 0, SPR_NEWHELIPAD)
708 TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, SPR_AIRPORT_FENCE_Y | (1U << PALETTE_MODIFIER_COLOUR)) // fences west
709 TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences north
710 TILE_SEQ_END()
711};
712
713/* helipad for helistation */
714static const DrawTileSeqStruct _station_display_newhelipad_fence_nw[] = {
715 TILE_SEQ_LINE( 0, 1, 2, 0, 0, 0, SPR_NEWHELIPAD)
716 TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, SPR_AIRPORT_FENCE_X | (1U << PALETTE_MODIFIER_COLOUR)) // fences north
717 TILE_SEQ_END()
718};
719
720/* helidepot office without fence */
721static const DrawTileSeqStruct _station_display_low_building[] = {
722 TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, SPR_AIRPORT_HELIDEPOT_OFFICE | (1U << PALETTE_MODIFIER_COLOUR)) // helidepot office
723 TILE_SEQ_END()
724};
725
726/* half grass half SPR_AIRPORT_APRON */
727static const DrawTileSeqStruct _station_display_grass_west[] = {
728 TILE_SEQ_LINE(0, 0, 0, 0, 0, 0, SPR_GRASS_LEFT)
729 TILE_SEQ_END()
730};
731
732/* half grass half SPR_AIRPORT_APRON */
733static const DrawTileSeqStruct _station_display_grass_east[] = {
734 TILE_SEQ_LINE(0, 0, 0, 0, 0, 0, SPR_GRASS_RIGHT)
735 TILE_SEQ_END()
736};
737
738/* drive-through truck stop X */
739static const DrawTileSeqStruct _station_display_datas_0168[] = {
740 TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_X_W | (1U << PALETTE_MODIFIER_COLOUR))
741 TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_X_E | (1U << PALETTE_MODIFIER_COLOUR))
742 TILE_SEQ_END()
743};
744
745/* drive-through truck stop Y */
746static const DrawTileSeqStruct _station_display_datas_0169[] = {
747 TILE_SEQ_LINE(13, 0, 0, 3, 16, 16, SPR_TRUCK_STOP_DT_Y_W | (1U << PALETTE_MODIFIER_COLOUR))
748 TILE_SEQ_LINE( 0, 0, 0, 3, 16, 16, SPR_TRUCK_STOP_DT_Y_E | (1U << PALETTE_MODIFIER_COLOUR))
749 TILE_SEQ_END()
750};
751
752/* drive-through bus stop X */
753static const DrawTileSeqStruct _station_display_datas_0170[] = {
754 TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_BUS_STOP_DT_X_W | (1U << PALETTE_MODIFIER_COLOUR))
755 TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_BUS_STOP_DT_X_E | (1U << PALETTE_MODIFIER_COLOUR))
756 TILE_SEQ_END()
757};
758
759/* drive-through bus stop Y */
760static const DrawTileSeqStruct _station_display_datas_0171[] = {
761 TILE_SEQ_LINE(13, 0, 0, 3, 16, 16, SPR_BUS_STOP_DT_Y_W | (1U << PALETTE_MODIFIER_COLOUR))
762 TILE_SEQ_LINE( 0, 0, 0, 3, 16, 16, SPR_BUS_STOP_DT_Y_E | (1U << PALETTE_MODIFIER_COLOUR))
763 TILE_SEQ_END()
764};
765
766/* road waypoint X */
767static const DrawTileSeqStruct _station_display_datas_road_waypoint_X[] = {
768 TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_ROAD_WAYPOINT_X_W | (1U << PALETTE_MODIFIER_COLOUR))
769 TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_ROAD_WAYPOINT_X_E | (1U << PALETTE_MODIFIER_COLOUR))
770 TILE_SEQ_END()
771};
772
773/* road waypoint Y */
774static const DrawTileSeqStruct _station_display_datas_road_waypoint_Y[] = {
775 TILE_SEQ_LINE(13, 0, 0, 3, 16, 16, SPR_ROAD_WAYPOINT_Y_W | (1U << PALETTE_MODIFIER_COLOUR))
776 TILE_SEQ_LINE( 0, 0, 0, 3, 16, 16, SPR_ROAD_WAYPOINT_Y_E | (1U << PALETTE_MODIFIER_COLOUR))
777 TILE_SEQ_END()
778};
779
780static const DrawTileSeqStruct _station_display_datas_waypoint_X[] = {
781 TILE_SEQ_LINE( 0, 0, 0, 16, 5, 23, SPR_WAYPOINT_X_1 | (1U << PALETTE_MODIFIER_COLOUR))
782 TILE_SEQ_LINE( 0, 11, 0, 16, 5, 23, SPR_WAYPOINT_X_2 | (1U << PALETTE_MODIFIER_COLOUR))
783 TILE_SEQ_END()
784};
785
786static const DrawTileSeqStruct _station_display_datas_waypoint_Y[] = {
787 TILE_SEQ_LINE( 0, 0, 0, 5, 16, 23, SPR_WAYPOINT_Y_1 | (1U << PALETTE_MODIFIER_COLOUR))
788 TILE_SEQ_LINE(11, 0, 0, 5, 16, 23, SPR_WAYPOINT_Y_2 | (1U << PALETTE_MODIFIER_COLOUR))
789 TILE_SEQ_END()
790};
791
792#undef TILE_SEQ_END
793#undef TILE_SEQ_LINE
794#undef TILE_SEQ_LINE_PAL
795#undef TILE_SEQ_CHILD
796#undef TILE_SEQ_GROUND
797
803#define TILE_SPRITE_LINE(img, dtss) { {img, PAL_NONE}, dtss },
804#define TILE_SPRITE_NULL() { {0, 0}, nullptr },
805
806extern const DrawTileSprites _station_display_datas_rail[] = {
807 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_0)
808 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_1)
809 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_2)
810 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_3)
811 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_4)
812 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_5)
813 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_6)
814 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_7)
815};
816
817static const DrawTileSprites _station_display_datas_airport[] = {
818 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_nothing) // APT_APRON
819 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_nw) // APT_APRON_FENCE_NW
820 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_sw) // APT_APRON_FENCE_SW
821 TILE_SPRITE_LINE(SPR_AIRPORT_AIRCRAFT_STAND, _station_display_nothing) // APT_STAND
822 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_NS_WEST, _station_display_nothing) // APT_APRON_W
823 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_SOUTH, _station_display_nothing) // APT_APRON_S
824 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_XING_SOUTH, _station_display_nothing) // APT_APRON_VER_CROSSING_S
825 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_XING_WEST, _station_display_nothing) // APT_APRON_HOR_CROSSING_W
826 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_NS_CTR, _station_display_nothing) // APT_APRON_VER_CROSSING_N
827 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_XING_EAST, _station_display_nothing) // APT_APRON_HOR_CROSSING_E
828 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_NS_EAST, _station_display_nothing) // APT_APRON_E
829 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_NORTH, _station_display_nothing) // APT_ARPON_N
830 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_CTR, _station_display_nothing) // APT_APRON_HOR
831 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_NORTH, _station_display_fence_sw) // APT_APRON_N_FENCE_SW
832 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_A, _station_display_fence_se) // APT_RUNWAY_1
833 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_B, _station_display_fence_se) // APT_RUNWAY_2
834 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_C, _station_display_fence_se) // APT_RUNWAY_3
835 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_D, _station_display_fence_se) // APT_RUNWAY_4
836 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_se) // APT_RUNWAY_END_FENCE_SE
837 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_terminal_a) // APT_BUILDING_2
838 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_tower_fence_sw) // APT_TOWER_FENCE_SW
839 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_concourse) // APT_ROUND_TERMINAL
840 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_datas_terminal_b) // APT_BUILDING_3
841 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_datas_terminal_c) // APT_BUILDING_1
842 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_hangar_se) // APT_DEPOT_SE
843 TILE_SPRITE_LINE(SPR_AIRPORT_AIRCRAFT_STAND, _station_display_jetway_1) // APT_STAND_1
844 TILE_SPRITE_LINE(SPR_AIRPORT_AIRCRAFT_STAND, _station_display_jetway_2) // APT_STAND_PIER_NE
845 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_jetway_3) // APT_PIER_NW_NE
846 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_passenger_tunnel) // APT_PIER
847 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_nothing) // APT_EMPTY
848 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_fence_ne) // APT_EMPTY_FENCE_NE
849 TILE_SPRITE_NULL() // APT_RADAR_GRASS_FENCE_SW
850 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_transmitter_fence_ne) // APT_RADIO_TOWER_FENCE_NE
851 TILE_SPRITE_LINE(SPR_AIRFIELD_TERM_A, _station_display_nothing) // APT_SMALL_BUILDING_3
852 TILE_SPRITE_LINE(SPR_AIRFIELD_TERM_B, _station_display_nothing) // APT_SMALL_BUILDING_2
853 TILE_SPRITE_LINE(SPR_AIRFIELD_TERM_C_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_terminal_c_2) // APT_SMALL_BUILDING_1
854 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_A, _station_display_fence_sw) // APT_GRASS_FENCE_SW
855 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_B, _station_display_nothing) // APT_GRASS_2
856 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_C, _station_display_nothing) // APT_GRASS_1
857 TILE_SPRITE_NULL() // APT_GRASS_FENCE_NE_FLAG
858 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_NEAR_END, _station_display_fence_se) // APT_RUNWAY_SMALL_NEAR_END
859 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_MIDDLE, _station_display_fence_se) // APT_RUNWAY_SMALL_MIDDLE
860 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_FAR_END, _station_display_fence_se) // APT_RUNWAY_SMALL_FAR_END
861 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_small_depot_se) // APT_SMALL_DEPOT_SE
862 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_heliport) // APT_HELIPORT
863 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_nothing) // APT_RUNWAY_END
864 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_B, _station_display_nothing) // APT_RUNWAY_5
865 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_tower) // APT_TOWER
866 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_ne) // APT_APRON_FENCE_NE
867 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_nw) // APT_RUNWAY_END_FENCE_NW
868 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_B, _station_display_fence_nw) // APT_RUNWAY_FENCE_NW
869 TILE_SPRITE_NULL() // APT_RADAR_FENCE_SW
870 TILE_SPRITE_NULL() // APT_RADAR_FENCE_NE
871 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad_fence_sw) // APT_HELIPAD_1
872 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad_fence_nw) // APT_HELIPAD_2_FENCE_NW
873 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad) // APT_HELIPAD_2
874 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_ne_sw) // APT_APRON_FENCE_NE_SW
875 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_nw_sw) // APT_RUNWAY_END_FENCE_NW_SW
876 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_se_sw) // APT_RUNWAY_END_FENCE_SE_SW
877 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_ne_nw) // APT_RUNWAY_END_FENCE_NE_NW
878 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_ne_se) // APT_RUNWAY_END_FENCE_NE_SE
879 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad_fence_NE_SE) // APT_HELIPAD_2_FENCE_NE_SE
880 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_se_sw) // APT_APRON_FENCE_SE_SW
881 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_low_building_fence_ne_nw) // APT_LOW_BUILDING_FENCE_N
882 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_low_building_fence_nw) // APT_LOW_BUILDING_FENCE_NW
883 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_se) // APT_APRON_FENCE_SE
884 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_se_sw) // APT_HELIPAD_3_FENCE_SE_SW
885 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_nw_sw) // APT_HELIPAD_3_FENCE_NW_SW
886 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_nw) // APT_HELIPAD_3_FENCE_NW
887 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_low_building) // APT_LOW_BUILDING
888 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_ne_se) // APT_APRON_FENCE_NE_SE
889 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_grass_west) // APT_APRON_HALF_EAST
890 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_grass_east) // APT_APRON_HALF_WEST
891 TILE_SPRITE_NULL() // APT_GRASS_FENCE_NE_FLAG_2
892};
893
894static const DrawTileSprites _station_display_datas_airport_radar_grass_fence_sw[] = {
895 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_1_fence_sw) // APT_RADAR_GRASS_FENCE_SW
896 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_2_fence_sw)
897 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_3_fence_sw)
898 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_4_fence_sw)
899 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_5_fence_sw)
900 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_6_fence_sw)
901 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_7_fence_sw)
902 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_8_fence_sw)
903 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_9_fence_sw)
904 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_10_fence_sw)
905 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_11_fence_sw)
906 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_12_fence_sw)
907};
908
909static const DrawTileSprites _station_display_datas_airport_flag_grass_fence_ne[] = {
910 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_1_fence_ne) // APT_GRASS_FENCE_NE_FLAG
911 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_2_fence_ne)
912 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_3_fence_ne)
913 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_4_fence_ne)
914};
915
916static const DrawTileSprites _station_display_datas_airport_radar_fence_sw[] = {
917 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_1_fence_sw) // APT_RADAR_FENCE_SW
918 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_2_fence_sw)
919 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_3_fence_sw)
920 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_4_fence_sw)
921 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_5_fence_sw)
922 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_6_fence_sw)
923 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_7_fence_sw)
924 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_8_fence_sw)
925 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_9_fence_sw)
926 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_10_fence_sw)
927 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_11_fence_sw)
928 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_12_fence_sw)
929};
930
931static const DrawTileSprites _station_display_datas_airport_radar_fence_ne[] = {
932 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_1_fence_ne) // APT_RADAR_FENCE_NE
933 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_2_fence_ne)
934 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_3_fence_ne)
935 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_4_fence_ne)
936 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_5_fence_ne)
937 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_6_fence_ne)
938 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_7_fence_ne)
939 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_8_fence_ne)
940 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_9_fence_ne)
941 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_10_fence_ne)
942 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_11_fence_ne)
943 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_12_fence_ne)
944};
945
946static const DrawTileSprites _station_display_datas_airport_flag_grass_fence_ne_2[] = {
947 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_1_fence_ne) // APT_GRASS_FENCE_NE_FLAG_2
948 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_2_fence_ne)
949 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_3_fence_ne)
950 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_4_fence_ne)
951};
952
953
954static const DrawTileSprites _station_display_datas_truck[] = {
955 TILE_SPRITE_LINE(SPR_TRUCK_STOP_NE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_67)
956 TILE_SPRITE_LINE(SPR_TRUCK_STOP_SE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_68)
957 TILE_SPRITE_LINE(SPR_TRUCK_STOP_SW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_69)
958 TILE_SPRITE_LINE(SPR_TRUCK_STOP_NW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_70)
959 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0168)
960 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0169)
961};
962
963static const DrawTileSprites _station_display_datas_bus[] = {
964 TILE_SPRITE_LINE(SPR_BUS_STOP_NE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_71)
965 TILE_SPRITE_LINE(SPR_BUS_STOP_SE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_72)
966 TILE_SPRITE_LINE(SPR_BUS_STOP_SW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_73)
967 TILE_SPRITE_LINE(SPR_BUS_STOP_NW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_74)
968 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0170)
969 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0171)
970};
971
972static const DrawTileSprites _station_display_datas_road_waypoint[] = {
973 TILE_SPRITE_LINE(0, nullptr)
974 TILE_SPRITE_LINE(0, nullptr)
975 TILE_SPRITE_LINE(0, nullptr)
976 TILE_SPRITE_LINE(0, nullptr)
977 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_road_waypoint_X)
978 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_road_waypoint_Y)
979};
980
981static const DrawTileSprites _station_display_datas_oilrig[] = {
982 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_nothing)
983};
984
985static const DrawTileSprites _station_display_datas_dock[] = {
986 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_SW, _station_display_datas_76)
987 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_NW, _station_display_datas_77)
988 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_NE, _station_display_datas_78)
989 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_SE, _station_display_datas_79)
990 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_datas_80)
991 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_datas_81)
992};
993
994static const DrawTileSprites _station_display_datas_buoy[] = {
995 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_datas_82)
996};
997
998static const DrawTileSprites _station_display_datas_waypoint[] = {
999 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X)
1000 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y)
1001 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X)
1002 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y)
1003 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X)
1004 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y)
1005 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X)
1006 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y)
1007};
1008
1009#undef TILE_SPRITE_LINE
1010#undef TILE_SPRITE_NULL
1011
1012/* Default waypoint is also drawn as fallback for NewGRF waypoints.
1013 * As these are drawn/build like stations, they may use the same number of layouts. */
1014static_assert(lengthof(_station_display_datas_rail) == lengthof(_station_display_datas_waypoint));
1015
1016static const std::array<std::span<const DrawTileSprites>, STATION_END> _station_display_datas = {{
1017 _station_display_datas_rail,
1018 _station_display_datas_airport,
1019 _station_display_datas_truck,
1020 _station_display_datas_bus,
1021 _station_display_datas_oilrig,
1022 _station_display_datas_dock,
1023 _station_display_datas_buoy,
1024 _station_display_datas_waypoint,
1025 _station_display_datas_road_waypoint,
1026}};
SLOPE_SW
@ SLOPE_SW
south and west corner are raised
Definition slope_type.h:56
SLOPE_NE
@ SLOPE_NE
north and east corner are raised
Definition slope_type.h:58
SLOPE_SE
@ SLOPE_SE
south and east corner are raised
Definition slope_type.h:57
SLOPE_NW
@ SLOPE_NW
north and west corner are raised
Definition slope_type.h:55
PALETTE_MODIFIER_TRANSPARENT
static constexpr uint8_t PALETTE_MODIFIER_TRANSPARENT
when a sprite is to be displayed transparently, this bit needs to be set.
Definition sprites.h:1547
PALETTE_TO_TRANSPARENT
static const PaletteID PALETTE_TO_TRANSPARENT
This sets the sprite to transparent.
Definition sprites.h:1602
PALETTE_MODIFIER_COLOUR
static constexpr uint8_t PALETTE_MODIFIER_COLOUR
this bit is set when a recolouring process is in action
Definition sprites.h:1548
SPR_SHORE_BASE
static const SpriteID SPR_SHORE_BASE
shore tiles - action 05-0D
Definition sprites.h:224
TILE_SPRITE_LINE
#define TILE_SPRITE_LINE(img, dtss)
Constructor macro of a DrawTileSprites structure.
Definition station_land.h:803
TILE_SEQ_LINE
#define TILE_SEQ_LINE(dx, dy, dz, sx, sy, sz, img)
Constructor macro for an image without a palette in a DrawTileSeqStruct array.
Definition station_land.h:20
TILE_SEQ_CHILD
#define TILE_SEQ_CHILD(dx, dy, img, pal)
Constructor macro for an image without bounding box.
Definition station_land.h:42
TILE_SEQ_GROUND
#define TILE_SEQ_GROUND(dx, dy, dz, img)
Constructor macro for additional ground sprites.
Definition station_land.h:52
TILE_SEQ_END
#define TILE_SEQ_END()
Constructor macro for a terminating DrawTileSeqStruct entry in an array.
Definition station_land.h:55
lengthof
#define lengthof(array)
Return the length of an fixed size array.
Definition stdafx.h:280
DrawTileSeqStruct
A tile child sprite and palette to draw for stations etc, with 3D bounding box.
Definition sprite.h:25
DrawTileSprites
Ground palette sprite of a tile, together with its sprite layout.
Definition sprite.h:58