diff options
author | frosch <frosch@openttd.org> | 2009-11-24 13:12:34 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2009-11-24 13:12:34 +0000 |
commit | 912bce0b8cdeca9849dd257ca95566b009719d53 (patch) | |
tree | a2abd63725a9c6baffb22a8b3c39dc6b2f535dfb /src/vehicle_cmd.cpp | |
parent | b6b551533532d64f47e883d770b9633027ca7628 (diff) | |
download | openttd-912bce0b8cdeca9849dd257ca95566b009719d53.tar.xz |
(svn r18266) -Codechange: Add a function to compute prices from price base and cost factor and use it consistently for vehicle purchase, running cost, and refit cost.
Diffstat (limited to 'src/vehicle_cmd.cpp')
-rw-r--r-- | src/vehicle_cmd.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 529d31adc..9460d2f56 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -262,33 +262,35 @@ CommandCost CmdDepotMassAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 */ static CommandCost GetRefitCost(EngineID engine_type) { - Money base_cost; ExpensesType expense_type; const Engine *e = Engine::Get(engine_type); + Price base_price; + uint cost_factor = e->info.refit_cost; switch (e->type) { case VEH_SHIP: - base_cost = _price[PR_BUILD_VEHICLE_SHIP]; + base_price = PR_BUILD_VEHICLE_SHIP; expense_type = EXPENSES_SHIP_RUN; break; case VEH_ROAD: - base_cost = _price[PR_BUILD_VEHICLE_ROAD]; + base_price = PR_BUILD_VEHICLE_ROAD; expense_type = EXPENSES_ROADVEH_RUN; break; case VEH_AIRCRAFT: - base_cost = _price[PR_BUILD_VEHICLE_AIRCRAFT]; + base_price = PR_BUILD_VEHICLE_AIRCRAFT; expense_type = EXPENSES_AIRCRAFT_RUN; break; case VEH_TRAIN: - base_cost = 2 * _price[(e->u.rail.railveh_type == RAILVEH_WAGON) ? PR_BUILD_VEHICLE_WAGON : PR_BUILD_VEHICLE_TRAIN]; + base_price = (e->u.rail.railveh_type == RAILVEH_WAGON) ? PR_BUILD_VEHICLE_WAGON : PR_BUILD_VEHICLE_TRAIN; + cost_factor <<= 1; expense_type = EXPENSES_TRAIN_RUN; break; default: NOT_REACHED(); } - return CommandCost(expense_type, (e->info.refit_cost * base_cost) >> 10); + return CommandCost(expense_type, GetPrice(base_price, cost_factor, -10)); } /** |