aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/detection.cpp
diff options
context:
space:
mode:
authorPeter Kohaut2018-11-25 21:47:00 +0100
committerPeter Kohaut2018-11-25 22:22:25 +0100
commitcfb46da90cb045e029153848652bbd166a5c95b6 (patch)
tree468120f7e0c5eef52efcaafd9f4fec5ebd5981ef /engines/bladerunner/detection.cpp
parent0d8834b5616aa8fc936c750ed92ef4423610d641 (diff)
downloadscummvm-rg350-cfb46da90cb045e029153848652bbd166a5c95b6.tar.gz
scummvm-rg350-cfb46da90cb045e029153848652bbd166a5c95b6.tar.bz2
scummvm-rg350-cfb46da90cb045e029153848652bbd166a5c95b6.zip
BLADERUNNER: Add in-game loading screen
It is also possible to start new game from it.
Diffstat (limited to 'engines/bladerunner/detection.cpp')
-rw-r--r--engines/bladerunner/detection.cpp42
1 files changed, 2 insertions, 40 deletions
diff --git a/engines/bladerunner/detection.cpp b/engines/bladerunner/detection.cpp
index 8cd4288a0d..46285e57bc 100644
--- a/engines/bladerunner/detection.cpp
+++ b/engines/bladerunner/detection.cpp
@@ -87,27 +87,7 @@ bool BladeRunnerMetaEngine::hasFeature(MetaEngineFeature f) const {
}
SaveStateList BladeRunnerMetaEngine::listSaves(const char *target) const {
- Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
- Common::StringArray files = saveFileMan->listSavefiles(Common::String::format("%s.###", target));
-
- SaveStateList saveList;
- for (Common::StringArray::const_iterator fileName = files.begin(); fileName != files.end(); ++fileName) {
- Common::InSaveFile *saveFile = saveFileMan->openForLoading(*fileName);
- if (saveFile == nullptr || saveFile->err()) {
- warning("Cannot open save file '%s'", fileName->c_str());
- continue;
- }
-
- BladeRunner::SaveFileHeader header;
- BladeRunner::SaveFile::readHeader(*saveFile, header);
-
- int slotNum = atoi(fileName->c_str() + fileName->size() - 3);
- saveList.push_back(SaveStateDescriptor(slotNum, header._name));
- }
-
- // Sort saves based on slot number.
- Common::sort(saveList.begin(), saveList.end(), SaveStateDescriptorSlotComparator());
- return saveList;
+ return BladeRunner::SaveFileManager::list(target);
}
int BladeRunnerMetaEngine::getMaximumSaveSlot() const {
@@ -120,25 +100,7 @@ void BladeRunnerMetaEngine::removeSaveState(const char *target, int slot) const
}
SaveStateDescriptor BladeRunnerMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
- Common::String filename = Common::String::format("%s.%03d", target, slot);
- Common::InSaveFile *saveFile = g_system->getSavefileManager()->openForLoading(filename);
-
- if (saveFile == nullptr || saveFile->err()) {
- return SaveStateDescriptor();
- }
-
- BladeRunner::SaveFileHeader header;
- if (!BladeRunner::SaveFile::readHeader(*saveFile, header, false)) {
- delete saveFile;
- return SaveStateDescriptor();
- }
- delete saveFile;
-
- SaveStateDescriptor desc(slot, header._name);
- desc.setThumbnail(header._thumbnail);
- desc.setSaveDate(header._year, header._month, header._day);
- desc.setSaveTime(header._hour, header._minute);
- return desc;
+ return BladeRunner::SaveFileManager::queryMetaInfos(target, slot);
}
#if PLUGIN_ENABLED_DYNAMIC(BLADERUNNER)