[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