[Scummvm-cvs-logs] SF.net SVN: scummvm:[46037] scummvm/trunk/tools/create_kyradat/ create_kyradat.cpp
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sat Nov 21 04:51:19 CET 2009
Revision: 46037
http://scummvm.svn.sourceforge.net/scummvm/?rev=46037&view=rev
Author: lordhoto
Date: 2009-11-21 03:51:18 +0000 (Sat, 21 Nov 2009)
Log Message:
-----------
Speed up extraction by only adding matching providers to search list.
Modified Paths:
--------------
scummvm/trunk/tools/create_kyradat/create_kyradat.cpp
Modified: scummvm/trunk/tools/create_kyradat/create_kyradat.cpp
===================================================================
--- scummvm/trunk/tools/create_kyradat/create_kyradat.cpp 2009-11-21 03:49:55 UTC (rev 46036)
+++ scummvm/trunk/tools/create_kyradat/create_kyradat.cpp 2009-11-21 03:51:18 UTC (rev 46037)
@@ -1231,6 +1231,9 @@
return true;
}
+// Uncomment this to get various debug information about the detection table entries.
+//#define DEBUG_EXTRACTION_TABLES
+
bool setupSearch(const Game *g, const int *needList, Search &search, SearchMap &searchData) {
for (const int *entry = needList; *entry != -1; ++entry) {
ExtractEntryList providers = getProvidersForId(*entry);
@@ -1240,9 +1243,16 @@
return false;
} else {
for (ExtractEntryList::const_iterator i = providers.begin(); i != providers.end(); ++i) {
- // We'll add all providers here...
- search.addData(i->hint);
- searchData.insert(SearchMapEntry(*entry, *i));
+ // Only add generic or partly matching providers here.
+#ifndef DEBUG_EXTRACTION_TABLES
+ if ((i->lang == UNK_LANG || i->lang == g->lang[0] || i->lang == g->lang[1] || i->lang == g->lang[2]) &&
+ (i->platform == kPlatformUnknown || (i->platform == g->platform))) {
+#endif
+ search.addData(i->hint);
+ searchData.insert(SearchMapEntry(*entry, *i));
+#ifndef DEBUG_EXTRACTION_TABLES
+ }
+#endif
}
}
}
@@ -1379,6 +1389,11 @@
continue;
}
+#ifdef DEBUG_EXTRACTION_TABLES
+ if (((*bestMatch)->second.desc.platform != kPlatformUnknown && (*bestMatch)->second.desc.platform != g->platform))
+ printf("%s: %.8X %.8X %d %d\n", getIdString(*entry), (*bestMatch)->second.desc.hint.size, (*bestMatch)->second.desc.hint.byteSum, (*bestMatch)->second.desc.lang, (*bestMatch)->second.desc.platform);
+#endif
+
map.insert(**bestMatch);
}
} else {
@@ -1390,6 +1405,11 @@
continue;
}
+#ifdef DEBUG_EXTRACTION_TABLES
+ if (((*bestMatch)->second.desc.platform != kPlatformUnknown && (*bestMatch)->second.desc.platform != g->platform))
+ printf("%s: %.8X %.8X %d %d\n", getIdString(*entry), (*bestMatch)->second.desc.hint.size, (*bestMatch)->second.desc.hint.byteSum, (*bestMatch)->second.desc.lang, (*bestMatch)->second.desc.platform);
+#endif
+
map.insert(**bestMatch);
}
}
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