diff --git a/src/economy.cpp b/src/economy.cpp index 6adf5c2a99..238334bdc3 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -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); }