diff options
Diffstat (limited to 'src/engine.cpp')
-rw-r--r-- | src/engine.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/engine.cpp b/src/engine.cpp index ef6d63438..32d591373 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -118,6 +118,25 @@ Engine::~Engine() free(this->name); } +Money Engine::GetRunningCost() const +{ + switch (this->type) { + case VEH_ROAD: + return this->u.road.running_cost * GetPriceByIndex(this->u.road.running_cost_class) >> 8; + + case VEH_TRAIN: + return GetEngineProperty(this->index, 0x0D, this->u.rail.running_cost) * GetPriceByIndex(this->u.rail.running_cost_class) >> 8; + + case VEH_SHIP: + return GetEngineProperty(this->index, 0x0F, this->u.ship.running_cost) * _price.ship_running >> 8; + + case VEH_AIRCRAFT: + return GetEngineProperty(this->index, 0x0E, this->u.air.running_cost) * _price.aircraft_running >> 8; + + default: NOT_REACHED(); + } +} + /** Sets cached values in Company::num_vehicles and Group::num_vehicles */ void SetCachedEngineCounts() |