[Scummvm-git-logs] scummvm master -> 17706734a004ecfdf1b2f1314dcab739561d65be
Die4Ever
noreply at scummvm.org
Tue Feb 15 22:39:13 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:
17706734a0 GROOVIE: prevent saving over reserved save slots
Commit: 17706734a004ecfdf1b2f1314dcab739561d65be
https://github.com/scummvm/scummvm/commit/17706734a004ecfdf1b2f1314dcab739561d65be
Author: Die4Ever (die4ever2005 at gmail.com)
Date: 2022-02-15T16:38:58-06:00
Commit Message:
GROOVIE: prevent saving over reserved save slots
Changed paths:
engines/groovie/saveload.cpp
engines/metaengine.cpp
diff --git a/engines/groovie/saveload.cpp b/engines/groovie/saveload.cpp
index 1debd198b27..cbca21a1b51 100644
--- a/engines/groovie/saveload.cpp
+++ b/engines/groovie/saveload.cpp
@@ -89,10 +89,6 @@ Common::InSaveFile *SaveLoad::openForLoading(const Common::String &target, int s
Common::String savename = getSlotSaveName(target, slot);
Common::InSaveFile *savefile = g_system->getSavefileManager()->openForLoading(savename);
if (!savefile) {
- if (slot == 0 && descriptor) {
- descriptor->setSaveSlot(slot);
- descriptor->setDescription("Reserved");
- }
return nullptr;
}
@@ -145,9 +141,6 @@ Common::InSaveFile *SaveLoad::openForLoading(const Common::String &target, int s
description += c;
}
}
- if (slot == 0 && description.compareToIgnoreCase("open house") != 0) {
- description = "Reserved";
- }
descriptor->setDescription(description);
}
diff --git a/engines/metaengine.cpp b/engines/metaengine.cpp
index 40c74f49351..204e9fcc305 100644
--- a/engines/metaengine.cpp
+++ b/engines/metaengine.cpp
@@ -355,20 +355,37 @@ SaveStateList MetaEngine::listSaves(const char *target) const {
SaveStateList MetaEngine::listSaves(const char *target, bool saveMode) const {
SaveStateList saveList = listSaves(target);
int autosaveSlot = ConfMan.getInt("autosave_period") ? getAutosaveSlot() : -1;
- if (!saveMode || autosaveSlot == -1)
- return saveList;
+ bool addAutosave = saveMode;
+ bool addReserved = saveMode;
+ if (autosaveSlot == -1)
+ addAutosave = false;
// Check to see if an autosave is present
for (SaveStateList::iterator it = saveList.begin(); it != saveList.end(); ++it) {
// It has an autosave
if (it->isAutosave())
- return saveList;
+ addAutosave = false;
+ if (it->getSaveSlot() == 0) {
+ addReserved = false;
+ if (it->getDescription() != "OPEN HOUSE" && it->getDescription() != "Open House") {
+ it->setDescription(_("Reserved"));
+ }
+ it->setLocked(saveMode);
+ }
}
// No autosave yet. We want to add a dummy one in so that it can be marked as
// write protected, and thus be prevented from being saved in
- SaveStateDescriptor desc(this, autosaveSlot, _("Autosave"));
- saveList.push_back(desc);
+ if (addAutosave) {
+ SaveStateDescriptor desc(this, autosaveSlot, _("Autosave"));
+ desc.setLocked(saveMode);
+ saveList.push_back(desc);
+ }
+ if (addReserved) {
+ SaveStateDescriptor desc(this, 0, _("Reserved"));
+ desc.setLocked(saveMode);
+ saveList.push_back(desc);
+ }
Common::sort(saveList.begin(), saveList.end(), SaveStateDescriptorSlotComparator());
return saveList;
More information about the Scummvm-git-logs
mailing list