diff options
-rw-r--r-- | base/plugins.cpp | 4 | ||||
-rw-r--r-- | engines/adl/detection.cpp | 8 | ||||
-rw-r--r-- | engines/advancedDetector.cpp | 12 | ||||
-rw-r--r-- | engines/advancedDetector.h | 6 | ||||
-rw-r--r-- | engines/metaengine.h | 4 | ||||
-rw-r--r-- | engines/scumm/detection.cpp | 4 | ||||
-rw-r--r-- | engines/sky/detection.cpp | 4 | ||||
-rw-r--r-- | engines/sword1/detection.cpp | 4 | ||||
-rw-r--r-- | engines/sword2/sword2.cpp | 4 | ||||
-rw-r--r-- | gui/launcher.cpp | 2 |
10 files changed, 26 insertions, 26 deletions
diff --git a/base/plugins.cpp b/base/plugins.cpp index b8f63fd443..852786919b 100644 --- a/base/plugins.cpp +++ b/base/plugins.cpp @@ -514,7 +514,7 @@ GameDescriptor EngineManager::findGameInLoadedPlugins(const Common::String &game return result; } -GameList EngineManager::detectGames(const Common::FSList &fslist) const { +GameList EngineManager::detectGames(const Common::FSList &fslist, bool useUnknownGameDialog) const { GameList candidates; PluginList plugins; PluginList::const_iterator iter; @@ -524,7 +524,7 @@ GameList EngineManager::detectGames(const Common::FSList &fslist) const { // Iterate over all known games and for each check if it might be // the game in the presented directory. for (iter = plugins.begin(); iter != plugins.end(); ++iter) { - candidates.push_back((*iter)->get<MetaEngine>().detectGames(fslist)); + candidates.push_back((*iter)->get<MetaEngine>().detectGames(fslist, useUnknownGameDialog)); } } while (PluginManager::instance().loadNextPlugin()); return candidates; diff --git a/engines/adl/detection.cpp b/engines/adl/detection.cpp index ab634bc02a..14646c78e3 100644 --- a/engines/adl/detection.cpp +++ b/engines/adl/detection.cpp @@ -332,7 +332,7 @@ public: int getMaximumSaveSlot() const { return 'O' - 'A'; } SaveStateList listSaves(const char *target) const; void removeSaveState(const char *target, int slot) const; - virtual ADGameDescList detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra) const; + virtual ADGameDescList detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra, bool useUnknownGameDialog = false) const; bool addFileProps(const FileMap &allFiles, Common::String fname, ADFilePropertiesMap &filePropsMap) const; @@ -511,9 +511,9 @@ bool AdlMetaEngine::addFileProps(const FileMap &allFiles, Common::String fname, } // Based on AdvancedMetaEngine::detectGame -ADGameDescList AdlMetaEngine::detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra) const { +ADGameDescList AdlMetaEngine::detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra, bool useUnknownGameDialog) const { // We run the file-based detector first and then add to the returned list - ADGameDescList matched = AdvancedMetaEngine::detectGame(parent, allFiles, language, platform, extra); + ADGameDescList matched = AdvancedMetaEngine::detectGame(parent, allFiles, language, platform, extra, useUnknownGameDialog); debug(3, "Starting disk image detection in dir '%s'", parent.getPath().c_str()); @@ -605,7 +605,7 @@ ADGameDescList AdlMetaEngine::detectGame(const Common::FSNode &parent, const Fil // TODO: This could be improved to handle matched and unknown games together in a single directory if (matched.empty()) { if (!filesProps.empty() && gotAnyMatchesWithAllFiles) { - reportUnknown(parent, filesProps, matchedGameIds); + reportUnknown(parent, filesProps, matchedGameIds, useUnknownGameDialog); } } diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp index 1cf18f01a0..dbe2cdfd68 100644 --- a/engines/advancedDetector.cpp +++ b/engines/advancedDetector.cpp @@ -150,7 +150,7 @@ bool cleanupPirated(ADGameDescList &matched) { } -GameList AdvancedMetaEngine::detectGames(const Common::FSList &fslist) const { +GameList AdvancedMetaEngine::detectGames(const Common::FSList &fslist, bool useUnknownGameDialog) const { ADGameDescList matches; GameList detectedGames; FileMap allFiles; @@ -162,7 +162,7 @@ GameList AdvancedMetaEngine::detectGames(const Common::FSList &fslist) const { composeFileHashMap(allFiles, fslist, (_maxScanDepth == 0 ? 1 : _maxScanDepth)); // Run the detector on this - matches = detectGame(fslist.begin()->getParent(), allFiles, Common::UNK_LANG, Common::kPlatformUnknown, ""); + matches = detectGame(fslist.begin()->getParent(), allFiles, Common::UNK_LANG, Common::kPlatformUnknown, "", useUnknownGameDialog); if (matches.empty()) { // Use fallback detector if there were no matches by other means @@ -327,7 +327,7 @@ Common::Error AdvancedMetaEngine::createInstance(OSystem *syst, Engine **engine) return Common::kNoError; } -void AdvancedMetaEngine::reportUnknown(const Common::FSNode &path, const ADFilePropertiesMap &filesProps, const ADGameIdList &matchedGameIds) const { +void AdvancedMetaEngine::reportUnknown(const Common::FSNode &path, const ADFilePropertiesMap &filesProps, const ADGameIdList &matchedGameIds, bool useUnknownGameDialog) const { const char *reportCommon = "The game in '%s' seems to be an unknown %s engine game " "variant.\n\nPlease report the following data to the ScummVM " "team at %s along with the name of the game you tried to add and " @@ -373,7 +373,7 @@ void AdvancedMetaEngine::reportUnknown(const Common::FSNode &path, const ADFileP g_system->logMessage(LogMessageType::kInfo, reportLog.c_str()); // Check if the GUI is running, show the UnknownGameDialog and print the translated unknown game information - if (GUI::GuiManager::hasInstance() && g_gui.isActive()) { + if (GUI::GuiManager::hasInstance() && g_gui.isActive() && useUnknownGameDialog == true) { UnknownGameDialog dialog(report, reportTranslated, bugtrackerAffectedEngine); dialog.runModal(); } @@ -449,7 +449,7 @@ bool AdvancedMetaEngine::getFileProperties(const Common::FSNode &parent, const F return true; } -ADGameDescList AdvancedMetaEngine::detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra) const { +ADGameDescList AdvancedMetaEngine::detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra, bool useUnknownGameDialog) const { ADFilePropertiesMap filesProps; const ADGameFileDescription *fileDesc; @@ -574,7 +574,7 @@ ADGameDescList AdvancedMetaEngine::detectGame(const Common::FSNode &parent, cons // We didn't find a match if (matched.empty()) { if (!filesProps.empty() && gotAnyMatchesWithAllFiles) { - reportUnknown(parent, filesProps, matchedGameIds); + reportUnknown(parent, filesProps, matchedGameIds, useUnknownGameDialog); } // Filename based fallback diff --git a/engines/advancedDetector.h b/engines/advancedDetector.h index 7bd7de3eb8..d7e85f86fe 100644 --- a/engines/advancedDetector.h +++ b/engines/advancedDetector.h @@ -278,7 +278,7 @@ public: virtual GameDescriptor findGame(const char *gameId) const; - virtual GameList detectGames(const Common::FSList &fslist) const; + virtual GameList detectGames(const Common::FSList &fslist, bool useUnknownGameDialog = false) const; virtual Common::Error createInstance(OSystem *syst, Engine **engine) const; @@ -313,7 +313,7 @@ protected: * @param extra restrict results to specified extra string (only if kADFlagUseExtraAsHint is set) * @return list of ADGameDescription pointers corresponding to matched games */ - virtual ADGameDescList detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra) const; + virtual ADGameDescList detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra, bool useUnknownGameDialog = false) const; /** * Iterates over all ADFileBasedFallback records inside fileBasedFallback. @@ -333,7 +333,7 @@ protected: * Log and print a report that we found an unknown game variant, together with the file * names, sizes and MD5 sums. */ - void reportUnknown(const Common::FSNode &path, const ADFilePropertiesMap &filesProps, const ADGameIdList &matchedGameIds = ADGameIdList()) const; + void reportUnknown(const Common::FSNode &path, const ADFilePropertiesMap &filesProps, const ADGameIdList &matchedGameIds = ADGameIdList(), bool useUnknownGameDialog = false) const; // TODO void updateGameDescriptor(GameDescriptor &desc, const ADGameDescription *realDesc) const; diff --git a/engines/metaengine.h b/engines/metaengine.h index b3aaa96a8f..68f4b36848 100644 --- a/engines/metaengine.h +++ b/engines/metaengine.h @@ -79,7 +79,7 @@ public: * (possibly empty) list of games supported by the engine which it was able * to detect amongst the given files. */ - virtual GameList detectGames(const Common::FSList &fslist) const = 0; + virtual GameList detectGames(const Common::FSList &fslist, bool useUnknownGameDialog = false) const = 0; /** * Tries to instantiate an engine instance based on the settings of @@ -269,7 +269,7 @@ class EngineManager : public Common::Singleton<EngineManager> { public: GameDescriptor findGameInLoadedPlugins(const Common::String &gameName, const Plugin **plugin = NULL) const; GameDescriptor findGame(const Common::String &gameName, const Plugin **plugin = NULL) const; - GameList detectGames(const Common::FSList &fslist) const; + GameList detectGames(const Common::FSList &fslist, bool useUnknownGameDialog = false) const; const PluginList &getPlugins() const; }; diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp index 0aa993a53a..37302e31d7 100644 --- a/engines/scumm/detection.cpp +++ b/engines/scumm/detection.cpp @@ -961,7 +961,7 @@ public: virtual bool hasFeature(MetaEngineFeature f) const; virtual GameList getSupportedGames() const; virtual GameDescriptor findGame(const char *gameid) const; - virtual GameList detectGames(const Common::FSList &fslist) const; + virtual GameList detectGames(const Common::FSList &fslist, bool useUnknownGameDialog = false) const; virtual Common::Error createInstance(OSystem *syst, Engine **engine) const; @@ -1026,7 +1026,7 @@ static Common::String generatePreferredTarget(const DetectorResult &x) { return res; } -GameList ScummMetaEngine::detectGames(const Common::FSList &fslist) const { +GameList ScummMetaEngine::detectGames(const Common::FSList &fslist, bool /*useUnknownGameDialog*/) const { GameList detectedGames; Common::List<DetectorResult> results; diff --git a/engines/sky/detection.cpp b/engines/sky/detection.cpp index b5425f9532..a74b63fb8c 100644 --- a/engines/sky/detection.cpp +++ b/engines/sky/detection.cpp @@ -79,7 +79,7 @@ public: virtual GameList getSupportedGames() const; virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; virtual GameDescriptor findGame(const char *gameid) const; - virtual GameList detectGames(const Common::FSList &fslist) const; + virtual GameList detectGames(const Common::FSList &fslist, bool useUnknownGameDialog = false) const; virtual Common::Error createInstance(OSystem *syst, Engine **engine) const; @@ -141,7 +141,7 @@ GameDescriptor SkyMetaEngine::findGame(const char *gameid) const { return GameDescriptor(); } -GameList SkyMetaEngine::detectGames(const Common::FSList &fslist) const { +GameList SkyMetaEngine::detectGames(const Common::FSList &fslist, bool /*useUnknownGameDialog*/) const { GameList detectedGames; bool hasSkyDsk = false; bool hasSkyDnr = false; diff --git a/engines/sword1/detection.cpp b/engines/sword1/detection.cpp index 0b81690bc5..ddfc4b8c14 100644 --- a/engines/sword1/detection.cpp +++ b/engines/sword1/detection.cpp @@ -89,7 +89,7 @@ public: virtual bool hasFeature(MetaEngineFeature f) const; virtual GameList getSupportedGames() const; virtual GameDescriptor findGame(const char *gameid) const; - virtual GameList detectGames(const Common::FSList &fslist) const; + virtual GameList detectGames(const Common::FSList &fslist, bool useUnknownGameDialog = false) const; virtual SaveStateList listSaves(const char *target) const; virtual int getMaximumSaveSlot() const; virtual void removeSaveState(const char *target, int slot) const; @@ -175,7 +175,7 @@ void Sword1CheckDirectory(const Common::FSList &fslist, bool *filesFound, bool r } } -GameList SwordMetaEngine::detectGames(const Common::FSList &fslist) const { +GameList SwordMetaEngine::detectGames(const Common::FSList &fslist, bool /*useUnknownGameDialog*/) const { int i, j; GameList detectedGames; bool filesFound[NUM_FILES_TO_CHECK]; diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp index a2761eb5ce..10ddda7d2e 100644 --- a/engines/sword2/sword2.cpp +++ b/engines/sword2/sword2.cpp @@ -95,7 +95,7 @@ public: virtual GameList getSupportedGames() const; virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; virtual GameDescriptor findGame(const char *gameid) const; - virtual GameList detectGames(const Common::FSList &fslist) const; + virtual GameList detectGames(const Common::FSList &fslist, bool useUnknownGameDialog = false) const; virtual SaveStateList listSaves(const char *target) const; virtual int getMaximumSaveSlot() const; virtual void removeSaveState(const char *target, int slot) const; @@ -223,7 +223,7 @@ GameList detectGamesImpl(const Common::FSList &fslist, bool recursion = false) { return detectedGames; } -GameList Sword2MetaEngine::detectGames(const Common::FSList &fslist) const { +GameList Sword2MetaEngine::detectGames(const Common::FSList &fslist, bool /*useUnknownGameDialog*/) const { return detectGamesImpl(fslist); } diff --git a/gui/launcher.cpp b/gui/launcher.cpp index 4fe1ae79c8..857d7d001a 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -573,7 +573,7 @@ bool LauncherDialog::doGameDetection(const Common::String &path) { // ...so let's determine a list of candidates, games that // could be contained in the specified directory. - GameList candidates(EngineMan.detectGames(files)); + GameList candidates(EngineMan.detectGames(files, true)); int idx; if (candidates.empty()) { |