summaryrefslogtreecommitdiff
path: root/src/vehicle_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vehicle_cmd.cpp')
-rw-r--r--src/vehicle_cmd.cpp14
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));
}
/**