diff -r 41a7a4722f00 src/lang/english.txt --- a/src/lang/english.txt Sat Mar 13 15:55:04 2010 +0000 +++ b/src/lang/english.txt Sat Mar 13 21:36:54 2010 +0100 @@ -2993,7 +2993,9 @@ # Extra buttons for train details windows STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE :{LTBLUE}{ENGINE}{BLACK} Built: {LTBLUE}{NUM}{BLACK} Value: {LTBLUE}{CURRENCY} +STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE_AND_SPEED :{LTBLUE}{ENGINE}{BLACK} Built: {LTBLUE}{NUM}{BLACK} Value: {LTBLUE}{CURRENCY} {BLACK}Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE :{LTBLUE}{ENGINE}{BLACK} Value: {LTBLUE}{CURRENCY} +STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE_AND_SPEED :{LTBLUE}{ENGINE}{BLACK} Value: {LTBLUE}{CURRENCY} {BLACK}Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY_TEXT :{BLACK}Total cargo capacity of this train: STR_VEHICLE_DETAILS_TRAIN_TOTAL_CAPACITY :{LTBLUE}- {CARGO} ({SHORTCARGO}) diff -r 41a7a4722f00 src/train_gui.cpp --- a/src/train_gui.cpp Sat Mar 13 15:55:04 2010 +0000 +++ b/src/train_gui.cpp Sat Mar 13 21:36:54 2010 +0100 @@ -169,16 +169,29 @@ */ static void TrainDetailsInfoTab(const Vehicle *v, int left, int right, int y) { - if (RailVehInfo(v->engine_type)->railveh_type == RAILVEH_WAGON) { - SetDParam(0, v->engine_type); - SetDParam(1, v->value); - DrawString(left, right, y, STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE, TC_FROMSTRING, SA_LEFT | SA_STRIP); + StringID str; + uint param_offset = 0; + const RailVehicleInfo *rvi = RailVehInfo(v->engine_type); + + SetDParam(param_offset++, v->engine_type); + if (rvi->railveh_type == RAILVEH_WAGON) { + str = STR_VEHICLE_DETAILS_TRAIN_WAGON_VALUE; } else { - SetDParam(0, v->engine_type); - SetDParam(1, v->build_year); - SetDParam(2, v->value); - DrawString(left, right, y, STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE, TC_FROMSTRING, SA_LEFT | SA_STRIP); + str = STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE; + SetDParam(param_offset++, v->build_year); } + SetDParam(param_offset++, v->value); + + const Train *u = Train::From(v); + if (!UsesWagonOverride(u) && (_settings_game.vehicle.wagon_speed_limits || rvi->railveh_type != RAILVEH_WAGON)) { + uint16 speed = GetVehicleProperty(u, PROP_TRAIN_SPEED, rvi->max_speed); + if (speed != 0) { + str++; // use string with speed information + SetDParam(param_offset++, speed); + } + } + + DrawString(left, right, y, str, TC_FROMSTRING, SA_LEFT | SA_STRIP); } /**