diff --git a/src/sl/cargopacket_sl.cpp b/src/sl/cargopacket_sl.cpp index 846578594a..f3713beea0 100644 --- a/src/sl/cargopacket_sl.cpp +++ b/src/sl/cargopacket_sl.cpp @@ -137,6 +137,13 @@ extern btree::btree_map _cargo_packet_deferred_payments; for (CargoPacket *cp : iter.second) { st->goods[v->cargo_type].CreateData().cargo.AfterLoadIncreaseReservationCount(cp->count); v->cargo.Append(cp, VehicleCargoList::MTA_LOAD); + if (cp->source_xy != INVALID_TILE) { + cp->UpdateLoadingTile(cp->source_xy); + } +#ifdef WITH_FULL_ASSERTS + /* CPF_IN_VEHICLE in flags is a NOSAVE; it tells if cargo is in a vehicle or not. Restore the value in here. */ + cp->flags |= CPF_IN_VEHICLE; +#endif /* WITH_FULL_ASSERTS */ } } _veh_cpp_packets.clear();