aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMax Horn2007-01-25 00:32:49 +0000
committerMax Horn2007-01-25 00:32:49 +0000
commit38ded04da9aa3f9d9d7bdf4237b0cdd06258ccfa (patch)
tree4dbcb1aca29f0437a45617b58422c395bf7b85e2 /engines
parent1986fff67cf7f2f2a72befab82a5c83ecb288522 (diff)
downloadscummvm-rg350-38ded04da9aa3f9d9d7bdf4237b0cdd06258ccfa.tar.gz
scummvm-rg350-38ded04da9aa3f9d9d7bdf4237b0cdd06258ccfa.tar.bz2
scummvm-rg350-38ded04da9aa3f9d9d7bdf4237b0cdd06258ccfa.zip
Don't invoke AdvancedDetector directly, but rather use ADVANCED_DETECTOR_DETECT_INIT_GAME like the other AD based engines
svn-id: r25170
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/plugin.cpp48
1 files changed, 8 insertions, 40 deletions
diff --git a/engines/kyra/plugin.cpp b/engines/kyra/plugin.cpp
index 5b7bf4f1c5..0f4d28f055 100644
--- a/engines/kyra/plugin.cpp
+++ b/engines/kyra/plugin.cpp
@@ -110,49 +110,17 @@ GameList Engine_KYRA_detectGames(const FSList &fslist) {
PluginError Engine_KYRA_create(OSystem *syst, Engine **engine) {
assert(engine);
const char *gameid = ConfMan.get("gameid").c_str();
-
- FSList fslist;
- FilesystemNode dir(ConfMan.get("path"));
- if (!dir.listDir(fslist, FilesystemNode::kListFilesOnly)) {
- return kInvalidPathError;
- }
-
- GameFlags flags;
- Common::AdvancedDetector ad;
- Common::ADList matches;
- Common::ADGameDescList descList;
-
- for (int i = 0; i < ARRAYSIZE(adGameDescs) - 1; ++i) {
- descList.push_back(&adGameDescs[i].desc);
- }
-
- ad.registerGameDescriptions(descList);
-
- matches = ad.detectGame(&fslist, detectionParams, Common::UNK_LANG, Common::kPlatformUnknown);
-
- if (!matches.size()) {
+
+ int id = ADVANCED_DETECTOR_DETECT_INIT_GAME(detectionParams);
+ if (id == -1) {
+ // FIXME: This case currently can never happen, as we simply error out
+ // inside ADVANCED_DETECTOR_DETECT_INIT_GAME.
+
// maybe add non md5 based detection again?
return kNoGameDataFoundError;
}
- int id = matches[0];
-
- flags = adGameDescs[id].flags;
-
- Platform platform = parsePlatform(ConfMan.get("platform"));
- if (platform != kPlatformUnknown) {
- flags.platform = platform;
- }
-
- if (flags.lang == UNK_LANG) {
- Language lang = parseLanguage(ConfMan.get("language"));
- if (lang != UNK_LANG) {
- flags.lang = lang;
- } else {
- flags.lang = EN_ANY;
- }
- }
-
+ GameFlags flags = adGameDescs[id].flags;
if (!scumm_stricmp("kyra1", gameid)) {
*engine = new KyraEngine_v1(syst, flags);
@@ -161,7 +129,7 @@ PluginError Engine_KYRA_create(OSystem *syst, Engine **engine) {
} else if (!scumm_stricmp("kyra3", gameid)) {
*engine = new KyraEngine_v3(syst, flags);
} else
- error("Kyra engine created with invalid gameid.");
+ error("Kyra engine created with invalid gameid");
return kNoError;
}