(svn r15521) -Codechange: add helper function to get the display tractive effort of a vehicle.

This commit is contained in:
rubidium 2009-02-19 09:45:44 +00:00
parent 459a855e60
commit a5f30dd553
3 changed files with 19 additions and 3 deletions

View File

@ -512,11 +512,10 @@ static int DrawRailWagonPurchaseInfo(int x, int y, EngineID engine_number, const
static int DrawRailEnginePurchaseInfo(int x, int y, EngineID engine_number, const RailVehicleInfo *rvi)
{
const Engine *e = GetEngine(engine_number);
uint weight = e->GetDisplayWeight();
/* Purchase Cost - Engine weight */
SetDParam(0, e->GetCost());
SetDParam(1, weight);
SetDParam(1, e->GetDisplayWeight());
DrawString(x, y, STR_PURCHASE_INFO_COST_WEIGHT, TC_FROMSTRING);
y += 10;
@ -528,7 +527,7 @@ static int DrawRailEnginePurchaseInfo(int x, int y, EngineID engine_number, cons
/* Max tractive effort - not applicable if old acceleration or maglev */
if (_settings_game.vehicle.train_acceleration_model != TAM_ORIGINAL && rvi->railtype != RAILTYPE_MAGLEV) {
SetDParam(0, (weight * 10 * GetEngineProperty(engine_number, 0x1F, rvi->tractive_effort)) / 256);
SetDParam(0, e->GetDisplayMaxTractiveEffort());
DrawString(x, y, STR_PURCHASE_INFO_MAX_TE, TC_FROMSTRING);
y += 10;
}

View File

@ -204,6 +204,22 @@ uint Engine::GetDisplayWeight() const
}
}
/**
* Returns the tractive effort for display purposes.
* For dual-headed train-engines this is the tractive effort of both heads
* @return tractive effort in display units kN
*/
uint Engine::GetDisplayMaxTractiveEffort() const
{
/* Currently only trains have 'tractive effort' */
switch (this->type) {
case VEH_TRAIN:
return (10 * this->GetDisplayWeight() * GetEngineProperty(this->index, 0x1F, this->u.rail.tractive_effort)) / 256;
default: NOT_REACHED();
}
}
/** Sets cached values in Company::num_vehicles and Group::num_vehicles
*/
void SetCachedEngineCounts()

View File

@ -55,6 +55,7 @@ struct Engine : PoolItem<Engine, EngineID, &_Engine_pool> {
uint GetDisplayMaxSpeed() const;
uint GetPower() const;
uint GetDisplayWeight() const;
uint GetDisplayMaxTractiveEffort() const;
};
static inline bool IsEngineIndex(uint index)