diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 8d482a1b896..cbec457e2d0 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -198,6 +198,18 @@ void UpdateOldAircraft() SetAircraftPosition(a, gp.x, gp.y, GetAircraftFlightLevel(a)); } } + + /* Clear aircraft from loading vehicles, if we bumped them into the air. */ + for (Station *st : Station::Iterate()) { + for (auto iter = st->loading_vehicles.begin(); iter != st->loading_vehicles.end(); /* nothing */) { + Vehicle *v = *iter; + if (v->type == VEH_AIRCRAFT && !v->current_order.IsType(OT_LOADING)) { + iter = st->loading_vehicles.erase(iter); + } else { + ++iter; + } + } + } } /**