aboutsummaryrefslogtreecommitdiff
path: root/engines/access/detection.cpp
diff options
context:
space:
mode:
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();
}