[Scummvm-git-logs] scummvm master -> 0db343d364b16d58e3378c9f09604dc580ec516f
sev-
sev at scummvm.org
Sun Oct 24 14:46:39 UTC 2021
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:
0db343d364 ENGINES: Add missing getSavegameFile overrides
Commit: 0db343d364b16d58e3378c9f09604dc580ec516f
https://github.com/scummvm/scummvm/commit/0db343d364b16d58e3378c9f09604dc580ec516f
Author: Orgad Shaneh (orgads at gmail.com)
Date: 2021-10-24T16:46:36+02:00
Commit Message:
ENGINES: Add missing getSavegameFile overrides
... for non-default names.
Fixes moving autosave to a new slot.
Trac #12977
Changed paths:
engines/composer/metaengine.cpp
engines/cryomni3d/metaengine.cpp
engines/hugo/metaengine.cpp
engines/lilliput/metaengine.cpp
engines/stark/metaengine.cpp
engines/teenagent/metaengine.cpp
engines/tucker/metaengine.cpp
diff --git a/engines/composer/metaengine.cpp b/engines/composer/metaengine.cpp
index cd731debf6..2f704aa342 100644
--- a/engines/composer/metaengine.cpp
+++ b/engines/composer/metaengine.cpp
@@ -76,6 +76,14 @@ public:
int getMaximumSaveSlot() const override;
SaveStateList listSaves(const char* target) const override;
+ Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
+ if (!target)
+ target = getEngineId();
+ if (saveGameIdx == kSavegameFilePattern)
+ return Common::String::format("%s.##", target);
+ else
+ return Common::String::format("%s.%02d", target, saveGameIdx);
+ }
};
Common::Error ComposerMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
@@ -103,9 +111,8 @@ SaveStateList ComposerMetaEngine::listSaves(const char *target) const {
Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
Common::StringArray filenames;
Common::String saveDesc;
- Common::String pattern = Common::String::format("%s.##", target);
- filenames = saveFileMan->listSavefiles(pattern);
+ filenames = saveFileMan->listSavefiles(getSavegameFilePattern(target));
SaveStateList saveList;
for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
diff --git a/engines/cryomni3d/metaengine.cpp b/engines/cryomni3d/metaengine.cpp
index 10af37861d..2cb89aa120 100644
--- a/engines/cryomni3d/metaengine.cpp
+++ b/engines/cryomni3d/metaengine.cpp
@@ -79,6 +79,14 @@ public:
SaveStateList listSaves(const char *target) const override;
int getMaximumSaveSlot() const override { return 999; }
void removeSaveState(const char *target, int slot) const override;
+ Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
+ if (!target)
+ target = getEngineId();
+ if (saveGameIdx == kSavegameFilePattern)
+ return Common::String::format("%s.####", target);
+ else
+ return Common::String::format("%s.%04d", target, saveGameIdx + 1);
+ }
};
bool CryOmni3DMetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -98,8 +106,7 @@ SaveStateList CryOmni3DMetaEngine::listSaves(const char *target) const {
char saveName[kSaveDescriptionLen + 1];
saveName[kSaveDescriptionLen] = '\0';
- Common::String pattern = Common::String::format("%s.????", target);
- Common::StringArray filenames = saveMan->listSavefiles(pattern);
+ Common::StringArray filenames = saveMan->listSavefiles(getSavegameFilePattern(target));
sort(filenames.begin(), filenames.end()); // Sort (hopefully ensuring we are sorted numerically..)
int slotNum;
@@ -124,9 +131,7 @@ SaveStateList CryOmni3DMetaEngine::listSaves(const char *target) const {
}
void CryOmni3DMetaEngine::removeSaveState(const char *target, int slot) const {
- Common::String filename = Common::String::format("%s.%04d", target, slot + 1);
-
- g_system->getSavefileManager()->removeSavefile(filename);
+ g_system->getSavefileManager()->removeSavefile(getSavegameFile(slot, target));
}
Common::Error CryOmni3DMetaEngine::createInstance(OSystem *syst, Engine **engine,
diff --git a/engines/hugo/metaengine.cpp b/engines/hugo/metaengine.cpp
index 08a1abedb5..0c39339197 100644
--- a/engines/hugo/metaengine.cpp
+++ b/engines/hugo/metaengine.cpp
@@ -53,7 +53,14 @@ public:
SaveStateList listSaves(const char *target) const override;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const override;
void removeSaveState(const char *target, int slot) const override;
-
+ Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
+ if (!target)
+ target = getEngineId();
+ if (saveGameIdx == kSavegameFilePattern)
+ return Common::String::format("%s-##.SAV", target);
+ else
+ return Common::String::format("%s-%02d.SAV", target, saveGameIdx);
+ }
};
Common::Error HugoMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const {
@@ -123,8 +130,7 @@ SaveStateList HugoMetaEngine::listSaves(const char *target) const {
}
SaveStateDescriptor HugoMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
- Common::String fileName = Common::String::format("%s-%02d.SAV", target, slot);
- Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName);
+ Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(getSavegameFile(slot, target));
if (file) {
int saveVersion = file->readByte();
@@ -171,8 +177,7 @@ SaveStateDescriptor HugoMetaEngine::querySaveMetaInfos(const char *target, int s
}
void HugoMetaEngine::removeSaveState(const char *target, int slot) const {
- Common::String fileName = Common::String::format("%s-%02d.SAV", target, slot);
- g_system->getSavefileManager()->removeSavefile(fileName);
+ g_system->getSavefileManager()->removeSavefile(getSavegameFile(slot, target));
}
} // End of namespace Hugo
diff --git a/engines/lilliput/metaengine.cpp b/engines/lilliput/metaengine.cpp
index 02088dd710..22cfe74e2a 100644
--- a/engines/lilliput/metaengine.cpp
+++ b/engines/lilliput/metaengine.cpp
@@ -57,6 +57,14 @@ public:
SaveStateList listSaves(const char *target) const override;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const override;
void removeSaveState(const char *target, int slot) const override;
+ Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
+ if (!target)
+ target = getEngineId();
+ if (saveGameIdx == kSavegameFilePattern)
+ return Common::String::format("%s-##.SAV", target);
+ else
+ return Common::String::format("%s-%02d.SAV", target, saveGameIdx);
+ }
};
Common::Error LilliputMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const {
@@ -128,8 +136,7 @@ SaveStateList LilliputMetaEngine::listSaves(const char *target) const {
}
SaveStateDescriptor LilliputMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
- Common::String fileName = Common::String::format("%s-%02d.SAV", target, slot);
- Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName);
+ Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(getSavegameFile(slot, target));
if (file) {
int saveVersion = file->readByte();
@@ -177,8 +184,7 @@ SaveStateDescriptor LilliputMetaEngine::querySaveMetaInfos(const char *target, i
}
void LilliputMetaEngine::removeSaveState(const char *target, int slot) const {
- Common::String fileName = Common::String::format("%s-%02d.SAV", target, slot);
- g_system->getSavefileManager()->removeSavefile(fileName);
+ g_system->getSavefileManager()->removeSavefile(getSavegameFile(slot, target));
}
} // End of namespace Lilliput
diff --git a/engines/stark/metaengine.cpp b/engines/stark/metaengine.cpp
index b58b1777a3..e2c44982d3 100644
--- a/engines/stark/metaengine.cpp
+++ b/engines/stark/metaengine.cpp
@@ -118,6 +118,15 @@ public:
*engine = new StarkEngine(syst, desc);
return Common::kNoError;
}
+
+ Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
+ if (!target)
+ target = getEngineId();
+ if (saveGameIdx == kSavegameFilePattern)
+ return Common::String::format("%s-###.tlj", target);
+ else
+ return StarkEngine::formatSaveName(target, saveGameIdx);
+ }
};
} // End of namespace Stark
diff --git a/engines/teenagent/metaengine.cpp b/engines/teenagent/metaengine.cpp
index ebd5f85704..cb04ed38d7 100644
--- a/engines/teenagent/metaengine.cpp
+++ b/engines/teenagent/metaengine.cpp
@@ -59,8 +59,13 @@ public:
return Common::kNoError;
}
- static Common::String generateGameStateFileName(const char *target, int slot) {
- return Common::String::format("%s.%02d", target, slot);
+ Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
+ if (!target)
+ target = getEngineId();
+ if (saveGameIdx == kSavegameFilePattern)
+ return Common::String::format("%s.##", target);
+ else
+ return Common::String::format("%s.%02d", target, saveGameIdx);
}
SaveStateList listSaves(const char *target) const override {
@@ -94,12 +99,11 @@ public:
}
void removeSaveState(const char *target, int slot) const override {
- Common::String filename = generateGameStateFileName(target, slot);
- g_system->getSavefileManager()->removeSavefile(filename);
+ g_system->getSavefileManager()->removeSavefile(getSavegameFile(slot, target));
}
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const override {
- Common::String filename = generateGameStateFileName(target, slot);
+ Common::String filename = getSavegameFile(slot, target);
Common::ScopedPtr<Common::InSaveFile> in(g_system->getSavefileManager()->openForLoading(filename));
if (!in)
return SaveStateDescriptor();
diff --git a/engines/tucker/metaengine.cpp b/engines/tucker/metaengine.cpp
index cfc66aea38..62553d41c1 100644
--- a/engines/tucker/metaengine.cpp
+++ b/engines/tucker/metaengine.cpp
@@ -145,6 +145,12 @@ public:
delete file;
return desc;
}
+
+ Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
+ if (!target)
+ target = getEngineId();
+ return Tucker::generateGameStateFileName(target, saveGameIdx, saveGameIdx == kSavegameFilePattern);
+ }
};
#if PLUGIN_ENABLED_DYNAMIC(TUCKER)
More information about the Scummvm-git-logs
mailing list