OpenTTD Source 20260815-master-gdf55704e7d
bridge_land.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
6 */
7
8#include "table/strings.h"
9
34
37 {SPR_AQUEDUCT_MIDDLE_X, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_X, PAL_NONE}, {0x0, PAL_NONE}, // Axis::X
38 {SPR_AQUEDUCT_MIDDLE_Y, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_Y, PAL_NONE}, {0x0, PAL_NONE}, // Axis::Y
39};
40
43 {SPR_AQUEDUCT_RAMP_SW, PAL_NONE}, {SPR_AQUEDUCT_RAMP_SE, PAL_NONE}, {SPR_AQUEDUCT_RAMP_NE, PAL_NONE}, {SPR_AQUEDUCT_RAMP_NW, PAL_NONE},
44};
45
46static const PalSpriteID _bridge_sprite_table_suspension_oxide_north[] = {
47 { 0x9A9, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
48 { 0x9A5, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
49 { 0x99D, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
50 { 0x995, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
51 { 0x10F2, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
52 { 0x10EE, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
53 { 0x111A, PAL_NONE }, { 0x99F, PAL_NONE }, { 0x9B1, PAL_NONE }, { 0x0, PAL_NONE },
54 { 0x1116, PAL_NONE }, { 0x997, PAL_NONE }, { 0x9AD, PAL_NONE }, { 0x0, PAL_NONE },
55};
56
57static const PalSpriteID _bridge_sprite_table_suspension_oxide_south[] = {
58 { 0x9AA, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
59 { 0x9A6, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
60 { 0x99E, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
61 { 0x996, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
62 { 0x10F3, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
63 { 0x10EF, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
64 { 0x111B, PAL_NONE }, { 0x9A0, PAL_NONE }, { 0x9B2, PAL_NONE }, { 0x0, PAL_NONE },
65 { 0x1117, PAL_NONE }, { 0x998, PAL_NONE }, { 0x9AE, PAL_NONE }, { 0x0, PAL_NONE },
66};
67
68static const PalSpriteID _bridge_sprite_table_suspension_oxide_inner_north[] = {
69 { 0x9AC, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
70 { 0x9A8, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
71 { 0x9A2, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
72 { 0x99A, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
73 { 0x10F5, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
74 { 0x10F1, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
75 { 0x111D, PAL_NONE }, { 0x9A4, PAL_NONE }, { 0x9B4, PAL_NONE }, { 0x0, PAL_NONE },
76 { 0x1119, PAL_NONE }, { 0x99C, PAL_NONE }, { 0x9B0, PAL_NONE }, { 0x0, PAL_NONE },
77};
78
79static const PalSpriteID _bridge_sprite_table_suspension_oxide_inner_south[] = {
80 { 0x9AB, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
81 { 0x9A7, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
82 { 0x9A1, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
83 { 0x999, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
84 { 0x10F4, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
85 { 0x10F0, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
86 { 0x111C, PAL_NONE }, { 0x9A3, PAL_NONE }, { 0x9B3, PAL_NONE }, { 0x0, PAL_NONE },
87 { 0x1118, PAL_NONE }, { 0x99B, PAL_NONE }, { 0x9AF, PAL_NONE }, { 0x0, PAL_NONE },
88};
89
90static const PalSpriteID _bridge_sprite_table_suspension_oxide_middle_odd[] = {
91 { 0x9B6, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
92 { 0x9B5, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
93 { 0x9B8, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
94 { 0x9B7, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
95 { 0x10F7, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
96 { 0x10F6, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
97 { 0x111F, PAL_NONE }, { 0x9BA, PAL_NONE }, { 0x9BC, PAL_NONE }, { 0x0, PAL_NONE },
98 { 0x111E, PAL_NONE }, { 0x9B9, PAL_NONE }, { 0x9BB, PAL_NONE }, { 0x0, PAL_NONE },
99};
100
101static const PalSpriteID _bridge_sprite_table_suspension_middle_even[] = {
102 { 0x9BD, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
103 { 0x9BE, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
104 { 0x9BF, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
105 { 0x9C0, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
106 { 0x10F8, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
107 { 0x10F9, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
108 { 0x1120, PAL_NONE }, { 0x9C1, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
109 { 0x1121, PAL_NONE }, { 0x9C2, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
110};
111
112static const PalSpriteID _bridge_sprite_table_generic_oxide_heads[] = {
113 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
114 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
115 { 0x98E, PAL_NONE }, { 0x990, PAL_NONE }, { 0x98D, PAL_NONE }, { 0x98F, PAL_NONE },
116 { 0x992, PAL_NONE }, { 0x994, PAL_NONE }, { 0x991, PAL_NONE }, { 0x993, PAL_NONE },
117 { 0x10E7, PAL_NONE }, { 0x10E9, PAL_NONE }, { 0x10E6, PAL_NONE }, { 0x10E8, PAL_NONE },
118 { 0x10EB, PAL_NONE }, { 0x10ED, PAL_NONE }, { 0x10EA, PAL_NONE }, { 0x10EC, PAL_NONE },
119 { 0x110F, PAL_NONE }, { 0x1111, PAL_NONE }, { 0x110E, PAL_NONE }, { 0x1110, PAL_NONE },
120 { 0x1113, PAL_NONE }, { 0x1115, PAL_NONE }, { 0x1112, PAL_NONE }, { 0x1114, PAL_NONE },
121};
122
123static const PalSpriteID _bridge_sprite_table_suspension_yellow_north[] = {
124 { 0x9A9, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
125 { 0x9A5, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
126 { 0x99D, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
127 { 0x995, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
128 { 0x10F2, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
129 { 0x10EE, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
130 { 0x111A, PALETTE_TO_STRUCT_YELLOW }, { 0x99F, PALETTE_TO_STRUCT_YELLOW }, { 0x9B1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
131 { 0x1116, PALETTE_TO_STRUCT_YELLOW }, { 0x997, PALETTE_TO_STRUCT_YELLOW }, { 0x9AD, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
132};
133
134static const PalSpriteID _bridge_sprite_table_suspension_yellow_south[] = {
135 { 0x9AA, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
136 { 0x9A6, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
137 { 0x99E, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
138 { 0x996, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
139 { 0x10F3, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
140 { 0x10EF, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
141 { 0x111B, PALETTE_TO_STRUCT_YELLOW }, { 0x9A0, PALETTE_TO_STRUCT_YELLOW }, { 0x9B2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
142 { 0x1117, PALETTE_TO_STRUCT_YELLOW }, { 0x998, PALETTE_TO_STRUCT_YELLOW }, { 0x9AE, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
143};
144
145static const PalSpriteID _bridge_sprite_table_suspension_yellow_inner_north[] = {
146 { 0x9AC, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
147 { 0x9A8, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
148 { 0x9A2, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
149 { 0x99A, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
150 { 0x10F5, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
151 { 0x10F1, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
152 { 0x111D, PALETTE_TO_STRUCT_YELLOW }, { 0x9A4, PALETTE_TO_STRUCT_YELLOW }, { 0x9B4, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
153 { 0x1119, PALETTE_TO_STRUCT_YELLOW }, { 0x99C, PALETTE_TO_STRUCT_YELLOW }, { 0x9B0, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
154};
155
156static const PalSpriteID _bridge_sprite_table_suspension_yellow_inner_south[] = {
157 { 0x9AB, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
158 { 0x9A7, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
159 { 0x9A1, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
160 { 0x999, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
161 { 0x10F4, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
162 { 0x10F0, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
163 { 0x111C, PALETTE_TO_STRUCT_YELLOW }, { 0x9A3, PALETTE_TO_STRUCT_YELLOW }, { 0x9B3, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
164 { 0x1118, PALETTE_TO_STRUCT_YELLOW }, { 0x99B, PALETTE_TO_STRUCT_YELLOW }, { 0x9AF, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
165};
166
167static const PalSpriteID _bridge_sprite_table_suspension_yellow_middle_odd[] = {
168 { 0x9B6, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
169 { 0x9B5, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
170 { 0x9B8, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
171 { 0x9B7, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
172 { 0x10F7, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
173 { 0x10F6, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
174 { 0x111F, PALETTE_TO_STRUCT_YELLOW }, { 0x9BA, PALETTE_TO_STRUCT_YELLOW }, { 0x9BC, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
175 { 0x111E, PALETTE_TO_STRUCT_YELLOW }, { 0x9B9, PALETTE_TO_STRUCT_YELLOW }, { 0x9BB, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
176};
177
178static const PalSpriteID _bridge_sprite_table_suspension_yellow_middle_even[] = {
179 { 0x9BD, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
180 { 0x9BE, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
181 { 0x9BF, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
182 { 0x9C0, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
183 { 0x10F8, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
184 { 0x10F9, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
185 { 0x1120, PALETTE_TO_STRUCT_YELLOW }, { 0x9C1, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
186 { 0x1121, PALETTE_TO_STRUCT_YELLOW }, { 0x9C2, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
187};
188
189static const PalSpriteID _bridge_sprite_table_generic_yellow_heads[] = {
190 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
191 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
198};
199
200static const PalSpriteID _bridge_sprite_table_cantilever_oxide_north[] = {
201 { 0x9CD, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
202 { 0x9CE, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
203 { 0x9D3, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
204 { 0x9D4, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
205 { 0x10FC, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
206 { 0x10FD, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
207 { 0x1124, PAL_NONE }, { 0x9D9, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
208 { 0x1125, PAL_NONE }, { 0x9DA, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
209};
210
211static const PalSpriteID _bridge_sprite_table_cantilever_oxide_south[] = {
212 { 0x9CB, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
213 { 0x9D0, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
214 { 0x9D1, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
215 { 0x9D6, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
216 { 0x10FA, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
217 { 0x10FF, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
218 { 0x1122, PAL_NONE }, { 0x9D7, PAL_NONE }, { 0x9DD, PAL_NONE }, { 0x0, PAL_NONE },
219 { 0x1127, PAL_NONE }, { 0x9DC, PAL_NONE }, { 0x9E0, PAL_NONE }, { 0x0, PAL_NONE },
220};
221
222static const PalSpriteID _bridge_sprite_table_cantilever_oxide_middle[] = {
223 { 0x9CC, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
224 { 0x9CF, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
225 { 0x9D2, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
226 { 0x9D5, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
227 { 0x10FB, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
228 { 0x10FE, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
229 { 0x1123, PAL_NONE }, { 0x9D8, PAL_NONE }, { 0x9DE, PAL_NONE }, { 0x0, PAL_NONE },
230 { 0x1126, PAL_NONE }, { 0x9DB, PAL_NONE }, { 0x9DF, PAL_NONE }, { 0x0, PAL_NONE },
231};
232
233static const PalSpriteID _bridge_sprite_table_cantilever_oxide_heads[] = {
234 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
235 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
236 { 0x98E, PAL_NONE }, { 0x990, PAL_NONE }, { 0x98D, PAL_NONE }, { 0x98F, PAL_NONE },
237 { 0x992, PAL_NONE }, { 0x994, PAL_NONE }, { 0x991, PAL_NONE }, { 0x993, PAL_NONE },
238 { 0x10E7, PAL_NONE }, { 0x10E9, PAL_NONE }, { 0x10E6, PAL_NONE }, { 0x10E8, PAL_NONE },
239 { 0x10EB, PAL_NONE }, { 0x10ED, PAL_NONE }, { 0x10EA, PAL_NONE }, { 0x10EC, PAL_NONE },
240 { 0x110F, PAL_NONE }, { 0x1111, PAL_NONE }, { 0x110E, PAL_NONE }, { 0x1110, PAL_NONE },
241 { 0x1113, PAL_NONE }, { 0x1115, PAL_NONE }, { 0x1112, PAL_NONE }, { 0x1114, PAL_NONE },
242};
243
244static const PalSpriteID _bridge_sprite_table_cantilever_brown_north[] = {
245 { 0x9CD, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
246 { 0x9CE, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
247 { 0x9D3, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
248 { 0x9D4, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
249 { 0x10FC, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
250 { 0x10FD, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
251 { 0x1124, PALETTE_TO_STRUCT_BROWN }, { 0x9D9, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
252 { 0x1125, PALETTE_TO_STRUCT_BROWN }, { 0x9DA, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
253};
254
255static const PalSpriteID _bridge_sprite_table_cantilever_brown_south[] = {
256 { 0x9CB, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
257 { 0x9D0, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
258 { 0x9D1, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
259 { 0x9D6, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
260 { 0x10FA, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
261 { 0x10FF, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
262 { 0x1122, PALETTE_TO_STRUCT_BROWN }, { 0x9D7, PALETTE_TO_STRUCT_BROWN }, { 0x9DD, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
263 { 0x1127, PALETTE_TO_STRUCT_BROWN }, { 0x9DC, PALETTE_TO_STRUCT_BROWN }, { 0x9E0, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
264};
265
266static const PalSpriteID _bridge_sprite_table_cantilever_brown_middle[] = {
267 { 0x9CC, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
268 { 0x9CF, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
269 { 0x9D2, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
270 { 0x9D5, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
271 { 0x10FB, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
272 { 0x10FE, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
273 { 0x1123, PALETTE_TO_STRUCT_BROWN }, { 0x9D8, PALETTE_TO_STRUCT_BROWN }, { 0x9DE, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
274 { 0x1126, PALETTE_TO_STRUCT_BROWN }, { 0x9DB, PALETTE_TO_STRUCT_BROWN }, { 0x9DF, PALETTE_TO_STRUCT_BROWN }, { 0x0, PAL_NONE },
275};
276
277static const PalSpriteID _bridge_sprite_table_cantilever_brown_heads[] = {
278 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
279 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
286};
287
288static const PalSpriteID _bridge_sprite_table_cantilever_red_north[] = {
289 { 0x9CD, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
290 { 0x9CE, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
291 { 0x9D3, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
292 { 0x9D4, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
293 { 0x10FC, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
294 { 0x10FD, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
295 { 0x1124, PALETTE_TO_STRUCT_RED }, { 0x9D9, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
296 { 0x1125, PALETTE_TO_STRUCT_RED }, { 0x9DA, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
297};
298
299static const PalSpriteID _bridge_sprite_table_cantilever_red_south[] = {
300 { 0x9CB, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
301 { 0x9D0, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
302 { 0x9D1, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
303 { 0x9D6, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
304 { 0x10FA, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
305 { 0x10FF, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
306 { 0x1122, PALETTE_TO_STRUCT_RED }, { 0x9D7, PALETTE_TO_STRUCT_RED }, { 0x9DD, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
307 { 0x1127, PALETTE_TO_STRUCT_RED }, { 0x9DC, PALETTE_TO_STRUCT_RED }, { 0x9E0, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
308};
309
310static const PalSpriteID _bridge_sprite_table_cantilever_red_middle[] = {
311 { 0x9CC, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
312 { 0x9CF, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
313 { 0x9D2, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
314 { 0x9D5, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
315 { 0x10FB, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
316 { 0x10FE, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
317 { 0x1123, PALETTE_TO_STRUCT_RED }, { 0x9D8, PALETTE_TO_STRUCT_RED }, { 0x9DE, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
318 { 0x1126, PALETTE_TO_STRUCT_RED }, { 0x9DB, PALETTE_TO_STRUCT_RED }, { 0x9DF, PALETTE_TO_STRUCT_RED }, { 0x0, PAL_NONE },
319};
320
321static const PalSpriteID _bridge_sprite_table_cantilever_red_heads[] = {
322 { 0x986, PAL_NONE }, { 0x988, PAL_NONE }, { 0x985, PAL_NONE }, { 0x987, PAL_NONE },
323 { 0x98A, PAL_NONE }, { 0x98C, PAL_NONE }, { 0x989, PAL_NONE }, { 0x98B, PAL_NONE },
324 { 0x98E, PALETTE_TO_STRUCT_RED }, { 0x990, PALETTE_TO_STRUCT_RED }, { 0x98D, PALETTE_TO_STRUCT_RED }, { 0x98F, PALETTE_TO_STRUCT_RED },
325 { 0x992, PALETTE_TO_STRUCT_RED }, { 0x994, PALETTE_TO_STRUCT_RED }, { 0x991, PALETTE_TO_STRUCT_RED }, { 0x993, PALETTE_TO_STRUCT_RED },
326 { 0x10E7, PALETTE_TO_STRUCT_RED }, { 0x10E9, PALETTE_TO_STRUCT_RED }, { 0x10E6, PALETTE_TO_STRUCT_RED }, { 0x10E8, PALETTE_TO_STRUCT_RED },
327 { 0x10EB, PALETTE_TO_STRUCT_RED }, { 0x10ED, PALETTE_TO_STRUCT_RED }, { 0x10EA, PALETTE_TO_STRUCT_RED }, { 0x10EC, PALETTE_TO_STRUCT_RED },
328 { 0x110F, PALETTE_TO_STRUCT_RED }, { 0x1111, PALETTE_TO_STRUCT_RED }, { 0x110E, PALETTE_TO_STRUCT_RED }, { 0x1110, PALETTE_TO_STRUCT_RED },
329 { 0x1113, PALETTE_TO_STRUCT_RED }, { 0x1115, PALETTE_TO_STRUCT_RED }, { 0x1112, PALETTE_TO_STRUCT_RED }, { 0x1114, PALETTE_TO_STRUCT_RED },
330};
331
332static const PalSpriteID _bridge_sprite_table_wood_middle[] = {
333 { SPR_BTWDN_RAIL_X_REAR, PAL_NONE }, { SPR_BTWDN_X_FRONT, PAL_NONE }, { SPR_BTWDN_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
334 { SPR_BTWDN_RAIL_Y_REAR, PAL_NONE }, { SPR_BTWDN_Y_FRONT, PAL_NONE }, { SPR_BTWDN_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
335 { SPR_BTWDN_ROAD_X_REAR, PAL_NONE }, { SPR_BTWDN_X_FRONT, PAL_NONE }, { SPR_BTWDN_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
336 { SPR_BTWDN_ROAD_Y_REAR, PAL_NONE }, { SPR_BTWDN_Y_FRONT, PAL_NONE }, { SPR_BTWDN_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
337 { SPR_BTWDN_MONO_X_REAR, PAL_NONE }, { SPR_BTWDN_X_FRONT, PAL_NONE }, { SPR_BTWDN_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
338 { SPR_BTWDN_MONO_Y_REAR, PAL_NONE }, { SPR_BTWDN_Y_FRONT, PAL_NONE }, { SPR_BTWDN_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
339 { SPR_BTWDN_MGLV_X_REAR, PAL_NONE }, { SPR_BTWDN_X_FRONT, PAL_NONE }, { SPR_BTWDN_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
340 { SPR_BTWDN_MGLV_Y_REAR, PAL_NONE }, { SPR_BTWDN_Y_FRONT, PAL_NONE }, { SPR_BTWDN_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
341};
342
343static const PalSpriteID _bridge_sprite_table_wood_heads[] = {
345 { SPR_BTWDN_RAIL_RAMP_X_DOWN, PAL_NONE }, { SPR_BTWDN_RAIL_RAMP_Y_DOWN, PAL_NONE }, { SPR_BTWDN_RAIL_RAMP_X_UP, PAL_NONE }, { SPR_BTWDN_RAIL_RAMP_Y_UP, PAL_NONE },
347 { SPR_BTWDN_ROAD_RAMP_X_DOWN, PAL_NONE }, { SPR_BTWDN_ROAD_RAMP_Y_DOWN, PAL_NONE }, { SPR_BTWDN_ROAD_RAMP_X_UP, PAL_NONE }, { SPR_BTWDN_ROAD_RAMP_Y_UP, PAL_NONE },
349 { SPR_BTWDN_MONO_RAMP_X_DOWN, PAL_NONE }, { SPR_BTWDN_MONO_RAMP_Y_DOWN, PAL_NONE }, { SPR_BTWDN_MONO_RAMP_X_UP, PAL_NONE }, { SPR_BTWDN_MONO_RAMP_Y_UP, PAL_NONE },
351 { SPR_BTWDN_MGLV_RAMP_X_DOWN, PAL_NONE }, { SPR_BTWDN_MGLV_RAMP_Y_DOWN, PAL_NONE }, { SPR_BTWDN_MGLV_RAMP_X_UP, PAL_NONE }, { SPR_BTWDN_MGLV_RAMP_Y_UP, PAL_NONE },
352};
353
354static const PalSpriteID _bridge_sprite_table_concrete_middle[] = {
363};
364
365static const PalSpriteID _bridge_sprite_table_concrete_heads[] = {
367 { SPR_BTGEN_RAIL_RAMP_X_DOWN, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_Y_DOWN, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_X_UP, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_Y_UP, PAL_NONE },
374};
375
376static const PalSpriteID _bridge_sprite_table_archgirder_middle[] = {
377 { SPR_BTSGA_RAIL_X_REAR, PAL_NONE }, { SPR_BTSGA_X_FRONT, PAL_NONE }, { SPR_BTSGA_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
378 { SPR_BTSGA_RAIL_Y_REAR, PAL_NONE }, { SPR_BTSGA_Y_FRONT, PAL_NONE }, { SPR_BTSGA_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
379 { SPR_BTSGA_ROAD_X_REAR, PAL_NONE }, { SPR_BTSGA_X_FRONT, PAL_NONE }, { SPR_BTSGA_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
380 { SPR_BTSGA_ROAD_Y_REAR, PAL_NONE }, { SPR_BTSGA_Y_FRONT, PAL_NONE }, { SPR_BTSGA_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
381 { SPR_BTSGA_MONO_X_REAR, PAL_NONE }, { SPR_BTSGA_X_FRONT, PAL_NONE }, { SPR_BTSGA_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
382 { SPR_BTSGA_MONO_Y_REAR, PAL_NONE }, { SPR_BTSGA_Y_FRONT, PAL_NONE }, { SPR_BTSGA_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
383 { SPR_BTSGA_MGLV_X_REAR, PAL_NONE }, { SPR_BTSGA_X_FRONT, PAL_NONE }, { SPR_BTSGA_X_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
384 { SPR_BTSGA_MGLV_Y_REAR, PAL_NONE }, { SPR_BTSGA_Y_FRONT, PAL_NONE }, { SPR_BTSGA_Y_PILLAR, PAL_NONE }, { 0x0, PAL_NONE },
385};
386
387static const PalSpriteID _bridge_sprite_table_archgirder_heads[] = {
389 { SPR_BTGEN_RAIL_RAMP_X_DOWN, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_Y_DOWN, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_X_UP, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_Y_UP, PAL_NONE },
396};
397
398static const PalSpriteID _bridge_sprite_table_suspension_concrete_north[] = {
407};
408
409static const PalSpriteID _bridge_sprite_table_suspension_concrete_south[] = {
418};
419
420static const PalSpriteID _bridge_sprite_table_suspension_concrete_inner_north[] = {
429};
430
431static const PalSpriteID _bridge_sprite_table_suspension_concrete_inner_south[] = {
440};
441
442static const PalSpriteID _bridge_sprite_table_suspension_concrete_middle_odd[] = {
451};
452
453static const PalSpriteID _bridge_sprite_table_suspension_concrete_middle_even[] = {
462};
463
464static const PalSpriteID _bridge_sprite_table_generic_concrete_heads[] = {
466 { SPR_BTGEN_RAIL_RAMP_X_DOWN, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_Y_DOWN, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_X_UP, PAL_NONE }, { SPR_BTGEN_RAIL_RAMP_Y_UP, PAL_NONE },
473};
474
475static const PalSpriteID _bridge_sprite_table_girder_middle[] = {
476 { 0x9F9, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
477 { 0x9FA, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
478 { 0x9FB, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
479 { 0x9FC, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
480 { 0x110A, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
481 { 0x110B, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
482 { 0x1132, PAL_NONE }, { 0x9FD, PAL_NONE }, { 0x9C9, PAL_NONE }, { 0x0, PAL_NONE },
483 { 0x1133, PAL_NONE }, { 0x9FE, PAL_NONE }, { 0x9CA, PAL_NONE }, { 0x0, PAL_NONE },
484};
485
486static const PalSpriteID _bridge_sprite_table_tubular_oxide_north[] = {
487 { 0xA0B, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
488 { 0xA0C, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
489 { 0xA11, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
490 { 0xA12, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
491 { 0xA17, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
492 { 0xA18, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
493 { 0xA1D, PAL_NONE }, { 0xA01, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
494 { 0xA1E, PAL_NONE }, { 0xA02, PAL_NONE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
495};
496
497static const PalSpriteID _bridge_sprite_table_tubular_oxide_south[] = {
498 { 0xA09, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
499 { 0xA0E, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
500 { 0xA0F, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
501 { 0xA14, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
502 { 0xA15, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
503 { 0xA1A, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
504 { 0xA1B, PAL_NONE }, { 0x9FF, PAL_NONE }, { 0xA05, PAL_NONE }, { 0x0, PAL_NONE },
505 { 0xA20, PAL_NONE }, { 0xA04, PAL_NONE }, { 0xA08, PAL_NONE }, { 0x0, PAL_NONE },
506};
507
508static const PalSpriteID _bridge_sprite_table_tubular_oxide_middle[] = {
509 { 0xA0A, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
510 { 0xA0D, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
511 { 0xA10, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
512 { 0xA13, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
513 { 0xA16, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
514 { 0xA19, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
515 { 0xA1C, PAL_NONE }, { 0xA00, PAL_NONE }, { 0xA06, PAL_NONE }, { 0x0, PAL_NONE },
516 { 0xA1F, PAL_NONE }, { 0xA03, PAL_NONE }, { 0xA07, PAL_NONE }, { 0x0, PAL_NONE },
517};
518
519static const PalSpriteID _bridge_sprite_table_tubular_yellow_north[] = {
520 { 0xA0B, PALETTE_TO_STRUCT_YELLOW }, { 0xA01, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
521 { 0xA0C, PALETTE_TO_STRUCT_YELLOW }, { 0xA02, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
522 { 0xA11, PALETTE_TO_STRUCT_YELLOW }, { 0xA01, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
523 { 0xA12, PALETTE_TO_STRUCT_YELLOW }, { 0xA02, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
524 { 0xA17, PALETTE_TO_STRUCT_YELLOW }, { 0xA01, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
525 { 0xA18, PALETTE_TO_STRUCT_YELLOW }, { 0xA02, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
526 { 0xA1D, PALETTE_TO_STRUCT_YELLOW }, { 0xA01, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
527 { 0xA1E, PALETTE_TO_STRUCT_YELLOW }, { 0xA02, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
528};
529
530static const PalSpriteID _bridge_sprite_table_tubular_yellow_south[] = {
531 { 0xA09, PALETTE_TO_STRUCT_YELLOW }, { 0x9FF, PALETTE_TO_STRUCT_YELLOW }, { 0xA05, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
532 { 0xA0E, PALETTE_TO_STRUCT_YELLOW }, { 0xA04, PALETTE_TO_STRUCT_YELLOW }, { 0xA08, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
533 { 0xA0F, PALETTE_TO_STRUCT_YELLOW }, { 0x9FF, PALETTE_TO_STRUCT_YELLOW }, { 0xA05, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
534 { 0xA14, PALETTE_TO_STRUCT_YELLOW }, { 0xA04, PALETTE_TO_STRUCT_YELLOW }, { 0xA08, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
535 { 0xA15, PALETTE_TO_STRUCT_YELLOW }, { 0x9FF, PALETTE_TO_STRUCT_YELLOW }, { 0xA05, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
536 { 0xA1A, PALETTE_TO_STRUCT_YELLOW }, { 0xA04, PALETTE_TO_STRUCT_YELLOW }, { 0xA08, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
537 { 0xA1B, PALETTE_TO_STRUCT_YELLOW }, { 0x9FF, PALETTE_TO_STRUCT_YELLOW }, { 0xA05, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
538 { 0xA20, PALETTE_TO_STRUCT_YELLOW }, { 0xA04, PALETTE_TO_STRUCT_YELLOW }, { 0xA08, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
539};
540
541static const PalSpriteID _bridge_sprite_table_tubular_yellow_middle[] = {
542 { 0xA0A, PALETTE_TO_STRUCT_YELLOW }, { 0xA00, PALETTE_TO_STRUCT_YELLOW }, { 0xA06, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
543 { 0xA0D, PALETTE_TO_STRUCT_YELLOW }, { 0xA03, PALETTE_TO_STRUCT_YELLOW }, { 0xA07, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
544 { 0xA10, PALETTE_TO_STRUCT_YELLOW }, { 0xA00, PALETTE_TO_STRUCT_YELLOW }, { 0xA06, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
545 { 0xA13, PALETTE_TO_STRUCT_YELLOW }, { 0xA03, PALETTE_TO_STRUCT_YELLOW }, { 0xA07, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
546 { 0xA16, PALETTE_TO_STRUCT_YELLOW }, { 0xA00, PALETTE_TO_STRUCT_YELLOW }, { 0xA06, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
547 { 0xA19, PALETTE_TO_STRUCT_YELLOW }, { 0xA03, PALETTE_TO_STRUCT_YELLOW }, { 0xA07, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
548 { 0xA1C, PALETTE_TO_STRUCT_YELLOW }, { 0xA00, PALETTE_TO_STRUCT_YELLOW }, { 0xA06, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
549 { 0xA1F, PALETTE_TO_STRUCT_YELLOW }, { 0xA03, PALETTE_TO_STRUCT_YELLOW }, { 0xA07, PALETTE_TO_STRUCT_YELLOW }, { 0x0, PAL_NONE },
550};
551
552static const PalSpriteID _bridge_sprite_table_tubular_silicon_north[] = {
553 { 0xA0B, PALETTE_TO_STRUCT_CONCRETE }, { 0xA01, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
554 { 0xA0C, PALETTE_TO_STRUCT_CONCRETE }, { 0xA02, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
555 { 0xA11, PALETTE_TO_STRUCT_CONCRETE }, { 0xA01, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
556 { 0xA12, PALETTE_TO_STRUCT_CONCRETE }, { 0xA02, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
557 { 0xA17, PALETTE_TO_STRUCT_CONCRETE }, { 0xA01, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
558 { 0xA18, PALETTE_TO_STRUCT_CONCRETE }, { 0xA02, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
559 { 0xA1D, PALETTE_TO_STRUCT_CONCRETE }, { 0xA01, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
560 { 0xA1E, PALETTE_TO_STRUCT_CONCRETE }, { 0xA02, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE }, { 0x0, PAL_NONE },
561};
562
563static const PalSpriteID _bridge_sprite_table_tubular_silicon_south[] = {
564 { 0xA09, PALETTE_TO_STRUCT_CONCRETE }, { 0x9FF, PALETTE_TO_STRUCT_CONCRETE }, { 0xA05, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
565 { 0xA0E, PALETTE_TO_STRUCT_CONCRETE }, { 0xA04, PALETTE_TO_STRUCT_CONCRETE }, { 0xA08, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
566 { 0xA0F, PALETTE_TO_STRUCT_CONCRETE }, { 0x9FF, PALETTE_TO_STRUCT_CONCRETE }, { 0xA05, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
567 { 0xA14, PALETTE_TO_STRUCT_CONCRETE }, { 0xA04, PALETTE_TO_STRUCT_CONCRETE }, { 0xA08, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
568 { 0xA15, PALETTE_TO_STRUCT_CONCRETE }, { 0x9FF, PALETTE_TO_STRUCT_CONCRETE }, { 0xA05, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
569 { 0xA1A, PALETTE_TO_STRUCT_CONCRETE }, { 0xA04, PALETTE_TO_STRUCT_CONCRETE }, { 0xA08, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
570 { 0xA1B, PALETTE_TO_STRUCT_CONCRETE }, { 0x9FF, PALETTE_TO_STRUCT_CONCRETE }, { 0xA05, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
571 { 0xA20, PALETTE_TO_STRUCT_CONCRETE }, { 0xA04, PALETTE_TO_STRUCT_CONCRETE }, { 0xA08, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
572};
573
574static const PalSpriteID _bridge_sprite_table_tubular_silicon_middle[] = {
575 { 0xA0A, PALETTE_TO_STRUCT_CONCRETE }, { 0xA00, PALETTE_TO_STRUCT_CONCRETE }, { 0xA06, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
576 { 0xA0D, PALETTE_TO_STRUCT_CONCRETE }, { 0xA03, PALETTE_TO_STRUCT_CONCRETE }, { 0xA07, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
577 { 0xA10, PALETTE_TO_STRUCT_CONCRETE }, { 0xA00, PALETTE_TO_STRUCT_CONCRETE }, { 0xA06, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
578 { 0xA13, PALETTE_TO_STRUCT_CONCRETE }, { 0xA03, PALETTE_TO_STRUCT_CONCRETE }, { 0xA07, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
579 { 0xA16, PALETTE_TO_STRUCT_CONCRETE }, { 0xA00, PALETTE_TO_STRUCT_CONCRETE }, { 0xA06, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
580 { 0xA19, PALETTE_TO_STRUCT_CONCRETE }, { 0xA03, PALETTE_TO_STRUCT_CONCRETE }, { 0xA07, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
581 { 0xA1C, PALETTE_TO_STRUCT_CONCRETE }, { 0xA00, PALETTE_TO_STRUCT_CONCRETE }, { 0xA06, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
582 { 0xA1F, PALETTE_TO_STRUCT_CONCRETE }, { 0xA03, PALETTE_TO_STRUCT_CONCRETE }, { 0xA07, PALETTE_TO_STRUCT_CONCRETE }, { 0x0, PAL_NONE },
583};
584
585static const std::span<const PalSpriteID> _bridge_sprite_table_archgirder[] = {
586 _bridge_sprite_table_archgirder_middle,
587 _bridge_sprite_table_archgirder_middle,
588 _bridge_sprite_table_archgirder_middle,
589 _bridge_sprite_table_archgirder_middle,
590 _bridge_sprite_table_archgirder_middle,
591 _bridge_sprite_table_archgirder_middle,
592 _bridge_sprite_table_archgirder_heads,
593};
594
595static const std::span<const PalSpriteID> _bridge_sprite_table_suspension_oxide[] = {
596 _bridge_sprite_table_suspension_oxide_north,
597 _bridge_sprite_table_suspension_oxide_south,
598 _bridge_sprite_table_suspension_oxide_inner_north,
599 _bridge_sprite_table_suspension_oxide_inner_south,
600 _bridge_sprite_table_suspension_oxide_middle_odd,
601 _bridge_sprite_table_suspension_middle_even,
602 _bridge_sprite_table_generic_oxide_heads,
603};
604
605static const std::span<const PalSpriteID> _bridge_sprite_table_suspension_yellow[] = {
606 _bridge_sprite_table_suspension_yellow_north,
607 _bridge_sprite_table_suspension_yellow_south,
608 _bridge_sprite_table_suspension_yellow_inner_north,
609 _bridge_sprite_table_suspension_yellow_inner_south,
610 _bridge_sprite_table_suspension_yellow_middle_odd,
611 _bridge_sprite_table_suspension_yellow_middle_even,
612 _bridge_sprite_table_generic_yellow_heads,
613};
614
615static const std::span<const PalSpriteID> _bridge_sprite_table_suspension_concrete[] = {
616 _bridge_sprite_table_suspension_concrete_north,
617 _bridge_sprite_table_suspension_concrete_south,
618 _bridge_sprite_table_suspension_concrete_inner_north,
619 _bridge_sprite_table_suspension_concrete_inner_south,
620 _bridge_sprite_table_suspension_concrete_middle_odd,
621 _bridge_sprite_table_suspension_concrete_middle_even,
622 _bridge_sprite_table_generic_concrete_heads,
623};
624
625static const std::span<const PalSpriteID> _bridge_sprite_table_cantilever_oxide[] = {
626 _bridge_sprite_table_cantilever_oxide_north,
627 _bridge_sprite_table_cantilever_oxide_south,
628 _bridge_sprite_table_cantilever_oxide_middle,
629 _bridge_sprite_table_cantilever_oxide_middle,
630 _bridge_sprite_table_cantilever_oxide_middle,
631 _bridge_sprite_table_cantilever_oxide_middle,
632 _bridge_sprite_table_cantilever_oxide_heads,
633};
634
635static const std::span<const PalSpriteID> _bridge_sprite_table_cantilever_brown[] = {
636 _bridge_sprite_table_cantilever_brown_north,
637 _bridge_sprite_table_cantilever_brown_south,
638 _bridge_sprite_table_cantilever_brown_middle,
639 _bridge_sprite_table_cantilever_brown_middle,
640 _bridge_sprite_table_cantilever_brown_middle,
641 _bridge_sprite_table_cantilever_brown_middle,
642 _bridge_sprite_table_cantilever_brown_heads,
643};
644
645static const std::span<const PalSpriteID> _bridge_sprite_table_cantilever_red[] = {
646 _bridge_sprite_table_cantilever_red_north,
647 _bridge_sprite_table_cantilever_red_south,
648 _bridge_sprite_table_cantilever_red_middle,
649 _bridge_sprite_table_cantilever_red_middle,
650 _bridge_sprite_table_cantilever_red_middle,
651 _bridge_sprite_table_cantilever_red_middle,
652 _bridge_sprite_table_cantilever_red_heads,
653};
654
655static const std::span<const PalSpriteID> _bridge_sprite_table_wood[] = {
656 _bridge_sprite_table_wood_middle,
657 _bridge_sprite_table_wood_middle,
658 _bridge_sprite_table_wood_middle,
659 _bridge_sprite_table_wood_middle,
660 _bridge_sprite_table_wood_middle,
661 _bridge_sprite_table_wood_middle,
662 _bridge_sprite_table_wood_heads,
663};
664
665static const std::span<const PalSpriteID> _bridge_sprite_table_concrete[] = {
666 _bridge_sprite_table_concrete_middle,
667 _bridge_sprite_table_concrete_middle,
668 _bridge_sprite_table_concrete_middle,
669 _bridge_sprite_table_concrete_middle,
670 _bridge_sprite_table_concrete_middle,
671 _bridge_sprite_table_concrete_middle,
672 _bridge_sprite_table_concrete_heads,
673};
674
675static const std::span<const PalSpriteID> _bridge_sprite_table_girder[] = {
676 _bridge_sprite_table_girder_middle,
677 _bridge_sprite_table_girder_middle,
678 _bridge_sprite_table_girder_middle,
679 _bridge_sprite_table_girder_middle,
680 _bridge_sprite_table_girder_middle,
681 _bridge_sprite_table_girder_middle,
682 _bridge_sprite_table_generic_oxide_heads,
683};
684
685static const std::span<const PalSpriteID> _bridge_sprite_table_tubular_oxide[] = {
686 _bridge_sprite_table_tubular_oxide_north,
687 _bridge_sprite_table_tubular_oxide_south,
688 _bridge_sprite_table_tubular_oxide_middle,
689 _bridge_sprite_table_tubular_oxide_middle,
690 _bridge_sprite_table_tubular_oxide_middle,
691 _bridge_sprite_table_tubular_oxide_middle,
692 _bridge_sprite_table_generic_oxide_heads,
693};
694
695static const std::span<const PalSpriteID> _bridge_sprite_table_tubular_yellow[] = {
696 _bridge_sprite_table_tubular_yellow_north,
697 _bridge_sprite_table_tubular_yellow_south,
698 _bridge_sprite_table_tubular_yellow_middle,
699 _bridge_sprite_table_tubular_yellow_middle,
700 _bridge_sprite_table_tubular_yellow_middle,
701 _bridge_sprite_table_tubular_yellow_middle,
702 _bridge_sprite_table_generic_yellow_heads,
703};
704
705static const std::span<const PalSpriteID> _bridge_sprite_table_tubular_silicon[] = {
706 _bridge_sprite_table_tubular_silicon_north,
707 _bridge_sprite_table_tubular_silicon_south,
708 _bridge_sprite_table_tubular_silicon_middle,
709 _bridge_sprite_table_tubular_silicon_middle,
710 _bridge_sprite_table_tubular_silicon_middle,
711 _bridge_sprite_table_tubular_silicon_middle,
712 _bridge_sprite_table_generic_concrete_heads,
713};
714
715static const std::span<const std::span<const PalSpriteID>> _bridge_sprite_table[MAX_BRIDGES] = {
716 _bridge_sprite_table_wood,
717 _bridge_sprite_table_concrete,
718 _bridge_sprite_table_archgirder,
719 _bridge_sprite_table_suspension_concrete,
720 _bridge_sprite_table_suspension_oxide,
721 _bridge_sprite_table_suspension_yellow,
722 _bridge_sprite_table_cantilever_oxide,
723 _bridge_sprite_table_cantilever_brown,
724 _bridge_sprite_table_cantilever_red,
725 _bridge_sprite_table_girder,
726 _bridge_sprite_table_tubular_oxide,
727 _bridge_sprite_table_tubular_yellow,
728 _bridge_sprite_table_tubular_silicon,
729};
730
731static constexpr BridgePillarFlags BRIDGEPILLARFLAGS_ALL_CORNERS = {
733};
734
737 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
738 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
739 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
740 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
741 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
742 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
743}};
744
753
760 {{BRIDGEPILLARFLAGS_ALL_CORNERS, BRIDGEPILLARFLAGS_ALL_CORNERS}},
761 {{{}}},
762}};
763
773
774const BridgeSpec _orig_bridge[] = {
775/*
776 year of availability
777 | minimum length
778 | | maximum length
779 | | | price multiplier
780 | | | | maximum speed
781 | | | | | sprite to use in GUI
782 | | | | | | palette in GUI
783 | string with description | | name on rail | | name on road pillar flags
784 | | | | | | | | | | | */
785 {CalendarTime::MIN_YEAR, 0, UINT16_MAX, 80, 32, 0xA24, PAL_NONE,
786 STR_BRIDGE_NAME_WOODEN, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN, STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN}, ALL_PILLARS},
787
788 {CalendarTime::MIN_YEAR, 0, 2, 112, 48, 0xA26, PALETTE_TO_STRUCT_RED,
789 STR_BRIDGE_NAME_CONCRETE, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE}, ALL_PILLARS},
790
791 {TimerGameCalendar::Year{1930}, 0, 5, 144, 64, 0xA25, PAL_NONE,
792 STR_BRIDGE_NAME_GIRDER_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL}, ALL_PILLARS},
793
794 {CalendarTime::MIN_YEAR, 2, 10, 168, 80, 0xA22, PALETTE_TO_STRUCT_CONCRETE,
795 STR_BRIDGE_NAME_SUSPENSION_CONCRETE, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE, STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE}, SUSPENSION_PILLARS},
796
797 {TimerGameCalendar::Year{1930}, 3, UINT16_MAX, 185, 96, 0xA22, PAL_NONE,
798 STR_BRIDGE_NAME_SUSPENSION_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL}, SUSPENSION_PILLARS},
799
800 {TimerGameCalendar::Year{1930}, 3, UINT16_MAX, 192, 112, 0xA22, PALETTE_TO_STRUCT_YELLOW,
801 STR_BRIDGE_NAME_SUSPENSION_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL}, SUSPENSION_PILLARS},
802
803 {TimerGameCalendar::Year{1930}, 3, 7, 224, 160, 0xA23, PAL_NONE,
804 STR_BRIDGE_NAME_CANTILEVER_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL}, CANTILEVER_PILLARS},
805
806 {TimerGameCalendar::Year{1930}, 3, 8, 232, 208, 0xA23, PALETTE_TO_STRUCT_BROWN,
807 STR_BRIDGE_NAME_CANTILEVER_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL}, CANTILEVER_PILLARS},
808
809 {TimerGameCalendar::Year{1930}, 3, 9, 248, 240, 0xA23, PALETTE_TO_STRUCT_RED,
810 STR_BRIDGE_NAME_CANTILEVER_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL}, CANTILEVER_PILLARS},
811
812 {TimerGameCalendar::Year{1930}, 0, 2, 240, 256, 0xA27, PAL_NONE,
813 STR_BRIDGE_NAME_GIRDER_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL}, ALL_PILLARS},
814
815 {TimerGameCalendar::Year{1995}, 2, UINT16_MAX, 255, 320, 0xA28, PAL_NONE,
816 STR_BRIDGE_NAME_TUBULAR_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL}, CANTILEVER_PILLARS},
817
818 {TimerGameCalendar::Year{2005}, 2, UINT16_MAX, 380, 512, 0xA28, PALETTE_TO_STRUCT_YELLOW,
819 STR_BRIDGE_NAME_TUBULAR_STEEL, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL}, CANTILEVER_PILLARS},
820
821 {TimerGameCalendar::Year{2010}, 2, UINT16_MAX, 510, 608, 0xA28, PALETTE_TO_STRUCT_CONCRETE,
822 STR_BRIDGE_TUBULAR_SILICON, {STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL, STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL}, CANTILEVER_PILLARS},
823};
static const uint MAX_BRIDGES
Maximal number of available bridge specs.
Definition bridge.h:18
std::array< AxisIndexArray< BridgePillarFlags >, NUM_BRIDGE_MIDDLE_PIECES > BridgeMiddlePillarFlags
Container for Bridge pillar flags for each axis of each bridge middle piece.
Definition bridge.h:22
static constexpr BridgeMiddlePillarFlags ALL_PILLARS
Pillar flags for bridges which have pillars on the all corners on each piece.
static constexpr BridgePillarFlags BRIDGEPILLARFLAGS_SW
Pillar flags for bridges with pillars on the South-West side.
static const PalSpriteID _aqueduct_sprite_table_middle[]
Sprite table for middle part of aqueduct.
Definition bridge_land.h:36
static constexpr BridgeMiddlePillarFlags SUSPENSION_PILLARS
Pillar flags for suspension style bridges.
static constexpr BridgeMiddlePillarFlags CANTILEVER_PILLARS
Pillar flags for cantilever style bridges.
static const PalSpriteID _aqueduct_sprite_table_heads[]
Sprite table for head part of aqueduct.
Definition bridge_land.h:42
static constexpr BridgePillarFlags BRIDGEPILLARFLAGS_NW
Pillar flags for bridges with pillars on the North-West side.
static constexpr BridgePillarFlags BRIDGEPILLARFLAGS_SE
Pillar flags for bridges with pillars on the South-East side.
static constexpr BridgePillarFlags BRIDGEPILLARFLAGS_NE
Pillar flags for bridges with pillars on the North-East side.
EnumBitSet< BridgePillarFlag, uint8_t > BridgePillarFlags
Bitset of BridgePillarFlag elements.
Definition bridge_type.h:53
@ CornerN
North corner is obstructed.
Definition bridge_type.h:44
@ CornerS
South corner is obstructed.
Definition bridge_type.h:42
@ CornerE
East corner is obstructed.
Definition bridge_type.h:43
@ CornerW
West corner is obstructed.
Definition bridge_type.h:41
static constexpr TimerGame< struct Calendar >::Year MIN_YEAR
StrongType::Typedef< int32_t, struct YearTag< struct Calendar >, StrongType::Compare, StrongType::Integer > Year
static const SpriteID SPR_BTWDN_RAIL_RAMP_Y_UP
Definition sprites.h:811
static const SpriteID SPR_BTSUS_Y_FRONT_TILE_D
Definition sprites.h:871
static const SpriteID SPR_BTSUS_X_PILLAR_TILE_B
Definition sprites.h:894
static const SpriteID SPR_BTGEN_ROAD_RAMP_X_DOWN
Definition sprites.h:1061
static const SpriteID SPR_BTSUS_X_PILLAR_TILE_C
Definition sprites.h:896
static const SpriteID SPR_BTSGA_X_FRONT
Definition sprites.h:841
static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_A
Definition sprites.h:881
static const SpriteID SPR_BTWDN_Y_FRONT
Definition sprites.h:791
static const SpriteID SPR_BTSGA_MONO_Y_REAR
Definition sprites.h:846
static const SpriteID SPR_BTCON_ROAD_Y
Definition sprites.h:980
static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_C
Definition sprites.h:878
static const SpriteID SPR_BTWDN_ROAD_RAMP_Y_UP
Definition sprites.h:803
static const SpriteID SPR_BTGEN_RAIL_RAMP_Y_DOWN
Definition sprites.h:1055
static const SpriteID SPR_BTSGA_MONO_X_REAR
Definition sprites.h:845
static const SpriteID SPR_BTWDN_MGLV_RAMP_Y_DOWN
Definition sprites.h:824
static const SpriteID SPR_BTGEN_RAIL_X_SLOPE_DOWN
Definition sprites.h:1048
static const SpriteID SPR_BTGEN_RAIL_RAMP_Y_UP
Definition sprites.h:1054
static const SpriteID SPR_BTWDN_MONO_Y_SLOPE_DOWN
Definition sprites.h:822
static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_E
Definition sprites.h:898
static const SpriteID SPR_BTSUS_Y_FRONT_TILE_C
Definition sprites.h:872
static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_E
Definition sprites.h:932
static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_D
Definition sprites.h:869
static const SpriteID SPR_BTGEN_RAIL_RAMP_X_DOWN
Definition sprites.h:1053
static const SpriteID SPR_BTSGA_MGLV_X_REAR
Definition sprites.h:847
static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_B
Definition sprites.h:866
static const SpriteID SPR_BTCON_ROAD_X
Definition sprites.h:979
static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_B
Definition sprites.h:890
static const SpriteID SPR_BTWDN_RAIL_X_SLOPE_UP
Definition sprites.h:813
static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_B
Definition sprites.h:928
static const SpriteID SPR_BTGEN_MONO_X_SLOPE_UP
Definition sprites.h:1065
static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_E
Definition sprites.h:920
static const SpriteID SPR_BTGEN_MONO_RAMP_X_DOWN
Definition sprites.h:1069
static const SpriteID SPR_BTGEN_RAIL_Y_SLOPE_UP
Definition sprites.h:1051
static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_C
Definition sprites.h:892
static const SpriteID SPR_BTGEN_MGLV_Y_SLOPE_DOWN
Definition sprites.h:1074
static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_C
Definition sprites.h:870
static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_F
Definition sprites.h:908
static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_B
Definition sprites.h:882
static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_A
Definition sprites.h:927
static const SpriteID SPR_BTWDN_MONO_RAMP_Y_UP
Definition sprites.h:819
static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_A
Definition sprites.h:865
static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_C
Definition sprites.h:930
static const SpriteID SPR_BTGEN_ROAD_RAMP_Y_UP
Definition sprites.h:1062
static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_D
Definition sprites.h:883
static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_F
Definition sprites.h:907
static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_C
Definition sprites.h:888
static const SpriteID SPR_BTGEN_MGLV_Y_SLOPE_UP
Definition sprites.h:1075
static const SpriteID SPR_BTSGA_RAIL_X_REAR
Definition sprites.h:837
static const SpriteID SPR_BTWDN_ROAD_X_SLOPE_UP
Definition sprites.h:805
static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_A
Definition sprites.h:885
static const SpriteID SPR_BTWDN_RAIL_X_REAR
Definition sprites.h:788
static const SpriteID SPR_BTCON_MONO_X
Definition sprites.h:985
static const SpriteID SPR_BTGEN_MONO_RAMP_Y_UP
Definition sprites.h:1070
static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_B
Definition sprites.h:924
static const SpriteID SPR_BTGEN_RAIL_Y_SLOPE_DOWN
Definition sprites.h:1050
static const SpriteID SPR_BTWDN_ROAD_Y_SLOPE_DOWN
Definition sprites.h:806
static const SpriteID SPR_BTSUS_X_FRONT_TILE_A
Definition sprites.h:875
static const SpriteID SPR_BTWDN_ROAD_Y_REAR
Definition sprites.h:789
static const SpriteID SPR_BTWDN_MONO_X_REAR
Definition sprites.h:796
static const SpriteID SPR_BTSUS_X_FRONT_TILE_B
Definition sprites.h:876
static const SpriteID SPR_BTGEN_MONO_Y_SLOPE_DOWN
Definition sprites.h:1066
static const SpriteID SPR_BTGEN_MGLV_X_SLOPE_UP
Definition sprites.h:1073
static const SpriteID SPR_BTGEN_ROAD_X_SLOPE_DOWN
Definition sprites.h:1056
static const SpriteID SPR_BTWDN_MONO_X_SLOPE_UP
Definition sprites.h:821
static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_B
Definition sprites.h:886
static const SpriteID SPR_BTCON_X_PILLAR
Definition sprites.h:983
static const SpriteID SPR_BTSUS_Y_FRONT_TILE_A
Definition sprites.h:867
static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_F
Definition sprites.h:905
static const SpriteID SPR_BTSGA_Y_PILLAR
Definition sprites.h:844
static const SpriteID SPR_BTSGA_MGLV_Y_REAR
Definition sprites.h:848
static const SpriteID SPR_BTCON_MONO_Y
Definition sprites.h:986
static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_C
Definition sprites.h:914
static const SpriteID SPR_BTGEN_MONO_X_SLOPE_DOWN
Definition sprites.h:1064
static const SpriteID SPR_BTWDN_RAIL_RAMP_X_DOWN
Definition sprites.h:809
static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_B
Definition sprites.h:912
static const SpriteID SPR_BTWDN_RAIL_X_SLOPE_DOWN
Definition sprites.h:815
static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_D
Definition sprites.h:887
static const SpriteID SPR_BTWDN_MONO_RAMP_X_DOWN
Definition sprites.h:817
static const SpriteID SPR_BTSUS_Y_FRONT_TILE_E
Definition sprites.h:901
static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_A
Definition sprites.h:923
static const SpriteID SPR_BTSUS_X_FRONT_TILE_E
Definition sprites.h:902
static const SpriteID SPR_BTWDN_MONO_RAMP_X_UP
Definition sprites.h:818
static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_C
Definition sprites.h:884
static const SpriteID SPR_BTWDN_MGLV_Y_SLOPE_UP
Definition sprites.h:828
static const SpriteID SPR_BTWDN_RAIL_Y_SLOPE_DOWN
Definition sprites.h:814
static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_A
Definition sprites.h:873
static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_F
Definition sprites.h:906
static const SpriteID SPR_BTSUS_X_PILLAR_TILE_A
Definition sprites.h:893
static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_A
Definition sprites.h:915
static const SpriteID SPR_BTSGA_X_PILLAR
Definition sprites.h:843
static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_C
Definition sprites.h:918
static const SpriteID SPR_BTGEN_MGLV_RAMP_Y_DOWN
Definition sprites.h:1079
static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_B
Definition sprites.h:874
static const SpriteID SPR_BTCON_Y_PILLAR
Definition sprites.h:984
static const SpriteID SPR_BTWDN_MGLV_Y_REAR
Definition sprites.h:797
static const SpriteID SPR_BTWDN_RAIL_RAMP_Y_DOWN
Definition sprites.h:808
static const SpriteID SPR_BTWDN_MGLV_RAMP_X_UP
Definition sprites.h:826
static const SpriteID SPR_BTGEN_ROAD_RAMP_Y_DOWN
Definition sprites.h:1063
static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_E
Definition sprites.h:903
static const SpriteID SPR_BTWDN_MGLV_X_SLOPE_UP
Definition sprites.h:829
static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_E
Definition sprites.h:931
static const SpriteID SPR_BTGEN_RAIL_X_SLOPE_UP
Definition sprites.h:1049
static const SpriteID SPR_BTGEN_MONO_Y_SLOPE_UP
Definition sprites.h:1067
static const SpriteID SPR_BTSUS_X_PILLAR_TILE_D
Definition sprites.h:895
static const SpriteID SPR_BTGEN_MONO_RAMP_Y_DOWN
Definition sprites.h:1071
static const SpriteID SPR_BTWDN_MONO_Y_REAR
Definition sprites.h:795
static const SpriteID SPR_BTWDN_ROAD_RAMP_Y_DOWN
Definition sprites.h:800
static const SpriteID SPR_BTWDN_X_FRONT
Definition sprites.h:792
static const SpriteID SPR_BTWDN_X_PILLAR
Definition sprites.h:794
static const SpriteID SPR_BTWDN_MGLV_Y_SLOPE_DOWN
Definition sprites.h:830
static const SpriteID SPR_BTGEN_ROAD_Y_SLOPE_DOWN
Definition sprites.h:1058
static const SpriteID SPR_BTGEN_MGLV_X_SLOPE_DOWN
Definition sprites.h:1072
static const SpriteID SPR_BTWDN_Y_PILLAR
Definition sprites.h:793
static const SpriteID SPR_BTWDN_ROAD_RAMP_X_DOWN
Definition sprites.h:801
static const SpriteID SPR_BTWDN_MONO_Y_SLOPE_UP
Definition sprites.h:820
static const SpriteID SPR_BTSUS_X_FRONT_TILE_C
Definition sprites.h:880
static const SpriteID SPR_BTWDN_RAIL_Y_REAR
Definition sprites.h:787
static const SpriteID SPR_BTSUS_X_PILLAR_TILE_E
Definition sprites.h:904
static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_F
Definition sprites.h:922
static const SpriteID SPR_BTGEN_MGLV_RAMP_X_DOWN
Definition sprites.h:1077
static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_C
Definition sprites.h:926
static const SpriteID SPR_BTWDN_MONO_X_SLOPE_DOWN
Definition sprites.h:823
static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_A
Definition sprites.h:889
static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_F
Definition sprites.h:934
static const SpriteID SPR_BTWDN_ROAD_X_REAR
Definition sprites.h:790
static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_D
Definition sprites.h:891
static const SpriteID SPR_BTSUS_X_FRONT_TILE_D
Definition sprites.h:879
static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_E
Definition sprites.h:919
static const SpriteID SPR_BTGEN_MGLV_RAMP_Y_UP
Definition sprites.h:1078
static const SpriteID SPR_BTSGA_RAIL_Y_REAR
Definition sprites.h:838
static const SpriteID SPR_BTWDN_MGLV_X_SLOPE_DOWN
Definition sprites.h:831
static const SpriteID SPR_BTGEN_ROAD_Y_SLOPE_UP
Definition sprites.h:1059
static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_D
Definition sprites.h:929
static const SpriteID SPR_BTWDN_ROAD_X_SLOPE_DOWN
Definition sprites.h:807
static const SpriteID SPR_BTGEN_MONO_RAMP_X_UP
Definition sprites.h:1068
static const SpriteID SPR_BTGEN_RAIL_RAMP_X_UP
Definition sprites.h:1052
static const SpriteID SPR_BTSUS_Y_FRONT
Definition sprites.h:910
static const SpriteID SPR_BTSGA_ROAD_Y_REAR
Definition sprites.h:840
static const SpriteID SPR_BTWDN_ROAD_Y_SLOPE_UP
Definition sprites.h:804
static const SpriteID SPR_BTWDN_MGLV_X_REAR
Definition sprites.h:798
static const SpriteID SPR_BTWDN_RAIL_Y_SLOPE_UP
Definition sprites.h:812
static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_D
Definition sprites.h:877
static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_D
Definition sprites.h:913
static const SpriteID SPR_BTSUS_X_FRONT
Definition sprites.h:909
static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_D
Definition sprites.h:917
static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_B
Definition sprites.h:916
static const SpriteID SPR_BTCON_RAIL_Y
Definition sprites.h:978
static const SpriteID SPR_BTWDN_MONO_RAMP_Y_DOWN
Definition sprites.h:816
static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_E
Definition sprites.h:899
static const SpriteID SPR_BTCON_RAIL_X
Definition sprites.h:977
static const SpriteID SPR_BTSGA_ROAD_X_REAR
Definition sprites.h:839
static const SpriteID SPR_BTWDN_MGLV_RAMP_X_DOWN
Definition sprites.h:825
static const SpriteID SPR_BTGEN_MGLV_RAMP_X_UP
Definition sprites.h:1076
static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_F
Definition sprites.h:921
static const SpriteID SPR_BTCON_Y_FRONT
Definition sprites.h:982
static const SpriteID SPR_BTSGA_Y_FRONT
Definition sprites.h:842
static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_F
Definition sprites.h:933
static const SpriteID SPR_BTGEN_ROAD_RAMP_X_UP
Definition sprites.h:1060
static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_E
Definition sprites.h:897
static const SpriteID SPR_BTWDN_RAIL_RAMP_X_UP
Definition sprites.h:810
static const SpriteID SPR_BTWDN_MGLV_RAMP_Y_UP
Definition sprites.h:827
static const SpriteID SPR_BTSUS_Y_FRONT_TILE_B
Definition sprites.h:868
static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_A
Definition sprites.h:911
static const SpriteID SPR_BTCON_X_FRONT
Definition sprites.h:981
static const SpriteID SPR_BTWDN_ROAD_RAMP_X_UP
Definition sprites.h:802
static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_E
Definition sprites.h:900
static const SpriteID SPR_BTCON_MGLV_X
Definition sprites.h:987
static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_D
Definition sprites.h:925
static const SpriteID SPR_BTCON_MGLV_Y
Definition sprites.h:988
static const SpriteID SPR_BTGEN_ROAD_X_SLOPE_UP
Definition sprites.h:1057
static const PaletteID PALETTE_TO_STRUCT_RED
sets bridge or structure to red (e.g. concrete and cantilever bridge)
Definition sprites.h:1786
static const PaletteID PALETTE_TO_STRUCT_CONCRETE
Sets the suspension bridge to concrete, also other structures use it.
Definition sprites.h:1788
static const PaletteID PALETTE_TO_STRUCT_YELLOW
Sets the bridge colour to yellow (suspension and tubular).
Definition sprites.h:1789
static const PaletteID PALETTE_TO_STRUCT_WHITE
sets bridge or structure to white (e.g. some town houses)
Definition sprites.h:1785
static const SpriteID SPR_AQUEDUCT_RAMP_NW
Definition sprites.h:206
static const SpriteID SPR_AQUEDUCT_RAMP_SW
Definition sprites.h:203
static const SpriteID SPR_AQUEDUCT_RAMP_NE
Definition sprites.h:205
static const SpriteID SPR_AQUEDUCT_RAMP_SE
Definition sprites.h:204
static const SpriteID SPR_AQUEDUCT_MIDDLE_Y
Definition sprites.h:208
static const SpriteID SPR_AQUEDUCT_PILLAR_X
Definition sprites.h:209
static const SpriteID SPR_AQUEDUCT_PILLAR_Y
Definition sprites.h:210
static const SpriteID SPR_AQUEDUCT_MIDDLE_X
Definition sprites.h:207
static const PaletteID PALETTE_TO_STRUCT_BROWN
sets bridge or structure to brown (e.g. cantilever bridge)
Definition sprites.h:1784
Struct containing information about a single bridge type.
Definition bridge.h:27
Combination of a palette sprite and a 'real' sprite.
Definition gfx_type.h:22