aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hdb/saveload.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/hdb/saveload.cpp b/engines/hdb/saveload.cpp
index 5c59619aba..548f68c316 100644
--- a/engines/hdb/saveload.cpp
+++ b/engines/hdb/saveload.cpp
@@ -30,6 +30,21 @@ Common::Error HDBGame::saveGameState(int slot, const Common::String &desc) {
if (!g_hdb->_map->isLoaded())
return Common::kCreatingFileFailed;
+ // If it is autosave, push down all saves
+ if (slot == 0) {
+ Common::String nameFrom;
+ Common::String nameTo;
+ for (int i = kNumSaveSlots - 2; i >= 0; i--) {
+ nameFrom = genSaveFileName(i, false);
+ nameTo = genSaveFileName(i + 1, false);
+ _saveFileMan->renameSavefile(nameFrom, nameTo);
+
+ nameFrom = genSaveFileName(i, true);
+ nameTo = genSaveFileName(i + 1, true);
+ _saveFileMan->renameSavefile(nameFrom, nameTo);
+ }
+ }
+
Common::OutSaveFile *out;
Common::String saveFileName = genSaveFileName(slot, false);