(svn r12118) -Codechange: Put the two descriptions of bridges in an array instead of two single variables, following the transport type it represents
authorbelugas
Tue, 12 Feb 2008 03:05:27 +0000
changeset 8540 7d2f5260dc4b
parent 8539 698b437c569a
child 8541 85d5b340f766
(svn r12118) -Codechange: Put the two descriptions of bridges in an array instead of two single variables, following the transport type it represents
src/bridge.h
src/newgrf.cpp
src/table/bridge_land.h
src/tunnelbridge_cmd.cpp
--- a/src/bridge.h	Tue Feb 12 02:39:22 2008 +0000
+++ b/src/bridge.h	Tue Feb 12 03:05:27 2008 +0000
@@ -18,18 +18,17 @@
 /** Struct containing information about a single bridge type
  */
 struct BridgeSpec {
-	Year avail_year;     ///< the year where it becomes available
-	byte min_length;     ///< the minimum length (not counting start and end tile)
-	byte max_length;     ///< the maximum length (not counting start and end tile)
-	uint16 price;        ///< the price multiplier
-	uint16 speed;        ///< maximum travel speed
-	SpriteID sprite;     ///< the sprite which is used in the GUI
-	SpriteID pal;        ///< the palette which is used in the GUI
-	StringID material;   ///< the string that contains the bridge description
-	StringID name_rail;  ///< description of the bridge, when built for road
-	StringID name_road;  ///< description of the bridge, when built for road
-	PalSpriteID **sprite_table; ///< table of sprites for drawing the bridge
-	byte flags;          ///< bit 0 set: disable drawing of far pillars.
+	Year avail_year;             ///< the year where it becomes available
+	byte min_length;             ///< the minimum length (not counting start and end tile)
+	byte max_length;             ///< the maximum length (not counting start and end tile)
+	uint16 price;                ///< the price multiplier
+	uint16 speed;                ///< maximum travel speed
+	SpriteID sprite;             ///< the sprite which is used in the GUI
+	SpriteID pal;                ///< the palette which is used in the GUI
+	StringID material;           ///< the string that contains the bridge description
+	StringID transport_name[2];  ///< description of the bridge, when built for road or rail
+	PalSpriteID **sprite_table;  ///< table of sprites for drawing the bridge
+	byte flags;                  ///< bit 0 set: disable drawing of far pillars.
 };
 
 extern BridgeSpec _bridge[MAX_BRIDGES];
--- a/src/newgrf.cpp	Tue Feb 12 02:39:22 2008 +0000
+++ b/src/newgrf.cpp	Tue Feb 12 03:05:27 2008 +0000
@@ -1250,14 +1250,10 @@
 				if (newone != STR_UNDEFINED) bridge->material = newone;
 				} break;
 
-			case 0x11: { // description of bridge with rails
+			case 0x11: // description of bridge with rails or roads
+			case 0x12: {
 				StringID newone = GetGRFStringID(_cur_grffile->grfid, grf_load_word(&buf));
-				if (newone != STR_UNDEFINED) bridge->name_rail = newone;
-				} break;
-
-			case 0x12: { // description of bridge with roads
-				StringID newone = GetGRFStringID(_cur_grffile->grfid, grf_load_word(&buf));
-				if (newone != STR_UNDEFINED) bridge->name_road = newone;
+				if (newone != STR_UNDEFINED) bridge->transport_name[prop - 0x11] = newone;
 				} break;
 
 			default:
--- a/src/table/bridge_land.h	Tue Feb 12 02:39:22 2008 +0000
+++ b/src/table/bridge_land.h	Tue Feb 12 03:05:27 2008 +0000
@@ -721,7 +721,7 @@
  * @param nrd description of the road bridge in query tool
  */
 #define MB(y, mnl, mxl, p, mxs, spr, plt, dsc, nrl, nrd) \
-	{y, mnl, mxl, p, mxs, spr, plt, dsc, nrl, nrd, NULL, 0}
+	{y, mnl, mxl, p, mxs, spr, plt, dsc, { nrl, nrd }, NULL, 0}
 
 const BridgeSpec _orig_bridge[] = {
 /*
--- a/src/tunnelbridge_cmd.cpp	Tue Feb 12 02:39:22 2008 +0000
+++ b/src/tunnelbridge_cmd.cpp	Tue Feb 12 03:05:27 2008 +0000
@@ -1142,8 +1142,7 @@
 		td->str = (GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL) ?
 			STR_5017_RAILROAD_TUNNEL : STR_5018_ROAD_TUNNEL;
 	} else { //so it must be a bridge
-		const BridgeSpec *brspc = GetBridgeSpec(GetBridgeType(tile));
-		td->str = GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL ? brspc->name_rail : brspc->name_road;
+		td->str = GetBridgeSpec(GetBridgeType(tile))->transport_name[GetTunnelBridgeTransportType(tile)];
 	}
 	td->owner = GetTileOwner(tile);
 }