[Scummvm-cvs-logs] SF.net SVN: scummvm:[49814] scummvm/trunk/engines/sci

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Jun 15 14:11:31 CEST 2010


Revision: 49814
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49814&view=rev
Author:   fingolfin
Date:     2010-06-15 12:11:30 +0000 (Tue, 15 Jun 2010)

Log Message:
-----------
SCI: Remove 'map' param from addSource, and let AudioVolumeResourceSource subclass VolumeResourceSource

Modified Paths:
--------------
    scummvm/trunk/engines/sci/resource.cpp
    scummvm/trunk/engines/sci/resource.h
    scummvm/trunk/engines/sci/resource_audio.cpp
    scummvm/trunk/engines/sci/resource_intern.h

Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp	2010-06-15 12:11:04 UTC (rev 49813)
+++ scummvm/trunk/engines/sci/resource.cpp	2010-06-15 12:11:30 UTC (rev 49814)
@@ -210,11 +210,10 @@
 	return newsrc;
 }
 
-ResourceSource *ResourceManager::addSource(ResourceSource *map, ResourceSource *newsrc, int number) {
+ResourceSource *ResourceManager::addSource(ResourceSource *newsrc, int number) {
 	assert(newsrc);
 
 	newsrc->volume_number = number;
-	newsrc->associated_map = map;
 	if (newsrc->getSourceType() == kSourceAudioVolume)
 		checkIfAudioVolumeIsCompressed(newsrc);
 
@@ -222,12 +221,11 @@
 	return newsrc;
 }
 
-ResourceSource *ResourceManager::addSource(ResourceSource *map, ResourceSource *newsrc, const Common::FSNode *resFile, int number) {
+ResourceSource *ResourceManager::addSource(ResourceSource *newsrc, const Common::FSNode *resFile, int number) {
 	assert(newsrc);
 
 	newsrc->resourceFile = resFile;
 	newsrc->volume_number = number;
-	newsrc->associated_map = map;
 	if (newsrc->getSourceType() == kSourceAudioVolume)
 		checkIfAudioVolumeIsCompressed(newsrc);
 
@@ -459,12 +457,12 @@
 			const char *dot = strrchr(name.c_str(), '.');
 			int number = atoi(dot + 1);
 
-			addSource(map, new VolumeResourceSource(name), number);
+			addSource(new VolumeResourceSource(name, map), number);
 		}
 #ifdef ENABLE_SCI32
 		// GK1CD hires content
 		if (Common::File::exists("alt.map") && Common::File::exists("resource.alt"))
-			addSource(addExternalMap("alt.map", 10), new VolumeResourceSource("resource.alt"), 10);
+			addSource(new VolumeResourceSource("resource.alt", addExternalMap("alt.map", 10)), 10);
 #endif
 	} else if (Common::File::exists("Data1")) {
 		// Mac SCI1.1+ file naming scheme
@@ -472,7 +470,7 @@
 
 		for (Common::ArchiveMemberList::const_iterator x = files.begin(); x != files.end(); ++x) {
 			Common::String filename = (*x)->getName();
-			addSource(0, new MacResourceForkResourceSource(filename), atoi(filename.c_str() + 4));
+			addSource(new MacResourceForkResourceSource(filename), atoi(filename.c_str() + 4));
 		}
 #ifdef ENABLE_SCI32
 		// Mac SCI32 games have extra folders for patches
@@ -484,7 +482,7 @@
 
 		// There can also be a "Patches" resource fork with patches
 		if (Common::File::exists("Patches"))
-			addSource(0, new MacResourceForkResourceSource("Patches"), 100);
+			addSource(new MacResourceForkResourceSource("Patches"), 100);
 	} else {
 		// SCI2.1-SCI3 file naming scheme
 		Common::ArchiveMemberList mapFiles;
@@ -504,7 +502,7 @@
 				int resNumber = atoi(strrchr(resName.c_str(), '.') + 1);
 
 				if (mapNumber == resNumber) {
-					addSource(addExternalMap(mapName, mapNumber), new VolumeResourceSource(resName), mapNumber);
+					addSource(new VolumeResourceSource(resName, addExternalMap(mapName, mapNumber)), mapNumber);
 					break;
 				}
 			}
@@ -513,7 +511,7 @@
 		// SCI2.1 resource patches
 		if (Common::File::exists("resmap.pat") && Common::File::exists("ressci.pat")) {
 			// We add this resource with a map which surely won't exist
-			addSource(addExternalMap("resmap.pat", 100), new VolumeResourceSource("ressci.pat"), 100);
+			addSource(new VolumeResourceSource("ressci.pat", addExternalMap("resmap.pat", 100)), 100);
 		}
 	}
 #else
@@ -523,7 +521,7 @@
 
 	addPatchDir(".");
 	if (Common::File::exists("message.map"))
-		addSource(addExternalMap("message.map"), new VolumeResourceSource("resource.msg"), 0);
+		addSource(new VolumeResourceSource("resource.msg", addExternalMap("message.map")), 0);
 
 	return 1;
 }
@@ -567,7 +565,7 @@
 
 #ifdef ENABLE_SCI32
 	if (sci21PatchMap && sci21PatchRes)
-		addSource(sci21PatchMap, new VolumeResourceSource(sci21PatchRes->getName()), sci21PatchRes, 100);
+		addSource(new VolumeResourceSource(sci21PatchRes->getName(), sci21PatchMap), sci21PatchRes, 100);
 #endif
 
 	// Now find all the resource.0?? files
@@ -582,7 +580,7 @@
 			const char *dot = strrchr(filename.c_str(), '.');
 			int number = atoi(dot + 1);
 
-			addSource(map, new VolumeResourceSource(file->getName()), file, number);
+			addSource(new VolumeResourceSource(file->getName(), map), file, number);
 		}
 	}
 
@@ -597,12 +595,12 @@
 	Common::List<ResourceId>::iterator itr = resources->begin();
 
 	while (itr != resources->end()) {
-		ResourceSource *src = addSource(NULL, new IntMapResourceSource("MAP"), itr->number);
+		ResourceSource *src = addSource(new IntMapResourceSource("MAP"), itr->number);
 
 		if ((itr->number == 65535) && Common::File::exists("RESOURCE.SFX"))
-			addSource(src, new AudioVolumeResourceSource("RESOURCE.SFX"), 0);
+			addSource(new AudioVolumeResourceSource("RESOURCE.SFX", src), 0);
 		else if (Common::File::exists("RESOURCE.AUD"))
-			addSource(src, new AudioVolumeResourceSource("RESOURCE.AUD"), 0);
+			addSource(new AudioVolumeResourceSource("RESOURCE.AUD", src), 0);
 
 		++itr;
 	}

Modified: scummvm/trunk/engines/sci/resource.h
===================================================================
--- scummvm/trunk/engines/sci/resource.h	2010-06-15 12:11:04 UTC (rev 49813)
+++ scummvm/trunk/engines/sci/resource.h	2010-06-15 12:11:30 UTC (rev 49814)
@@ -316,15 +316,12 @@
 
 	/**
 	 * Adds a source to the resource manager's list of sources.
-	 * @param map		The map associated with this source
 	 * @param source	The new source to add
 	 * @return A pointer to the added source structure, or NULL if an error occurred.
 	 */
-	ResourceSource *addSource(ResourceSource *map, ResourceSource *source,
-	                          int number);
+	ResourceSource *addSource(ResourceSource *source, int number);
 
-	ResourceSource *addSource(ResourceSource *map, ResourceSource *source,
-								const Common::FSNode *resFile, int number);
+	ResourceSource *addSource(ResourceSource *source, const Common::FSNode *resFile, int number);
 
 	/**
 	 * Add an external (i.e., separate file) map resource to the resource manager's list of sources.

Modified: scummvm/trunk/engines/sci/resource_audio.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource_audio.cpp	2010-06-15 12:11:04 UTC (rev 49813)
+++ scummvm/trunk/engines/sci/resource_audio.cpp	2010-06-15 12:11:30 UTC (rev 49814)
@@ -433,7 +433,7 @@
 		return;
 	}
 
-	_audioMapSCI1 = addSource(NULL, new ExtAudioMapResourceSource(fullname), language);
+	_audioMapSCI1 = addSource(new ExtAudioMapResourceSource(fullname), language);
 
 	// Search for audio volumes for this language and add them to the source list
 	Common::ArchiveMemberList files;
@@ -443,7 +443,7 @@
 		const char *dot = strrchr(name.c_str(), '.');
 		int number = atoi(dot + 1);
 
-		addSource(_audioMapSCI1, new AudioVolumeResourceSource(name), number);
+		addSource(new AudioVolumeResourceSource(name, _audioMapSCI1), number);
 	}
 
 	scanNewSources();

Modified: scummvm/trunk/engines/sci/resource_intern.h
===================================================================
--- scummvm/trunk/engines/sci/resource_intern.h	2010-06-15 12:11:04 UTC (rev 49813)
+++ scummvm/trunk/engines/sci/resource_intern.h	2010-06-15 12:11:30 UTC (rev 49814)
@@ -56,7 +56,7 @@
 	bool scanned;
 	const Common::FSNode *resourceFile;
 	int volume_number;
-	ResourceSource *associated_map;
+	ResourceSource *associated_map;	// TODO: Move to VolumeResourceSource
 	uint32 audioCompressionType;
 	int32 *audioCompressionOffsetMapping;
 	Common::MacResManager *_macResMan;
@@ -82,7 +82,10 @@
 
 class VolumeResourceSource : public ResourceSource {
 public:
-	VolumeResourceSource(const Common::String &name) : ResourceSource(kSourceVolume, name) {}
+	VolumeResourceSource(const Common::String &name, ResourceSource *map, ResSourceType type = kSourceVolume)
+		: ResourceSource(type, name) {
+		associated_map = map;
+	}
 };
 
 class ExtMapResourceSource : public ResourceSource {
@@ -95,9 +98,11 @@
 	IntMapResourceSource(const Common::String &name) : ResourceSource(kSourceIntMap, name) {}
 };
 
-class AudioVolumeResourceSource : public ResourceSource {
+class AudioVolumeResourceSource : public VolumeResourceSource {
 public:
-	AudioVolumeResourceSource(const Common::String &name) : ResourceSource(kSourceAudioVolume, name) {}
+	AudioVolumeResourceSource(const Common::String &name, ResourceSource *map)
+		: VolumeResourceSource(name, map, kSourceAudioVolume) {
+	}
 };
 
 class ExtAudioMapResourceSource : public ResourceSource {


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