[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