aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/detection.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-01-08 23:31:34 -0500
committerPaul Gilbert2014-01-08 23:31:34 -0500
commitdfe3d8b4ceab85f3831ad4fe7fb0fa587c1e67fa (patch)
tree260e35d31cd673798b45f6e88b31a2ed9bdbf4ff /engines/voyeur/detection.cpp
parentd0703467b42d3636f3d81683efc3e336ab33052f (diff)
downloadscummvm-rg350-dfe3d8b4ceab85f3831ad4fe7fb0fa587c1e67fa.tar.gz
scummvm-rg350-dfe3d8b4ceab85f3831ad4fe7fb0fa587c1e67fa.tar.bz2
scummvm-rg350-dfe3d8b4ceab85f3831ad4fe7fb0fa587c1e67fa.zip
VOYEUR: Preliminary savegame functionality
Diffstat (limited to 'engines/voyeur/detection.cpp')
-rw-r--r--engines/voyeur/detection.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/voyeur/detection.cpp b/engines/voyeur/detection.cpp
index e9a5b8d982..10f96042e0 100644
--- a/engines/voyeur/detection.cpp
+++ b/engines/voyeur/detection.cpp
@@ -121,6 +121,8 @@ SaveStateList VoyeurMetaEngine::listSaves(const char *target) const {
sort(filenames.begin(), filenames.end()); // Sort to get the files in numerical order
SaveStateList saveList;
+ Voyeur::VoyeurSavegameHeader header;
+
for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
const char *ext = strrchr(file->c_str(), '.');
int slot = ext ? atoi(ext + 1) : -1;
@@ -129,6 +131,10 @@ SaveStateList VoyeurMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(*file);
if (in) {
+ if (header.read(in)) {
+ saveList.push_back(SaveStateDescriptor(slot, header._saveName));
+ header._thumbnail->free();
+ }
delete in;
}
}
@@ -151,10 +157,16 @@ SaveStateDescriptor VoyeurMetaEngine::querySaveMetaInfos(const char *target, int
Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(filename);
if (f) {
+ Voyeur::VoyeurSavegameHeader header;
+ header.read(f);
delete f;
// Create the return descriptor
- SaveStateDescriptor desc(slot, "");
+ SaveStateDescriptor desc(slot, header._saveName);
+ desc.setThumbnail(header._thumbnail);
+ desc.setSaveDate(header._saveYear, header._saveMonth, header._saveDay);
+ desc.setSaveTime(header._saveHour, header._saveMinutes);
+ desc.setPlayTime(header._totalFrames * GAME_FRAME_TIME);
return desc;
}