diff options
Diffstat (limited to 'engines/advancedDetector.cpp')
-rw-r--r-- | engines/advancedDetector.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp index 315763a6da..f4af4a8500 100644 --- a/engines/advancedDetector.cpp +++ b/engines/advancedDetector.cpp @@ -209,6 +209,9 @@ static void updateGameDescriptor(GameDescriptor &desc, const ADGameDescription * desc.setGUIOptions(realDesc->guioptions | params.guioptions); desc.appendGUIOptions(getGameGUIOptionsDescriptionLanguage(realDesc->language)); + + if (realDesc->flags & ADGF_ADDENGLISH) + desc.appendGUIOptions(getGameGUIOptionsDescriptionLanguage(Common::EN_ANY)); } GameList AdvancedMetaEngine::detectGames(const Common::FSList &fslist) const { @@ -306,7 +309,12 @@ Common::Error AdvancedMetaEngine::createInstance(OSystem *syst, Engine **engine) // If the GUI options were updated, we catch this here and update them in the users config // file transparently. - Common::updateGameGUIOptions(agdDesc->guioptions | params.guioptions, getGameGUIOptionsDescriptionLanguage(agdDesc->language)); + Common::String lang = getGameGUIOptionsDescriptionLanguage(agdDesc->language); + if (agdDesc->flags & ADGF_ADDENGLISH) + lang += " " + getGameGUIOptionsDescriptionLanguage(Common::EN_ANY); + + Common::updateGameGUIOptions(agdDesc->guioptions | params.guioptions, lang); + debug(2, "Running %s", toGameDescriptor(*agdDesc, params.list).description().c_str()); if (!createInstance(syst, engine, agdDesc)) @@ -455,7 +463,8 @@ static ADGameDescList detectGame(const Common::FSList &fslist, const ADParams &p // Do not even bother to look at entries which do not have matching // language and platform (if specified). - if ((language != Common::UNK_LANG && g->language != Common::UNK_LANG && g->language != language) || + if ((language != Common::UNK_LANG && g->language != Common::UNK_LANG && g->language != language + && !(language == Common::EN_ANY && (g->flags & ADGF_ADDENGLISH))) || (platform != Common::kPlatformUnknown && g->platform != Common::kPlatformUnknown && g->platform != platform)) { continue; } |