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 /**
9  * @file bridge_land.h This file contains all the sprites for bridges
10  * It consists of a number of arrays.
11  * <ul><li>_bridge_sprite_table_n_m. Defines all the sprites of a bridge besides the pylons.
12  * n defines the number of the bridge type, m the number of the section. the highest m for
13  * each bridge set defines the heads.<br>
14  * Sprites for middle sections are arranged in groups of four, the elements are:
15  * <ol><li>Element containing the track. This element is logically behind the vehicle.</li>
16  * <li>Element containing the structure that is logically between the vehicle and the camera</li>
17  * <li>Element containing the pylons.</li></ol>
18  * First group is for railway in X direction, second for railway in Y direction, two groups each follow for road, monorail and maglev<p>
19  * <br>Elements for heads are arranged in groups of eight:
20  * <ol><li>X direction, north end, flat</li>
21  * <li>Y direction, north end, flat</li>
22  * <li>X direction, south end, flat</li>
23  * <li>Y direction, south end, flat</li>
24  * <li>X direction, north end, sloped</li>
25  * <li>Y direction, north end, sloped</li>
26  * <li>X direction, south end, sloped</li>
27  * <li>Y direction, south end, sloped</li></ol>
28  * This is repeated 4 times, for rail, road, monorail, maglev</li>
29  * </ul>
30  */
31 
32 # define MN(a) {a, PAL_NONE}
33 # define MR(a) {a, PALETTE_TO_STRUCT_RED}
34 # define MW(a) {a, PALETTE_TO_STRUCT_WHITE}
35 # define MC(a) {a, PALETTE_TO_STRUCT_CONCRETE}
36 
37 static const PalSpriteID _aqueduct_sprites[] = {
38 	{ SPR_AQUEDUCT_MIDDLE_X, PAL_NONE }, {                  0x0, PAL_NONE }, { SPR_AQUEDUCT_PILLAR_X, PAL_NONE }, {                  0x0, PAL_NONE },
39 	{ SPR_AQUEDUCT_MIDDLE_Y, PAL_NONE }, {                  0x0, PAL_NONE }, { SPR_AQUEDUCT_PILLAR_Y, PAL_NONE }, {                  0x0, PAL_NONE },
40 	{  SPR_AQUEDUCT_RAMP_SW, PAL_NONE }, { SPR_AQUEDUCT_RAMP_SE, PAL_NONE }, {  SPR_AQUEDUCT_RAMP_NE, PAL_NONE }, { SPR_AQUEDUCT_RAMP_NW, PAL_NONE },
41 };
42 
43 static const PalSpriteID _bridge_sprite_table_4_0[] = {
44 	{  0x9A9, PAL_NONE }, {  0x99F, PAL_NONE }, {  0x9B1, PAL_NONE }, {    0x0, PAL_NONE },
45 	{  0x9A5, PAL_NONE }, {  0x997, PAL_NONE }, {  0x9AD, PAL_NONE }, {    0x0, PAL_NONE },
46 	{  0x99D, PAL_NONE }, {  0x99F, PAL_NONE }, {  0x9B1, PAL_NONE }, {    0x0, PAL_NONE },
47 	{  0x995, PAL_NONE }, {  0x997, PAL_NONE }, {  0x9AD, PAL_NONE }, {    0x0, PAL_NONE },
48 	{ 0x10F2, PAL_NONE }, {  0x99F, PAL_NONE }, {  0x9B1, PAL_NONE }, {    0x0, PAL_NONE },
49 	{ 0x10EE, PAL_NONE }, {  0x997, PAL_NONE }, {  0x9AD, PAL_NONE }, {    0x0, PAL_NONE },
50 	{ 0x111A, PAL_NONE }, {  0x99F, PAL_NONE }, {  0x9B1, PAL_NONE }, {    0x0, PAL_NONE },
51 	{ 0x1116, PAL_NONE }, {  0x997, PAL_NONE }, {  0x9AD, PAL_NONE }, {    0x0, PAL_NONE },
52 };
53 
54 static const PalSpriteID _bridge_sprite_table_4_1[] = {
55 	{  0x9AA, PAL_NONE }, {  0x9A0, PAL_NONE }, {  0x9B2, PAL_NONE }, {    0x0, PAL_NONE },
56 	{  0x9A6, PAL_NONE }, {  0x998, PAL_NONE }, {  0x9AE, PAL_NONE }, {    0x0, PAL_NONE },
57 	{  0x99E, PAL_NONE }, {  0x9A0, PAL_NONE }, {  0x9B2, PAL_NONE }, {    0x0, PAL_NONE },
58 	{  0x996, PAL_NONE }, {  0x998, PAL_NONE }, {  0x9AE, PAL_NONE }, {    0x0, PAL_NONE },
59 	{ 0x10F3, PAL_NONE }, {  0x9A0, PAL_NONE }, {  0x9B2, PAL_NONE }, {    0x0, PAL_NONE },
60 	{ 0x10EF, PAL_NONE }, {  0x998, PAL_NONE }, {  0x9AE, PAL_NONE }, {    0x0, PAL_NONE },
61 	{ 0x111B, PAL_NONE }, {  0x9A0, PAL_NONE }, {  0x9B2, PAL_NONE }, {    0x0, PAL_NONE },
62 	{ 0x1117, PAL_NONE }, {  0x998, PAL_NONE }, {  0x9AE, PAL_NONE }, {    0x0, PAL_NONE },
63 };
64 
65 static const PalSpriteID _bridge_sprite_table_4_2[] = {
66 	{  0x9AC, PAL_NONE }, {  0x9A4, PAL_NONE }, {  0x9B4, PAL_NONE }, {    0x0, PAL_NONE },
67 	{  0x9A8, PAL_NONE }, {  0x99C, PAL_NONE }, {  0x9B0, PAL_NONE }, {    0x0, PAL_NONE },
68 	{  0x9A2, PAL_NONE }, {  0x9A4, PAL_NONE }, {  0x9B4, PAL_NONE }, {    0x0, PAL_NONE },
69 	{  0x99A, PAL_NONE }, {  0x99C, PAL_NONE }, {  0x9B0, PAL_NONE }, {    0x0, PAL_NONE },
70 	{ 0x10F5, PAL_NONE }, {  0x9A4, PAL_NONE }, {  0x9B4, PAL_NONE }, {    0x0, PAL_NONE },
71 	{ 0x10F1, PAL_NONE }, {  0x99C, PAL_NONE }, {  0x9B0, PAL_NONE }, {    0x0, PAL_NONE },
72 	{ 0x111D, PAL_NONE }, {  0x9A4, PAL_NONE }, {  0x9B4, PAL_NONE }, {    0x0, PAL_NONE },
73 	{ 0x1119, PAL_NONE }, {  0x99C, PAL_NONE }, {  0x9B0, PAL_NONE }, {    0x0, PAL_NONE },
74 };
75 
76 static const PalSpriteID _bridge_sprite_table_4_3[] = {
77 	{  0x9AB, PAL_NONE }, {  0x9A3, PAL_NONE }, {  0x9B3, PAL_NONE }, {    0x0, PAL_NONE },
78 	{  0x9A7, PAL_NONE }, {  0x99B, PAL_NONE }, {  0x9AF, PAL_NONE }, {    0x0, PAL_NONE },
79 	{  0x9A1, PAL_NONE }, {  0x9A3, PAL_NONE }, {  0x9B3, PAL_NONE }, {    0x0, PAL_NONE },
80 	{  0x999, PAL_NONE }, {  0x99B, PAL_NONE }, {  0x9AF, PAL_NONE }, {    0x0, PAL_NONE },
81 	{ 0x10F4, PAL_NONE }, {  0x9A3, PAL_NONE }, {  0x9B3, PAL_NONE }, {    0x0, PAL_NONE },
82 	{ 0x10F0, PAL_NONE }, {  0x99B, PAL_NONE }, {  0x9AF, PAL_NONE }, {    0x0, PAL_NONE },
83 	{ 0x111C, PAL_NONE }, {  0x9A3, PAL_NONE }, {  0x9B3, PAL_NONE }, {    0x0, PAL_NONE },
84 	{ 0x1118, PAL_NONE }, {  0x99B, PAL_NONE }, {  0x9AF, PAL_NONE }, {    0x0, PAL_NONE },
85 };
86 
87 static const PalSpriteID _bridge_sprite_table_4_4[] = {
88 	{  0x9B6, PAL_NONE }, {  0x9BA, PAL_NONE }, {  0x9BC, PAL_NONE }, {    0x0, PAL_NONE },
89 	{  0x9B5, PAL_NONE }, {  0x9B9, PAL_NONE }, {  0x9BB, PAL_NONE }, {    0x0, PAL_NONE },
90 	{  0x9B8, PAL_NONE }, {  0x9BA, PAL_NONE }, {  0x9BC, PAL_NONE }, {    0x0, PAL_NONE },
91 	{  0x9B7, PAL_NONE }, {  0x9B9, PAL_NONE }, {  0x9BB, PAL_NONE }, {    0x0, PAL_NONE },
92 	{ 0x10F7, PAL_NONE }, {  0x9BA, PAL_NONE }, {  0x9BC, PAL_NONE }, {    0x0, PAL_NONE },
93 	{ 0x10F6, PAL_NONE }, {  0x9B9, PAL_NONE }, {  0x9BB, PAL_NONE }, {    0x0, PAL_NONE },
94 	{ 0x111F, PAL_NONE }, {  0x9BA, PAL_NONE }, {  0x9BC, PAL_NONE }, {    0x0, PAL_NONE },
95 	{ 0x111E, PAL_NONE }, {  0x9B9, PAL_NONE }, {  0x9BB, PAL_NONE }, {    0x0, PAL_NONE },
96 };
97 
98 static const PalSpriteID _bridge_sprite_table_4_5[] = {
99 	{  0x9BD, PAL_NONE }, {  0x9C1, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
100 	{  0x9BE, PAL_NONE }, {  0x9C2, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
101 	{  0x9BF, PAL_NONE }, {  0x9C1, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
102 	{  0x9C0, PAL_NONE }, {  0x9C2, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
103 	{ 0x10F8, PAL_NONE }, {  0x9C1, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
104 	{ 0x10F9, PAL_NONE }, {  0x9C2, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
105 	{ 0x1120, PAL_NONE }, {  0x9C1, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
106 	{ 0x1121, PAL_NONE }, {  0x9C2, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
107 };
108 
109 static const PalSpriteID _bridge_sprite_table_4_6[] = {
110 	{  0x986, PAL_NONE }, {  0x988, PAL_NONE }, {  0x985, PAL_NONE }, {  0x987, PAL_NONE },
111 	{  0x98A, PAL_NONE }, {  0x98C, PAL_NONE }, {  0x989, PAL_NONE }, {  0x98B, PAL_NONE },
112 	{  0x98E, PAL_NONE }, {  0x990, PAL_NONE }, {  0x98D, PAL_NONE }, {  0x98F, PAL_NONE },
113 	{  0x992, PAL_NONE }, {  0x994, PAL_NONE }, {  0x991, PAL_NONE }, {  0x993, PAL_NONE },
114 	{ 0x10E7, PAL_NONE }, { 0x10E9, PAL_NONE }, { 0x10E6, PAL_NONE }, { 0x10E8, PAL_NONE },
115 	{ 0x10EB, PAL_NONE }, { 0x10ED, PAL_NONE }, { 0x10EA, PAL_NONE }, { 0x10EC, PAL_NONE },
116 	{ 0x110F, PAL_NONE }, { 0x1111, PAL_NONE }, { 0x110E, PAL_NONE }, { 0x1110, PAL_NONE },
117 	{ 0x1113, PAL_NONE }, { 0x1115, PAL_NONE }, { 0x1112, PAL_NONE }, { 0x1114, PAL_NONE },
118 };
119 
120 static const PalSpriteID _bridge_sprite_table_5_0[] = {
121 	{  0x9A9, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
122 	{  0x9A5, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
123 	{  0x99D, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
124 	{  0x995, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
125 	{ 0x10F2, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
126 	{ 0x10EE, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
127 	{ 0x111A, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
128 	{ 0x1116, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, {  0x0, PAL_NONE },
129 };
130 
131 static const PalSpriteID _bridge_sprite_table_5_1[] = {
132 	{  0x9AA, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
133 	{  0x9A6, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
134 	{  0x99E, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
135 	{  0x996, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
136 	{ 0x10F3, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
137 	{ 0x10EF, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
138 	{ 0x111B, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
139 	{ 0x1117, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
140 };
141 
142 static const PalSpriteID _bridge_sprite_table_5_2[] = {
143 	{  0x9AC, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
144 	{  0x9A8, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
145 	{  0x9A2, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
146 	{  0x99A, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
147 	{ 0x10F5, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
148 	{ 0x10F1, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
149 	{ 0x111D, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
150 	{ 0x1119, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
151 };
152 
153 static const PalSpriteID _bridge_sprite_table_5_3[] = {
154 	{  0x9AB, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
155 	{  0x9A7, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
156 	{  0x9A1, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
157 	{  0x999, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
158 	{ 0x10F4, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
159 	{ 0x10F0, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
160 	{ 0x111C, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
161 	{ 0x1118, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
162 };
163 
164 static const PalSpriteID _bridge_sprite_table_5_4[] = {
165 	{  0x9B6, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
166 	{  0x9B5, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
167 	{  0x9B8, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
168 	{  0x9B7, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
169 	{ 0x10F7, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
170 	{ 0x10F6, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
171 	{ 0x111F, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
172 	{ 0x111E, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
173 };
174 
175 static const PalSpriteID _bridge_sprite_table_5_5[] = {
176 	{  0x9BD, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
177 	{  0x9BE, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
178 	{  0x9BF, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
179 	{  0x9C0, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
180 	{ 0x10F8, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
181 	{ 0x10F9, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
182 	{ 0x1120, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
183 	{ 0x1121, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {       0x0, PAL_NONE },
184 };
185 
186 static const PalSpriteID _bridge_sprite_table_5_6[] = {
187 	{  0x986, PAL_NONE }, {  0x988, PAL_NONE }, {  0x985, PAL_NONE }, {  0x987, PAL_NONE },
188 	{  0x98A, PAL_NONE }, {  0x98C, PAL_NONE }, {  0x989, PAL_NONE }, {  0x98B, PAL_NONE },
189 	{  0x98E, PALETTE_TO_STRUCT_YELLOW }, {  0x990, PALETTE_TO_STRUCT_YELLOW }, {  0x98D, PALETTE_TO_STRUCT_YELLOW }, {  0x98F, PALETTE_TO_STRUCT_YELLOW },
190 	{  0x992, PALETTE_TO_STRUCT_YELLOW }, {  0x994, PALETTE_TO_STRUCT_YELLOW }, {  0x991, PALETTE_TO_STRUCT_YELLOW }, {  0x993, PALETTE_TO_STRUCT_YELLOW },
191 	{ 0x10E7, PALETTE_TO_STRUCT_YELLOW }, { 0x10E9, PALETTE_TO_STRUCT_YELLOW }, { 0x10E6, PALETTE_TO_STRUCT_YELLOW }, { 0x10E8, PALETTE_TO_STRUCT_YELLOW },
192 	{ 0x10EB, PALETTE_TO_STRUCT_YELLOW }, { 0x10ED, PALETTE_TO_STRUCT_YELLOW }, { 0x10EA, PALETTE_TO_STRUCT_YELLOW }, { 0x10EC, PALETTE_TO_STRUCT_YELLOW },
193 	{ 0x110F, PALETTE_TO_STRUCT_YELLOW }, { 0x1111, PALETTE_TO_STRUCT_YELLOW }, { 0x110E, PALETTE_TO_STRUCT_YELLOW }, { 0x1110, PALETTE_TO_STRUCT_YELLOW },
194 	{ 0x1113, PALETTE_TO_STRUCT_YELLOW }, { 0x1115, PALETTE_TO_STRUCT_YELLOW }, { 0x1112, PALETTE_TO_STRUCT_YELLOW }, { 0x1114, PALETTE_TO_STRUCT_YELLOW },
195 };
196 
197 static const PalSpriteID _bridge_sprite_table_6_0[] = {
198 	{  0x9CD, PAL_NONE }, {  0x9D9, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
199 	{  0x9CE, PAL_NONE }, {  0x9DA, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
200 	{  0x9D3, PAL_NONE }, {  0x9D9, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
201 	{  0x9D4, PAL_NONE }, {  0x9DA, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
202 	{ 0x10FC, PAL_NONE }, {  0x9D9, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
203 	{ 0x10FD, PAL_NONE }, {  0x9DA, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
204 	{ 0x1124, PAL_NONE }, {  0x9D9, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
205 	{ 0x1125, PAL_NONE }, {  0x9DA, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
206 };
207 
208 static const PalSpriteID _bridge_sprite_table_6_1[] = {
209 	{  0x9CB, PAL_NONE }, {  0x9D7, PAL_NONE }, {  0x9DD, PAL_NONE }, {    0x0, PAL_NONE },
210 	{  0x9D0, PAL_NONE }, {  0x9DC, PAL_NONE }, {  0x9E0, PAL_NONE }, {    0x0, PAL_NONE },
211 	{  0x9D1, PAL_NONE }, {  0x9D7, PAL_NONE }, {  0x9DD, PAL_NONE }, {    0x0, PAL_NONE },
212 	{  0x9D6, PAL_NONE }, {  0x9DC, PAL_NONE }, {  0x9E0, PAL_NONE }, {    0x0, PAL_NONE },
213 	{ 0x10FA, PAL_NONE }, {  0x9D7, PAL_NONE }, {  0x9DD, PAL_NONE }, {    0x0, PAL_NONE },
214 	{ 0x10FF, PAL_NONE }, {  0x9DC, PAL_NONE }, {  0x9E0, PAL_NONE }, {    0x0, PAL_NONE },
215 	{ 0x1122, PAL_NONE }, {  0x9D7, PAL_NONE }, {  0x9DD, PAL_NONE }, {    0x0, PAL_NONE },
216 	{ 0x1127, PAL_NONE }, {  0x9DC, PAL_NONE }, {  0x9E0, PAL_NONE }, {    0x0, PAL_NONE },
217 };
218 
219 static const PalSpriteID _bridge_sprite_table_6_2[] = {
220 	{  0x9CC, PAL_NONE }, {  0x9D8, PAL_NONE }, {  0x9DE, PAL_NONE }, {    0x0, PAL_NONE },
221 	{  0x9CF, PAL_NONE }, {  0x9DB, PAL_NONE }, {  0x9DF, PAL_NONE }, {    0x0, PAL_NONE },
222 	{  0x9D2, PAL_NONE }, {  0x9D8, PAL_NONE }, {  0x9DE, PAL_NONE }, {    0x0, PAL_NONE },
223 	{  0x9D5, PAL_NONE }, {  0x9DB, PAL_NONE }, {  0x9DF, PAL_NONE }, {    0x0, PAL_NONE },
224 	{ 0x10FB, PAL_NONE }, {  0x9D8, PAL_NONE }, {  0x9DE, PAL_NONE }, {    0x0, PAL_NONE },
225 	{ 0x10FE, PAL_NONE }, {  0x9DB, PAL_NONE }, {  0x9DF, PAL_NONE }, {    0x0, PAL_NONE },
226 	{ 0x1123, PAL_NONE }, {  0x9D8, PAL_NONE }, {  0x9DE, PAL_NONE }, {    0x0, PAL_NONE },
227 	{ 0x1126, PAL_NONE }, {  0x9DB, PAL_NONE }, {  0x9DF, PAL_NONE }, {    0x0, PAL_NONE },
228 };
229 
230 static const PalSpriteID _bridge_sprite_table_6_3[] = {
231 	{  0x986, PAL_NONE }, {  0x988, PAL_NONE }, {  0x985, PAL_NONE }, {  0x987, PAL_NONE },
232 	{  0x98A, PAL_NONE }, {  0x98C, PAL_NONE }, {  0x989, PAL_NONE }, {  0x98B, PAL_NONE },
233 	{  0x98E, PAL_NONE }, {  0x990, PAL_NONE }, {  0x98D, PAL_NONE }, {  0x98F, PAL_NONE },
234 	{  0x992, PAL_NONE }, {  0x994, PAL_NONE }, {  0x991, PAL_NONE }, {  0x993, PAL_NONE },
235 	{ 0x10E7, PAL_NONE }, { 0x10E9, PAL_NONE }, { 0x10E6, PAL_NONE }, { 0x10E8, PAL_NONE },
236 	{ 0x10EB, PAL_NONE }, { 0x10ED, PAL_NONE }, { 0x10EA, PAL_NONE }, { 0x10EC, PAL_NONE },
237 	{ 0x110F, PAL_NONE }, { 0x1111, PAL_NONE }, { 0x110E, PAL_NONE }, { 0x1110, PAL_NONE },
238 	{ 0x1113, PAL_NONE }, { 0x1115, PAL_NONE }, { 0x1112, PAL_NONE }, { 0x1114, PAL_NONE },
239 };
240 
241 static const PalSpriteID _bridge_sprite_table_7_0[] = {
242 	{  0x9CD, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
243 	{  0x9CE, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
244 	{  0x9D3, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
245 	{  0x9D4, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
246 	{ 0x10FC, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
247 	{ 0x10FD, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
248 	{ 0x1124, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
249 	{ 0x1125, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
250 };
251 
252 static const PalSpriteID _bridge_sprite_table_7_1[] = {
253 	{  0x9CB, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
254 	{  0x9D0, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
255 	{  0x9D1, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
256 	{  0x9D6, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
257 	{ 0x10FA, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
258 	{ 0x10FF, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
259 	{ 0x1122, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
260 	{ 0x1127, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
261 };
262 
263 static const PalSpriteID _bridge_sprite_table_7_2[] = {
264 	{  0x9CC, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
265 	{  0x9CF, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
266 	{  0x9D2, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
267 	{  0x9D5, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
268 	{ 0x10FB, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
269 	{ 0x10FE, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
270 	{ 0x1123, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
271 	{ 0x1126, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, {       0x0, PAL_NONE },
272 };
273 
274 static const PalSpriteID _bridge_sprite_table_7_3[] = {
275 	{  0x986, PAL_NONE }, {  0x988, PAL_NONE }, {  0x985, PAL_NONE }, {  0x987, PAL_NONE },
276 	{  0x98A, PAL_NONE }, {  0x98C, PAL_NONE }, {  0x989, PAL_NONE }, {  0x98B, PAL_NONE },
277 	{  0x98E, PALETTE_TO_STRUCT_BROWN }, {  0x990, PALETTE_TO_STRUCT_BROWN }, {  0x98D, PALETTE_TO_STRUCT_BROWN }, {  0x98F, PALETTE_TO_STRUCT_BROWN },
278 	{  0x992, PALETTE_TO_STRUCT_BROWN }, {  0x994, PALETTE_TO_STRUCT_BROWN }, {  0x991, PALETTE_TO_STRUCT_BROWN }, {  0x993, PALETTE_TO_STRUCT_BROWN },
279 	{ 0x10E7, PALETTE_TO_STRUCT_BROWN }, { 0x10E9, PALETTE_TO_STRUCT_BROWN }, { 0x10E6, PALETTE_TO_STRUCT_BROWN }, { 0x10E8, PALETTE_TO_STRUCT_BROWN },
280 	{ 0x10EB, PALETTE_TO_STRUCT_BROWN }, { 0x10ED, PALETTE_TO_STRUCT_BROWN }, { 0x10EA, PALETTE_TO_STRUCT_BROWN }, { 0x10EC, PALETTE_TO_STRUCT_BROWN },
281 	{ 0x110F, PALETTE_TO_STRUCT_BROWN }, { 0x1111, PALETTE_TO_STRUCT_BROWN }, { 0x110E, PALETTE_TO_STRUCT_BROWN }, { 0x1110, PALETTE_TO_STRUCT_BROWN },
282 	{ 0x1113, PALETTE_TO_STRUCT_BROWN }, { 0x1115, PALETTE_TO_STRUCT_BROWN }, { 0x1112, PALETTE_TO_STRUCT_BROWN }, { 0x1114, PALETTE_TO_STRUCT_BROWN },
283 };
284 
285 static const PalSpriteID _bridge_sprite_table_8_0[] = {
286 	{  0x9CD, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
287 	{  0x9CE, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
288 	{  0x9D3, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
289 	{  0x9D4, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
290 	{ 0x10FC, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
291 	{ 0x10FD, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
292 	{ 0x1124, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
293 	{ 0x1125, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
294 };
295 
296 static const PalSpriteID _bridge_sprite_table_8_1[] = {
297 	{  0x9CB, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
298 	{  0x9D0, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
299 	{  0x9D1, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
300 	{  0x9D6, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
301 	{ 0x10FA, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
302 	{ 0x10FF, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
303 	{ 0x1122, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
304 	{ 0x1127, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
305 };
306 
307 static const PalSpriteID _bridge_sprite_table_8_2[] = {
308 	{  0x9CC, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
309 	{  0x9CF, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
310 	{  0x9D2, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
311 	{  0x9D5, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
312 	{ 0x10FB, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
313 	{ 0x10FE, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
314 	{ 0x1123, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
315 	{ 0x1126, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, {       0x0, PAL_NONE },
316 };
317 
318 static const PalSpriteID _bridge_sprite_table_8_3[] = {
319 	{  0x986, PAL_NONE }, {  0x988, PAL_NONE }, {  0x985, PAL_NONE }, {  0x987, PAL_NONE },
320 	{  0x98A, PAL_NONE }, {  0x98C, PAL_NONE }, {  0x989, PAL_NONE }, {  0x98B, PAL_NONE },
321 	{  0x98E, PALETTE_TO_STRUCT_RED }, {  0x990, PALETTE_TO_STRUCT_RED }, {  0x98D, PALETTE_TO_STRUCT_RED }, {  0x98F, PALETTE_TO_STRUCT_RED },
322 	{  0x992, PALETTE_TO_STRUCT_RED }, {  0x994, PALETTE_TO_STRUCT_RED }, {  0x991, PALETTE_TO_STRUCT_RED }, {  0x993, PALETTE_TO_STRUCT_RED },
323 	{ 0x10E7, PALETTE_TO_STRUCT_RED }, { 0x10E9, PALETTE_TO_STRUCT_RED }, { 0x10E6, PALETTE_TO_STRUCT_RED }, { 0x10E8, PALETTE_TO_STRUCT_RED },
324 	{ 0x10EB, PALETTE_TO_STRUCT_RED }, { 0x10ED, PALETTE_TO_STRUCT_RED }, { 0x10EA, PALETTE_TO_STRUCT_RED }, { 0x10EC, PALETTE_TO_STRUCT_RED },
325 	{ 0x110F, PALETTE_TO_STRUCT_RED }, { 0x1111, PALETTE_TO_STRUCT_RED }, { 0x110E, PALETTE_TO_STRUCT_RED }, { 0x1110, PALETTE_TO_STRUCT_RED },
326 	{ 0x1113, PALETTE_TO_STRUCT_RED }, { 0x1115, PALETTE_TO_STRUCT_RED }, { 0x1112, PALETTE_TO_STRUCT_RED }, { 0x1114, PALETTE_TO_STRUCT_RED },
327 };
328 
329 static const PalSpriteID _bridge_sprite_table_wood_middle[] = {
330 	MN( SPR_BTWDN_RAIL_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
331 	MN( SPR_BTWDN_RAIL_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
332 	MN( SPR_BTWDN_ROAD_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
333 	MN( SPR_BTWDN_ROAD_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
334 	MN( SPR_BTWDN_MONO_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
335 	MN( SPR_BTWDN_MONO_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
336 	MN( SPR_BTWDN_MGLV_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
337 	MN( SPR_BTWDN_MGLV_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
338 };
339 
340 static const PalSpriteID _bridge_sprite_table_wood_heads[] = {
341 	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 ),
342 	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    ),
343 	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 ),
344 	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    ),
345 	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 ),
346 	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    ),
347 	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 ),
348 	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    ),
349 };
350 
351 static const PalSpriteID _bridge_sprite_table_concrete_middle[] = {
352 	MR( SPR_BTCON_RAIL_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
353 	MR( SPR_BTCON_RAIL_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
354 	MR( SPR_BTCON_ROAD_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
355 	MR( SPR_BTCON_ROAD_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
356 	MR( SPR_BTCON_MONO_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
357 	MR( SPR_BTCON_MONO_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
358 	MR( SPR_BTCON_MGLV_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
359 	MR( SPR_BTCON_MGLV_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
360 };
361 
362 static const PalSpriteID _bridge_sprite_table_concrete_heads[] = {
363 	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 ),
364 	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    ),
365 	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 ),
366 	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    ),
367 	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 ),
368 	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    ),
369 	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 ),
370 	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    ),
371 };
372 
373 static const PalSpriteID _bridge_sprite_table_archgirder_middle[] = {
374 	MN( SPR_BTSGA_RAIL_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
375 	MN( SPR_BTSGA_RAIL_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
376 	MN( SPR_BTSGA_ROAD_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
377 	MN( SPR_BTSGA_ROAD_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
378 	MN( SPR_BTSGA_MONO_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
379 	MN( SPR_BTSGA_MONO_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
380 	MN( SPR_BTSGA_MGLV_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
381 	MN( SPR_BTSGA_MGLV_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
382 };
383 
384 static const PalSpriteID _bridge_sprite_table_archgirder_heads[] = {
385 	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 ),
386 	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    ),
387 	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 ),
388 	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    ),
389 	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 ),
390 	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    ),
391 	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 ),
392 	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    ),
393 };
394 
395 static const PalSpriteID _bridge_sprite_table_concrete_suspended_A[] = {
396 	MC( SPR_BTSUS_RAIL_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
397 	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
398 	MC( SPR_BTSUS_ROAD_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
399 	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
400 	MC( SPR_BTSUS_MONO_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
401 	MC( SPR_BTSUS_MONO_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
402 	MC( SPR_BTSUS_MGLV_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
403 	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
404 };
405 
406 static const PalSpriteID _bridge_sprite_table_concrete_suspended_B[] = {
407 	MC( SPR_BTSUS_RAIL_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
408 	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
409 	MC( SPR_BTSUS_ROAD_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
410 	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
411 	MC( SPR_BTSUS_MONO_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
412 	MC( SPR_BTSUS_MONO_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
413 	MC( SPR_BTSUS_MGLV_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
414 	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
415 };
416 
417 static const PalSpriteID _bridge_sprite_table_concrete_suspended_C[] = {
418 	MC( SPR_BTSUS_RAIL_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
419 	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
420 	MC( SPR_BTSUS_ROAD_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
421 	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
422 	MC( SPR_BTSUS_MONO_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
423 	MC( SPR_BTSUS_MONO_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
424 	MC( SPR_BTSUS_MGLV_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
425 	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
426 };
427 
428 static const PalSpriteID _bridge_sprite_table_concrete_suspended_D[] = {
429 	MC( SPR_BTSUS_RAIL_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
430 	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
431 	MC( SPR_BTSUS_ROAD_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
432 	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
433 	MC( SPR_BTSUS_MONO_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
434 	MC( SPR_BTSUS_MONO_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
435 	MC( SPR_BTSUS_MGLV_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
436 	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
437 };
438 
439 static const PalSpriteID _bridge_sprite_table_concrete_suspended_E[] = {
440 	MC( SPR_BTSUS_RAIL_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
441 	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
442 	MC( SPR_BTSUS_ROAD_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
443 	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
444 	MC( SPR_BTSUS_MONO_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
445 	MC( SPR_BTSUS_MONO_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
446 	MC( SPR_BTSUS_MGLV_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
447 	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
448 };
449 
450 static const PalSpriteID _bridge_sprite_table_concrete_suspended_F[] = {
451 	MC( SPR_BTSUS_RAIL_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
452 	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
453 	MC( SPR_BTSUS_ROAD_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
454 	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
455 	MC( SPR_BTSUS_MONO_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
456 	MC( SPR_BTSUS_MONO_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
457 	MC( SPR_BTSUS_MGLV_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
458 	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
459 };
460 
461 static const PalSpriteID _bridge_sprite_table_concrete_suspended_heads[] = {
462 	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 ),
463 	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    ),
464 	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 ),
465 	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    ),
466 	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 ),
467 	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    ),
468 	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 ),
469 	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    ),
470 };
471 
472 static const PalSpriteID _bridge_sprite_table_9_0[] = {
473 	{  0x9F9, PAL_NONE }, {  0x9FD, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
474 	{  0x9FA, PAL_NONE }, {  0x9FE, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
475 	{  0x9FB, PAL_NONE }, {  0x9FD, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
476 	{  0x9FC, PAL_NONE }, {  0x9FE, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
477 	{ 0x110A, PAL_NONE }, {  0x9FD, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
478 	{ 0x110B, PAL_NONE }, {  0x9FE, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
479 	{ 0x1132, PAL_NONE }, {  0x9FD, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
480 	{ 0x1133, PAL_NONE }, {  0x9FE, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
481 };
482 
483 static const PalSpriteID _bridge_sprite_table_10_0[] = {
484 	{  0xA0B, PAL_NONE }, {  0xA01, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
485 	{  0xA0C, PAL_NONE }, {  0xA02, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
486 	{  0xA11, PAL_NONE }, {  0xA01, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
487 	{  0xA12, PAL_NONE }, {  0xA02, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
488 	{  0xA17, PAL_NONE }, {  0xA01, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
489 	{  0xA18, PAL_NONE }, {  0xA02, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
490 	{  0xA1D, PAL_NONE }, {  0xA01, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
491 	{  0xA1E, PAL_NONE }, {  0xA02, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
492 };
493 
494 static const PalSpriteID _bridge_sprite_table_10_1[] = {
495 	{  0xA09, PAL_NONE }, {  0x9FF, PAL_NONE }, {  0xA05, PAL_NONE }, {    0x0, PAL_NONE },
496 	{  0xA0E, PAL_NONE }, {  0xA04, PAL_NONE }, {  0xA08, PAL_NONE }, {    0x0, PAL_NONE },
497 	{  0xA0F, PAL_NONE }, {  0x9FF, PAL_NONE }, {  0xA05, PAL_NONE }, {    0x0, PAL_NONE },
498 	{  0xA14, PAL_NONE }, {  0xA04, PAL_NONE }, {  0xA08, PAL_NONE }, {    0x0, PAL_NONE },
499 	{  0xA15, PAL_NONE }, {  0x9FF, PAL_NONE }, {  0xA05, PAL_NONE }, {    0x0, PAL_NONE },
500 	{  0xA1A, PAL_NONE }, {  0xA04, PAL_NONE }, {  0xA08, PAL_NONE }, {    0x0, PAL_NONE },
501 	{  0xA1B, PAL_NONE }, {  0x9FF, PAL_NONE }, {  0xA05, PAL_NONE }, {    0x0, PAL_NONE },
502 	{  0xA20, PAL_NONE }, {  0xA04, PAL_NONE }, {  0xA08, PAL_NONE }, {    0x0, PAL_NONE },
503 };
504 
505 static const PalSpriteID _bridge_sprite_table_10_2[] = {
506 	{  0xA0A, PAL_NONE }, {  0xA00, PAL_NONE }, {  0xA06, PAL_NONE }, {    0x0, PAL_NONE },
507 	{  0xA0D, PAL_NONE }, {  0xA03, PAL_NONE }, {  0xA07, PAL_NONE }, {    0x0, PAL_NONE },
508 	{  0xA10, PAL_NONE }, {  0xA00, PAL_NONE }, {  0xA06, PAL_NONE }, {    0x0, PAL_NONE },
509 	{  0xA13, PAL_NONE }, {  0xA03, PAL_NONE }, {  0xA07, PAL_NONE }, {    0x0, PAL_NONE },
510 	{  0xA16, PAL_NONE }, {  0xA00, PAL_NONE }, {  0xA06, PAL_NONE }, {    0x0, PAL_NONE },
511 	{  0xA19, PAL_NONE }, {  0xA03, PAL_NONE }, {  0xA07, PAL_NONE }, {    0x0, PAL_NONE },
512 	{  0xA1C, PAL_NONE }, {  0xA00, PAL_NONE }, {  0xA06, PAL_NONE }, {    0x0, PAL_NONE },
513 	{  0xA1F, PAL_NONE }, {  0xA03, PAL_NONE }, {  0xA07, PAL_NONE }, {    0x0, PAL_NONE },
514 };
515 
516 static const PalSpriteID _bridge_sprite_table_11_0[] = {
517 	{  0xA0B, PALETTE_TO_STRUCT_YELLOW }, {     0xA01, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
518 	{  0xA0C, PALETTE_TO_STRUCT_YELLOW }, {     0xA02, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
519 	{  0xA11, PALETTE_TO_STRUCT_YELLOW }, {     0xA01, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
520 	{  0xA12, PALETTE_TO_STRUCT_YELLOW }, {     0xA02, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
521 	{  0xA17, PALETTE_TO_STRUCT_YELLOW }, {     0xA01, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
522 	{  0xA18, PALETTE_TO_STRUCT_YELLOW }, {     0xA02, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
523 	{  0xA1D, PALETTE_TO_STRUCT_YELLOW }, {     0xA01, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
524 	{  0xA1E, PALETTE_TO_STRUCT_YELLOW }, {     0xA02, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
525 };
526 
527 static const PalSpriteID _bridge_sprite_table_11_1[] = {
528 	{  0xA09, PALETTE_TO_STRUCT_YELLOW }, {     0x9FF, PALETTE_TO_STRUCT_YELLOW }, {     0xA05, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
529 	{  0xA0E, PALETTE_TO_STRUCT_YELLOW }, {     0xA04, PALETTE_TO_STRUCT_YELLOW }, {     0xA08, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
530 	{  0xA0F, PALETTE_TO_STRUCT_YELLOW }, {     0x9FF, PALETTE_TO_STRUCT_YELLOW }, {     0xA05, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
531 	{  0xA14, PALETTE_TO_STRUCT_YELLOW }, {     0xA04, PALETTE_TO_STRUCT_YELLOW }, {     0xA08, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
532 	{  0xA15, PALETTE_TO_STRUCT_YELLOW }, {     0x9FF, PALETTE_TO_STRUCT_YELLOW }, {     0xA05, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
533 	{  0xA1A, PALETTE_TO_STRUCT_YELLOW }, {     0xA04, PALETTE_TO_STRUCT_YELLOW }, {     0xA08, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
534 	{  0xA1B, PALETTE_TO_STRUCT_YELLOW }, {     0x9FF, PALETTE_TO_STRUCT_YELLOW }, {     0xA05, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
535 	{  0xA20, PALETTE_TO_STRUCT_YELLOW }, {     0xA04, PALETTE_TO_STRUCT_YELLOW }, {     0xA08, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
536 };
537 
538 static const PalSpriteID _bridge_sprite_table_11_2[] = {
539 	{  0xA0A, PALETTE_TO_STRUCT_YELLOW }, {     0xA00, PALETTE_TO_STRUCT_YELLOW }, {     0xA06, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
540 	{  0xA0D, PALETTE_TO_STRUCT_YELLOW }, {     0xA03, PALETTE_TO_STRUCT_YELLOW }, {     0xA07, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
541 	{  0xA10, PALETTE_TO_STRUCT_YELLOW }, {     0xA00, PALETTE_TO_STRUCT_YELLOW }, {     0xA06, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
542 	{  0xA13, PALETTE_TO_STRUCT_YELLOW }, {     0xA03, PALETTE_TO_STRUCT_YELLOW }, {     0xA07, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
543 	{  0xA16, PALETTE_TO_STRUCT_YELLOW }, {     0xA00, PALETTE_TO_STRUCT_YELLOW }, {     0xA06, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
544 	{  0xA19, PALETTE_TO_STRUCT_YELLOW }, {     0xA03, PALETTE_TO_STRUCT_YELLOW }, {     0xA07, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
545 	{  0xA1C, PALETTE_TO_STRUCT_YELLOW }, {     0xA00, PALETTE_TO_STRUCT_YELLOW }, {     0xA06, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
546 	{  0xA1F, PALETTE_TO_STRUCT_YELLOW }, {     0xA03, PALETTE_TO_STRUCT_YELLOW }, {     0xA07, PALETTE_TO_STRUCT_YELLOW }, {       0x0, PAL_NONE },
547 };
548 
549 static const PalSpriteID _bridge_sprite_table_12_0[] = {
550 	{  0xA0B, PALETTE_TO_STRUCT_CONCRETE }, {     0xA01, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
551 	{  0xA0C, PALETTE_TO_STRUCT_CONCRETE }, {     0xA02, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
552 	{  0xA11, PALETTE_TO_STRUCT_CONCRETE }, {     0xA01, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
553 	{  0xA12, PALETTE_TO_STRUCT_CONCRETE }, {     0xA02, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
554 	{  0xA17, PALETTE_TO_STRUCT_CONCRETE }, {     0xA01, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
555 	{  0xA18, PALETTE_TO_STRUCT_CONCRETE }, {     0xA02, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
556 	{  0xA1D, PALETTE_TO_STRUCT_CONCRETE }, {     0xA01, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
557 	{  0xA1E, PALETTE_TO_STRUCT_CONCRETE }, {     0xA02, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {    0x0, PAL_NONE },
558 };
559 
560 static const PalSpriteID _bridge_sprite_table_12_1[] = {
561 	{  0xA09, PALETTE_TO_STRUCT_CONCRETE }, {     0x9FF, PALETTE_TO_STRUCT_CONCRETE }, {     0xA05, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
562 	{  0xA0E, PALETTE_TO_STRUCT_CONCRETE }, {     0xA04, PALETTE_TO_STRUCT_CONCRETE }, {     0xA08, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
563 	{  0xA0F, PALETTE_TO_STRUCT_CONCRETE }, {     0x9FF, PALETTE_TO_STRUCT_CONCRETE }, {     0xA05, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
564 	{  0xA14, PALETTE_TO_STRUCT_CONCRETE }, {     0xA04, PALETTE_TO_STRUCT_CONCRETE }, {     0xA08, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
565 	{  0xA15, PALETTE_TO_STRUCT_CONCRETE }, {     0x9FF, PALETTE_TO_STRUCT_CONCRETE }, {     0xA05, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
566 	{  0xA1A, PALETTE_TO_STRUCT_CONCRETE }, {     0xA04, PALETTE_TO_STRUCT_CONCRETE }, {     0xA08, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
567 	{  0xA1B, PALETTE_TO_STRUCT_CONCRETE }, {     0x9FF, PALETTE_TO_STRUCT_CONCRETE }, {     0xA05, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
568 	{  0xA20, PALETTE_TO_STRUCT_CONCRETE }, {     0xA04, PALETTE_TO_STRUCT_CONCRETE }, {     0xA08, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
569 };
570 
571 static const PalSpriteID _bridge_sprite_table_12_2[] = {
572 	{  0xA0A, PALETTE_TO_STRUCT_CONCRETE }, {     0xA00, PALETTE_TO_STRUCT_CONCRETE }, {     0xA06, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
573 	{  0xA0D, PALETTE_TO_STRUCT_CONCRETE }, {     0xA03, PALETTE_TO_STRUCT_CONCRETE }, {     0xA07, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
574 	{  0xA10, PALETTE_TO_STRUCT_CONCRETE }, {     0xA00, PALETTE_TO_STRUCT_CONCRETE }, {     0xA06, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
575 	{  0xA13, PALETTE_TO_STRUCT_CONCRETE }, {     0xA03, PALETTE_TO_STRUCT_CONCRETE }, {     0xA07, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
576 	{  0xA16, PALETTE_TO_STRUCT_CONCRETE }, {     0xA00, PALETTE_TO_STRUCT_CONCRETE }, {     0xA06, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
577 	{  0xA19, PALETTE_TO_STRUCT_CONCRETE }, {     0xA03, PALETTE_TO_STRUCT_CONCRETE }, {     0xA07, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
578 	{  0xA1C, PALETTE_TO_STRUCT_CONCRETE }, {     0xA00, PALETTE_TO_STRUCT_CONCRETE }, {     0xA06, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
579 	{  0xA1F, PALETTE_TO_STRUCT_CONCRETE }, {     0xA03, PALETTE_TO_STRUCT_CONCRETE }, {     0xA07, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
580 };
581 
582 static const PalSpriteID * const _bridge_sprite_table_archgirder[] = {
583 	_bridge_sprite_table_archgirder_middle,
584 	_bridge_sprite_table_archgirder_middle,
585 	_bridge_sprite_table_archgirder_middle,
586 	_bridge_sprite_table_archgirder_middle,
587 	_bridge_sprite_table_archgirder_middle,
588 	_bridge_sprite_table_archgirder_middle,
589 	_bridge_sprite_table_archgirder_heads,
590 };
591 
592 static const PalSpriteID * const _bridge_sprite_table_4[] = {
593 	_bridge_sprite_table_4_0,
594 	_bridge_sprite_table_4_1,
595 	_bridge_sprite_table_4_2,
596 	_bridge_sprite_table_4_3,
597 	_bridge_sprite_table_4_4,
598 	_bridge_sprite_table_4_5,
599 	_bridge_sprite_table_4_6,
600 };
601 
602 static const PalSpriteID * const _bridge_sprite_table_5[] = {
603 	_bridge_sprite_table_5_0,
604 	_bridge_sprite_table_5_1,
605 	_bridge_sprite_table_5_2,
606 	_bridge_sprite_table_5_3,
607 	_bridge_sprite_table_5_4,
608 	_bridge_sprite_table_5_5,
609 	_bridge_sprite_table_5_6,
610 };
611 
612 static const PalSpriteID * const _bridge_sprite_table_concrete_suspended[] = {
613 	_bridge_sprite_table_concrete_suspended_A,
614 	_bridge_sprite_table_concrete_suspended_B,
615 	_bridge_sprite_table_concrete_suspended_C,
616 	_bridge_sprite_table_concrete_suspended_D,
617 	_bridge_sprite_table_concrete_suspended_E,
618 	_bridge_sprite_table_concrete_suspended_F,
619 	_bridge_sprite_table_concrete_suspended_heads,
620 };
621 
622 static const PalSpriteID * const _bridge_sprite_table_6[] = {
623 	_bridge_sprite_table_6_0,
624 	_bridge_sprite_table_6_1,
625 	_bridge_sprite_table_6_2,
626 	_bridge_sprite_table_6_2,
627 	_bridge_sprite_table_6_2,
628 	_bridge_sprite_table_6_2,
629 	_bridge_sprite_table_6_3,
630 };
631 
632 static const PalSpriteID * const _bridge_sprite_table_7[] = {
633 	_bridge_sprite_table_7_0,
634 	_bridge_sprite_table_7_1,
635 	_bridge_sprite_table_7_2,
636 	_bridge_sprite_table_7_2,
637 	_bridge_sprite_table_7_2,
638 	_bridge_sprite_table_7_2,
639 	_bridge_sprite_table_7_3,
640 };
641 
642 static const PalSpriteID * const _bridge_sprite_table_8[] = {
643 	_bridge_sprite_table_8_0,
644 	_bridge_sprite_table_8_1,
645 	_bridge_sprite_table_8_2,
646 	_bridge_sprite_table_8_2,
647 	_bridge_sprite_table_8_2,
648 	_bridge_sprite_table_8_2,
649 	_bridge_sprite_table_8_3,
650 };
651 
652 static const PalSpriteID * const _bridge_sprite_table_wood[] = {
653 	_bridge_sprite_table_wood_middle,
654 	_bridge_sprite_table_wood_middle,
655 	_bridge_sprite_table_wood_middle,
656 	_bridge_sprite_table_wood_middle,
657 	_bridge_sprite_table_wood_middle,
658 	_bridge_sprite_table_wood_middle,
659 	_bridge_sprite_table_wood_heads,
660 };
661 
662 static const PalSpriteID * const _bridge_sprite_table_concrete[] = {
663 	_bridge_sprite_table_concrete_middle,
664 	_bridge_sprite_table_concrete_middle,
665 	_bridge_sprite_table_concrete_middle,
666 	_bridge_sprite_table_concrete_middle,
667 	_bridge_sprite_table_concrete_middle,
668 	_bridge_sprite_table_concrete_middle,
669 	_bridge_sprite_table_concrete_heads,
670 };
671 
672 static const PalSpriteID * const _bridge_sprite_table_9[] = {
673 	_bridge_sprite_table_9_0,
674 	_bridge_sprite_table_9_0,
675 	_bridge_sprite_table_9_0,
676 	_bridge_sprite_table_9_0,
677 	_bridge_sprite_table_9_0,
678 	_bridge_sprite_table_9_0,
679 	_bridge_sprite_table_4_6,
680 };
681 
682 static const PalSpriteID * const _bridge_sprite_table_10[] = {
683 	_bridge_sprite_table_10_0,
684 	_bridge_sprite_table_10_1,
685 	_bridge_sprite_table_10_2,
686 	_bridge_sprite_table_10_2,
687 	_bridge_sprite_table_10_2,
688 	_bridge_sprite_table_10_2,
689 	_bridge_sprite_table_4_6,
690 };
691 
692 static const PalSpriteID * const _bridge_sprite_table_11[] = {
693 	_bridge_sprite_table_11_0,
694 	_bridge_sprite_table_11_1,
695 	_bridge_sprite_table_11_2,
696 	_bridge_sprite_table_11_2,
697 	_bridge_sprite_table_11_2,
698 	_bridge_sprite_table_11_2,
699 	_bridge_sprite_table_5_6,
700 };
701 
702 static const PalSpriteID * const _bridge_sprite_table_12[] = {
703 	_bridge_sprite_table_12_0,
704 	_bridge_sprite_table_12_1,
705 	_bridge_sprite_table_12_2,
706 	_bridge_sprite_table_12_2,
707 	_bridge_sprite_table_12_2,
708 	_bridge_sprite_table_12_2,
709 	_bridge_sprite_table_concrete_suspended_heads,
710 };
711 
712 static const PalSpriteID * const * const _bridge_sprite_table[MAX_BRIDGES] = {
713 	_bridge_sprite_table_wood,
714 	_bridge_sprite_table_concrete,
715 	_bridge_sprite_table_archgirder,
716 	_bridge_sprite_table_concrete_suspended,
717 	_bridge_sprite_table_4,
718 	_bridge_sprite_table_5,
719 	_bridge_sprite_table_6,
720 	_bridge_sprite_table_7,
721 	_bridge_sprite_table_8,
722 	_bridge_sprite_table_9,
723 	_bridge_sprite_table_10,
724 	_bridge_sprite_table_11,
725 	_bridge_sprite_table_12
726 };
727 
728 /**
729  * Describes the data that defines each bridge in the game
730  * @param y   year of availability
731  * @param mnl minimum length (not counting bridge heads)
732  * @param mxl maximum length (not counting bridge heads)
733  * @param p   price multiplier
734  * @param mxs maximum speed allowed (1 unit = 1/1.6 mph = 1 km-ish/h)
735  * @param spr sprite to use in purchase GUI
736  * @param plt palette for the sprite in purchase GUI
737  * @param dsc description of the bridge in purchase GUI
738  * @param nrl description of the rail bridge in query tool
739  * @param nrd description of the road bridge in query tool
740  */
741 #define MBR(y, mnl, mxl, p, mxs, spr, plt, dsc, nrl, nrd) \
742 	{y, mnl, mxl, p, mxs, spr, plt, dsc, { nrl, nrd }, nullptr, 0}
743 
744 const BridgeSpec _orig_bridge[] = {
745 /*
746 	       year of availability
747 	       |  minimum length
748 	       |  |   maximum length
749 	       |  |   |        price multiplier
750 	       |  |   |        |    maximum speed
751 	       |  |   |        |    |  sprite to use in GUI
752 	       |  |   |        |    |  |      palette in GUI
753 	   string with description               name on rail                                         name on road
754 	   |                              |      |                                                    | */
755 	MBR(   0, 0, 0xFFFF,  80,  32, 0xA24, PAL_NONE,
756 	   STR_BRIDGE_NAME_WOODEN,               STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN,              STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN),
757 
758 	MBR(   0, 0,      2, 112,  48, 0xA26, PALETTE_TO_STRUCT_RED,
759 	   STR_BRIDGE_NAME_CONCRETE,             STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE,            STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE),
760 
761 	MBR(1930, 0,      5, 144,  64, 0xA25, PAL_NONE,
762 	   STR_BRIDGE_NAME_GIRDER_STEEL,         STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL,        STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL),
763 
764 	MBR(   0, 2,     10, 168,  80, 0xA22, PALETTE_TO_STRUCT_CONCRETE,
765 	   STR_BRIDGE_NAME_SUSPENSION_CONCRETE,  STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE, STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE),
766 
767 	MBR(1930, 3, 0xFFFF, 185,  96, 0xA22, PAL_NONE,
768 	   STR_BRIDGE_NAME_SUSPENSION_STEEL,     STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL,    STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL),
769 
770 	MBR(1930, 3, 0xFFFF, 192, 112, 0xA22, PALETTE_TO_STRUCT_YELLOW,
771 	   STR_BRIDGE_NAME_SUSPENSION_STEEL,     STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL,    STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL),
772 
773 	MBR(1930, 3,      7, 224, 160, 0xA23, PAL_NONE,
774 	   STR_BRIDGE_NAME_CANTILEVER_STEEL,     STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL,    STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL),
775 
776 	MBR(1930, 3,      8, 232, 208, 0xA23, PALETTE_TO_STRUCT_BROWN,
777 	   STR_BRIDGE_NAME_CANTILEVER_STEEL,     STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL,    STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL),
778 
779 	MBR(1930, 3,      9, 248, 240, 0xA23, PALETTE_TO_STRUCT_RED,
780 	   STR_BRIDGE_NAME_CANTILEVER_STEEL,     STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL,    STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL),
781 
782 	MBR(1930, 0,      2, 240, 256, 0xA27, PAL_NONE,
783 	   STR_BRIDGE_NAME_GIRDER_STEEL,         STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL,        STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL),
784 
785 	MBR(1995, 2, 0xFFFF, 255, 320, 0xA28, PAL_NONE,
786 	   STR_BRIDGE_NAME_TUBULAR_STEEL,        STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL,       STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL),
787 
788 	MBR(2005, 2, 0xFFFF, 380, 512, 0xA28, PALETTE_TO_STRUCT_YELLOW,
789 	   STR_BRIDGE_NAME_TUBULAR_STEEL,        STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL,       STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL),
790 
791 	MBR(2010, 2, 0xFFFF, 510, 608, 0xA28, PALETTE_TO_STRUCT_CONCRETE,
792 	   STR_BRIDGE_TUBULAR_SILICON,           STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL,       STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL)
793 };
794 
795 #undef MBR
796 #undef MN
797 #undef MR
798 #undef MW
799 #undef MC
800