diff options
author | Paul Gilbert | 2015-04-21 18:25:06 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-04-21 18:25:06 -0500 |
commit | 31860163709b12a38856fc017a217eb5e32610a7 (patch) | |
tree | f1d1f2ec79a20f9d066e15c813e8caef14316018 /engines/sherlock/detection.cpp | |
parent | 6fe65dc719f69c3a3cd3a90426e148972716037f (diff) | |
download | scummvm-rg350-31860163709b12a38856fc017a217eb5e32610a7.tar.gz scummvm-rg350-31860163709b12a38856fc017a217eb5e32610a7.tar.bz2 scummvm-rg350-31860163709b12a38856fc017a217eb5e32610a7.zip |
SHERLOCK: Implemented save game dialog event handling
Diffstat (limited to 'engines/sherlock/detection.cpp')
-rw-r--r-- | engines/sherlock/detection.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/sherlock/detection.cpp b/engines/sherlock/detection.cpp index 7d9db96e77..bb66cee7df 100644 --- a/engines/sherlock/detection.cpp +++ b/engines/sherlock/detection.cpp @@ -24,6 +24,7 @@ #include "sherlock/saveload.h" #include "sherlock/scalpel/scalpel.h" #include "sherlock/tattoo/tattoo.h" +#include "common/system.h" #include "engines/advancedDetector.h" namespace Sherlock { @@ -105,13 +106,33 @@ SaveStateList SherlockMetaEngine::listSaves(const char *target) const { } int SherlockMetaEngine::getMaximumSaveSlot() const { - return NUM_SAVEGAME_SLOTS; + return MAX_SAVEGAME_SLOTS; } void SherlockMetaEngine::removeSaveState(const char *target, int slot) const { + Common::String filename = Common::String::format("%s.%03d", target, slot); + g_system->getSavefileManager()->removeSavefile(filename); } SaveStateDescriptor SherlockMetaEngine::querySaveMetaInfos(const char *target, int slot) const { + Common::String filename = Common::String::format("%s.%03d", target, slot); + Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(filename); + + if (f) { + Sherlock::SherlockSavegameHeader header; + Sherlock::SaveManager::readSavegameHeader(f, header); + delete f; + + // Create the return descriptor + SaveStateDescriptor desc(slot, header._saveName); + desc.setThumbnail(header._thumbnail); + desc.setSaveDate(header._year, header._month, header._day); + desc.setSaveTime(header._hour, header._minute); + desc.setPlayTime(header._totalFrames * GAME_FRAME_TIME); + + return desc; + } + return SaveStateDescriptor(); } |