From 348953c067bc9e70702b64f130cbbe4cbc742223 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 15 Jun 2010 12:16:17 +0000 Subject: SCI: Make ResourceSource::_resourceFile const svn-id: r49826 --- engines/sci/resource.cpp | 29 +++++------------------------ engines/sci/resource.h | 2 -- engines/sci/resource_intern.h | 13 +++++++++---- 3 files changed, 14 insertions(+), 30 deletions(-) diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index a1e7a5c85c..108cfa5f63 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -168,10 +168,9 @@ uint32 Resource::getAudioCompressionType() { } -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,9 +201,7 @@ ResourceSource *ResourceManager::addExternalMap(const Common::String &filename, } ResourceSource *ResourceManager::addExternalMap(const Common::FSNode *mapFile, int volume_nr) { - ResourceSource *newsrc = new ExtMapResourceSource(mapFile->getName(), volume_nr); - - newsrc->_resourceFile = mapFile; + ResourceSource *newsrc = new ExtMapResourceSource(mapFile->getName(), volume_nr, mapFile); _sources.push_back(newsrc); return newsrc; @@ -225,22 +222,6 @@ ResourceSource *ResourceManager::addSource(ResourceSource *newsrc) { 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 @@ int ResourceManager::addAppropriateSources(const Common::FSList &fslist) { #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 @@ int ResourceManager::addAppropriateSources(const Common::FSList &fslist) { 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)); } } diff --git a/engines/sci/resource.h b/engines/sci/resource.h index 36d75fb56f..de40f73306 100644 --- a/engines/sci/resource.h +++ b/engines/sci/resource.h @@ -347,8 +347,6 @@ protected: */ 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. diff --git a/engines/sci/resource_intern.h b/engines/sci/resource_intern.h index 5a5129c125..f2853951fa 100644 --- a/engines/sci/resource_intern.h +++ b/engines/sci/resource_intern.h @@ -54,14 +54,14 @@ protected: 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 @@ public: _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 @@ public: 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); -- cgit v1.2.3