8#include "table/strings.h"
34# define MN(a) {a, PAL_NONE}
35# define MR(a) {a, PALETTE_TO_STRUCT_RED}
36# define MW(a) {a, PALETTE_TO_STRUCT_WHITE}
37# define MC(a) {a, PALETTE_TO_STRUCT_CONCRETE}
40static const PalSpriteID _aqueduct_sprite_table_middle[] = {
41 {SPR_AQUEDUCT_MIDDLE_X, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_X, PAL_NONE}, {0x0, PAL_NONE},
42 {SPR_AQUEDUCT_MIDDLE_Y, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_Y, PAL_NONE}, {0x0, PAL_NONE},
46static const PalSpriteID _aqueduct_sprite_table_heads[] = {
47 {SPR_AQUEDUCT_RAMP_SW, PAL_NONE}, {SPR_AQUEDUCT_RAMP_SE, PAL_NONE}, {SPR_AQUEDUCT_RAMP_NE, PAL_NONE}, {SPR_AQUEDUCT_RAMP_NW, PAL_NONE},
50static const PalSpriteID _bridge_sprite_table_suspension_oxide_north[] = {
51 { 0x9A9, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
52 { 0x9A5, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
53 { 0x99D, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
54 { 0x995, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
55 { 0x10F2, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
56 { 0x10EE, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
57 { 0x111A, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
58 { 0x1116, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
61static const PalSpriteID _bridge_sprite_table_suspension_oxide_south[] = {
62 { 0x9AA, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
63 { 0x9A6, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
64 { 0x99E, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
65 { 0x996, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
66 { 0x10F3, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
67 { 0x10EF, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
68 { 0x111B, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
69 { 0x1117, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
72static const PalSpriteID _bridge_sprite_table_suspension_oxide_inner_north[] = {
73 { 0x9AC, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
74 { 0x9A8, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
75 { 0x9A2, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
76 { 0x99A, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
77 { 0x10F5, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
78 { 0x10F1, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
79 { 0x111D, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
80 { 0x1119, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
83static const PalSpriteID _bridge_sprite_table_suspension_oxide_inner_south[] = {
84 { 0x9AB, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
85 { 0x9A7, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
86 { 0x9A1, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
87 { 0x999, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
88 { 0x10F4, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
89 { 0x10F0, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
90 { 0x111C, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
91 { 0x1118, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
94static const PalSpriteID _bridge_sprite_table_suspension_oxide_middle_odd[] = {
95 { 0x9B6, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
96 { 0x9B5, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
97 { 0x9B8, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
98 { 0x9B7, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
99 { 0x10F7, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
100 { 0x10F6, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
101 { 0x111F, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
102 { 0x111E, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
105static const PalSpriteID _bridge_sprite_table_suspension_middle_even[] = {
106 { 0x9BD, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
107 { 0x9BE, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
108 { 0x9BF, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
109 { 0x9C0, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
110 { 0x10F8, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
111 { 0x10F9, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
112 { 0x1120, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
113 { 0x1121, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
116static const PalSpriteID _bridge_sprite_table_generic_oxide_heads[] = {
117 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
118 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
119 { 0x98E, PAL_NONE }, { 0x990, PAL_NONE }, { 0x98D, PAL_NONE }, { 0x98F, PAL_NONE },
120 { 0x992, PAL_NONE }, { 0x994, PAL_NONE }, { 0x991, PAL_NONE }, { 0x993, PAL_NONE },
121 { 0x10E7, PAL_NONE }, { 0x10E9, PAL_NONE }, { 0x10E6, PAL_NONE }, { 0x10E8, PAL_NONE },
122 { 0x10EB, PAL_NONE }, { 0x10ED, PAL_NONE }, { 0x10EA, PAL_NONE }, { 0x10EC, PAL_NONE },
123 { 0x110F, PAL_NONE }, { 0x1111, PAL_NONE }, { 0x110E, PAL_NONE }, { 0x1110, PAL_NONE },
124 { 0x1113, PAL_NONE }, { 0x1115, PAL_NONE }, { 0x1112, PAL_NONE }, { 0x1114, PAL_NONE },
127static const PalSpriteID _bridge_sprite_table_suspension_yellow_north[] = {
138static const PalSpriteID _bridge_sprite_table_suspension_yellow_south[] = {
149static const PalSpriteID _bridge_sprite_table_suspension_yellow_inner_north[] = {
160static const PalSpriteID _bridge_sprite_table_suspension_yellow_inner_south[] = {
171static const PalSpriteID _bridge_sprite_table_suspension_yellow_middle_odd[] = {
182static const PalSpriteID _bridge_sprite_table_suspension_yellow_middle_even[] = {
193static const PalSpriteID _bridge_sprite_table_generic_yellow_heads[] = {
194 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
195 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
204static const PalSpriteID _bridge_sprite_table_cantilever_oxide_north[] = {
205 { 0x9CD, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
206 { 0x9CE, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
207 { 0x9D3, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
208 { 0x9D4, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
209 { 0x10FC, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
210 { 0x10FD, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
211 { 0x1124, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
212 { 0x1125, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
215static const PalSpriteID _bridge_sprite_table_cantilever_oxide_south[] = {
216 { 0x9CB, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
217 { 0x9D0, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
218 { 0x9D1, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
219 { 0x9D6, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
220 { 0x10FA, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
221 { 0x10FF, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
222 { 0x1122, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
223 { 0x1127, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
226static const PalSpriteID _bridge_sprite_table_cantilever_oxide_middle[] = {
227 { 0x9CC, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
228 { 0x9CF, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
229 { 0x9D2, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
230 { 0x9D5, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
231 { 0x10FB, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
232 { 0x10FE, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
233 { 0x1123, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
234 { 0x1126, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
237static const PalSpriteID _bridge_sprite_table_cantilever_oxide_heads[] = {
238 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
239 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
240 { 0x98E, PAL_NONE }, { 0x990, PAL_NONE }, { 0x98D, PAL_NONE }, { 0x98F, PAL_NONE },
241 { 0x992, PAL_NONE }, { 0x994, PAL_NONE }, { 0x991, PAL_NONE }, { 0x993, PAL_NONE },
242 { 0x10E7, PAL_NONE }, { 0x10E9, PAL_NONE }, { 0x10E6, PAL_NONE }, { 0x10E8, PAL_NONE },
243 { 0x10EB, PAL_NONE }, { 0x10ED, PAL_NONE }, { 0x10EA, PAL_NONE }, { 0x10EC, PAL_NONE },
244 { 0x110F, PAL_NONE }, { 0x1111, PAL_NONE }, { 0x110E, PAL_NONE }, { 0x1110, PAL_NONE },
245 { 0x1113, PAL_NONE }, { 0x1115, PAL_NONE }, { 0x1112, PAL_NONE }, { 0x1114, PAL_NONE },
248static const PalSpriteID _bridge_sprite_table_cantilever_brown_north[] = {
259static const PalSpriteID _bridge_sprite_table_cantilever_brown_south[] = {
270static const PalSpriteID _bridge_sprite_table_cantilever_brown_middle[] = {
281static const PalSpriteID _bridge_sprite_table_cantilever_brown_heads[] = {
282 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
283 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
292static const PalSpriteID _bridge_sprite_table_cantilever_red_north[] = {
303static const PalSpriteID _bridge_sprite_table_cantilever_red_south[] = {
314static const PalSpriteID _bridge_sprite_table_cantilever_red_middle[] = {
325static const PalSpriteID _bridge_sprite_table_cantilever_red_heads[] = {
326 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
327 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
336static const PalSpriteID _bridge_sprite_table_wood_middle[] = {
337 MN( SPR_BTWDN_RAIL_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
338 MN( SPR_BTWDN_RAIL_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
339 MN( SPR_BTWDN_ROAD_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
340 MN( SPR_BTWDN_ROAD_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
341 MN( SPR_BTWDN_MONO_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
342 MN( SPR_BTWDN_MONO_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
343 MN( SPR_BTWDN_MGLV_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
344 MN( SPR_BTWDN_MGLV_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
347static const PalSpriteID _bridge_sprite_table_wood_heads[] = {
348 MN( SPR_BTWDN_RAIL_X_SLOPE_UP ), MN( SPR_BTWDN_RAIL_Y_SLOPE_UP ), MN( SPR_BTWDN_RAIL_X_SLOPE_DOWN ), MN( SPR_BTWDN_RAIL_Y_SLOPE_DOWN ),
349 MN( SPR_BTWDN_RAIL_RAMP_X_DOWN ), MN( SPR_BTWDN_RAIL_RAMP_Y_DOWN ), MN( SPR_BTWDN_RAIL_RAMP_X_UP ), MN( SPR_BTWDN_RAIL_RAMP_Y_UP ),
350 MN( SPR_BTWDN_ROAD_X_SLOPE_UP ), MN( SPR_BTWDN_ROAD_Y_SLOPE_UP ), MN( SPR_BTWDN_ROAD_X_SLOPE_DOWN ), MN( SPR_BTWDN_ROAD_Y_SLOPE_DOWN ),
351 MN( SPR_BTWDN_ROAD_RAMP_X_DOWN ), MN( SPR_BTWDN_ROAD_RAMP_Y_DOWN ), MN( SPR_BTWDN_ROAD_RAMP_X_UP ), MN( SPR_BTWDN_ROAD_RAMP_Y_UP ),
352 MN( SPR_BTWDN_MONO_X_SLOPE_UP ), MN( SPR_BTWDN_MONO_Y_SLOPE_UP ), MN( SPR_BTWDN_MONO_X_SLOPE_DOWN ), MN( SPR_BTWDN_MONO_Y_SLOPE_DOWN ),
353 MN( SPR_BTWDN_MONO_RAMP_X_DOWN ), MN( SPR_BTWDN_MONO_RAMP_Y_DOWN ), MN( SPR_BTWDN_MONO_RAMP_X_UP ), MN( SPR_BTWDN_MONO_RAMP_Y_UP ),
354 MN( SPR_BTWDN_MGLV_X_SLOPE_UP ), MN( SPR_BTWDN_MGLV_Y_SLOPE_UP ), MN( SPR_BTWDN_MGLV_X_SLOPE_DOWN ), MN( SPR_BTWDN_MGLV_Y_SLOPE_DOWN ),
355 MN( SPR_BTWDN_MGLV_RAMP_X_DOWN ), MN( SPR_BTWDN_MGLV_RAMP_Y_DOWN ), MN( SPR_BTWDN_MGLV_RAMP_X_UP ), MN( SPR_BTWDN_MGLV_RAMP_Y_UP ),
358static const PalSpriteID _bridge_sprite_table_concrete_middle[] = {
359 MR( SPR_BTCON_RAIL_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
360 MR( SPR_BTCON_RAIL_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
361 MR( SPR_BTCON_ROAD_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
362 MR( SPR_BTCON_ROAD_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
363 MR( SPR_BTCON_MONO_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
364 MR( SPR_BTCON_MONO_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
365 MR( SPR_BTCON_MGLV_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
366 MR( SPR_BTCON_MGLV_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
369static const PalSpriteID _bridge_sprite_table_concrete_heads[] = {
370 MN( SPR_BTGEN_RAIL_X_SLOPE_UP ), MN( SPR_BTGEN_RAIL_Y_SLOPE_UP ), MN( SPR_BTGEN_RAIL_X_SLOPE_DOWN ), MN( SPR_BTGEN_RAIL_Y_SLOPE_DOWN ),
371 MN( SPR_BTGEN_RAIL_RAMP_X_DOWN ), MN( SPR_BTGEN_RAIL_RAMP_Y_DOWN ), MN( SPR_BTGEN_RAIL_RAMP_X_UP ), MN( SPR_BTGEN_RAIL_RAMP_Y_UP ),
372 MR( SPR_BTGEN_ROAD_X_SLOPE_UP ), MR( SPR_BTGEN_ROAD_Y_SLOPE_UP ), MR( SPR_BTGEN_ROAD_X_SLOPE_DOWN ), MR( SPR_BTGEN_ROAD_Y_SLOPE_DOWN ),
373 MR( SPR_BTGEN_ROAD_RAMP_X_DOWN ), MR( SPR_BTGEN_ROAD_RAMP_Y_DOWN ), MR( SPR_BTGEN_ROAD_RAMP_X_UP ), MR( SPR_BTGEN_ROAD_RAMP_Y_UP ),
374 MR( SPR_BTGEN_MONO_X_SLOPE_UP ), MR( SPR_BTGEN_MONO_Y_SLOPE_UP ), MR( SPR_BTGEN_MONO_X_SLOPE_DOWN ), MR( SPR_BTGEN_MONO_Y_SLOPE_DOWN ),
375 MR( SPR_BTGEN_MONO_RAMP_X_DOWN ), MR( SPR_BTGEN_MONO_RAMP_Y_DOWN ), MR( SPR_BTGEN_MONO_RAMP_X_UP ), MR( SPR_BTGEN_MONO_RAMP_Y_UP ),
376 MR( SPR_BTGEN_MGLV_X_SLOPE_UP ), MR( SPR_BTGEN_MGLV_Y_SLOPE_UP ), MR( SPR_BTGEN_MGLV_X_SLOPE_DOWN ), MR( SPR_BTGEN_MGLV_Y_SLOPE_DOWN ),
377 MR( SPR_BTGEN_MGLV_RAMP_X_DOWN ), MR( SPR_BTGEN_MGLV_RAMP_Y_DOWN ), MR( SPR_BTGEN_MGLV_RAMP_X_UP ), MR( SPR_BTGEN_MGLV_RAMP_Y_UP ),
380static const PalSpriteID _bridge_sprite_table_archgirder_middle[] = {
381 MN( SPR_BTSGA_RAIL_X_REAR ), MN( SPR_BTSGA_X_FRONT ), MN( SPR_BTSGA_X_PILLAR ), MN( 0x0 ),
382 MN( SPR_BTSGA_RAIL_Y_REAR ), MN( SPR_BTSGA_Y_FRONT ), MN( SPR_BTSGA_Y_PILLAR ), MN( 0x0 ),
383 MN( SPR_BTSGA_ROAD_X_REAR ), MN( SPR_BTSGA_X_FRONT ), MN( SPR_BTSGA_X_PILLAR ), MN( 0x0 ),
384 MN( SPR_BTSGA_ROAD_Y_REAR ), MN( SPR_BTSGA_Y_FRONT ), MN( SPR_BTSGA_Y_PILLAR ), MN( 0x0 ),
385 MN( SPR_BTSGA_MONO_X_REAR ), MN( SPR_BTSGA_X_FRONT ), MN( SPR_BTSGA_X_PILLAR ), MN( 0x0 ),
386 MN( SPR_BTSGA_MONO_Y_REAR ), MN( SPR_BTSGA_Y_FRONT ), MN( SPR_BTSGA_Y_PILLAR ), MN( 0x0 ),
387 MN( SPR_BTSGA_MGLV_X_REAR ), MN( SPR_BTSGA_X_FRONT ), MN( SPR_BTSGA_X_PILLAR ), MN( 0x0 ),
388 MN( SPR_BTSGA_MGLV_Y_REAR ), MN( SPR_BTSGA_Y_FRONT ), MN( SPR_BTSGA_Y_PILLAR ), MN( 0x0 ),
391static const PalSpriteID _bridge_sprite_table_archgirder_heads[] = {
392 MN( SPR_BTGEN_RAIL_X_SLOPE_UP ), MN( SPR_BTGEN_RAIL_Y_SLOPE_UP ), MN( SPR_BTGEN_RAIL_X_SLOPE_DOWN ), MN( SPR_BTGEN_RAIL_Y_SLOPE_DOWN ),
393 MN( SPR_BTGEN_RAIL_RAMP_X_DOWN ), MN( SPR_BTGEN_RAIL_RAMP_Y_DOWN ), MN( SPR_BTGEN_RAIL_RAMP_X_UP ), MN( SPR_BTGEN_RAIL_RAMP_Y_UP ),
394 MW( SPR_BTGEN_ROAD_X_SLOPE_UP ), MW( SPR_BTGEN_ROAD_Y_SLOPE_UP ), MW( SPR_BTGEN_ROAD_X_SLOPE_DOWN ), MW( SPR_BTGEN_ROAD_Y_SLOPE_DOWN ),
395 MW( SPR_BTGEN_ROAD_RAMP_X_DOWN ), MW( SPR_BTGEN_ROAD_RAMP_Y_DOWN ), MW( SPR_BTGEN_ROAD_RAMP_X_UP ), MW( SPR_BTGEN_ROAD_RAMP_Y_UP ),
396 MW( SPR_BTGEN_MONO_X_SLOPE_UP ), MW( SPR_BTGEN_MONO_Y_SLOPE_UP ), MW( SPR_BTGEN_MONO_X_SLOPE_DOWN ), MW( SPR_BTGEN_MONO_Y_SLOPE_DOWN ),
397 MW( SPR_BTGEN_MONO_RAMP_X_DOWN ), MW( SPR_BTGEN_MONO_RAMP_Y_DOWN ), MW( SPR_BTGEN_MONO_RAMP_X_UP ), MW( SPR_BTGEN_MONO_RAMP_Y_UP ),
398 MW( SPR_BTGEN_MGLV_X_SLOPE_UP ), MW( SPR_BTGEN_MGLV_Y_SLOPE_UP ), MW( SPR_BTGEN_MGLV_X_SLOPE_DOWN ), MW( SPR_BTGEN_MGLV_Y_SLOPE_DOWN ),
399 MW( SPR_BTGEN_MGLV_RAMP_X_DOWN ), MW( SPR_BTGEN_MGLV_RAMP_Y_DOWN ), MW( SPR_BTGEN_MGLV_RAMP_X_UP ), MW( SPR_BTGEN_MGLV_RAMP_Y_UP ),
402static const PalSpriteID _bridge_sprite_table_suspension_concrete_north[] = {
403 MC( SPR_BTSUS_RAIL_X_REAR_TILE_A ),
MC( SPR_BTSUS_X_FRONT_TILE_A ),
MC( SPR_BTSUS_X_PILLAR_TILE_A ), MN( 0x0 ),
404 MC( SPR_BTSUS_RAIL_Y_REAR_TILE_A ),
MC( SPR_BTSUS_Y_FRONT_TILE_A ),
MC( SPR_BTSUS_Y_PILLAR_TILE_A ), MN( 0x0 ),
405 MC( SPR_BTSUS_ROAD_X_REAR_TILE_A ),
MC( SPR_BTSUS_X_FRONT_TILE_A ),
MC( SPR_BTSUS_X_PILLAR_TILE_A ), MN( 0x0 ),
406 MC( SPR_BTSUS_ROAD_Y_REAR_TILE_A ),
MC( SPR_BTSUS_Y_FRONT_TILE_A ),
MC( SPR_BTSUS_Y_PILLAR_TILE_A ), MN( 0x0 ),
407 MC( SPR_BTSUS_MONO_X_REAR_TILE_A ),
MC( SPR_BTSUS_X_FRONT_TILE_A ),
MC( SPR_BTSUS_X_PILLAR_TILE_A ), MN( 0x0 ),
408 MC( SPR_BTSUS_MONO_Y_REAR_TILE_A ),
MC( SPR_BTSUS_Y_FRONT_TILE_A ),
MC( SPR_BTSUS_Y_PILLAR_TILE_A ), MN( 0x0 ),
409 MC( SPR_BTSUS_MGLV_X_REAR_TILE_A ),
MC( SPR_BTSUS_X_FRONT_TILE_A ),
MC( SPR_BTSUS_X_PILLAR_TILE_A ), MN( 0x0 ),
410 MC( SPR_BTSUS_MGLV_Y_REAR_TILE_A ),
MC( SPR_BTSUS_Y_FRONT_TILE_A ),
MC( SPR_BTSUS_Y_PILLAR_TILE_A ), MN( 0x0 ),
413static const PalSpriteID _bridge_sprite_table_suspension_concrete_south[] = {
414 MC( SPR_BTSUS_RAIL_X_REAR_TILE_B ),
MC( SPR_BTSUS_X_FRONT_TILE_B ),
MC( SPR_BTSUS_X_PILLAR_TILE_B ), MN( 0x0 ),
415 MC( SPR_BTSUS_RAIL_Y_REAR_TILE_B ),
MC( SPR_BTSUS_Y_FRONT_TILE_B ),
MC( SPR_BTSUS_Y_PILLAR_TILE_B ), MN( 0x0 ),
416 MC( SPR_BTSUS_ROAD_X_REAR_TILE_B ),
MC( SPR_BTSUS_X_FRONT_TILE_B ),
MC( SPR_BTSUS_X_PILLAR_TILE_B ), MN( 0x0 ),
417 MC( SPR_BTSUS_ROAD_Y_REAR_TILE_B ),
MC( SPR_BTSUS_Y_FRONT_TILE_B ),
MC( SPR_BTSUS_Y_PILLAR_TILE_B ), MN( 0x0 ),
418 MC( SPR_BTSUS_MONO_X_REAR_TILE_B ),
MC( SPR_BTSUS_X_FRONT_TILE_B ),
MC( SPR_BTSUS_X_PILLAR_TILE_B ), MN( 0x0 ),
419 MC( SPR_BTSUS_MONO_Y_REAR_TILE_B ),
MC( SPR_BTSUS_Y_FRONT_TILE_B ),
MC( SPR_BTSUS_Y_PILLAR_TILE_B ), MN( 0x0 ),
420 MC( SPR_BTSUS_MGLV_X_REAR_TILE_B ),
MC( SPR_BTSUS_X_FRONT_TILE_B ),
MC( SPR_BTSUS_X_PILLAR_TILE_B ), MN( 0x0 ),
421 MC( SPR_BTSUS_MGLV_Y_REAR_TILE_B ),
MC( SPR_BTSUS_Y_FRONT_TILE_B ),
MC( SPR_BTSUS_Y_PILLAR_TILE_B ), MN( 0x0 ),
424static const PalSpriteID _bridge_sprite_table_suspension_concrete_inner_north[] = {
425 MC( SPR_BTSUS_RAIL_X_REAR_TILE_C ),
MC( SPR_BTSUS_X_FRONT_TILE_C ),
MC( SPR_BTSUS_X_PILLAR_TILE_C ), MN( 0x0 ),
426 MC( SPR_BTSUS_RAIL_Y_REAR_TILE_C ),
MC( SPR_BTSUS_Y_FRONT_TILE_C ),
MC( SPR_BTSUS_Y_PILLAR_TILE_C ), MN( 0x0 ),
427 MC( SPR_BTSUS_ROAD_X_REAR_TILE_C ),
MC( SPR_BTSUS_X_FRONT_TILE_C ),
MC( SPR_BTSUS_X_PILLAR_TILE_C ), MN( 0x0 ),
428 MC( SPR_BTSUS_ROAD_Y_REAR_TILE_C ),
MC( SPR_BTSUS_Y_FRONT_TILE_C ),
MC( SPR_BTSUS_Y_PILLAR_TILE_C ), MN( 0x0 ),
429 MC( SPR_BTSUS_MONO_X_REAR_TILE_C ),
MC( SPR_BTSUS_X_FRONT_TILE_C ),
MC( SPR_BTSUS_X_PILLAR_TILE_C ), MN( 0x0 ),
430 MC( SPR_BTSUS_MONO_Y_REAR_TILE_C ),
MC( SPR_BTSUS_Y_FRONT_TILE_C ),
MC( SPR_BTSUS_Y_PILLAR_TILE_C ), MN( 0x0 ),
431 MC( SPR_BTSUS_MGLV_X_REAR_TILE_C ),
MC( SPR_BTSUS_X_FRONT_TILE_C ),
MC( SPR_BTSUS_X_PILLAR_TILE_C ), MN( 0x0 ),
432 MC( SPR_BTSUS_MGLV_Y_REAR_TILE_C ),
MC( SPR_BTSUS_Y_FRONT_TILE_C ),
MC( SPR_BTSUS_Y_PILLAR_TILE_C ), MN( 0x0 ),
435static const PalSpriteID _bridge_sprite_table_suspension_concrete_inner_south[] = {
436 MC( SPR_BTSUS_RAIL_X_REAR_TILE_D ),
MC( SPR_BTSUS_X_FRONT_TILE_D ),
MC( SPR_BTSUS_X_PILLAR_TILE_D ), MN( 0x0 ),
437 MC( SPR_BTSUS_RAIL_Y_REAR_TILE_D ),
MC( SPR_BTSUS_Y_FRONT_TILE_D ),
MC( SPR_BTSUS_Y_PILLAR_TILE_D ), MN( 0x0 ),
438 MC( SPR_BTSUS_ROAD_X_REAR_TILE_D ),
MC( SPR_BTSUS_X_FRONT_TILE_D ),
MC( SPR_BTSUS_X_PILLAR_TILE_D ), MN( 0x0 ),
439 MC( SPR_BTSUS_ROAD_Y_REAR_TILE_D ),
MC( SPR_BTSUS_Y_FRONT_TILE_D ),
MC( SPR_BTSUS_Y_PILLAR_TILE_D ), MN( 0x0 ),
440 MC( SPR_BTSUS_MONO_X_REAR_TILE_D ),
MC( SPR_BTSUS_X_FRONT_TILE_D ),
MC( SPR_BTSUS_X_PILLAR_TILE_D ), MN( 0x0 ),
441 MC( SPR_BTSUS_MONO_Y_REAR_TILE_D ),
MC( SPR_BTSUS_Y_FRONT_TILE_D ),
MC( SPR_BTSUS_Y_PILLAR_TILE_D ), MN( 0x0 ),
442 MC( SPR_BTSUS_MGLV_X_REAR_TILE_D ),
MC( SPR_BTSUS_X_FRONT_TILE_D ),
MC( SPR_BTSUS_X_PILLAR_TILE_D ), MN( 0x0 ),
443 MC( SPR_BTSUS_MGLV_Y_REAR_TILE_D ),
MC( SPR_BTSUS_Y_FRONT_TILE_D ),
MC( SPR_BTSUS_Y_PILLAR_TILE_D ), MN( 0x0 ),
446static const PalSpriteID _bridge_sprite_table_suspension_concrete_middle_odd[] = {
447 MC( SPR_BTSUS_RAIL_X_REAR_TILE_E ),
MC( SPR_BTSUS_X_FRONT_TILE_E ),
MC( SPR_BTSUS_X_PILLAR_TILE_E ), MN( 0x0 ),
448 MC( SPR_BTSUS_RAIL_Y_REAR_TILE_E ),
MC( SPR_BTSUS_Y_FRONT_TILE_E ),
MC( SPR_BTSUS_Y_PILLAR_TILE_E ), MN( 0x0 ),
449 MC( SPR_BTSUS_ROAD_X_REAR_TILE_E ),
MC( SPR_BTSUS_X_FRONT_TILE_E ),
MC( SPR_BTSUS_X_PILLAR_TILE_E ), MN( 0x0 ),
450 MC( SPR_BTSUS_ROAD_Y_REAR_TILE_E ),
MC( SPR_BTSUS_Y_FRONT_TILE_E ),
MC( SPR_BTSUS_Y_PILLAR_TILE_E ), MN( 0x0 ),
451 MC( SPR_BTSUS_MONO_X_REAR_TILE_E ),
MC( SPR_BTSUS_X_FRONT_TILE_E ),
MC( SPR_BTSUS_X_PILLAR_TILE_E ), MN( 0x0 ),
452 MC( SPR_BTSUS_MONO_Y_REAR_TILE_E ),
MC( SPR_BTSUS_Y_FRONT_TILE_E ),
MC( SPR_BTSUS_Y_PILLAR_TILE_E ), MN( 0x0 ),
453 MC( SPR_BTSUS_MGLV_X_REAR_TILE_E ),
MC( SPR_BTSUS_X_FRONT_TILE_E ),
MC( SPR_BTSUS_X_PILLAR_TILE_E ), MN( 0x0 ),
454 MC( SPR_BTSUS_MGLV_Y_REAR_TILE_E ),
MC( SPR_BTSUS_Y_FRONT_TILE_E ),
MC( SPR_BTSUS_Y_PILLAR_TILE_E ), MN( 0x0 ),
457static const PalSpriteID _bridge_sprite_table_suspension_concrete_middle_even[] = {
458 MC( SPR_BTSUS_RAIL_X_REAR_TILE_F ),
MC( SPR_BTSUS_X_FRONT ), MN( 0x0 ), MN( 0x0 ),
459 MC( SPR_BTSUS_RAIL_Y_REAR_TILE_F ),
MC( SPR_BTSUS_Y_FRONT ), MN( 0x0 ), MN( 0x0 ),
460 MC( SPR_BTSUS_ROAD_X_REAR_TILE_F ),
MC( SPR_BTSUS_X_FRONT ), MN( 0x0 ), MN( 0x0 ),
461 MC( SPR_BTSUS_ROAD_Y_REAR_TILE_F ),
MC( SPR_BTSUS_Y_FRONT ), MN( 0x0 ), MN( 0x0 ),
462 MC( SPR_BTSUS_MONO_X_REAR_TILE_F ),
MC( SPR_BTSUS_X_FRONT ), MN( 0x0 ), MN( 0x0 ),
463 MC( SPR_BTSUS_MONO_Y_REAR_TILE_F ),
MC( SPR_BTSUS_Y_FRONT ), MN( 0x0 ), MN( 0x0 ),
464 MC( SPR_BTSUS_MGLV_X_REAR_TILE_F ),
MC( SPR_BTSUS_X_FRONT ), MN( 0x0 ), MN( 0x0 ),
465 MC( SPR_BTSUS_MGLV_Y_REAR_TILE_F ),
MC( SPR_BTSUS_Y_FRONT ), MN( 0x0 ), MN( 0x0 ),
468static const PalSpriteID _bridge_sprite_table_generic_concrete_heads[] = {
469 MN( SPR_BTGEN_RAIL_X_SLOPE_UP ), MN( SPR_BTGEN_RAIL_Y_SLOPE_UP ), MN( SPR_BTGEN_RAIL_X_SLOPE_DOWN ), MN( SPR_BTGEN_RAIL_Y_SLOPE_DOWN ),
470 MN( SPR_BTGEN_RAIL_RAMP_X_DOWN ), MN( SPR_BTGEN_RAIL_RAMP_Y_DOWN ), MN( SPR_BTGEN_RAIL_RAMP_X_UP ), MN( SPR_BTGEN_RAIL_RAMP_Y_UP ),
471 MC( SPR_BTGEN_ROAD_X_SLOPE_UP ),
MC( SPR_BTGEN_ROAD_Y_SLOPE_UP ),
MC( SPR_BTGEN_ROAD_X_SLOPE_DOWN ),
MC( SPR_BTGEN_ROAD_Y_SLOPE_DOWN ),
472 MC( SPR_BTGEN_ROAD_RAMP_X_DOWN ),
MC( SPR_BTGEN_ROAD_RAMP_Y_DOWN ),
MC( SPR_BTGEN_ROAD_RAMP_X_UP ),
MC( SPR_BTGEN_ROAD_RAMP_Y_UP ),
473 MC( SPR_BTGEN_MONO_X_SLOPE_UP ),
MC( SPR_BTGEN_MONO_Y_SLOPE_UP ),
MC( SPR_BTGEN_MONO_X_SLOPE_DOWN ),
MC( SPR_BTGEN_MONO_Y_SLOPE_DOWN ),
474 MC( SPR_BTGEN_MONO_RAMP_X_DOWN ),
MC( SPR_BTGEN_MONO_RAMP_Y_DOWN ),
MC( SPR_BTGEN_MONO_RAMP_X_UP ),
MC( SPR_BTGEN_MONO_RAMP_Y_UP ),
475 MC( SPR_BTGEN_MGLV_X_SLOPE_UP ),
MC( SPR_BTGEN_MGLV_Y_SLOPE_UP ),
MC( SPR_BTGEN_MGLV_X_SLOPE_DOWN ),
MC( SPR_BTGEN_MGLV_Y_SLOPE_DOWN ),
476 MC( SPR_BTGEN_MGLV_RAMP_X_DOWN ),
MC( SPR_BTGEN_MGLV_RAMP_Y_DOWN ),
MC( SPR_BTGEN_MGLV_RAMP_X_UP ),
MC( SPR_BTGEN_MGLV_RAMP_Y_UP ),
479static const PalSpriteID _bridge_sprite_table_girder_middle[] = {
480 { 0x9F9, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
481 { 0x9FA, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
482 { 0x9FB, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
483 { 0x9FC, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
484 { 0x110A, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
485 { 0x110B, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
486 { 0x1132, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
487 { 0x1133, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
490static const PalSpriteID _bridge_sprite_table_tubular_oxide_north[] = {
491 { 0xA0B, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
492 { 0xA0C, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
493 { 0xA11, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
494 { 0xA12, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
495 { 0xA17, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
496 { 0xA18, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
497 { 0xA1D, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
498 { 0xA1E, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
501static const PalSpriteID _bridge_sprite_table_tubular_oxide_south[] = {
502 { 0xA09, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
503 { 0xA0E, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
504 { 0xA0F, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
505 { 0xA14, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
506 { 0xA15, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
507 { 0xA1A, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
508 { 0xA1B, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
509 { 0xA20, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
512static const PalSpriteID _bridge_sprite_table_tubular_oxide_middle[] = {
513 { 0xA0A, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
514 { 0xA0D, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
515 { 0xA10, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
516 { 0xA13, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
517 { 0xA16, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
518 { 0xA19, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
519 { 0xA1C, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
520 { 0xA1F, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
523static const PalSpriteID _bridge_sprite_table_tubular_yellow_north[] = {
534static const PalSpriteID _bridge_sprite_table_tubular_yellow_south[] = {
545static const PalSpriteID _bridge_sprite_table_tubular_yellow_middle[] = {
556static const PalSpriteID _bridge_sprite_table_tubular_silicon_north[] = {
567static const PalSpriteID _bridge_sprite_table_tubular_silicon_south[] = {
578static const PalSpriteID _bridge_sprite_table_tubular_silicon_middle[] = {
589static const std::span<const PalSpriteID> _bridge_sprite_table_archgirder[] = {
590 _bridge_sprite_table_archgirder_middle,
591 _bridge_sprite_table_archgirder_middle,
592 _bridge_sprite_table_archgirder_middle,
593 _bridge_sprite_table_archgirder_middle,
594 _bridge_sprite_table_archgirder_middle,
595 _bridge_sprite_table_archgirder_middle,
596 _bridge_sprite_table_archgirder_heads,
599static const std::span<const PalSpriteID> _bridge_sprite_table_suspension_oxide[] = {
600 _bridge_sprite_table_suspension_oxide_north,
601 _bridge_sprite_table_suspension_oxide_south,
602 _bridge_sprite_table_suspension_oxide_inner_north,
603 _bridge_sprite_table_suspension_oxide_inner_south,
604 _bridge_sprite_table_suspension_oxide_middle_odd,
605 _bridge_sprite_table_suspension_middle_even,
606 _bridge_sprite_table_generic_oxide_heads,
609static const std::span<const PalSpriteID> _bridge_sprite_table_suspension_yellow[] = {
610 _bridge_sprite_table_suspension_yellow_north,
611 _bridge_sprite_table_suspension_yellow_south,
612 _bridge_sprite_table_suspension_yellow_inner_north,
613 _bridge_sprite_table_suspension_yellow_inner_south,
614 _bridge_sprite_table_suspension_yellow_middle_odd,
615 _bridge_sprite_table_suspension_yellow_middle_even,
616 _bridge_sprite_table_generic_yellow_heads,
619static const std::span<const PalSpriteID> _bridge_sprite_table_suspension_concrete[] = {
620 _bridge_sprite_table_suspension_concrete_north,
621 _bridge_sprite_table_suspension_concrete_south,
622 _bridge_sprite_table_suspension_concrete_inner_north,
623 _bridge_sprite_table_suspension_concrete_inner_south,
624 _bridge_sprite_table_suspension_concrete_middle_odd,
625 _bridge_sprite_table_suspension_concrete_middle_even,
626 _bridge_sprite_table_generic_concrete_heads,
629static const std::span<const PalSpriteID> _bridge_sprite_table_cantilever_oxide[] = {
630 _bridge_sprite_table_cantilever_oxide_north,
631 _bridge_sprite_table_cantilever_oxide_south,
632 _bridge_sprite_table_cantilever_oxide_middle,
633 _bridge_sprite_table_cantilever_oxide_middle,
634 _bridge_sprite_table_cantilever_oxide_middle,
635 _bridge_sprite_table_cantilever_oxide_middle,
636 _bridge_sprite_table_cantilever_oxide_heads,
639static const std::span<const PalSpriteID> _bridge_sprite_table_cantilever_brown[] = {
640 _bridge_sprite_table_cantilever_brown_north,
641 _bridge_sprite_table_cantilever_brown_south,
642 _bridge_sprite_table_cantilever_brown_middle,
643 _bridge_sprite_table_cantilever_brown_middle,
644 _bridge_sprite_table_cantilever_brown_middle,
645 _bridge_sprite_table_cantilever_brown_middle,
646 _bridge_sprite_table_cantilever_brown_heads,
649static const std::span<const PalSpriteID> _bridge_sprite_table_cantilever_red[] = {
650 _bridge_sprite_table_cantilever_red_north,
651 _bridge_sprite_table_cantilever_red_south,
652 _bridge_sprite_table_cantilever_red_middle,
653 _bridge_sprite_table_cantilever_red_middle,
654 _bridge_sprite_table_cantilever_red_middle,
655 _bridge_sprite_table_cantilever_red_middle,
656 _bridge_sprite_table_cantilever_red_heads,
659static const std::span<const PalSpriteID> _bridge_sprite_table_wood[] = {
660 _bridge_sprite_table_wood_middle,
661 _bridge_sprite_table_wood_middle,
662 _bridge_sprite_table_wood_middle,
663 _bridge_sprite_table_wood_middle,
664 _bridge_sprite_table_wood_middle,
665 _bridge_sprite_table_wood_middle,
666 _bridge_sprite_table_wood_heads,
669static const std::span<const PalSpriteID> _bridge_sprite_table_concrete[] = {
670 _bridge_sprite_table_concrete_middle,
671 _bridge_sprite_table_concrete_middle,
672 _bridge_sprite_table_concrete_middle,
673 _bridge_sprite_table_concrete_middle,
674 _bridge_sprite_table_concrete_middle,
675 _bridge_sprite_table_concrete_middle,
676 _bridge_sprite_table_concrete_heads,
679static const std::span<const PalSpriteID> _bridge_sprite_table_girder[] = {
680 _bridge_sprite_table_girder_middle,
681 _bridge_sprite_table_girder_middle,
682 _bridge_sprite_table_girder_middle,
683 _bridge_sprite_table_girder_middle,
684 _bridge_sprite_table_girder_middle,
685 _bridge_sprite_table_girder_middle,
686 _bridge_sprite_table_generic_oxide_heads,
689static const std::span<const PalSpriteID> _bridge_sprite_table_tubular_oxide[] = {
690 _bridge_sprite_table_tubular_oxide_north,
691 _bridge_sprite_table_tubular_oxide_south,
692 _bridge_sprite_table_tubular_oxide_middle,
693 _bridge_sprite_table_tubular_oxide_middle,
694 _bridge_sprite_table_tubular_oxide_middle,
695 _bridge_sprite_table_tubular_oxide_middle,
696 _bridge_sprite_table_generic_oxide_heads,
699static const std::span<const PalSpriteID> _bridge_sprite_table_tubular_yellow[] = {
700 _bridge_sprite_table_tubular_yellow_north,
701 _bridge_sprite_table_tubular_yellow_south,
702 _bridge_sprite_table_tubular_yellow_middle,
703 _bridge_sprite_table_tubular_yellow_middle,
704 _bridge_sprite_table_tubular_yellow_middle,
705 _bridge_sprite_table_tubular_yellow_middle,
706 _bridge_sprite_table_generic_yellow_heads,
709static const std::span<const PalSpriteID> _bridge_sprite_table_tubular_silicon[] = {
710 _bridge_sprite_table_tubular_silicon_north,
711 _bridge_sprite_table_tubular_silicon_south,
712 _bridge_sprite_table_tubular_silicon_middle,
713 _bridge_sprite_table_tubular_silicon_middle,
714 _bridge_sprite_table_tubular_silicon_middle,
715 _bridge_sprite_table_tubular_silicon_middle,
716 _bridge_sprite_table_generic_concrete_heads,
719static const std::span<const std::span<const PalSpriteID>> _bridge_sprite_table[
MAX_BRIDGES] = {
720 _bridge_sprite_table_wood,
721 _bridge_sprite_table_concrete,
722 _bridge_sprite_table_archgirder,
723 _bridge_sprite_table_suspension_concrete,
724 _bridge_sprite_table_suspension_oxide,
725 _bridge_sprite_table_suspension_yellow,
726 _bridge_sprite_table_cantilever_oxide,
727 _bridge_sprite_table_cantilever_brown,
728 _bridge_sprite_table_cantilever_red,
729 _bridge_sprite_table_girder,
730 _bridge_sprite_table_tubular_oxide,
731 _bridge_sprite_table_tubular_yellow,
732 _bridge_sprite_table_tubular_silicon,
748#define MBR(y, mnl, mxl, p, mxs, spr, plt, dsc, nrl, nrd, pillars) \
749 {TimerGameCalendar::Year{y}, mnl, mxl, p, mxs, spr, plt, dsc, { nrl, nrd }, {}, 0, {}, pillars}
748#define MBR(y, mnl, mxl, p, mxs, spr, plt, dsc, nrl, nrd, pillars) \ …
757 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
758 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
759 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
760 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
761 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
762 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
771 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
796 MBR( 0, 0, 0xFFFF, 80, 32, 0xA24, PAL_NONE,
797 STR_BRIDGE_NAME_WOODEN, STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN, STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN,
ALL_PILLARS),
800 STR_BRIDGE_NAME_CONCRETE, STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE,
ALL_PILLARS),
802 MBR(1930, 0, 5, 144, 64, 0xA25, PAL_NONE,
803 STR_BRIDGE_NAME_GIRDER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL,
ALL_PILLARS),
806 STR_BRIDGE_NAME_SUSPENSION_CONCRETE, STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE, STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE,
SUSPENSION_PILLARS),
808 MBR(1930, 3, 0xFFFF, 185, 96, 0xA22, PAL_NONE,
809 STR_BRIDGE_NAME_SUSPENSION_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL,
SUSPENSION_PILLARS),
812 STR_BRIDGE_NAME_SUSPENSION_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL,
SUSPENSION_PILLARS),
814 MBR(1930, 3, 7, 224, 160, 0xA23, PAL_NONE,
815 STR_BRIDGE_NAME_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL,
CANTILEVER_PILLARS),
818 STR_BRIDGE_NAME_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL,
CANTILEVER_PILLARS),
821 STR_BRIDGE_NAME_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL,
CANTILEVER_PILLARS),
823 MBR(1930, 0, 2, 240, 256, 0xA27, PAL_NONE,
824 STR_BRIDGE_NAME_GIRDER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL,
ALL_PILLARS),
826 MBR(1995, 2, 0xFFFF, 255, 320, 0xA28, PAL_NONE,
827 STR_BRIDGE_NAME_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL,
CANTILEVER_PILLARS),
830 STR_BRIDGE_NAME_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL,
CANTILEVER_PILLARS),
833 STR_BRIDGE_TUBULAR_SILICON, STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL,
CANTILEVER_PILLARS),
static const uint MAX_BRIDGES
Maximal number of available bridge specs.
static const BridgeMiddlePillarFlags SUSPENSION_PILLARS
Pillar flags for suspension style bridges.
#define MBR(y, mnl, mxl, p, mxs, spr, plt, dsc, nrl, nrd, pillars)
Describes the data that defines each bridge in the game.
static const BridgeMiddlePillarFlags ALL_PILLARS
Pillar flags for bridges which have pillars on the all corners on each piece.
static const BridgeMiddlePillarFlags CANTILEVER_PILLARS
Pillar flags for cantilever style bridges.
@ CornerN
North corner is obstructed.
@ CornerS
South corner is obstructed.
@ CornerE
East corner is obstructed.
@ CornerW
West corner is obstructed.
#define MC(col_break)
Macro for a height legend entry with configurable colour.
static const PaletteID PALETTE_TO_STRUCT_RED
sets bridge or structure to red (e.g. concrete and cantilever bridge)
static const PaletteID PALETTE_TO_STRUCT_CONCRETE
Sets the suspension bridge to concrete, also other structures use it.
static const PaletteID PALETTE_TO_STRUCT_YELLOW
Sets the bridge colour to yellow (suspension and tubular)
static const PaletteID PALETTE_TO_STRUCT_BROWN
sets bridge or structure to brown (e.g. cantilever bridge)
Struct containing information about a single bridge type.
Combination of a palette sprite and a 'real' sprite.