From 5c4deb3f889a88f4e77f7ce441609ba2d6a59f6e Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Thu, 25 Jul 2024 22:37:44 +0200 Subject: [PATCH] Prevent older binaries from incorrectly loading newer saves --- apps/openmw/mwworld/worldimp.cpp | 4 +--- components/esm3/formatversion.hpp | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 57fe28ed58..bbf15312d3 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -508,10 +508,8 @@ namespace MWWorld } break; case ESM::REC_PLAY: - if (!mIdsRebuilt) + if (reader.getFormatVersion() <= ESM::MaxPlayerBeforeCellDataFormatVersion && !mIdsRebuilt) { - // FIME this can be removed when MinSupportedSaveGameFormatVersion > 32 - // Older saves have the player before the WorldModel. mStore.rebuildIdsIndex(); mIdsRebuilt = true; } diff --git a/components/esm3/formatversion.hpp b/components/esm3/formatversion.hpp index 36e43728e2..b09a42cae5 100644 --- a/components/esm3/formatversion.hpp +++ b/components/esm3/formatversion.hpp @@ -27,7 +27,8 @@ namespace ESM inline constexpr FormatVersion MaxActiveSpellSlotIndexFormatVersion = 27; inline constexpr FormatVersion MaxOldCountFormatVersion = 30; inline constexpr FormatVersion MaxActiveSpellTypeVersion = 31; - inline constexpr FormatVersion CurrentSaveGameFormatVersion = 32; + inline constexpr FormatVersion MaxPlayerBeforeCellDataFormatVersion = 32; + inline constexpr FormatVersion CurrentSaveGameFormatVersion = 33; inline constexpr FormatVersion MinSupportedSaveGameFormatVersion = 5; inline constexpr FormatVersion OpenMW0_48SaveGameFormatVersion = 21;