[Scummvm-git-logs] scummvm master -> 87108db0a10f21e7cf4fa4ea1516c82210218f6d
antoniou79
noreply at scummvm.org
Thu Jan 13 22:34:05 UTC 2022
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:
87108db0a1 BLADERUNNER: Disable ScummVM autosaving
Commit: 87108db0a10f21e7cf4fa4ea1516c82210218f6d
https://github.com/scummvm/scummvm/commit/87108db0a10f21e7cf4fa4ea1516c82210218f6d
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2022-01-14T00:31:40+02:00
Commit Message:
BLADERUNNER: Disable ScummVM autosaving
Also slightly update the cases for canSaveGameStateCurrently()
The game has its own autosave mechanism (at the start of each new Act). Also currently the label for the ScummVM autosave can be in the wrong language (since it is in the ScummVM's GUI language, but not necessarily in the game's own GUI language) and in KIA it could appear illegible as "?????? ??????" for non Latin languages.
Changed paths:
engines/bladerunner/bladerunner.cpp
engines/bladerunner/bladerunner.h
engines/bladerunner/metaengine.cpp
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 4212d615942..091d22ac968 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -284,6 +284,8 @@ Common::Error BladeRunnerEngine::loadGameState(int slot) {
bool BladeRunnerEngine::canSaveGameStateCurrently() {
return
playerHasControl() &&
+ _gameIsRunning &&
+ !_gameJustLaunched &&
!_sceneScript->isInsideScript() &&
!_aiScripts->isInsideScript() &&
!_kia->isOpen() &&
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 7b438f16c52..2c4a10a25a6 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -277,6 +277,20 @@ public:
Common::Error loadGameState(int slot) override;
bool canSaveGameStateCurrently() override;
Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave = false) override;
+ /**
+ * NOTE: Disable support for external autosave (ScummVM's feature).
+ * Main reason is that it's not easy to properly label this autosave,
+ * since currently it would translate "Autosave" to the ScummVM GUI language
+ * which ends up showing as "?????? ??????" on non-latin languages (eg. Greek),
+ * and in addition is inconsistent with the game's own GUI language.
+ * Secondary reason is that the game already has an autosaving mechanism,
+ * albeit only at the start of a new Act.
+ * And final reason would be to prevent an autosave at an unforeseen moment,
+ * if we've failed to account for all cases that the game should not save by itself;
+ * currently those are listed in BladeRunnerEngine::canSaveGameStateCurrently().
+ */
+ int getAutosaveSlot() const override { return -1; }
+
void pauseEngineIntern(bool pause) override;
Common::Error run() override;
diff --git a/engines/bladerunner/metaengine.cpp b/engines/bladerunner/metaengine.cpp
index eecd42edfc3..2050d57bfbc 100644
--- a/engines/bladerunner/metaengine.cpp
+++ b/engines/bladerunner/metaengine.cpp
@@ -41,6 +41,8 @@ public:
int getMaximumSaveSlot() const override;
void removeSaveState(const char *target, int slot) const override;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const override;
+ // Disable autosave (see mirrored method in bladerunner.h for detailed explanation)
+ int getAutosaveSlot() const override { return -1; }
};
const char *BladeRunnerMetaEngine::getName() const {
More information about the Scummvm-git-logs
mailing list