Fix handling of refit with train through-load

This commit is contained in:
Jonathan G Rennison
2018-05-08 06:58:37 +01:00
parent ef50baadd6
commit a08a79a9d8

View File

@@ -1768,7 +1768,7 @@ static void LoadUnloadVehicle(Vehicle *front)
if (v != front && !HasBit(Train::From(v->Previous())->flags, VRF_BEYOND_PLATFORM_END) && length > platform_length_left) {
for (Vehicle *skip = v; skip != NULL; skip = skip->Next()) {
SetBit(Train::From(skip)->flags, VRF_NOT_YET_IN_PLATFORM);
if (skip->cargo.ReservedCount() || skip->cargo.UnloadCount()) {
if (skip->cargo.ReservedCount() || skip->cargo.UnloadCount() || (skip->cargo_cap != 0 && front->current_order.IsRefit())) {
load_unload_not_yet_in_station = true;
}
}
@@ -1994,7 +1994,7 @@ static void LoadUnloadVehicle(Vehicle *front)
}
}
if (pull_through_mode && (front->current_order.IsRefit() || load_unload_not_yet_in_station)) {
if (pull_through_mode && load_unload_not_yet_in_station) {
finished_loading = false;
SetBit(Train::From(front)->flags, VRF_ADVANCE_IN_PLATFORM);
}