aboutsummaryrefslogtreecommitdiff
path: root/engines/access/detection.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-08-30 09:57:51 -0400
committerPaul Gilbert2014-08-30 09:57:51 -0400
commitf12fa2de07694d93a7035875f56f36ed4849275d (patch)
tree2cdb7f7a76f270a5aa225aacb95d6dc8aa62e014 /engines/access/detection.cpp
parent83528083228ea45ec3105b7dbcb720a1ac0dba55 (diff)
downloadscummvm-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.cpp18
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();
}