diff options
Diffstat (limited to 'vehicle.c')
-rw-r--r-- | vehicle.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -1760,9 +1760,13 @@ static void MaybeReplaceVehicle(Vehicle *v) continue; } - if (w->type == VEH_Train && IsTrainWagon(w) && !CanRefitTo(EngineReplacementForPlayer(p, w->engine_type), w->cargo_type)) { - // we can't replace this wagon since we can't refit the new one to the right cargo type - continue; + if (w->type == VEH_Train && IsTrainWagon(w)) { + EngineID e = EngineReplacementForPlayer(p, w->engine_type); + + if (w->cargo_type != RailVehInfo(e)->cargo_type && !CanRefitTo(e, w->cargo_type)) { + // we can't replace this wagon since the cargo type is incorrent, and we can't refit it + continue; + } } /* Now replace the vehicle */ |