[Scummvm-cvs-logs] SF.net SVN: scummvm:[44144] scummvm/trunk/tools/create_kyradat
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Thu Sep 17 14:02:41 CEST 2009
Revision: 44144
http://scummvm.svn.sourceforge.net/scummvm/?rev=44144&view=rev
Author: lordhoto
Date: 2009-09-17 12:02:41 +0000 (Thu, 17 Sep 2009)
Log Message:
-----------
Cleanup provider access.
Modified Paths:
--------------
scummvm/trunk/tools/create_kyradat/create_kyradat.cpp
scummvm/trunk/tools/create_kyradat/tables.cpp
scummvm/trunk/tools/create_kyradat/tables.h
Modified: scummvm/trunk/tools/create_kyradat/create_kyradat.cpp
===================================================================
--- scummvm/trunk/tools/create_kyradat/create_kyradat.cpp 2009-09-17 12:02:17 UTC (rev 44143)
+++ scummvm/trunk/tools/create_kyradat/create_kyradat.cpp 2009-09-17 12:02:41 UTC (rev 44144)
@@ -1072,23 +1072,17 @@
for (const int *entry = needList; *entry != -1; ++entry) {
bool found = false;
- for (const ExtractEntry *p = extractProviders; p->id != -1; ++p) {
- if (p->id == *entry) {
- for (const ExtractEntrySearchData *d = p->providers; d->hint.size != 0; ++d) {
- found = true;
+ ExtractEntryList providers = getProvidersForId(*entry);
- // We will add *all* providers here, regardless of the language and platform!
- search.addData(d->hint);
- dataIdList.push_back(DataIdEntry(*d, *entry));
- }
-
- break;
- }
- }
-
- if (!found) {
+ if (providers.empty()) {
fprintf(stderr, "ERROR: No provider for id %d/%s\n", *entry, getIdString(*entry));
return false;
+ } else {
+ for (ExtractEntryList::const_iterator i = providers.begin(); i != providers.end(); ++i) {
+ // We will add *all* providers here, regardless of the language and platform!
+ search.addData(i->hint);
+ dataIdList.push_back(DataIdEntry(*i, *entry));
+ }
}
}
Modified: scummvm/trunk/tools/create_kyradat/tables.cpp
===================================================================
--- scummvm/trunk/tools/create_kyradat/tables.cpp 2009-09-17 12:02:17 UTC (rev 44143)
+++ scummvm/trunk/tools/create_kyradat/tables.cpp 2009-09-17 12:02:41 UTC (rev 44144)
@@ -22,6 +22,10 @@
#include "tables.h"
+#define EXTRACT_END_ENTRY { UNK_LANG, kPlatformUnknown, { 0, 0, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } }
+
+namespace {
+
// Id provider tables
const ExtractEntrySearchData kForestSeqProvider[] = {
@@ -1641,6 +1645,11 @@
// Provider tables
+struct ExtractEntry {
+ int id;
+ const ExtractEntrySearchData *providers;
+};
+
const ExtractEntry extractProviders[] = {
{ kForestSeq, kForestSeqProvider },
{ kKallakWritingSeq, kKallakWritingSeqProvider },
@@ -1842,3 +1851,18 @@
{ -1, NULL }
};
+} // end of anonymous namespace
+
+ExtractEntryList getProvidersForId(int id) {
+ ExtractEntryList list;
+
+ for (const ExtractEntry *p = extractProviders; p->id != -1; ++p) {
+ if (p->id == id) {
+ for (const ExtractEntrySearchData *d = p->providers; d->hint.size != 0; ++d)
+ list.push_back(*d);
+ }
+ }
+
+ return list;
+}
+
Modified: scummvm/trunk/tools/create_kyradat/tables.h
===================================================================
--- scummvm/trunk/tools/create_kyradat/tables.h 2009-09-17 12:02:17 UTC (rev 44143)
+++ scummvm/trunk/tools/create_kyradat/tables.h 2009-09-17 12:02:41 UTC (rev 44144)
@@ -32,14 +32,8 @@
SearchData hint;
};
-#define EXTRACT_END_ENTRY { UNK_LANG, kPlatformUnknown, { 0, 0, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } }
+typedef std::list<ExtractEntrySearchData> ExtractEntryList;
+ExtractEntryList getProvidersForId(int id);
-struct ExtractEntry {
- int id;
- const ExtractEntrySearchData *providers;
-};
-
-extern const ExtractEntry extractProviders[];
-
#endif
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