(svn r19434) -Add: Add rail speed limit to land area information window.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
peter1138 14 years ago
parent 0dd8110484
commit 604da97364

@ -2131,6 +2131,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Airport
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{RAW_STRING}
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargo accepted: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rail speed limit: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocks

@ -159,6 +159,7 @@ public:
td.station_class = STR_NULL;
td.station_name = STR_NULL;
td.airport_tile_name = STR_NULL;
td.rail_speed = 0;
td.grf = NULL;
@ -252,6 +253,13 @@ public:
line_nr++;
}
/* Rail speed limit */
if (td.rail_speed != 0) {
SetDParam(0, td.rail_speed);
GetString(this->landinfo_data[line_nr], STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT, lastof(this->landinfo_data[line_nr]));
line_nr++;
}
/* NewGRF name */
if (td.grf != NULL) {
SetDParamStr(0, td.grf);

@ -2575,6 +2575,8 @@ static bool ClickTile_Track(TileIndex tile)
static void GetTileDesc_Track(TileIndex tile, TileDesc *td)
{
const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
td->rail_speed = rti->max_speed;
td->owner[0] = GetTileOwner(tile);
switch (GetRailTileType(tile)) {
case RAIL_TILE_NORMAL:
@ -2648,6 +2650,11 @@ static void GetTileDesc_Track(TileIndex tile, TileDesc *td)
case RAIL_TILE_DEPOT:
td->str = STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT;
if (td->rail_speed > 0) {
td->rail_speed = min(td->rail_speed, 61);
} else {
td->rail_speed = 61;
}
break;
default:

@ -1531,6 +1531,10 @@ static void GetTileDesc_Road(TileIndex tile, TileDesc *td)
rail_owner = GetTileOwner(tile);
if (HasBit(rts, ROADTYPE_ROAD)) road_owner = GetRoadOwner(tile, ROADTYPE_ROAD);
if (HasBit(rts, ROADTYPE_TRAM)) tram_owner = GetRoadOwner(tile, ROADTYPE_TRAM);
const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
td->rail_speed = rti->max_speed;
break;
}

@ -2800,6 +2800,9 @@ static void GetTileDesc_Station(TileIndex tile, TileDesc *td)
td->grf = gc->GetName();
}
}
const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
td->rail_speed = rti->max_speed;
}
if (IsAirport(tile)) {

@ -60,6 +60,7 @@ struct TileDesc {
StringID airport_tile_name; ///< Name of the airport tile
const char *grf; ///< newGRF used for the tile contents
uint64 dparam[2]; ///< Parameters of the \a str string
uint16 rail_speed; ///< Speed limit of rail
};
/**

@ -1332,6 +1332,18 @@ static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td)
td->owner[i] = tram_owner;
}
}
if (tt == TRANSPORT_RAIL) {
const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
td->rail_speed = rti->max_speed;
if (!IsTunnel(tile)) {
uint16 spd = GetBridgeSpec(GetBridgeType(tile))->speed;
if (td->rail_speed == 0 || spd < td->rail_speed) {
td->rail_speed = spd;
}
}
}
}

Loading…
Cancel
Save