[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