From f4334301e89b0dfcaace437de6202764e5f9b537 Mon Sep 17 00:00:00 2001 From: belugas Date: Tue, 12 Feb 2008 03:05:27 +0000 Subject: [PATCH] (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 | 23 +++++++++++------------ src/newgrf.cpp | 10 +++------- src/table/bridge_land.h | 2 +- src/tunnelbridge_cmd.cpp | 3 +-- 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/bridge.h b/src/bridge.h index fde98f57e7..af41be59fd 100644 --- a/src/bridge.h +++ b/src/bridge.h @@ -18,18 +18,17 @@ typedef uint BridgeType; /** 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]; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index e037f0114b..4a6bb6c83a 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1250,14 +1250,10 @@ static bool BridgeChangeInfo(uint brid, int numinfo, int prop, byte **bufp, int 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: diff --git a/src/table/bridge_land.h b/src/table/bridge_land.h index 73045d3e88..6453fbf973 100644 --- a/src/table/bridge_land.h +++ b/src/table/bridge_land.h @@ -721,7 +721,7 @@ static const PalSpriteID * const * const _bridge_sprite_table[MAX_BRIDGES] = { * @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[] = { /* diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 8a3e23d6e8..a1de7350e9 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1142,8 +1142,7 @@ static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td) 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); }