aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/base_file_manager.cpp
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-07-27 16:04:37 +0200
committerEinar Johan Trøan Sømåen2012-07-27 16:04:37 +0200
commit996e79b3d5e5d336080017a800e50be6a9a33d15 (patch)
tree016d25727b32f378db5ff13069e44853cf00eb41 /engines/wintermute/base/base_file_manager.cpp
parent3ff2e2cc936dce22b74699c30a160389c4f50447 (diff)
downloadscummvm-rg350-996e79b3d5e5d336080017a800e50be6a9a33d15.tar.gz
scummvm-rg350-996e79b3d5e5d336080017a800e50be6a9a33d15.tar.bz2
scummvm-rg350-996e79b3d5e5d336080017a800e50be6a9a33d15.zip
WINTERMUTE: Fix SaveGame-thumb loading/saving.
Diffstat (limited to 'engines/wintermute/base/base_file_manager.cpp')
-rw-r--r--engines/wintermute/base/base_file_manager.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/engines/wintermute/base/base_file_manager.cpp b/engines/wintermute/base/base_file_manager.cpp
index 1c58da2be9..f1320b814b 100644
--- a/engines/wintermute/base/base_file_manager.cpp
+++ b/engines/wintermute/base/base_file_manager.cpp
@@ -267,6 +267,13 @@ Common::SeekableReadStream *BaseFileManager::openPkgFile(const Common::String &f
}
bool BaseFileManager::hasFile(const Common::String &filename) {
+ if (scumm_strnicmp(filename.c_str(), "savegame:", 9) == 0) {
+ BasePersistenceManager pm(_gameRef);
+ if (filename.size() < 9)
+ return false;
+ int slot = atoi(filename.c_str() + 9);
+ return pm.getSaveExists(slot);
+ }
if (diskFileExists(filename)) {
return true;
}
@@ -315,11 +322,11 @@ Common::SeekableReadStream *BaseFileManager::openFileRaw(const Common::String &f
if (!_gameRef) {
error("Attempt to load filename: %s without BaseGame-object, this is unsupported", filename.c_str());
}
- BaseSaveThumbFile *SaveThumbFile = new BaseSaveThumbFile(_gameRef);
- if (DID_SUCCEED(SaveThumbFile->open(filename))) {
- ret = SaveThumbFile->getMemStream();
+ BaseSaveThumbFile *saveThumbFile = new BaseSaveThumbFile(_gameRef);
+ if (DID_SUCCEED(saveThumbFile->open(filename))) {
+ ret = saveThumbFile->getMemStream();
}
- delete SaveThumbFile;
+ delete saveThumbFile;
return ret;
}