[Scummvm-git-logs] scummvm master -> aab9a5770cb5d43001ead9a07bda466114205d26
neuromancer
noreply at scummvm.org
Fri Mar 11 07:37:39 UTC 2022
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
df29e44587 HYPNO: simplified saving and loading code to use listSaves in wet
aab9a5770c HYPNO: avoid updating progression in a save game when replaying previous levels in wet
Commit: df29e445870f9f0854730b107a22efcb4e21bafa
https://github.com/scummvm/scummvm/commit/df29e445870f9f0854730b107a22efcb4e21bafa
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-11T08:28:34+01:00
Commit Message:
HYPNO: simplified saving and loading code to use listSaves in wet
Changed paths:
engines/hypno/wet/wet.cpp
diff --git a/engines/hypno/wet/wet.cpp b/engines/hypno/wet/wet.cpp
index 30de5b229fa..079768064df 100644
--- a/engines/hypno/wet/wet.cpp
+++ b/engines/hypno/wet/wet.cpp
@@ -451,16 +451,9 @@ void WetEngine::drawString(const Common::String &font, const Common::String &str
}
void WetEngine::saveGame(int levelId) {
- Common::SaveFileManager *saveManager = getSaveFileManager();
- Common::String namedPattern = Common::String::format("%s-wet.*", _name.c_str());
- Common::String allPattern = "*-wet.*";
- Common::StringArray namedSaves = saveManager->listSavefiles(namedPattern);
- Common::StringArray allSaves = saveManager->listSavefiles(allPattern);
-
- if (namedSaves.size() == 0) {
- namedSaves.push_back(Common::String::format("%s-wet.%03d", _name.c_str(), allSaves.size()));
- } else if (namedSaves.size() > 1)
- error("Found %d saves to write!", namedSaves.size());
+ Common::String target = ConfMan.get("gameid") + "-" + ConfMan.get("language");
+ SaveStateList saves = getMetaEngine()->listSaves(target.c_str());
+
// Find the correct level index to before saving
for (uint32 i = 0; i < _ids.size(); i++) {
if (levelId == _ids[i]) {
@@ -468,33 +461,39 @@ void WetEngine::saveGame(int levelId) {
break;
}
}
- debugC(1, kHypnoDebugMedia, "Saving in %s", namedSaves[0].c_str());
- Common::OutSaveFile *outf = saveManager->openForSaving(namedSaves[0]);
- saveGameStream(outf, false);
- outf->finalize();
- delete outf;
+
+ uint32 slot = 0;
+ for (SaveStateList::iterator save = saves.begin(); save != saves.end(); ++save) {
+ if (save->getDescription() == _name)
+ break;
+ slot++;
+ }
+
+ saveGameState(slot, _name, false);
}
bool WetEngine::loadGame(const Common::String &name) {
- Common::SaveFileManager *saveManager = getSaveFileManager();
- Common::StringArray saves = saveManager->listSavefiles("*-wet.*");
-
- for (uint32 i = 0; i < saves.size(); i++) {
- Common::String filename = Common::String::format("%s-wet.%03d", name.c_str(), i);
- if (saves[i] == filename) {
- debugC(1, kHypnoDebugMedia, "Loading %s", filename.c_str());
- Common::InSaveFile *inf = saveManager->openForLoading(filename);
- loadGameStream(inf);
-
- if (_lastLevel == 0)
- _nextLevel = Common::String::format("c%d", _ids[0]);
- else
- _nextLevel = "<level_menu>";
- return true;
- }
+ Common::String target = ConfMan.get("gameid") + "-" + ConfMan.get("language");
+ SaveStateList saves = getMetaEngine()->listSaves(target.c_str());
+ uint32 slot = 0;
+ for (SaveStateList::iterator save = saves.begin(); save != saves.end(); ++save) {
+ if (save->getDescription() == _name)
+ break;
+ slot++;
+ }
+
+ if (slot == saves.size()) {
+ debugC(1, kHypnoDebugMedia, "Failed to load %s", name.c_str());
+ return false;
}
- debugC(1, kHypnoDebugMedia, "Failed to load %s", name.c_str());
- return false;
+
+ loadGameState(slot);
+ if (_lastLevel == 0)
+ _nextLevel = Common::String::format("c%d", _ids[0]);
+ else
+ _nextLevel = "<level_menu>";
+
+ return true;
}
Common::Error WetEngine::saveGameStream(Common::WriteStream *stream, bool isAutosave) {
Commit: aab9a5770cb5d43001ead9a07bda466114205d26
https://github.com/scummvm/scummvm/commit/aab9a5770cb5d43001ead9a07bda466114205d26
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-11T08:37:49+01:00
Commit Message:
HYPNO: avoid updating progression in a save game when replaying previous levels in wet
Changed paths:
engines/hypno/wet/wet.cpp
diff --git a/engines/hypno/wet/wet.cpp b/engines/hypno/wet/wet.cpp
index 079768064df..f42df27cc1d 100644
--- a/engines/hypno/wet/wet.cpp
+++ b/engines/hypno/wet/wet.cpp
@@ -457,7 +457,8 @@ void WetEngine::saveGame(int levelId) {
// Find the correct level index to before saving
for (uint32 i = 0; i < _ids.size(); i++) {
if (levelId == _ids[i]) {
- _lastLevel = i;
+ if (_lastLevel < int(i))
+ _lastLevel = int(i);
break;
}
}
More information about the Scummvm-git-logs
mailing list