[Scummvm-git-logs] scummvm master -> 939fc657b431147699efadf7becc44756ba82b17
aquadran
noreply at scummvm.org
Sun May 25 14:57:34 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
939fc657b4 WINTERMUTE: Bump save version for 3d support and handle save game version for 3d games
Commit: 939fc657b431147699efadf7becc44756ba82b17
https://github.com/scummvm/scummvm/commit/939fc657b431147699efadf7becc44756ba82b17
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-05-25T16:57:29+02:00
Commit Message:
WINTERMUTE: Bump save version for 3d support and handle save game version for 3d games
Changed paths:
engines/wintermute/base/base_persistence_manager.cpp
engines/wintermute/dcgf.h
engines/wintermute/wintermute.cpp
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index c0ac1ef7d78..d9be0d50162 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -151,6 +151,11 @@ void BasePersistenceManager::getSaveStateDesc(int slot, SaveStateDescriptor &des
debugC(kWintermuteDebugSaveGame, "getSavedDesc(%d) - Failed for %s", slot, filename.c_str());
return;
}
+ if (BaseEngine::instance().getFlags() & GF_3D) {
+ if (_savedVerMajor == 1 && _savedVerMinor < 5) {
+ return;
+ }
+ }
desc.setSaveSlot(slot);
desc.setDescription(_savedDescription);
desc.setDeletableFlag(true);
@@ -207,6 +212,11 @@ bool BasePersistenceManager::getSaveExists(int slot) {
if (DID_FAIL(readHeader(filename))) {
return false;
}
+ if (BaseEngine::instance().getFlags() & GF_3D) {
+ if (_savedVerMajor == 1 && _savedVerMinor < 5) {
+ return false;
+ }
+ }
return true;
}
@@ -383,6 +393,14 @@ bool BasePersistenceManager::initLoad(const Common::String &filename) {
return STATUS_FAILED;
}
+ if (BaseEngine::instance().getFlags() & GF_3D) {
+ if (_savedVerMajor == 1 && _savedVerMinor < 5) {
+ debugC(kWintermuteDebugSaveGame, "ERROR: Saved game version is too old for 3D game");
+ cleanup();
+ return STATUS_FAILED;
+ }
+ }
+
// if save is newer version than we are, fail
if (_savedVerMajor > DCGF_VER_MAJOR ||
(_savedVerMajor == DCGF_VER_MAJOR && _savedVerMinor > DCGF_VER_MINOR) ||
diff --git a/engines/wintermute/dcgf.h b/engines/wintermute/dcgf.h
index 2455be5ee51..92120bb055c 100644
--- a/engines/wintermute/dcgf.h
+++ b/engines/wintermute/dcgf.h
@@ -31,7 +31,7 @@
//////////////////////////////////////////////////////////////////////////
#define DCGF_VER_MAJOR 1
-#define DCGF_VER_MINOR 4
+#define DCGF_VER_MINOR 5
#define DCGF_VER_BUILD 1
#define DCGF_VER_SUFFIX "ScummVM"
#define DCGF_VER_BETA true
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index d7aa2e4a56f..aa239d09ecd 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -264,7 +264,12 @@ int WintermuteEngine::init() {
if (ConfMan.hasKey("save_slot")) {
int slot = ConfMan.getInt("save_slot");
- _game->loadGame(slot);
+ if (!_game->loadGame(slot)) {
+ _game->LOG(ret, "Error loading save game file.");
+ delete _game;
+ _game = nullptr;
+ return 2;
+ }
}
_game->_scEngine->attachMonitor(_dbgController);
More information about the Scummvm-git-logs
mailing list