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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Wed Dec 20 00:59:29 CET 2006


Revision: 24898
          http://scummvm.svn.sourceforge.net/scummvm/?rev=24898&view=rev
Author:   fingolfin
Date:     2006-12-19 15:59:26 -0800 (Tue, 19 Dec 2006)

Log Message:
-----------
Changed Engine_KYRA_detectGames to use ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION, and removed the ADGameDescription::gameid abuse

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

Modified: scummvm/trunk/engines/kyra/plugin.cpp
===================================================================
--- scummvm/trunk/engines/kyra/plugin.cpp	2006-12-19 23:58:45 UTC (rev 24897)
+++ scummvm/trunk/engines/kyra/plugin.cpp	2006-12-19 23:59:26 UTC (rev 24898)
@@ -41,7 +41,6 @@
 struct KYRAGameDescription {
 	Common::ADGameDescription desc;
 
-	const char *id;
 	GameFlags flags;
 };
 
@@ -129,26 +128,26 @@
 
 #define KYRA3_CD_FLAGS FLAGS(false, false, false, true, GI_KYRA3)
 
-const KYRAGameDescription adGameDescs[] = {
-	{ { "The Legend of Kyrandia", 0, kyra1EnglishFloppy1, EN_ANY, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS },
-	{ { "The Legend of Kyrandia", 0, kyra1EnglishFloppy2, EN_ANY, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS },
-	{ { "The Legend of Kyrandia", 0, kyra1FrenchFloppy1 , FR_FRA, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS },
-	{ { "The Legend of Kyrandia", 0, kyra1GermanFloppy1 , DE_DEU, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS },
-	{ { "The Legend of Kyrandia", 0, kyra1GermanFloppy2 , DE_DEU, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS }, // from Arne.F
-	{ { "The Legend of Kyrandia", 0, kyra1SpanishFloppy1, ES_ESP, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS }, // from VooD
-	{ { "The Legend of Kyrandia", 0, kyra1SpanishFloppy2, ES_ESP, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS }, // floppy 1.8 from clemmy
-	{ { "The Legend of Kyrandia", 0, kyra1ItalianFloppy1, IT_ITA, kPlatformPC }, "kyra1", KYRA1_FLOPPY_FLAGS }, // from gourry
+static const KYRAGameDescription adGameDescs[] = {
+	{ { "kyra1", 0, kyra1EnglishFloppy1, EN_ANY, kPlatformPC }, KYRA1_FLOPPY_FLAGS },
+	{ { "kyra1", 0, kyra1EnglishFloppy2, EN_ANY, kPlatformPC }, KYRA1_FLOPPY_FLAGS },
+	{ { "kyra1", 0, kyra1FrenchFloppy1 , FR_FRA, kPlatformPC }, KYRA1_FLOPPY_FLAGS },
+	{ { "kyra1", 0, kyra1GermanFloppy1 , DE_DEU, kPlatformPC }, KYRA1_FLOPPY_FLAGS },
+	{ { "kyra1", 0, kyra1GermanFloppy2 , DE_DEU, kPlatformPC }, KYRA1_FLOPPY_FLAGS }, // from Arne.F
+	{ { "kyra1", 0, kyra1SpanishFloppy1, ES_ESP, kPlatformPC }, KYRA1_FLOPPY_FLAGS }, // from VooD
+	{ { "kyra1", 0, kyra1SpanishFloppy2, ES_ESP, kPlatformPC }, KYRA1_FLOPPY_FLAGS }, // floppy 1.8 from clemmy
+	{ { "kyra1", 0, kyra1ItalianFloppy1, IT_ITA, kPlatformPC }, KYRA1_FLOPPY_FLAGS }, // from gourry
 
-	{ { "The Legend of Kyrandia", "CD", kyra1EnglishCD1, EN_ANY, kPlatformPC }, "kyra1", KYRA1_CD_FLAGS },
-	{ { "The Legend of Kyrandia", "CD", kyra1GermanCD1 , DE_DEU, kPlatformPC }, "kyra1", KYRA1_CD_FLAGS },
-	{ { "The Legend of Kyrandia", "CD", kyra1FrenchCD1 , FR_FRA, kPlatformPC }, "kyra1", KYRA1_CD_FLAGS },
+	{ { "kyra1", "CD", kyra1EnglishCD1, EN_ANY, kPlatformPC }, KYRA1_CD_FLAGS },
+	{ { "kyra1", "CD", kyra1GermanCD1 , DE_DEU, kPlatformPC }, KYRA1_CD_FLAGS },
+	{ { "kyra1", "CD", kyra1FrenchCD1 , FR_FRA, kPlatformPC }, KYRA1_CD_FLAGS },
 
-	{ { "The Legend of Kyrandia", "Demo", kyra1EnglishDemo1, EN_ANY, kPlatformPC }, "kyra1", KYRA1_DEMO_FLAGS },
+	{ { "kyra1", "Demo", kyra1EnglishDemo1, EN_ANY, kPlatformPC }, KYRA1_DEMO_FLAGS },
 
-	{ { "The Legend of Kyrandia: The Hand of Fate", 0, kyra2UnknownUnknown1, UNK_LANG, kPlatformPC }, "kyra2", KYRA2_UNK_FLAGS }, // check this! (cd version?)
+	{ { "kyra2", 0, kyra2UnknownUnknown1, UNK_LANG, kPlatformPC }, KYRA2_UNK_FLAGS }, // check this! (cd version?)
 
-	{ { "The Legend of Kyrandia: Malcolm's Revenge", 0, kyra3CD1, UNK_LANG, kPlatformPC }, "kyra3", KYRA3_CD_FLAGS },
-	{ { NULL, NULL, NULL, UNK_LANG, kPlatformUnknown }, NULL, KYRA2_UNK_FLAGS }
+	{ { "kyra3", 0, kyra3CD1, UNK_LANG, kPlatformPC }, KYRA3_CD_FLAGS },
+	{ { NULL, NULL, NULL, UNK_LANG, kPlatformUnknown }, KYRA2_UNK_FLAGS }
 };
 
 static ADList detectKyraGames(const FSList &fslist) {
@@ -227,17 +226,13 @@
 }
 
 DetectedGameList Engine_KYRA_detectGames(const FSList &fslist) {
-	DetectedGameList detectedGames;
-	ADList games = detectKyraGames(fslist);
-
-	for (ADList::const_iterator pos = games.begin(); pos != games.end(); ++pos) {
-		// FIXME: The 'gameid' field is being abused as a description field here!
-		DetectedGame game(adGameDescs[*pos].id, adGameDescs[*pos].desc.gameid, adGameDescs[*pos].desc.language, adGameDescs[*pos].desc.platform);
-		game.updateDesc(adGameDescs[*pos].desc.extra);
-		detectedGames.push_back(game);
-	}
-
-	return detectedGames;
+	return Common::ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION(
+		fslist,
+		(const byte *)adGameDescs,
+		sizeof(KYRAGameDescription),
+		kMD5FileSizeLimit,
+		gameList
+	);
 }
 
 PluginError Engine_KYRA_create(OSystem *syst, Engine **engine) {


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