diff options
author | Paul Gilbert | 2014-08-30 09:57:51 -0400 |
---|---|---|
committer | Paul Gilbert | 2014-08-30 09:57:51 -0400 |
commit | f12fa2de07694d93a7035875f56f36ed4849275d (patch) | |
tree | 2cdb7f7a76f270a5aa225aacb95d6dc8aa62e014 /engines/access/detection.cpp | |
parent | 83528083228ea45ec3105b7dbcb720a1ac0dba55 (diff) | |
download | scummvm-rg350-f12fa2de07694d93a7035875f56f36ed4849275d.tar.gz scummvm-rg350-f12fa2de07694d93a7035875f56f36ed4849275d.tar.bz2 scummvm-rg350-f12fa2de07694d93a7035875f56f36ed4849275d.zip |
ACCESS: Implement saving and loading savegames
Diffstat (limited to 'engines/access/detection.cpp')
-rw-r--r-- | engines/access/detection.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/access/detection.cpp b/engines/access/detection.cpp index 293cd3dccb..59c4bc4738 100644 --- a/engines/access/detection.cpp +++ b/engines/access/detection.cpp @@ -177,6 +177,24 @@ void AccessMetaEngine::removeSaveState(const char *target, int slot) const { } SaveStateDescriptor AccessMetaEngine::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) { + Access::AccessSavegameHeader header; + Access::AccessEngine::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(); } |