(svn r9981) -Fix: fixed a rare event that could cause autoreplace to run out of money and generate an error (spotted by elmex and UndernotBuilder)

This happened if the new engine was a dualheaded engine and there was money to replace and refit the front, but not the rear
  It also adds the cost of refitting the rear end of dualheaded engines to the cost animations (display only)
This commit is contained in:
bjarni 2007-05-29 20:06:06 +00:00
parent 0b3ad0ceb9
commit 6ce4211ad5

View File

@ -171,7 +171,12 @@ static int32 ReplaceVehicle(Vehicle **w, byte flags, int32 total_cost)
return cost; return cost;
} }
if (replacement_cargo_type != CT_NO_REFIT) cost += GetRefitCost(new_engine_type); // add refit cost if (replacement_cargo_type != CT_NO_REFIT) {
/* add refit cost */
int32 refit_cost = GetRefitCost(new_engine_type);
if (old_v->type == VEH_TRAIN && IsMultiheaded(old_v)) refit_cost += refit_cost; // pay for both ends
cost += refit_cost;
}
if (flags & DC_EXEC) { if (flags & DC_EXEC) {
new_v = GetVehicle(_new_vehicle_id); new_v = GetVehicle(_new_vehicle_id);