diff options
| author | Max Horn | 2006-03-09 03:09:21 +0000 |
|---|---|---|
| committer | Max Horn | 2006-03-09 03:09:21 +0000 |
| commit | e53e0e588569e71507d748f22a10970b4f417607 (patch) | |
| tree | 85dd44b13451d3956e36a4701297a518f7521f4a | |
| parent | 72d6022fa9d951578836d400ab5e9a2b7ec6714a (diff) | |
| download | scummvm-rg350-e53e0e588569e71507d748f22a10970b4f417607.tar.gz scummvm-rg350-e53e0e588569e71507d748f22a10970b4f417607.tar.bz2 scummvm-rg350-e53e0e588569e71507d748f22a10970b4f417607.zip | |
- Removed the code from the launcher that adds language/platform to the
game descriptions. Doing this now is the responsibility of the engines.
- Adapted the SCUMM engine to add lang/platform to the desc string if
necessary. Other engines still have to be adapted (but many do not seem to
need this at all, since they either are lang/platform agnostic, or already
include this information in their MD5 tables).
svn-id: r21154
| -rw-r--r-- | engines/scumm/plugin.cpp | 50 | ||||
| -rw-r--r-- | gui/launcher.cpp | 21 |
2 files changed, 37 insertions, 34 deletions
diff --git a/engines/scumm/plugin.cpp b/engines/scumm/plugin.cpp index ed9dc54a6e..bc73402a25 100644 --- a/engines/scumm/plugin.cpp +++ b/engines/scumm/plugin.cpp @@ -1133,29 +1133,30 @@ DetectedGameList Engine_SCUMM_detectGames(const FSList &fslist) { } // Match found, add to list of candidates, then abort inner loop. - const char *desc = findDescriptionFromGameID(g->gameid); + DetectedGame dg(g->gameid, findDescriptionFromGameID(g->gameid)); if (substLastIndex > 0 && // HE Mac versions. (subst.genMethod == kGenMac || subst.genMethod == kGenMacNoParens)) { - detectedGames.push_back(DetectedGame(g->gameid, desc, - Common::UNK_LANG, - Common::kPlatformMacintosh)); + dg.platform = Common::kPlatformMacintosh; fileSet[file->path()] = true; } else if (substLastIndex == 0 && g->id == GID_MANIAC && (buf[0] == 0xbc || buf[0] == 0xa0)) { - detectedGames.push_back(DetectedGame(g->gameid, desc, - Common::UNK_LANG, - Common::kPlatformNES)); + dg.platform = Common::kPlatformNES; } else if ((g->id == GID_MANIAC || g->id == GID_ZAK) && ((buf[0] == 0x31 && buf[1] == 0x0a) || (buf[0] == 0xcd && buf[1] == 0xfe))) { - detectedGames.push_back(DetectedGame(g->gameid, desc, - Common::UNK_LANG, - Common::kPlatformC64)); + dg.platform = Common::kPlatformC64; } else { - detectedGames.push_back(DetectedGame(g->gameid, desc)); fileSet[file->path()] = false; } + + // If known, add the platform to the description string + if (dg.platform != Common::kPlatformUnknown) { + dg.description += "("; + dg.description += Common::getPlatformDescription(dg.platform); + dg.description += ")"; + } + detectedGames.push_back(dg); break; } } @@ -1194,12 +1195,31 @@ DetectedGameList Engine_SCUMM_detectGames(const FSList &fslist) { break; } assert(g->gameid); - // Insert the 'enhanced' game data into the candidate list - const char *desc = findDescriptionFromGameID(g->gameid); + DetectedGame dg(g->gameid, findDescriptionFromGameID(g->gameid), elem->language); if (iter->_value == true) // This was HE Mac game - detectedGames.push_back(DetectedGame(g->gameid, desc, elem->language, Common::kPlatformMacintosh)); + dg.platform = Common::kPlatformMacintosh; else - detectedGames.push_back(DetectedGame(g->gameid, desc, elem->language, elem->platform)); + dg.platform = elem->platform; + + const bool customLanguage = (dg.language != Common::UNK_LANG); + const bool customPlatform = (dg.platform != Common::kPlatformUnknown); + + // Adapt the description string if custom platform/language is set. + // TODO: Also use the 'extra' information, like "Demo" etc. + if (customLanguage || customPlatform) { + dg.description += " ("; + if (customLanguage) + dg.description += Common::getLanguageDescription(dg.language); + if (customLanguage && customPlatform) + dg.description += "/"; + if (customPlatform) + dg.description += Common::getPlatformDescription(dg.platform); + dg.description += ")"; + } + + // Insert the 'enhanced' game data into the candidate list + detectedGames.push_back(dg); + exactMatch = true; } } diff --git a/gui/launcher.cpp b/gui/launcher.cpp index ceb202dee0..74b89b7485 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -654,31 +654,14 @@ void LauncherDialog::addGame() { ConfMan.set("gameid", result.gameid, domain); ConfMan.set("path", dir.path(), domain); - const bool customLanguage = (result.language != Common::UNK_LANG); - const bool customPlatform = (result.platform != Common::kPlatformUnknown); - // Set language if specified - if (customLanguage) + if (result.language != Common::UNK_LANG) ConfMan.set("language", Common::getLanguageCode(result.language), domain); // Set platform if specified - if (customPlatform) + if (result.platform != Common::kPlatformUnknown) ConfMan.set("platform", Common::getPlatformCode(result.platform), domain); - // Adapt the description string if custom platform/language is set - if (customLanguage || customPlatform) { - result.description += " ("; - if (customLanguage) - result.description += Common::getLanguageDescription(result.language); - if (customLanguage && customPlatform) - result.description += "/"; - if (customPlatform) - result.description += Common::getPlatformDescription(result.platform); - result.description += ")"; - - ConfMan.set("description", result.description, domain); - } - // Display edit dialog for the new entry EditGameDialog editDialog(domain, result.description); if (editDialog.runModal() > 0) { |
