[Scummvm-cvs-logs] SF.net SVN: scummvm: [25576] scummvm/trunk/common

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Wed Feb 14 01:21:54 CET 2007


Revision: 25576
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25576&view=rev
Author:   fingolfin
Date:     2007-02-13 16:21:53 -0800 (Tue, 13 Feb 2007)

Log Message:
-----------
Properly implemented the AD fallback callback

Modified Paths:
--------------
    scummvm/trunk/common/advancedDetector.cpp
    scummvm/trunk/common/advancedDetector.h

Modified: scummvm/trunk/common/advancedDetector.cpp
===================================================================
--- scummvm/trunk/common/advancedDetector.cpp	2007-02-13 23:47:41 UTC (rev 25575)
+++ scummvm/trunk/common/advancedDetector.cpp	2007-02-14 00:21:53 UTC (rev 25576)
@@ -33,8 +33,6 @@
 
 namespace Common {
 
-typedef Array<const ADGameDescription*> ADGameDescList;
-
 namespace AdvancedDetector {
 
 /**
@@ -344,9 +342,10 @@
 
 	ADGameDescList matched;
 	int maxFilesMatched = 0;
+	const ADGameDescription *g;
 
 	for (i = 0; i < gameDescriptions.size(); i++) {
-		const ADGameDescription *g = gameDescriptions[i];
+		g = gameDescriptions[i];
 		fileMissing = false;
 
 		// Do not even bother to look at entries which do not have matching
@@ -511,24 +510,25 @@
 
 		if (matchEntry) { // We got a match
 			for (i = 0; i < gameDescriptions.size(); i++) {
-				if (gameDescriptions[i]->filesDescriptions[0].fileName == 0) {
-					if (!scumm_stricmp(gameDescriptions[i]->gameid, *matchEntry)) {
+				g = gameDescriptions[i];
+				if (g->filesDescriptions[0].fileName == 0) {
+					if (!scumm_stricmp(g->gameid, *matchEntry)) {
 						// FIXME: This warning, if ever seen by somebody, is
 						// extremly cryptic!
 						warning("But it looks like unknown variant of %s", *matchEntry);
 
-						matched.push_back(gameDescriptions[i]);
+						matched.push_back(g);
 					}
 				}
 			}
 		}
 	}
-/*	
+
 	// If we still haven't got a match, try to use the fallback callback :-)
 	if (matched.empty() && params.fallbackDetectFunc != 0) {
 		matched = (*params.fallbackDetectFunc)(fslist);
 	}
-*/
+
 	return matched;
 }
 

Modified: scummvm/trunk/common/advancedDetector.h
===================================================================
--- scummvm/trunk/common/advancedDetector.h	2007-02-13 23:47:41 UTC (rev 25575)
+++ scummvm/trunk/common/advancedDetector.h	2007-02-14 00:21:53 UTC (rev 25576)
@@ -61,6 +61,11 @@
 };
 
 /**
+ * A list of pointers to ADGameDescription structs (or subclasses thereof).
+ */
+typedef Array<const ADGameDescription*> ADGameDescList;
+
+/**
  * End marker for a table of ADGameDescription structs. Use this to
  * terminate a list to be passed to the AdvancedDetector API.
  */
@@ -144,15 +149,16 @@
 	
 	/** 
 	 * A callback pointing to an (optional) generic fallback detect
-	 * function. If present, this gets called if both the regular
+	 * function. If present, this callback is invoked if both the regular
 	 * MD5 based detection as well as the file based fallback failed
-	 * to detect anything. It is supposed
+	 * to detect anything.
 	 *
 	 * @note The fslist parameter may be 0 -- in that case, it is assumed
 	 *       that the callback searchs the current directory.
+	 *
+	 * @todo
 	 */
-	//GameList (*fallbackDetectFunc)(const FSList *fslist);
-	uint dummy;
+	ADGameDescList (*fallbackDetectFunc)(const FSList *fslist);
 
 	/**
 	 * A bitmask of flags which can be used to configure the behavior


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