diff options
author | Paul Gilbert | 2014-01-08 23:31:34 -0500 |
---|---|---|
committer | Paul Gilbert | 2014-01-08 23:31:34 -0500 |
commit | dfe3d8b4ceab85f3831ad4fe7fb0fa587c1e67fa (patch) | |
tree | 260e35d31cd673798b45f6e88b31a2ed9bdbf4ff /engines/voyeur/detection.cpp | |
parent | d0703467b42d3636f3d81683efc3e336ab33052f (diff) | |
download | scummvm-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.cpp | 14 |
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; } |