diff --git a/src/saveload/extended_ver_sl.h b/src/saveload/extended_ver_sl.h index fa22edd91a..57d487e753 100644 --- a/src/saveload/extended_ver_sl.h +++ b/src/saveload/extended_ver_sl.h @@ -77,6 +77,8 @@ enum SlxiSubChunkFlags { XSCF_IGNORABLE_VERSION = 1 << 1, ///< the loader is free to ignore this without aborting the load if the version is greater than the maximum that can be loaded XSCF_EXTRA_DATA_PRESENT = 1 << 2, ///< extra data field is present, extra data in some sub-chunk/feature specific format, not used for anything yet XSCF_CHUNK_ID_LIST_PRESENT = 1 << 3, ///< chunk ID list field is present, list of chunks which this sub-chunk/feature adds to the save game, this can be used to discard the chunks if the feature is unknown + + XSCF_IGNORABLE_ALL = XSCF_IGNORABLE_UNKNOWN | XSCF_IGNORABLE_VERSION, ///< all "ignorable" flags }; DECLARE_ENUM_AS_BIT_SET(SlxiSubChunkFlags) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 55a37f8ee8..74f6fba1e2 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2467,8 +2467,6 @@ static inline void ClearSaveLoadState() delete _sl.lf; _sl.lf = NULL; - - SlXvSetCurrentState(); } /** @@ -2780,6 +2778,8 @@ static SaveOrLoadResult DoLoad(LoadFilter *reader, bool load_check) GamelogStopAction(); } + SlXvSetCurrentState(); + return SL_OK; } @@ -2839,6 +2839,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, boo return SL_REINIT; } GamelogStopAction(); + SlXvSetCurrentState(); return SL_OK; }