diff options
| author | Bastien Bouclet | 2016-02-06 16:36:35 +0100 | 
|---|---|---|
| committer | Bastien Bouclet | 2016-02-07 15:27:03 +0100 | 
| commit | 32f1ee73addb717b22dbf6db8a0da493627abd82 (patch) | |
| tree | cd57aa9c5e98ff3c73b2494ca939abe47a7718a8 /engines/mohawk/myst.cpp | |
| parent | ef14781456a100956ea9bf52da23a416f59cc44b (diff) | |
| download | scummvm-rg350-32f1ee73addb717b22dbf6db8a0da493627abd82.tar.gz scummvm-rg350-32f1ee73addb717b22dbf6db8a0da493627abd82.tar.bz2 scummvm-rg350-32f1ee73addb717b22dbf6db8a0da493627abd82.zip | |
MOHAWK: Turn MystView::soundList into a Common::Array
Diffstat (limited to 'engines/mohawk/myst.cpp')
| -rw-r--r-- | engines/mohawk/myst.cpp | 44 | 
1 files changed, 20 insertions, 24 deletions
| diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp index 7868434f99..9ad27578e8 100644 --- a/engines/mohawk/myst.cpp +++ b/engines/mohawk/myst.cpp @@ -91,8 +91,6 @@ MohawkEngine_Myst::MohawkEngine_Myst(OSystem *syst, const MohawkGameDescription  	_prevStack = nullptr; -	_view.soundList = nullptr; -	_view.soundListVolume = nullptr;  	_view.scriptResCount = 0;  	_view.scriptResources = nullptr;  } @@ -587,11 +585,11 @@ void MohawkEngine_Myst::changeToCard(uint16 card, TransitionType transition) {  	if (_view.sound == kMystSoundActionConditional) {  		uint16 soundVarValue = _scriptParser->getVar(_view.soundVar); -		if (soundVarValue >= _view.soundCount) +		if (soundVarValue >= _view.soundList.size())  			warning("Conditional sound variable outside range");  		else { -			soundAction = _view.soundList[soundVarValue]; -			soundActionVolume = _view.soundListVolume[soundVarValue]; +			soundAction = _view.soundList[soundVarValue].action; +			soundActionVolume = _view.soundList[soundVarValue].volume;  		}  	} else {  		soundAction = _view.sound; @@ -752,18 +750,20 @@ void MohawkEngine_Myst::loadCard() {  		debugC(kDebugView, "Conditional sound list");  		_view.soundVar = viewStream->readUint16LE();  		debugC(kDebugView, "\tVar: %d", _view.soundVar); -		_view.soundCount = viewStream->readUint16LE(); -		debugC(kDebugView, "\tCount: %d", _view.soundCount); -		_view.soundList = new int16[_view.soundCount]; -		_view.soundListVolume = new uint16[_view.soundCount]; - -		for (uint16 i = 0; i < _view.soundCount; i++) { -			_view.soundList[i] = viewStream->readSint16LE(); -			debugC(kDebugView, "\t\tCondition %d: Action %d", i, _view.soundList[i]); -			if (_view.soundList[i] == kMystSoundActionChangeVolume || _view.soundList[i] >= 0) { -				_view.soundListVolume[i] = viewStream->readUint16LE(); -				debugC(kDebugView, "\t\tCondition %d: Volume %d", i, _view.soundListVolume[i]); +		uint16 soundCount = viewStream->readUint16LE(); +		debugC(kDebugView, "\tCount: %d", soundCount); + +		for (uint16 i = 0; i < soundCount; i++) { +			MystSoundItem sound; + +			sound.action = viewStream->readSint16LE(); +			debugC(kDebugView, "\t\tCondition %d: Action %d", i, sound.action); +			if (sound.action == kMystSoundActionChangeVolume || sound.action >= 0) { +				sound.volume = viewStream->readUint16LE(); +				debugC(kDebugView, "\t\tCondition %d: Volume %d", i, sound.volume);  			} + +			_view.soundList.push_back(sound);  		}  	} else {  		debugC(kDebugView, "Unknown"); @@ -847,9 +847,9 @@ void MohawkEngine_Myst::loadCard() {  	if (_view.sound > 0)  		cachePreload(ID_MSND, _view.sound);  	else if (_view.sound == kMystSoundActionConditional) { -		for (uint16 i = 0; i < _view.soundCount; i++) { -			if (_view.soundList[i] > 0) -				cachePreload(ID_MSND, _view.soundList[i]); +		for (uint16 i = 0; i < _view.soundList.size(); i++) { +			if (_view.soundList[i].action > 0) +				cachePreload(ID_MSND, _view.soundList[i].action);  		}  	} @@ -876,11 +876,7 @@ void MohawkEngine_Myst::loadCard() {  void MohawkEngine_Myst::unloadCard() {  	_view.conditionalImages.clear(); - -	delete[] _view.soundList; -	_view.soundList = nullptr; -	delete[] _view.soundListVolume; -	_view.soundListVolume = nullptr; +	_view.soundList.clear();  	for (uint16 i = 0; i < _view.scriptResCount; i++)  		delete[] _view.scriptResources[i].resource_list; | 
