summaryrefslogtreecommitdiff
path: root/src/vehicle_gui.cpp
diff options
context:
space:
mode:
authorterkhen <terkhen@openttd.org>2010-12-14 21:31:00 +0000
committerterkhen <terkhen@openttd.org>2010-12-14 21:31:00 +0000
commita4a92741778047893eb05dd9e98d0f153d41e2eb (patch)
tree6ce748e8d315f39770cceb6200ea13f2d9463005 /src/vehicle_gui.cpp
parent12c86a139193ab88edb998844c2685b569430a57 (diff)
downloadopenttd-a4a92741778047893eb05dd9e98d0f153d41e2eb.tar.xz
(svn r21519) -Codechange: Allow direct access to the GroundVehicleCache from a Vehicle.
Diffstat (limited to 'src/vehicle_gui.cpp')
-rw-r--r--src/vehicle_gui.cpp45
1 files changed, 18 insertions, 27 deletions
diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp
index 3fb6f403a..dfd534da0 100644
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -1701,34 +1701,25 @@ struct VehicleDetailsWindow : Window {
y += FONT_HEIGHT_NORMAL;
/* Draw max speed */
- switch (v->type) {
- case VEH_TRAIN:
- SetDParam(2, v->GetDisplayMaxSpeed());
- SetDParam(1, Train::From(v)->gcache.cached_power);
- SetDParam(0, Train::From(v)->gcache.cached_weight);
- SetDParam(3, Train::From(v)->gcache.cached_max_te / 1000);
- DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, (_settings_game.vehicle.train_acceleration_model != AM_ORIGINAL && GetRailTypeInfo(Train::From(v)->railtype)->acceleration_type != 2) ?
- STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE : STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED);
- break;
-
- case VEH_ROAD:
- if (_settings_game.vehicle.roadveh_acceleration_model != AM_ORIGINAL) {
- SetDParam(2, v->GetDisplayMaxSpeed());
- SetDParam(1, RoadVehicle::From(v)->gcache.cached_power);
- SetDParam(0, RoadVehicle::From(v)->gcache.cached_weight);
- SetDParam(3, RoadVehicle::From(v)->gcache.cached_max_te / 1000);
- DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE);
- break;
- }
- /* FALL THROUGH */
- case VEH_SHIP:
- case VEH_AIRCRAFT:
- SetDParam(0, v->GetDisplayMaxSpeed());
- DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_VEHICLE_INFO_MAX_SPEED);
- break;
-
- default: NOT_REACHED();
+ StringID string;
+ if (v->type == VEH_TRAIN ||
+ (v->type == VEH_ROAD && _settings_game.vehicle.roadveh_acceleration_model != AM_ORIGINAL)) {
+ const GroundVehicleCache *gcache = v->GetGroundVehicleCache();
+ SetDParam(2, v->GetDisplayMaxSpeed());
+ SetDParam(1, gcache->cached_power);
+ SetDParam(0, gcache->cached_weight);
+ SetDParam(3, gcache->cached_max_te / 1000);
+ if (v->type == VEH_TRAIN && (_settings_game.vehicle.train_acceleration_model == AM_ORIGINAL ||
+ GetRailTypeInfo(Train::From(v)->railtype)->acceleration_type == 2)) {
+ string = STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED;
+ } else {
+ string = STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE;
+ }
+ } else {
+ SetDParam(0, v->GetDisplayMaxSpeed());
+ string = STR_VEHICLE_INFO_MAX_SPEED;
}
+ DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, string);
y += FONT_HEIGHT_NORMAL;
/* Draw profit */