[Scummvm-git-logs] scummvm master -> 9d8d2263d459e911c1cfce3ea164d866b133f393

aquadran noreply at scummvm.org
Sat Nov 16 07:56:23 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9d8d2263d4 WINTERMUTE: Turn off saving game state while playing bink videos


Commit: 9d8d2263d459e911c1cfce3ea164d866b133f393
    https://github.com/scummvm/scummvm/commit/9d8d2263d459e911c1cfce3ea164d866b133f393
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-11-16T08:56:18+01:00

Commit Message:
WINTERMUTE: Turn off saving game state while playing bink videos

Changed paths:
    engines/wintermute/ext/wme_vlink.cpp
    engines/wintermute/wintermute.cpp
    engines/wintermute/wintermute.h


diff --git a/engines/wintermute/ext/wme_vlink.cpp b/engines/wintermute/ext/wme_vlink.cpp
index ecb95eb2790..439dae273f2 100644
--- a/engines/wintermute/ext/wme_vlink.cpp
+++ b/engines/wintermute/ext/wme_vlink.cpp
@@ -101,6 +101,7 @@ bool SXVlink::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 
 #ifdef USE_BINK
 		_gameRef->freeze();
+		((WintermuteEngine *)g_engine)->savingEnable(false);
 
 		Common::SeekableReadStream *file = BaseFileManager::getEngineInstance()->openFile(path);
 		if (file) {
@@ -167,6 +168,7 @@ bool SXVlink::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 			BaseFileManager::getEngineInstance()->closeFile(file);
 		}
 
+		((WintermuteEngine *)g_engine)->savingEnable(true);
 		_gameRef->unfreeze();
 #else
 		warning("SXVlink::Play(%s) Bink playback not compiled in", path);
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index 7906e174998..08aeb08d0d3 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -105,6 +105,8 @@ Common::Error WintermuteEngine::run() {
 	_debugger = new Console(this);
 	setDebugger(_debugger);
 
+	_savingEnabled = true;
+
 //	DebugMan.enableDebugChannel("enginelog");
 	debugC(1, kWintermuteDebugLog, "Engine Debug-LOG enabled");
 	debugC(2, kWintermuteDebugSaveGame , "Savegame debugging-enabled");
@@ -342,13 +344,21 @@ Common::Error WintermuteEngine::saveGameState(int slot, const Common::String &de
 }
 
 bool WintermuteEngine::canSaveGameStateCurrently(Common::U32String *msg) {
-	return true;
+	return _savingEnabled;
 }
 
 bool WintermuteEngine::canLoadGameStateCurrently(Common::U32String *msg) {
 	return true;
 }
 
+bool WintermuteEngine::canSaveAutosaveCurrently() {
+	return _savingEnabled;
+}
+
+void WintermuteEngine::savingEnable(bool enable) {
+	_savingEnabled = enable;
+}
+
 bool WintermuteEngine::getGameInfo(const Common::FSList &fslist, Common::String &name, Common::String &caption) {
 	bool retVal = false;
 	caption = name = "(invalid)";
diff --git a/engines/wintermute/wintermute.h b/engines/wintermute/wintermute.h
index 0b752382df6..3134d0e99e3 100644
--- a/engines/wintermute/wintermute.h
+++ b/engines/wintermute/wintermute.h
@@ -63,6 +63,8 @@ public:
 	bool canLoadGameStateCurrently(Common::U32String *msg = nullptr) override;
 	Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave = false) override;
 	bool canSaveGameStateCurrently(Common::U32String *msg = nullptr) override;
+	bool canSaveAutosaveCurrently() override;
+	void savingEnable(bool enable);
 	// For detection-purposes:
 	static bool getGameInfo(const Common::FSList &fslist, Common::String &name, Common::String &caption);
 private:
@@ -73,6 +75,7 @@ private:
 	BaseGame *_game;
 	Wintermute::DebuggerController *_dbgController;
 	const WMEGameDescription *_gameDescription;
+	bool _savingEnabled{};
 
 	friend class Console;
 	friend class DebuggerController;




More information about the Scummvm-git-logs mailing list