From 0d868742d4016f8f50a8135c20115d911d920cf5 Mon Sep 17 00:00:00 2001 From: Borja Lorente Date: Sun, 21 Aug 2016 16:19:55 +0200 Subject: MACVENTURE: Add thumbnail to savegames --- engines/macventure/detection.cpp | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'engines/macventure/detection.cpp') diff --git a/engines/macventure/detection.cpp b/engines/macventure/detection.cpp index 2b161142c4..801cc599cd 100644 --- a/engines/macventure/detection.cpp +++ b/engines/macventure/detection.cpp @@ -75,13 +75,16 @@ public: virtual SaveStateList listSaves(const char *target) const; virtual int getMaximumSaveSlot() const; virtual void removeSaveState(const char *target, int slot) const; + SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; }; bool MacVentureMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup) || - (f == kSupportsDeleteSave); + (f == kSupportsDeleteSave) || + (f == kSavesSupportMetaInfo) || + (f == kSavesSupportThumbnail); } bool MacVentureEngine::hasFeature(EngineFeature f) const { @@ -141,6 +144,30 @@ void MacVentureMetaEngine::removeSaveState(const char *target, int slot) const { g_system->getSavefileManager()->removeSavefile(Common::String::format("%s.%03d", target, slot)); } + +SaveStateDescriptor MacVentureMetaEngine::querySaveMetaInfos(const char *target, int slot) const { + Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); + SaveStateDescriptor desc; + Common::String saveFileName; + Common::String pattern = target; + pattern += ".###"; + Common::StringArray filenames = saveFileMan->listSavefiles(pattern); + for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) { + int slotNum = atoi(file->c_str() + file->size() - 3); + if (slotNum == slot) { + saveFileName = *file; + } + } + + Common::InSaveFile *in = saveFileMan->openForLoading(saveFileName); + if (in) { + desc = loadMetaData(in, slot); + delete in; + return desc; + } + return SaveStateDescriptor(-1, ""); +} + } // End of namespace MacVenture #if PLUGIN_ENABLED_DYNAMIC(MACVENTURE) -- cgit v1.2.3