From b9a3a9c12d04ab0886cedc2dec81689d5458d4ca Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 15 Jun 2010 12:18:07 +0000 Subject: SCI: Move _associatedMap to VolumeResourceSource and make it const svn-id: r49831 --- engines/sci/resource.cpp | 1 - engines/sci/resource_audio.cpp | 2 +- engines/sci/resource_intern.h | 10 +++++----- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index b37f89ae5b..df33ec6b89 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -175,7 +175,6 @@ uint32 AudioVolumeResourceSource::getAudioCompressionType() const { ResourceSource::ResourceSource(ResSourceType type, const Common::String &name, int volNum, const Common::FSNode *resFile) : _sourceType(type), _name(name), _volumeNumber(volNum), _resourceFile(resFile) { _scanned = false; - _associatedMap = NULL; } ResourceSource::~ResourceSource() { diff --git a/engines/sci/resource_audio.cpp b/engines/sci/resource_audio.cpp index 81ea99e17a..4df2f6515b 100644 --- a/engines/sci/resource_audio.cpp +++ b/engines/sci/resource_audio.cpp @@ -417,7 +417,7 @@ void ResourceManager::setAudioLanguage(int language) { Common::List::iterator it = _sources.begin(); while (it != _sources.end()) { ResourceSource *src = *it; - if (src->_associatedMap == _audioMapSCI1) { + if (src->findVolume(_audioMapSCI1, src->_volumeNumber)) { it = _sources.erase(it); delete src; } else { diff --git a/engines/sci/resource_intern.h b/engines/sci/resource_intern.h index c58fc72ff2..209f3720b1 100644 --- a/engines/sci/resource_intern.h +++ b/engines/sci/resource_intern.h @@ -56,7 +56,6 @@ public: bool _scanned; const Common::FSNode * const _resourceFile; const int _volumeNumber; - ResourceSource *_associatedMap; // TODO: Move to VolumeResourceSource protected: ResourceSource(ResSourceType type, const Common::String &name, int volNum = 0, const Common::FSNode *resFile = 0); @@ -105,15 +104,16 @@ public: }; class VolumeResourceSource : public ResourceSource { +protected: + ResourceSource * const _associatedMap; + public: VolumeResourceSource(const Common::String &name, ResourceSource *map, int volNum, ResSourceType type = kSourceVolume) - : ResourceSource(type, name, volNum) { - _associatedMap = map; + : ResourceSource(type, name, volNum), _associatedMap(map) { } VolumeResourceSource(const Common::String &name, ResourceSource *map, int volNum, const Common::FSNode *resFile) - : ResourceSource(kSourceVolume, name, volNum, resFile) { - _associatedMap = map; + : ResourceSource(kSourceVolume, name, volNum, resFile), _associatedMap(map) { } virtual ResourceSource *findVolume(ResourceSource *map, int volNum) { -- cgit v1.2.3