From f0bc6fc438472cd7d2dfd7d40baadf8c9a98604d Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Thu, 2 Jan 2025 17:36:53 +0100 Subject: [PATCH] Revert "GUI: Move code to detect if load from launcher is available to separate function" This reverts commit d0b31d819d565603ed694ed732ee99ebb7614955. --- gui/launcher.cpp | 49 +++++++++++++++++++++++------------------------- gui/launcher.h | 1 - 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/gui/launcher.cpp b/gui/launcher.cpp index 4a2867cb2c7..7181cdb15f1 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -446,30 +446,6 @@ Common::String LauncherDialog::getGameConfig(int item, Common::String key) { return ""; } -bool LauncherDialog::canLoadSavegames(int item) const { - // Check load from launcher is supported - if (Common::checkGameGUIOption(GUIO_NOLAUNCHLOAD, ConfMan.get("guioptions", _domains[item]))) - return false; - - // Check savegames are available - Common::String target = _domains[item]; - target.toLowercase(); - EngineMan.upgradeTargetIfNecessary(target); - QualifiedGameDescriptor game = EngineMan.findTarget(target); -#if defined(UNCACHED_PLUGINS) && defined(DYNAMIC_MODULES) && !defined(DETECTION_STATIC) - // Unload all MetaEnginesDetection if we're using uncached plugins to save extra memory. - PluginMan.unloadDetectionPlugin(); -#endif - const Plugin *enginePlugin = PluginMan.findEnginePlugin(game.engineId); - if (!enginePlugin) - return false; - const MetaEngine &metaEngine = enginePlugin->get(); - if (!metaEngine.hasFeature(MetaEngine::kSupportsListSaves)) - return false; - SaveStateList saveList = metaEngine.listSaves(target.c_str()); - return !saveList.empty(); -} - void LauncherDialog::removeGame(int item) { MessageDialog alert(_("Do you really want to remove this game configuration?"), _("Yes"), _("No")); @@ -1393,8 +1369,29 @@ void LauncherSimple::updateButtons() { int item = _list->getSelected(); bool en = enable; - if (item >= 0) - en = canLoadSavegames(item); + if (item >= 0) { + // Check load from launcher is supported + en = !(Common::checkGameGUIOption(GUIO_NOLAUNCHLOAD, ConfMan.get("guioptions", _domains[item]))); + // Check savegames are available + if (en) { + Common::String target = _domains[item]; + target.toLowercase(); + EngineMan.upgradeTargetIfNecessary(target); + QualifiedGameDescriptor game = EngineMan.findTarget(target); +#if defined(UNCACHED_PLUGINS) && defined(DYNAMIC_MODULES) && !defined(DETECTION_STATIC) + // Unload all MetaEnginesDetection if we're using uncached plugins to save extra memory. + PluginMan.unloadDetectionPlugin(); +#endif + const Plugin *enginePlugin = PluginMan.findEnginePlugin(game.engineId); + if (enginePlugin) { + const MetaEngine &metaEngine = enginePlugin->get(); + if (metaEngine.hasFeature(MetaEngine::kSupportsListSaves)) { + SaveStateList saveList = metaEngine.listSaves(target.c_str()); + en = !saveList.empty(); + } + } + } + } _loadButton->setEnabled(en); } diff --git a/gui/launcher.h b/gui/launcher.h index 3a414cf6d51..c0431d7167d 100644 --- a/gui/launcher.h +++ b/gui/launcher.h @@ -122,7 +122,6 @@ public: void handleOtherEvent(const Common::Event &evt) override; bool doGameDetection(const Common::Path &path); Common::String getGameConfig(int item, Common::String key); - bool canLoadSavegames(int item) const; protected: EditTextWidget *_searchWidget; #ifndef DISABLE_FANCY_THEMES