diff options
Diffstat (limited to 'engines/advancedDetector.cpp')
-rw-r--r-- | engines/advancedDetector.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp index 72629a833e..aa76e6c4b7 100644 --- a/engines/advancedDetector.cpp +++ b/engines/advancedDetector.cpp @@ -89,6 +89,18 @@ static Common::String generatePreferredTarget(const Common::String &id, const AD return res; } +static Common::String sanitizeName(const char *name) { + Common::String res; + + while (*name) { + if (Common::isAlnum(*name)) + res += tolower(*name); + name++; + } + + return res; +} + void AdvancedMetaEngine::updateGameDescriptor(GameDescriptor &desc, const ADGameDescription *realDesc) const { if (_singleid != NULL) { desc["preferredtarget"] = desc["gameid"]; @@ -96,7 +108,15 @@ void AdvancedMetaEngine::updateGameDescriptor(GameDescriptor &desc, const ADGame } if (!desc.contains("preferredtarget")) - desc["preferredtarget"] = desc["gameid"]; + desc["preferredtarget"] = desc["gameid"]; + + if (realDesc->flags & ADGF_AUTOGENTARGET) { + warning("Ahem"); + if (*realDesc->extra) + desc["preferredtarget"] = sanitizeName(realDesc->extra); + } + + warning("here: %s", desc["preferredtarget"].c_str()); desc["preferredtarget"] = generatePreferredTarget(desc["preferredtarget"], realDesc); |