diff options
author | Filippos Karapetis | 2015-01-10 22:03:15 +0200 |
---|---|---|
committer | Filippos Karapetis | 2015-01-10 22:03:15 +0200 |
commit | 21e9007d80ee60e519896c330324e5e3a95f772f (patch) | |
tree | 037976cbb0e675ce4dad27dd4fcb87baadeb4c41 /engines/zvision/file | |
parent | 899cf4813c7e009e1dbee56be8ad10d20650cf10 (diff) | |
download | scummvm-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')
-rw-r--r-- | engines/zvision/file/save_manager.cpp | 21 | ||||
-rw-r--r-- | engines/zvision/file/save_manager.h | 2 |
2 files changed, 18 insertions, 5 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)) { diff --git a/engines/zvision/file/save_manager.h b/engines/zvision/file/save_manager.h index d3f6aaaedc..9e816373ea 100644 --- a/engines/zvision/file/save_manager.h +++ b/engines/zvision/file/save_manager.h @@ -91,7 +91,7 @@ public: * * @param slot The save slot to load. Must be [1, 20] */ - Common::Error loadGame(uint slot); + Common::Error loadGame(int slot); Common::SeekableReadStream *getSlotFile(uint slot); bool readSaveGameHeader(Common::SeekableReadStream *in, SaveGameHeader &header); |