aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision/file/save_manager.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2015-01-10 22:03:15 +0200
committerFilippos Karapetis2015-01-10 22:03:15 +0200
commit21e9007d80ee60e519896c330324e5e3a95f772f (patch)
tree037976cbb0e675ce4dad27dd4fcb87baadeb4c41 /engines/zvision/file/save_manager.cpp
parent899cf4813c7e009e1dbee56be8ad10d20650cf10 (diff)
downloadscummvm-rg350-21e9007d80ee60e519896c330324e5e3a95f772f.tar.gz
scummvm-rg350-21e9007d80ee60e519896c330324e5e3a95f772f.tar.bz2
scummvm-rg350-21e9007d80ee60e519896c330324e5e3a95f772f.zip
Revert "ZVISION: Remove ActionRestoreGame and loading of r.svr (restart slot)"
This reverts commit 9f642074ba8e17aa23b01bcee82b2293fe84f8f1, as it broke the credits screen in ZGI. This has been rewritten to use the common save code
Diffstat (limited to 'engines/zvision/file/save_manager.cpp')
-rw-r--r--engines/zvision/file/save_manager.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/engines/zvision/file/save_manager.cpp b/engines/zvision/file/save_manager.cpp
index fb9cceecbe..5e96e4ab5e 100644
--- a/engines/zvision/file/save_manager.cpp
+++ b/engines/zvision/file/save_manager.cpp
@@ -130,12 +130,25 @@ void SaveManager::writeSaveGameHeader(Common::OutSaveFile *file, const Common::S
file->writeSint16LE(td.tm_min);
}
-Common::Error SaveManager::loadGame(uint slot) {
- Common::SeekableReadStream *saveFile = getSlotFile(slot);
- if (saveFile == 0) {
- return Common::kPathDoesNotExist;
+Common::Error SaveManager::loadGame(int slot) {
+ Common::SeekableReadStream *saveFile = NULL;
+
+ if (slot >= 0) {
+ saveFile = getSlotFile(slot);
+ } else {
+ Common::File *saveFile = _engine->getSearchManager()->openFile("r.svr");
+ if (!saveFile) {
+ saveFile = new Common::File;
+ if (!saveFile->open("r.svr")) {
+ delete saveFile;
+ return Common::kPathDoesNotExist;
+ }
+ }
}
+ if (!saveFile)
+ return Common::kPathDoesNotExist;
+
// Read the header
SaveGameHeader header;
if (!readSaveGameHeader(saveFile, header)) {