aboutsummaryrefslogtreecommitdiff
path: root/engines/advancedDetector.cpp
diff options
context:
space:
mode:
authorBastien Bouclet2018-05-06 15:51:03 +0200
committerBastien Bouclet2018-05-10 09:04:23 +0200
commit90b78c544657bf0fc41d6b86276a0873060345b5 (patch)
treea9187f2a6d924360f6b0960fd08a7cf7cddbc8ba /engines/advancedDetector.cpp
parentfaa2534f46611a47913004b55aa0e5ed5b7e4b7a (diff)
downloadscummvm-rg350-90b78c544657bf0fc41d6b86276a0873060345b5.tar.gz
scummvm-rg350-90b78c544657bf0fc41d6b86276a0873060345b5.tar.bz2
scummvm-rg350-90b78c544657bf0fc41d6b86276a0873060345b5.zip
ENGINES: Merge GameDescriptor and DetectedGame
Diffstat (limited to 'engines/advancedDetector.cpp')
-rw-r--r--engines/advancedDetector.cpp50
1 files changed, 20 insertions, 30 deletions
diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp
index b7bf4b40e0..8e7ec4856f 100644
--- a/engines/advancedDetector.cpp
+++ b/engines/advancedDetector.cpp
@@ -33,42 +33,32 @@
#include "engines/advancedDetector.h"
#include "engines/obsolete.h"
-static GameDescriptor toGameDescriptor(const ADGameDescription &g, const PlainGameDescriptor *sg) {
- const char *title = 0;
+DetectedGame AdvancedMetaEngine::toDetectedGame(const ADDetectedGame &adGame) const {
+ const char *title;
const char *extra;
- if (g.flags & ADGF_USEEXTRAASTITLE) {
- title = g.extra;
+ if (adGame.desc->flags & ADGF_USEEXTRAASTITLE) {
+ title = adGame.desc->extra;
extra = "";
} else {
- while (sg->gameId) {
- if (!scumm_stricmp(g.gameId, sg->gameId))
- title = sg->description;
- sg++;
- }
-
- extra = g.extra;
+ const PlainGameDescriptor *pgd = findPlainGameDescriptor(adGame.desc->gameId, _gameIds);
+ title = pgd->description;
+ extra = adGame.desc->extra;
}
- GameSupportLevel gsl = kStableGame;
- if (g.flags & ADGF_UNSTABLE)
- gsl = kUnstableGame;
- else if (g.flags & ADGF_TESTING)
- gsl = kTestingGame;
-
- GameDescriptor gd(g.gameId, title, g.language, g.platform, extra);
- gd.gameSupportLevel = gsl;
- return gd;
-}
-
-DetectedGame AdvancedMetaEngine::toDetectedGame(const ADDetectedGame &adGame) const {
- DetectedGame game;
+ DetectedGame game(adGame.desc->gameId, title, adGame.desc->language, adGame.desc->platform, extra);
game.engineName = getName();
- game.gameId = adGame.desc->gameId;
game.hasUnknownFiles = adGame.hasUnknownFiles;
game.matchedFiles = adGame.matchedFiles;
- game.matchedGame = toGameDescriptor(*adGame.desc, _gameIds);
- updateGameDescriptor(game.matchedGame, adGame.desc);
+
+ game.gameSupportLevel = kStableGame;
+ if (adGame.desc->flags & ADGF_UNSTABLE)
+ game.gameSupportLevel = kUnstableGame;
+ else if (adGame.desc->flags & ADGF_TESTING)
+ game.gameSupportLevel = kTestingGame;
+
+ updateGameDescriptor(game, adGame.desc);
+
return game;
}
@@ -112,8 +102,8 @@ static Common::String sanitizeName(const char *name) {
return res;
}
-void AdvancedMetaEngine::updateGameDescriptor(GameDescriptor &desc, const ADGameDescription *realDesc) const {
- if (_singleId != NULL) {
+void AdvancedMetaEngine::updateGameDescriptor(DetectedGame &desc, const ADGameDescription *realDesc) const {
+ if (_singleId) {
desc.preferredTarget = desc.gameId;
desc.gameId = _singleId;
}
@@ -321,7 +311,7 @@ Common::Error AdvancedMetaEngine::createInstance(OSystem *syst, Engine **engine)
Common::updateGameGUIOptions(agdDesc.desc->guiOptions + _guiOptions, lang);
- GameDescriptor gameDescriptor = toGameDescriptor(*agdDesc.desc, _gameIds);
+ DetectedGame gameDescriptor = toDetectedGame(agdDesc);
bool showTestingWarning = false;