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 8 /** @file station_land.h Sprites to use and how to display them for station tiles. */ 9 10 /** 11 * Constructor macro for an image without a palette in a DrawTileSeqStruct array. 12 * @param dx Offset in x direction 13 * @param dy Offset in y direction 14 * @param dz Offset in z direction 15 * @param sx Size in x direction 16 * @param sy Size in y direction 17 * @param sz Size in z direction 18 * @param img Sprite to draw 19 */ 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 22 /** 23 * Constructor macro for an image with a palette in a DrawTileSeqStruct array. 24 * @param dx Offset in x direction 25 * @param dy Offset in y direction 26 * @param dz Offset in z direction 27 * @param sx Size in x direction 28 * @param sy Size in y direction 29 * @param sz Size in z direction 30 * @param img Sprite to draw 31 * @param pal Palette sprite 32 */ 33 #define TILE_SEQ_LINE_PAL(dx, dy, dz, sx, sy, sz, img, pal) { dx, dy, dz, sx, sy, sz, {img, pal} }, 34 35 /** 36 * Constructor macro for an image without bounding box. 37 * @param dx Screen X offset from parent sprite 38 * @param dy Screen Y offset from parent sprite 39 * @param img Sprite to draw 40 * @param pal Palette sprite 41 */ 42 #define TILE_SEQ_CHILD(dx, dy, img, pal) TILE_SEQ_LINE_PAL(dx, dy, (int8)0x80, 0, 0, 0, img, pal) 43 44 /** 45 * Constructor macro for additional ground sprites. 46 * These need to be at the front of a DrawTileSeqStruct sequence. 47 * @param dx Offset in x direction 48 * @param dy Offset in y direction 49 * @param dz Offset in z direction 50 * @param img Sprite to draw 51 */ 52 #define TILE_SEQ_GROUND(dx, dy, dz, img) TILE_SEQ_CHILD(2 * (dy - dx), dx + dy - dz, img, PAL_NONE) 53 54 /** Constructor macro for a terminating DrawTileSeqStruct entry in an array */ 55 #define TILE_SEQ_END() { (int8)0x80, 0, 0, 0, 0, 0, {0, 0} } 56 57 static const DrawTileSeqStruct _station_display_nothing[] = { 58 TILE_SEQ_END() 59 }; 60 61 static 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 67 static 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 73 static 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 79 static 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 85 static 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 93 static 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 101 static 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 109 static 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 117 static 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 122 static 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 127 static 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 132 static 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 137 static 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 142 static 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 148 static 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 153 static 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 158 static 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 163 static 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 169 static 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 175 static 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 180 static 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 185 static 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 190 static 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 196 static 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 202 static 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 208 static 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 214 static 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 220 static 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 226 static 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 232 static 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 238 static 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 244 static 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 250 static 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 256 static 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 262 static 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 268 static 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 273 static 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 279 static 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 285 static 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 291 static 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 297 static 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 303 static 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 308 static 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 315 static 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 322 static 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 329 static 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 336 static 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 343 static 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 350 static 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 357 static 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 364 static 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 369 static 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 374 static 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 379 static 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 384 static 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 389 static 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 */ 395 static 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 */ 401 static 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 */ 408 static 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 414 static 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 420 static 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 426 static 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 432 static 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 438 static 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 444 static 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 450 static 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 456 static 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 462 static 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 468 static 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 474 static 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 */ 482 static 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 */ 489 static 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 */ 496 static 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 */ 502 static 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 */ 509 static 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 */ 516 static 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 */ 523 static 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 */ 530 static 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 */ 537 static 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 */ 545 static 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 */ 553 static 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 */ 560 static 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 */ 566 static 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 */ 572 static 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 */ 580 static 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 */ 587 static 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 */ 594 static 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 */ 601 static 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 */ 608 static 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*/ 615 static 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 */ 624 static 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 630 static 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 636 static 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 642 static 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 648 static 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 654 static 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 660 static 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 666 static 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 672 static 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 678 static 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 684 static 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 690 static 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 */ 698 static 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 */ 706 static 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 */ 714 static 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 */ 721 static 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 */ 727 static 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 */ 733 static 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 */ 739 static 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 */ 746 static 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 */ 753 static 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 */ 760 static 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 static const DrawTileSeqStruct _station_display_datas_waypoint_X[] = { 767 TILE_SEQ_LINE( 0, 0, 0, 16, 5, 23, SPR_WAYPOINT_X_1 | (1U << PALETTE_MODIFIER_COLOUR)) 768 TILE_SEQ_LINE( 0, 11, 0, 16, 5, 23, SPR_WAYPOINT_X_2 | (1U << PALETTE_MODIFIER_COLOUR)) 769 TILE_SEQ_END() 770 }; 771 772 static const DrawTileSeqStruct _station_display_datas_waypoint_Y[] = { 773 TILE_SEQ_LINE( 0, 0, 0, 5, 16, 23, SPR_WAYPOINT_Y_1 | (1U << PALETTE_MODIFIER_COLOUR)) 774 TILE_SEQ_LINE(11, 0, 0, 5, 16, 23, SPR_WAYPOINT_Y_2 | (1U << PALETTE_MODIFIER_COLOUR)) 775 TILE_SEQ_END() 776 }; 777 778 #undef TILE_SEQ_END 779 #undef TILE_SEQ_LINE 780 #undef TILE_SEQ_LINE_PAL 781 #undef TILE_SEQ_CHILD 782 #undef TILE_SEQ_GROUND 783 784 /** 785 * Constructor macro of a DrawTileSprites structure 786 * @param img Ground sprite without palette of the tile 787 * @param dtss Sequence child sprites of the tile 788 */ 789 #define TILE_SPRITE_LINE(img, dtss) { {img, PAL_NONE}, dtss }, 790 #define TILE_SPRITE_NULL() { {0, 0}, nullptr }, 791 792 extern const DrawTileSprites _station_display_datas_rail[] = { 793 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_0) 794 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_1) 795 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_2) 796 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_3) 797 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_4) 798 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_5) 799 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_6) 800 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_7) 801 }; 802 803 static const DrawTileSprites _station_display_datas_airport[] = { 804 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_nothing) // APT_APRON 805 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_nw) // APT_APRON_FENCE_NW 806 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_sw) // APT_APRON_FENCE_SW 807 TILE_SPRITE_LINE(SPR_AIRPORT_AIRCRAFT_STAND, _station_display_nothing) // APT_STAND 808 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_NS_WEST, _station_display_nothing) // APT_APRON_W 809 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_SOUTH, _station_display_nothing) // APT_APRON_S 810 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_XING_SOUTH, _station_display_nothing) // APT_APRON_VER_CROSSING_S 811 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_XING_WEST, _station_display_nothing) // APT_APRON_HOR_CROSSING_W 812 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_NS_CTR, _station_display_nothing) // APT_APRON_VER_CROSSING_N 813 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_XING_EAST, _station_display_nothing) // APT_APRON_HOR_CROSSING_E 814 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_NS_EAST, _station_display_nothing) // APT_APRON_E 815 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_NORTH, _station_display_nothing) // APT_ARPON_N 816 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_CTR, _station_display_nothing) // APT_APRON_HOR 817 TILE_SPRITE_LINE(SPR_AIRPORT_TAXIWAY_EW_NORTH, _station_display_fence_sw) // APT_APRON_N_FENCE_SW 818 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_A, _station_display_fence_se) // APT_RUNWAY_1 819 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_B, _station_display_fence_se) // APT_RUNWAY_2 820 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_C, _station_display_fence_se) // APT_RUNWAY_3 821 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_D, _station_display_fence_se) // APT_RUNWAY_4 822 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_se) // APT_RUNWAY_END_FENCE_SE 823 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_terminal_a) // APT_BUILDING_2 824 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_tower_fence_sw) // APT_TOWER_FENCE_SW 825 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_concourse) // APT_ROUND_TERMINAL 826 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_datas_terminal_b) // APT_BUILDING_3 827 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_datas_terminal_c) // APT_BUILDING_1 828 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_hangar_se) // APT_DEPOT_SE 829 TILE_SPRITE_LINE(SPR_AIRPORT_AIRCRAFT_STAND, _station_display_jetway_1) // APT_STAND_1 830 TILE_SPRITE_LINE(SPR_AIRPORT_AIRCRAFT_STAND, _station_display_jetway_2) // APT_STAND_PIER_NE 831 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_jetway_3) // APT_PIER_NW_NE 832 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_passenger_tunnel) // APT_PIER 833 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_nothing) // APT_EMPTY 834 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_fence_ne) // APT_EMPTY_FENCE_NE 835 TILE_SPRITE_NULL() // APT_RADAR_GRASS_FENCE_SW 836 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_transmitter_fence_ne) // APT_RADIO_TOWER_FENCE_NE 837 TILE_SPRITE_LINE(SPR_AIRFIELD_TERM_A, _station_display_nothing) // APT_SMALL_BUILDING_3 838 TILE_SPRITE_LINE(SPR_AIRFIELD_TERM_B, _station_display_nothing) // APT_SMALL_BUILDING_2 839 TILE_SPRITE_LINE(SPR_AIRFIELD_TERM_C_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_terminal_c_2) // APT_SMALL_BUILDING_1 840 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_A, _station_display_fence_sw) // APT_GRASS_FENCE_SW 841 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_B, _station_display_nothing) // APT_GRASS_2 842 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_C, _station_display_nothing) // APT_GRASS_1 843 TILE_SPRITE_NULL() // APT_GRASS_FENCE_NE_FLAG 844 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_NEAR_END, _station_display_fence_se) // APT_RUNWAY_SMALL_NEAR_END 845 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_MIDDLE, _station_display_fence_se) // APT_RUNWAY_SMALL_MIDDLE 846 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_FAR_END, _station_display_fence_se) // APT_RUNWAY_SMALL_FAR_END 847 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_small_depot_se) // APT_SMALL_DEPOT_SE 848 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_heliport) // APT_HELIPORT 849 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_nothing) // APT_RUNWAY_END 850 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_B, _station_display_nothing) // APT_RUNWAY_5 851 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_tower) // APT_TOWER 852 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_ne) // APT_APRON_FENCE_NE 853 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_nw) // APT_RUNWAY_END_FENCE_NW 854 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_B, _station_display_fence_nw) // APT_RUNWAY_FENCE_NW 855 TILE_SPRITE_NULL() // APT_RADAR_FENCE_SW 856 TILE_SPRITE_NULL() // APT_RADAR_FENCE_NE 857 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad_fence_sw) // APT_HELIPAD_1 858 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad_fence_nw) // APT_HELIPAD_2_FENCE_NW 859 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad) // APT_HELIPAD_2 860 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_ne_sw) // APT_APRON_FENCE_NE_SW 861 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_nw_sw) // APT_RUNWAY_END_FENCE_NW_SW 862 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_se_sw) // APT_RUNWAY_END_FENCE_SE_SW 863 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_ne_nw) // APT_RUNWAY_END_FENCE_NE_NW 864 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_ne_se) // APT_RUNWAY_END_FENCE_NE_SE 865 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_helipad_fence_NE_SE) // APT_HELIPAD_2_FENCE_NE_SE 866 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_se_sw) // APT_APRON_FENCE_SE_SW 867 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_low_building_fence_ne_nw) // APT_LOW_BUILDING_FENCE_N 868 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_low_building_fence_nw) // APT_LOW_BUILDING_FENCE_NW 869 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_se) // APT_APRON_FENCE_SE 870 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_se_sw) // APT_HELIPAD_3_FENCE_SE_SW 871 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_nw_sw) // APT_HELIPAD_3_FENCE_NW_SW 872 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_nw) // APT_HELIPAD_3_FENCE_NW 873 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_low_building) // APT_LOW_BUILDING 874 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_ne_se) // APT_APRON_FENCE_NE_SE 875 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_grass_west) // APT_APRON_HALF_EAST 876 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_grass_east) // APT_APRON_HALF_WEST 877 TILE_SPRITE_NULL() // APT_GRASS_FENCE_NE_FLAG_2 878 }; 879 880 static const DrawTileSprites _station_display_datas_airport_radar_grass_fence_sw[] = { 881 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_1_fence_sw) // APT_RADAR_GRASS_FENCE_SW 882 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_2_fence_sw) 883 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_3_fence_sw) 884 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_4_fence_sw) 885 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_5_fence_sw) 886 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_6_fence_sw) 887 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_7_fence_sw) 888 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_8_fence_sw) 889 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_9_fence_sw) 890 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_10_fence_sw) 891 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_11_fence_sw) 892 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_radar_12_fence_sw) 893 }; 894 895 static const DrawTileSprites _station_display_datas_airport_flag_grass_fence_ne[] = { 896 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_1_fence_ne) // APT_GRASS_FENCE_NE_FLAG 897 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_2_fence_ne) 898 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_3_fence_ne) 899 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_D, _station_display_flag_4_fence_ne) 900 }; 901 902 static const DrawTileSprites _station_display_datas_airport_radar_fence_sw[] = { 903 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_1_fence_sw) // APT_RADAR_FENCE_SW 904 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_2_fence_sw) 905 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_3_fence_sw) 906 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_4_fence_sw) 907 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_5_fence_sw) 908 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_6_fence_sw) 909 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_7_fence_sw) 910 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_8_fence_sw) 911 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_9_fence_sw) 912 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_10_fence_sw) 913 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_11_fence_sw) 914 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_12_fence_sw) 915 }; 916 917 static const DrawTileSprites _station_display_datas_airport_radar_fence_ne[] = { 918 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_1_fence_ne) // APT_RADAR_FENCE_NE 919 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_2_fence_ne) 920 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_3_fence_ne) 921 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_4_fence_ne) 922 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_5_fence_ne) 923 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_6_fence_ne) 924 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_7_fence_ne) 925 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_8_fence_ne) 926 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_9_fence_ne) 927 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_10_fence_ne) 928 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_11_fence_ne) 929 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_radar_12_fence_ne) 930 }; 931 932 static const DrawTileSprites _station_display_datas_airport_flag_grass_fence_ne_2[] = { 933 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_1_fence_ne) // APT_GRASS_FENCE_NE_FLAG_2 934 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_2_fence_ne) 935 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_3_fence_ne) 936 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_flag_4_fence_ne) 937 }; 938 939 940 static const DrawTileSprites _station_display_datas_truck[] = { 941 TILE_SPRITE_LINE(SPR_TRUCK_STOP_NE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_67) 942 TILE_SPRITE_LINE(SPR_TRUCK_STOP_SE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_68) 943 TILE_SPRITE_LINE(SPR_TRUCK_STOP_SW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_69) 944 TILE_SPRITE_LINE(SPR_TRUCK_STOP_NW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_70) 945 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0168) 946 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0169) 947 }; 948 949 static const DrawTileSprites _station_display_datas_bus[] = { 950 TILE_SPRITE_LINE(SPR_BUS_STOP_NE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_71) 951 TILE_SPRITE_LINE(SPR_BUS_STOP_SE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_72) 952 TILE_SPRITE_LINE(SPR_BUS_STOP_SW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_73) 953 TILE_SPRITE_LINE(SPR_BUS_STOP_NW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_74) 954 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0170) 955 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0171) 956 }; 957 958 static const DrawTileSprites _station_display_datas_oilrig[] = { 959 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_nothing) 960 }; 961 962 static const DrawTileSprites _station_display_datas_dock[] = { 963 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_SW, _station_display_datas_76) 964 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_NW, _station_display_datas_77) 965 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_NE, _station_display_datas_78) 966 TILE_SPRITE_LINE(SPR_SHORE_BASE + SLOPE_SE, _station_display_datas_79) 967 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_datas_80) 968 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_datas_81) 969 }; 970 971 static const DrawTileSprites _station_display_datas_buoy[] = { 972 TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_datas_82) 973 }; 974 975 static const DrawTileSprites _station_display_datas_waypoint[] = { 976 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X) 977 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y) 978 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X) 979 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y) 980 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X) 981 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y) 982 TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X) 983 TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y) 984 }; 985 986 #undef TILE_SPRITE_LINE 987 #undef TILE_SPRITE_NULL 988 989 /* Default waypoint is also drawn as fallback for NewGRF waypoints. 990 * As these are drawn/build like stations, they may use the same number of layouts. */ 991 static_assert(lengthof(_station_display_datas_rail) == lengthof(_station_display_datas_waypoint)); 992 993 static const DrawTileSprites * const _station_display_datas[] = { 994 _station_display_datas_rail, 995 _station_display_datas_airport, 996 _station_display_datas_truck, 997 _station_display_datas_bus, 998 _station_display_datas_oilrig, 999 _station_display_datas_dock, 1000 _station_display_datas_buoy, 1001 _station_display_datas_waypoint, 1002 }; 1003