From dfe3d8b4ceab85f3831ad4fe7fb0fa587c1e67fa Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Wed, 8 Jan 2014 23:31:34 -0500 Subject: VOYEUR: Preliminary savegame functionality --- engines/voyeur/detection.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'engines/voyeur/detection.cpp') 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; } -- cgit v1.2.3