TBTR: Show empty and full train weights in GUI, and weight ratios if enabled
This commit is contained in:
@@ -314,12 +314,31 @@ public:
|
||||
y += FONT_HEIGHT_NORMAL;
|
||||
}
|
||||
/* Draw vehicle performance info */
|
||||
const bool original_acceleration = (_settings_game.vehicle.train_acceleration_model == AM_ORIGINAL ||
|
||||
GetRailTypeInfo(this->virtual_train->railtype)->acceleration_type == 2);
|
||||
const GroundVehicleCache *gcache = this->virtual_train->GetGroundVehicleCache();
|
||||
SetDParam(2, this->virtual_train->GetDisplayMaxSpeed());
|
||||
SetDParam(1, gcache->cached_power);
|
||||
SetDParam(0, gcache->cached_weight);
|
||||
SetDParam(3, gcache->cached_max_te / 1000);
|
||||
DrawString(8, r.right, y, STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE);
|
||||
DrawString(8, r.right, y, original_acceleration ? STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED : STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE);
|
||||
uint32 full_cargo_weight = 0;
|
||||
for (Train *train = this->virtual_train; train != nullptr; train = train->Next()) {
|
||||
full_cargo_weight += train->GetCargoWeight(train->cargo_cap);
|
||||
}
|
||||
if (full_cargo_weight > 0 || _settings_client.gui.show_train_weight_ratios_in_details) {
|
||||
y += FONT_HEIGHT_NORMAL;
|
||||
uint full_weight = gcache->cached_weight + full_cargo_weight;
|
||||
SetDParam(0, full_weight);
|
||||
if (_settings_client.gui.show_train_weight_ratios_in_details) {
|
||||
SetDParam(1, STR_VEHICLE_INFO_WEIGHT_RATIOS);
|
||||
SetDParam(2, (100 * this->virtual_train->gcache.cached_power) / max<uint>(1, full_weight));
|
||||
SetDParam(3, (this->virtual_train->gcache.cached_max_te / 10) / max<uint>(1, full_weight));
|
||||
} else {
|
||||
SetDParam(1, STR_EMPTY);
|
||||
}
|
||||
DrawString(8, r.right, y, STR_VEHICLE_INFO_FULL_WEIGHT_WITH_RATIOS);
|
||||
}
|
||||
/* Draw cargo summary */
|
||||
CargoArray cargo_caps;
|
||||
for (const Train *tmp = this->virtual_train; tmp != nullptr; tmp = tmp->Next()) {
|
||||
|
Reference in New Issue
Block a user