[Scummvm-cvs-logs] SF.net SVN: scummvm: [25170] scummvm/trunk/engines/kyra/plugin.cpp

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Thu Jan 25 01:32:50 CET 2007


Revision: 25170
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25170&view=rev
Author:   fingolfin
Date:     2007-01-24 16:32:49 -0800 (Wed, 24 Jan 2007)

Log Message:
-----------
Don't invoke AdvancedDetector directly, but rather use ADVANCED_DETECTOR_DETECT_INIT_GAME like the other AD based engines

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/plugin.cpp

Modified: scummvm/trunk/engines/kyra/plugin.cpp
===================================================================
--- scummvm/trunk/engines/kyra/plugin.cpp	2007-01-25 00:07:48 UTC (rev 25169)
+++ scummvm/trunk/engines/kyra/plugin.cpp	2007-01-25 00:32:49 UTC (rev 25170)
@@ -110,50 +110,18 @@
 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];
+	GameFlags flags = adGameDescs[id].flags;
 
-	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;
-		}
-	}
-
-
 	if (!scumm_stricmp("kyra1", gameid)) {
 		*engine = new KyraEngine_v1(syst, flags);
 	} else if (!scumm_stricmp("kyra2", gameid)) {
@@ -161,7 +129,7 @@
 	} 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;
 }


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list