(svn r12287) -Codechange: Give meaning to two other bridges sprites arrays.
authorbelugas
Wed, 27 Feb 2008 04:00:25 +0000
changeset 9140 61bed47d036c
parent 9139 d15b4e07ed34
child 9141 676b4691ef19
(svn r12287) -Codechange: Give meaning to two other bridges sprites arrays.
A bit of re-indenting too
src/table/bridge_land.h
--- a/src/table/bridge_land.h	Tue Feb 26 22:32:27 2008 +0000
+++ b/src/table/bridge_land.h	Wed Feb 27 04:00:25 2008 +0000
@@ -25,28 +25,8 @@
 
 # define MN(a) {a, PAL_NONE}
 # define MR(a) {a, PALETTE_TO_STRUCT_RED}
-
-static const PalSpriteID _bridge_sprite_table_2_0[] = {
-	{  0x9C3, PAL_NONE }, {  0x9C7, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
-	{  0x9C4, PAL_NONE }, {  0x9C8, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
-	{  0x9C5, PAL_NONE }, {  0x9C7, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
-	{  0x9C6, PAL_NONE }, {  0x9C8, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
-	{ 0x10E4, PAL_NONE }, {  0x9C7, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
-	{ 0x10E5, PAL_NONE }, {  0x9C8, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
-	{ 0x110C, PAL_NONE }, {  0x9C7, PAL_NONE }, {  0x9C9, PAL_NONE }, {    0x0, PAL_NONE },
-	{ 0x110D, PAL_NONE }, {  0x9C8, PAL_NONE }, {  0x9CA, PAL_NONE }, {    0x0, PAL_NONE },
-};
-
-static const PalSpriteID _bridge_sprite_table_2_1[] = {
-	{  0x986, PAL_NONE }, {  0x988, PAL_NONE }, {  0x985, PAL_NONE }, {  0x987, PAL_NONE },
-	{  0x98A, PAL_NONE }, {  0x98C, PAL_NONE }, {  0x989, PAL_NONE }, {  0x98B, PAL_NONE },
-	{  0x98E, PALETTE_TO_STRUCT_WHITE }, {  0x990, PALETTE_TO_STRUCT_WHITE }, {  0x98D, PALETTE_TO_STRUCT_WHITE }, {  0x98F, PALETTE_TO_STRUCT_WHITE },
-	{  0x992, PALETTE_TO_STRUCT_WHITE }, {  0x994, PALETTE_TO_STRUCT_WHITE }, {  0x991, PALETTE_TO_STRUCT_WHITE }, {  0x993, PALETTE_TO_STRUCT_WHITE },
-	{ 0x10E7, PALETTE_TO_STRUCT_WHITE }, { 0x10E9, PALETTE_TO_STRUCT_WHITE }, { 0x10E6, PALETTE_TO_STRUCT_WHITE }, { 0x10E8, PALETTE_TO_STRUCT_WHITE },
-	{ 0x10EB, PALETTE_TO_STRUCT_WHITE }, { 0x10ED, PALETTE_TO_STRUCT_WHITE }, { 0x10EA, PALETTE_TO_STRUCT_WHITE }, { 0x10EC, PALETTE_TO_STRUCT_WHITE },
-	{ 0x110F, PALETTE_TO_STRUCT_WHITE }, { 0x1111, PALETTE_TO_STRUCT_WHITE }, { 0x110E, PALETTE_TO_STRUCT_WHITE }, { 0x1110, PALETTE_TO_STRUCT_WHITE },
-	{ 0x1113, PALETTE_TO_STRUCT_WHITE }, { 0x1115, PALETTE_TO_STRUCT_WHITE }, { 0x1112, PALETTE_TO_STRUCT_WHITE }, { 0x1114, PALETTE_TO_STRUCT_WHITE },
-};
+# define MW(a) {a, PALETTE_TO_STRUCT_WHITE}
+# define MC(a) {a, PALETTE_TO_STRUCT_CONCRETE}
 
 static const PalSpriteID _bridge_sprite_table_4_0[] = {
 	{  0x9A9, PAL_NONE }, {  0x99F, PAL_NONE }, {  0x9B1, PAL_NONE }, {    0x0, PAL_NONE },
@@ -202,83 +182,6 @@
 	{ 0x1113, PALETTE_TO_STRUCT_YELLOW }, { 0x1115, PALETTE_TO_STRUCT_YELLOW }, { 0x1112, PALETTE_TO_STRUCT_YELLOW }, { 0x1114, PALETTE_TO_STRUCT_YELLOW },
 };
 
-static const PalSpriteID _bridge_sprite_table_3_0[] = {
-	{  0x9A9, PALETTE_TO_STRUCT_CONCRETE }, { 0x99F, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9A5, PALETTE_TO_STRUCT_CONCRETE }, { 0x997, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AD, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x99D, PALETTE_TO_STRUCT_CONCRETE }, { 0x99F, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x995, PALETTE_TO_STRUCT_CONCRETE }, { 0x997, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AD, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F2, PALETTE_TO_STRUCT_CONCRETE }, { 0x99F, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10EE, PALETTE_TO_STRUCT_CONCRETE }, { 0x997, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AD, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x111A, PALETTE_TO_STRUCT_CONCRETE }, { 0x99F, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x1116, PALETTE_TO_STRUCT_CONCRETE }, { 0x997, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AD, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-};
-
-static const PalSpriteID _bridge_sprite_table_3_1[] = {
-	{  0x9AA, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A0, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9A6, PALETTE_TO_STRUCT_CONCRETE }, { 0x998, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AE, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x99E, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A0, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x996, PALETTE_TO_STRUCT_CONCRETE }, { 0x998, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AE, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F3, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A0, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10EF, PALETTE_TO_STRUCT_CONCRETE }, { 0x998, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AE, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x111B, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A0, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x1117, PALETTE_TO_STRUCT_CONCRETE }, { 0x998, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AE, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-};
-
-static const PalSpriteID _bridge_sprite_table_3_2[] = {
-	{  0x9AC, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A4, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B4, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9A8, PALETTE_TO_STRUCT_CONCRETE }, { 0x99C, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B0, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9A2, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A4, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B4, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x99A, PALETTE_TO_STRUCT_CONCRETE }, { 0x99C, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B0, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F5, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A4, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B4, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F1, PALETTE_TO_STRUCT_CONCRETE }, { 0x99C, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B0, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x111D, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A4, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B4, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x1119, PALETTE_TO_STRUCT_CONCRETE }, { 0x99C, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B0, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-};
-
-static const PalSpriteID _bridge_sprite_table_3_3[] = {
-	{  0x9AB, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A3, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B3, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9A7, PALETTE_TO_STRUCT_CONCRETE }, { 0x99B, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AF, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9A1, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A3, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B3, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x999, PALETTE_TO_STRUCT_CONCRETE }, { 0x99B, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AF, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F4, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A3, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B3, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F0, PALETTE_TO_STRUCT_CONCRETE }, { 0x99B, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AF, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x111C, PALETTE_TO_STRUCT_CONCRETE }, { 0x9A3, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B3, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x1118, PALETTE_TO_STRUCT_CONCRETE }, { 0x99B, PALETTE_TO_STRUCT_CONCRETE }, { 0x9AF, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-};
-
-static const PalSpriteID _bridge_sprite_table_3_4[] = {
-	{  0x9B6, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BA, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BC, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9B5, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B9, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BB, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9B8, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BA, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BC, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{  0x9B7, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B9, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BB, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F7, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BA, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BC, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x10F6, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B9, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BB, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x111F, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BA, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BC, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-	{ 0x111E, PALETTE_TO_STRUCT_CONCRETE }, { 0x9B9, PALETTE_TO_STRUCT_CONCRETE }, { 0x9BB, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE },
-};
-
-static const PalSpriteID _bridge_sprite_table_3_5[] = {
-	{  0x9BD, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-	{  0x9BE, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-	{  0x9BF, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-	{  0x9C0, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-	{ 0x10F8, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-	{ 0x10F9, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-	{ 0x1120, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C1, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-	{ 0x1121, PALETTE_TO_STRUCT_CONCRETE }, { 0x9C2, PALETTE_TO_STRUCT_CONCRETE }, {       0x0, PAL_NONE }, {      0x0, PAL_NONE },
-};
-
-static const PalSpriteID _bridge_sprite_table_3_6[] = {
-	{  0x986, PAL_NONE }, {  0x988, PAL_NONE }, {  0x985, PAL_NONE }, {  0x987, PAL_NONE },
-	{  0x98A, PAL_NONE }, {  0x98C, PAL_NONE }, {  0x989, PAL_NONE }, {  0x98B, PAL_NONE },
-	{  0x98E, PALETTE_TO_STRUCT_CONCRETE }, {  0x990, PALETTE_TO_STRUCT_CONCRETE }, {  0x98D, PALETTE_TO_STRUCT_CONCRETE }, {  0x98F, PALETTE_TO_STRUCT_CONCRETE },
-	{  0x992, PALETTE_TO_STRUCT_CONCRETE }, {  0x994, PALETTE_TO_STRUCT_CONCRETE }, {  0x991, PALETTE_TO_STRUCT_CONCRETE }, {  0x993, PALETTE_TO_STRUCT_CONCRETE },
-	{ 0x10E7, PALETTE_TO_STRUCT_CONCRETE }, { 0x10E9, PALETTE_TO_STRUCT_CONCRETE }, { 0x10E6, PALETTE_TO_STRUCT_CONCRETE }, { 0x10E8, PALETTE_TO_STRUCT_CONCRETE },
-	{ 0x10EB, PALETTE_TO_STRUCT_CONCRETE }, { 0x10ED, PALETTE_TO_STRUCT_CONCRETE }, { 0x10EA, PALETTE_TO_STRUCT_CONCRETE }, { 0x10EC, PALETTE_TO_STRUCT_CONCRETE },
-	{ 0x110F, PALETTE_TO_STRUCT_CONCRETE }, { 0x1111, PALETTE_TO_STRUCT_CONCRETE }, { 0x110E, PALETTE_TO_STRUCT_CONCRETE }, { 0x1110, PALETTE_TO_STRUCT_CONCRETE },
-	{ 0x1113, PALETTE_TO_STRUCT_CONCRETE }, { 0x1115, PALETTE_TO_STRUCT_CONCRETE }, { 0x1112, PALETTE_TO_STRUCT_CONCRETE }, { 0x1114, PALETTE_TO_STRUCT_CONCRETE },
-};
-
 static const PalSpriteID _bridge_sprite_table_6_0[] = {
 	{  0x9CD, PAL_NONE }, {  0x9D9, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
 	{  0x9CE, PAL_NONE }, {  0x9DA, PAL_NONE }, {    0x0, PAL_NONE }, {    0x0, PAL_NONE },
@@ -412,47 +315,146 @@
 };
 
 static const PalSpriteID _bridge_sprite_table_wood_middle[] = {
-	MN( SPR_BTWDN_RAIL_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
-	MN( SPR_BTWDN_RAIL_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
-	MN( SPR_BTWDN_ROAD_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
-	MN( SPR_BTWDN_ROAD_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
-	MN( SPR_BTWDN_MONO_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
-	MN( SPR_BTWDN_MONO_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
-	MN( SPR_BTWDN_MGLV_X_REAR ), MN( SPR_BTWDN_X_FRONT ), MN( SPR_BTWDN_X_PILLAR ), MN( 0x0 ),
-	MN( SPR_BTWDN_MGLV_Y_REAR ), MN( SPR_BTWDN_Y_FRONT ), MN( SPR_BTWDN_Y_PILLAR ), MN( 0x0 ),
+	MN( SPR_BTWDN_RAIL_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTWDN_RAIL_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTWDN_ROAD_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTWDN_ROAD_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTWDN_MONO_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTWDN_MONO_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTWDN_MGLV_X_REAR ),        MN( SPR_BTWDN_X_FRONT ),          MN( SPR_BTWDN_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTWDN_MGLV_Y_REAR ),        MN( SPR_BTWDN_Y_FRONT ),          MN( SPR_BTWDN_Y_PILLAR ),          MN( 0x0 ),
 };
 
 static const PalSpriteID _bridge_sprite_table_wood_heads[] = {
-	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 ),
-	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    ),
-	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 ),
-	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    ),
-	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 ),
-	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    ),
-	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 ),
-	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
 };
 
 static const PalSpriteID _bridge_sprite_table_concrete_middle[] = {
-	MR( SPR_BTCON_RAIL_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
-	MR( SPR_BTCON_RAIL_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
-	MR( SPR_BTCON_ROAD_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
-	MR( SPR_BTCON_ROAD_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
-	MR( SPR_BTCON_MONO_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
-	MR( SPR_BTCON_MONO_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
-	MR( SPR_BTCON_MGLV_X ), MR( SPR_BTCON_X_FRONT ), MN( SPR_BTCON_X_PILLAR ), MN( 0x0 ),
-	MR( SPR_BTCON_MGLV_Y ), MR( SPR_BTCON_Y_FRONT ), MN( SPR_BTCON_Y_PILLAR ), MN( 0x0 ),
+	MR( SPR_BTCON_RAIL_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
+	MR( SPR_BTCON_RAIL_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
+	MR( SPR_BTCON_ROAD_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
+	MR( SPR_BTCON_ROAD_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
+	MR( SPR_BTCON_MONO_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
+	MR( SPR_BTCON_MONO_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
+	MR( SPR_BTCON_MGLV_X ),             MR( SPR_BTCON_X_FRONT ),          MN( SPR_BTCON_X_PILLAR ),          MN( 0x0 ),
+	MR( SPR_BTCON_MGLV_Y ),             MR( SPR_BTCON_Y_FRONT ),          MN( SPR_BTCON_Y_PILLAR ),          MN( 0x0 ),
 };
 
 static const PalSpriteID _bridge_sprite_table_concrete_heads[] = {
-	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 ),
-	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    ),
-	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 ),
-	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    ),
-	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 ),
-	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    ),
-	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 ),
-	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+};
+
+static const PalSpriteID _bridge_sprite_table_archgirder_middle[] = {
+	MN( SPR_BTSGA_RAIL_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTSGA_RAIL_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTSGA_ROAD_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTSGA_ROAD_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTSGA_MONO_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTSGA_MONO_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTSGA_MGLV_X_REAR ),        MN( SPR_BTSGA_X_FRONT ),          MN( SPR_BTSGA_X_PILLAR ),          MN( 0x0 ),
+	MN( SPR_BTSGA_MGLV_Y_REAR ),        MN( SPR_BTSGA_Y_FRONT ),          MN( SPR_BTSGA_Y_PILLAR ),          MN( 0x0 ),
+};
+
+static const PalSpriteID _bridge_sprite_table_archgirder_heads[] = {
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+};
+
+static const PalSpriteID _bridge_sprite_table_concrete_suspended_A[] = {
+	MC( SPR_BTSUS_RAIL_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
+	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_X_REAR_TILE_A ), MC( SPR_BTSUS_X_FRONT_TILE_A ),   MC( SPR_BTSUS_X_PILLAR_TILE_A ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_A ), MC( SPR_BTSUS_Y_FRONT_TILE_A ),   MC( SPR_BTSUS_Y_PILLAR_TILE_A ),   MN( 0x0 ),
+};
+
+static const PalSpriteID _bridge_sprite_table_concrete_suspended_B[] = {
+	MC( SPR_BTSUS_RAIL_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
+	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_X_REAR_TILE_B ), MC( SPR_BTSUS_X_FRONT_TILE_B ),   MC( SPR_BTSUS_X_PILLAR_TILE_B ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_B ), MC( SPR_BTSUS_Y_FRONT_TILE_B ),   MC( SPR_BTSUS_Y_PILLAR_TILE_B ),   MN( 0x0 ),
+};
+
+static const PalSpriteID _bridge_sprite_table_concrete_suspended_C[] = {
+	MC( SPR_BTSUS_RAIL_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
+	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_X_REAR_TILE_C ), MC( SPR_BTSUS_X_FRONT_TILE_C ),   MC( SPR_BTSUS_X_PILLAR_TILE_C ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_C ), MC( SPR_BTSUS_Y_FRONT_TILE_C ),   MC( SPR_BTSUS_Y_PILLAR_TILE_C ),   MN( 0x0 ),
+};
+
+static const PalSpriteID _bridge_sprite_table_concrete_suspended_D[] = {
+	MC( SPR_BTSUS_RAIL_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
+	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_X_REAR_TILE_D ), MC( SPR_BTSUS_X_FRONT_TILE_D ),   MC( SPR_BTSUS_X_PILLAR_TILE_D ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_D ), MC( SPR_BTSUS_Y_FRONT_TILE_D ),   MC( SPR_BTSUS_Y_PILLAR_TILE_D ),   MN( 0x0 ),
+};
+
+static const PalSpriteID _bridge_sprite_table_concrete_suspended_E[] = {
+	MC( SPR_BTSUS_RAIL_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
+	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_X_REAR_TILE_E ), MC( SPR_BTSUS_X_FRONT_TILE_E ),   MC( SPR_BTSUS_X_PILLAR_TILE_E ),   MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_E ), MC( SPR_BTSUS_Y_FRONT_TILE_E ),   MC( SPR_BTSUS_Y_PILLAR_TILE_E ),   MN( 0x0 ),
+};
+
+static const PalSpriteID _bridge_sprite_table_concrete_suspended_F[] = {
+	MC( SPR_BTSUS_RAIL_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+	MC( SPR_BTSUS_RAIL_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+	MC( SPR_BTSUS_ROAD_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+	MC( SPR_BTSUS_MONO_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_X_REAR_TILE_F ), MC( SPR_BTSUS_X_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+	MC( SPR_BTSUS_MGLV_Y_REAR_TILE_F ), MC( SPR_BTSUS_Y_FRONT ),          MN( 0x0 ),                         MN( 0x0 ),
+};
+
+static const PalSpriteID _bridge_sprite_table_concrete_suspended_heads[] = {
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
+	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 ),
+	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    ),
 };
 
 static const PalSpriteID _bridge_sprite_table_9_0[] = {
@@ -565,14 +567,14 @@
 	{  0xA1F, PALETTE_TO_STRUCT_GREY }, {     0xA03, PALETTE_TO_STRUCT_GREY }, {     0xA07, PALETTE_TO_STRUCT_GREY }, {       0x0, PAL_NONE },
 };
 
-static const PalSpriteID * const _bridge_sprite_table_2[] = {
-	_bridge_sprite_table_2_0,
-	_bridge_sprite_table_2_0,
-	_bridge_sprite_table_2_0,
-	_bridge_sprite_table_2_0,
-	_bridge_sprite_table_2_0,
-	_bridge_sprite_table_2_0,
-	_bridge_sprite_table_2_1,
+static const PalSpriteID * const _bridge_sprite_table_archgirder[] = {
+	_bridge_sprite_table_archgirder_middle,
+	_bridge_sprite_table_archgirder_middle,
+	_bridge_sprite_table_archgirder_middle,
+	_bridge_sprite_table_archgirder_middle,
+	_bridge_sprite_table_archgirder_middle,
+	_bridge_sprite_table_archgirder_middle,
+	_bridge_sprite_table_archgirder_heads,
 };
 
 static const PalSpriteID * const _bridge_sprite_table_4[] = {
@@ -595,14 +597,14 @@
 	_bridge_sprite_table_5_6,
 };
 
-static const PalSpriteID * const _bridge_sprite_table_3[] = {
-	_bridge_sprite_table_3_0,
-	_bridge_sprite_table_3_1,
-	_bridge_sprite_table_3_2,
-	_bridge_sprite_table_3_3,
-	_bridge_sprite_table_3_4,
-	_bridge_sprite_table_3_5,
-	_bridge_sprite_table_3_6,
+static const PalSpriteID * const _bridge_sprite_table_concrete_suspended[] = {
+	_bridge_sprite_table_concrete_suspended_A,
+	_bridge_sprite_table_concrete_suspended_B,
+	_bridge_sprite_table_concrete_suspended_C,
+	_bridge_sprite_table_concrete_suspended_D,
+	_bridge_sprite_table_concrete_suspended_E,
+	_bridge_sprite_table_concrete_suspended_F,
+	_bridge_sprite_table_concrete_suspended_heads,
 };
 
 static const PalSpriteID * const _bridge_sprite_table_6[] = {
@@ -698,8 +700,8 @@
 static const PalSpriteID * const * const _bridge_sprite_table[MAX_BRIDGES] = {
 	_bridge_sprite_table_wood,
 	_bridge_sprite_table_concrete,
-	_bridge_sprite_table_2,
-	_bridge_sprite_table_3,
+	_bridge_sprite_table_archgirder,
+	_bridge_sprite_gable_concrete_suspended,
 	_bridge_sprite_table_4,
 	_bridge_sprite_table_5,
 	_bridge_sprite_table_6,
@@ -780,3 +782,5 @@
 #undef MBR
 #undef MN
 #undef MR
+#undef MW
+#undef MC