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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Jun 15 14:16:17 CEST 2010


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

Log Message:
-----------
SCI: Make ResourceSource::_resourceFile const

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

Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp	2010-06-15 12:15:52 UTC (rev 49825)
+++ scummvm/trunk/engines/sci/resource.cpp	2010-06-15 12:16:17 UTC (rev 49826)
@@ -168,10 +168,9 @@
 }
 
 
-ResourceSource::ResourceSource(ResSourceType type, const Common::String &name, int volNum)
- : _sourceType(type), _name(name), _volumeNumber(volNum) {
+ResourceSource::ResourceSource(ResSourceType type, const Common::String &name, int volNum, const Common::FSNode *resFile)
+ : _sourceType(type), _name(name), _volumeNumber(volNum), _resourceFile(resFile) {
 	_scanned = false;
-	_resourceFile = 0;
 	_associatedMap = NULL;
 	_audioCompressionType = 0;
 	_audioCompressionOffsetMapping = NULL;
@@ -202,10 +201,8 @@
 }
 
 ResourceSource *ResourceManager::addExternalMap(const Common::FSNode *mapFile, int volume_nr) {
-	ResourceSource *newsrc = new ExtMapResourceSource(mapFile->getName(), volume_nr);
+	ResourceSource *newsrc = new ExtMapResourceSource(mapFile->getName(), volume_nr, mapFile);
 
-	newsrc->_resourceFile = mapFile;
-
 	_sources.push_back(newsrc);
 	return newsrc;
 }
@@ -225,22 +222,6 @@
 	return newsrc;
 }
 
-ResourceSource *ResourceManager::addSource(ResourceSource *newsrc, const Common::FSNode *resFile) {
-	assert(newsrc);
-
-	newsrc->_resourceFile = resFile;
-	if (newsrc->getSourceType() == kSourceAudioVolume) {
-		// TODO: Move this call into the AudioVolumeResourceSource constructor.
-		// Need to verify if this is safe, though; in particular, whether this
-		// method may be called before the new AudioVolumeResourceSource has been
-		// added to the _sources lists.
-		checkIfAudioVolumeIsCompressed(newsrc);
-	}
-
-	_sources.push_back(newsrc);
-	return newsrc;
-}
-
 ResourceSource *ResourceManager::addPatchDir(const Common::String &dirname) {
 	ResourceSource *newsrc = new DirectoryResourceSource(dirname);
 
@@ -594,7 +575,7 @@
 
 #ifdef ENABLE_SCI32
 	if (sci21PatchMap && sci21PatchRes)
-		addSource(new VolumeResourceSource(sci21PatchRes->getName(), sci21PatchMap, 100), sci21PatchRes);
+		addSource(new VolumeResourceSource(sci21PatchRes->getName(), sci21PatchMap, 100, sci21PatchRes));
 #endif
 
 	// Now find all the resource.0?? files
@@ -609,7 +590,7 @@
 			const char *dot = strrchr(filename.c_str(), '.');
 			int number = atoi(dot + 1);
 
-			addSource(new VolumeResourceSource(file->getName(), map, number), file);
+			addSource(new VolumeResourceSource(file->getName(), map, number, file));
 		}
 	}
 

Modified: scummvm/trunk/engines/sci/resource.h
===================================================================
--- scummvm/trunk/engines/sci/resource.h	2010-06-15 12:15:52 UTC (rev 49825)
+++ scummvm/trunk/engines/sci/resource.h	2010-06-15 12:16:17 UTC (rev 49826)
@@ -347,8 +347,6 @@
 	 */
 	ResourceSource *addSource(ResourceSource *source);
 
-	ResourceSource *addSource(ResourceSource *source, const Common::FSNode *resFile);
-
 	/**
 	 * Add an external (i.e., separate file) map resource to the resource
 	 * manager's list of sources.

Modified: scummvm/trunk/engines/sci/resource_intern.h
===================================================================
--- scummvm/trunk/engines/sci/resource_intern.h	2010-06-15 12:15:52 UTC (rev 49825)
+++ scummvm/trunk/engines/sci/resource_intern.h	2010-06-15 12:16:17 UTC (rev 49826)
@@ -54,14 +54,14 @@
 
 public:
 	bool _scanned;
-	const Common::FSNode *_resourceFile;
+	const Common::FSNode * const _resourceFile;
 	const int _volumeNumber;
 	ResourceSource *_associatedMap;	// TODO: Move to VolumeResourceSource
 	uint32 _audioCompressionType;	// TODO: Move to AudioVolumeResourceSource
 	int32 *_audioCompressionOffsetMapping;	// TODO: Move to AudioVolumeResourceSource
 
 protected:
-	ResourceSource(ResSourceType type, const Common::String &name, int volNum = 0);
+	ResourceSource(ResSourceType type, const Common::String &name, int volNum = 0, const Common::FSNode *resFile = 0);
 public:
 	virtual ~ResourceSource();
 
@@ -112,6 +112,11 @@
 		_associatedMap = map;
 	}
 
+	VolumeResourceSource(const Common::String &name, ResourceSource *map, int volNum, const Common::FSNode *resFile)
+		: ResourceSource(kSourceVolume, name, volNum, resFile) {
+		_associatedMap = map;
+	}
+
 	virtual ResourceSource *findVolume(ResourceSource *map, int volNum) {
 		if (_associatedMap == map && _volumeNumber == volNum)
 			return this;
@@ -121,8 +126,8 @@
 
 class ExtMapResourceSource : public ResourceSource {
 public:
-	ExtMapResourceSource(const Common::String &name, int volNum)
-		: ResourceSource(kSourceExtMap, name, volNum) {
+	ExtMapResourceSource(const Common::String &name, int volNum, const Common::FSNode *resFile = 0)
+		: ResourceSource(kSourceExtMap, name, volNum, resFile) {
 	}
 
 	virtual void scanSource(ResourceManager *resMan);


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