From 4007338280e0ff733839faacf69439f5f2c51fb0 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 1 Jun 2018 20:05:53 +0100 Subject: [PATCH] Clear VF_CARGO_UNLOADING flag from vehicles with no cargo_payment Bump train_through_load savegame version --- src/saveload/afterload.cpp | 11 +++++++++++ src/saveload/extended_ver_sl.cpp | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index ceefd9ad36..41cf576680 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -3458,6 +3458,17 @@ bool AfterLoadGame() } } + if (SlXvIsFeaturePresent(XSLFI_TRAIN_THROUGH_LOAD, 0, 1)) { + Vehicle *v; + FOR_ALL_VEHICLES(v) { + if (v->cargo_payment == nullptr) { + for (Vehicle *u = v; u != NULL; u = u->Next()) { + if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING)) ClrBit(v->vehicle_flags, VF_CARGO_UNLOADING); + } + } + } + } + /* Road stops is 'only' updating some caches */ AfterLoadRoadStops(); AfterLoadLabelMaps(); diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index f80736119e..7dbbae4e2f 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -82,7 +82,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { { XSLFI_MULTIPLE_DOCKS, XSCF_NULL, 1, 1, "multiple_docks", NULL, NULL, "DOCK" }, { XSLFI_TIMETABLE_EXTRA, XSCF_NULL, 1, 1, "timetable_extra", NULL, NULL, "ORDX" }, { XSLFI_TRAIN_FLAGS_EXTRA, XSCF_NULL, 1, 1, "train_flags_extra", NULL, NULL, NULL }, - { XSLFI_TRAIN_THROUGH_LOAD, XSCF_NULL, 1, 1, "train_through_load", NULL, NULL, NULL }, + { XSLFI_TRAIN_THROUGH_LOAD, XSCF_NULL, 2, 2, "train_through_load", NULL, NULL, NULL }, { XSLFI_ORDER_EXTRA_DATA, XSCF_NULL, 1, 1, "order_extra_data", NULL, NULL, NULL }, { XSLFI_WHOLE_MAP_CHUNK, XSCF_NULL, 1, 1, "whole_map_chunk", NULL, NULL, "WMAP" }, { XSLFI_ST_LAST_VEH_TYPE, XSCF_NULL, 1, 1, "station_last_veh_type", NULL, NULL, NULL },