[Scummvm-cvs-logs] SF.net SVN: scummvm: [28583] scummvm/trunk/engines/agos/detection.cpp

sev at users.sourceforge.net sev at users.sourceforge.net
Mon Aug 13 10:59:38 CEST 2007


Revision: 28583
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28583&view=rev
Author:   sev
Date:     2007-08-13 01:59:38 -0700 (Mon, 13 Aug 2007)

Log Message:
-----------
Use new AD code in AGOS detection.

Modified Paths:
--------------
    scummvm/trunk/engines/agos/detection.cpp

Modified: scummvm/trunk/engines/agos/detection.cpp
===================================================================
--- scummvm/trunk/engines/agos/detection.cpp	2007-08-13 08:58:04 UTC (rev 28582)
+++ scummvm/trunk/engines/agos/detection.cpp	2007-08-13 08:59:38 UTC (rev 28583)
@@ -101,55 +101,42 @@
 	Common::kADFlagAugmentPreferredTarget
 };
 
-GameList Engine_AGOS_gameIDList() {
-	return GameList(simonGames);
-}
- 
-GameDescriptor Engine_AGOS_findGameID(const char *gameid) {
-	return Common::AdvancedDetector::findGameID(gameid, simonGames, obsoleteGameIDsTable);
-}
+bool engineCreate(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) {
+	const AGOS::AGOSGameDescription *gd = (const AGOS::AGOSGameDescription *)(encapsulatedDesc.realDesc);
+	bool res = true;
 
-GameList Engine_AGOS_detectGames(const FSList &fslist) {
-	return Common::AdvancedDetector::detectAllGames(fslist, detectionParams);
-}
-
-PluginError Engine_AGOS_create(OSystem *syst, Engine **engine) {
-	assert(engine);
-	const char *gameid = ConfMan.get("gameid").c_str();
-	
-	//Common::EncapsulatedADGameDesc encapsulatedDesc = Common::AdvancedDetector::detectBestMatchingGame(detectionParams);
-	//const AGOSGameDescription *gd = (const AGOSGameDescription *)(encapsulatedDesc.realDesc);
-	//if (gd == 0) {
-	//	return kNoGameDataFoundError;
-	//}
-
-	if (!scumm_stricmp("elvira1", gameid)) {
+	switch (gd->gameType) {
+	case AGOS::GType_ELVIRA1:
 		*engine = new AGOS::AGOSEngine_Elvira1(syst);
-	} else if (!scumm_stricmp("elvira2", gameid)) {
+		break;
+	case AGOS::GType_ELVIRA2:
 		*engine = new AGOS::AGOSEngine_Elvira2(syst);
-	} else if (!scumm_stricmp("waxworks", gameid)) {
+		break;
+	case AGOS::GType_WW:
 		*engine = new AGOS::AGOSEngine_Waxworks(syst);
-	} else if (!scumm_stricmp("simon1", gameid)) {
+		break;
+	case AGOS::GType_SIMON1:
 		*engine = new AGOS::AGOSEngine_Simon1(syst);
-	} else if (!scumm_stricmp("simon2", gameid)) {
+		break;
+	case AGOS::GType_SIMON2:
 		*engine = new AGOS::AGOSEngine_Simon2(syst);
-	} else if (!scumm_stricmp("feeble", gameid)) {
+		break;
+	case AGOS::GType_FF:
 		*engine = new AGOS::AGOSEngine_Feeble(syst);
-	} else if (!scumm_stricmp("dimp", gameid)) {
+		break;
+	case AGOS::GType_PP:
 		*engine = new AGOS::AGOSEngine_PuzzlePack(syst);
-	} else if (!scumm_stricmp("jumble", gameid)) {
-		*engine = new AGOS::AGOSEngine_PuzzlePack(syst);
-	} else if (!scumm_stricmp("puzzle", gameid)) {
-		*engine = new AGOS::AGOSEngine_PuzzlePack(syst);
-	} else if (!scumm_stricmp("swampy", gameid)) {
-		*engine = new AGOS::AGOSEngine_PuzzlePack(syst);
-	} else {
-		error("AGOS engine created with invalid gameid");
+		break;
+	default:
+		res = false;
+		error("AGOS engine: unknown gameType");
 	}
 
-	return kNoError;
+	return res;
 }
- 
+
+ADVANCED_DETECTOR_DEFINE_PLUGIN_WITH_COMPLEX_CREATION(AGOS, engineCreate, detectionParams);
+
 REGISTER_PLUGIN(AGOS, "AGOS", "AGOS (C) Adventure Soft");
 
 namespace AGOS {


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