diff options
| author | James Brown | 2002-05-13 17:23:58 +0000 | 
|---|---|---|
| committer | James Brown | 2002-05-13 17:23:58 +0000 | 
| commit | 619da2da8fd3504ad01874fea50ee89e2e3e0dee (patch) | |
| tree | ea51973699c260fe5588acb2c02f8220aa5dce4a | |
| parent | 383bbc64ef5acc89a02ab925923709a8130dbb4d (diff) | |
| download | scummvm-rg350-619da2da8fd3504ad01874fea50ee89e2e3e0dee.tar.gz scummvm-rg350-619da2da8fd3504ad01874fea50ee89e2e3e0dee.tar.bz2 scummvm-rg350-619da2da8fd3504ad01874fea50ee89e2e3e0dee.zip  | |
One last post-freeze fix.
svn-id: r4307
| -rw-r--r-- | insane.cpp | 20 | 
1 files changed, 12 insertions, 8 deletions
diff --git a/insane.cpp b/insane.cpp index c6b42555e9..4c19a426ad 100644 --- a/insane.cpp +++ b/insane.cpp @@ -152,7 +152,8 @@ void SmushPlayer::parseIACT() {  	if (idx == 8) {  		for (idx = 0; idx < 8; idx++) { -			if (_imusTrk[idx] == 0) { +			if (_imusTrk[idx] == 0 && +			    g_scumm->_mixer->_channels[idx] == NULL) {  				_imusTrk[idx] = trk;  				_imusSize[idx] = 0;  				break; @@ -266,10 +267,12 @@ void SmushPlayer::parseIACT() {  		_imusSubSize[idx] -= sublen;  		_imusSize[idx] -= sublen;				  		pos += sublen;	 -	} -	if (_imusSubSize[idx] == 0 && _imusSubTag[idx] == 'DATA') -		_imusTrk[idx] = 0; +		if (_imusSubSize[idx] == 0 && _imusSubTag[idx] == 'DATA') { +			_imusTrk[idx] = 0; +			return; +		} +	}  }  void SmushPlayer::parseNPAL() @@ -791,10 +794,11 @@ void SmushPlayer::parsePSAD()	// FIXME: Needs to append to  	if (idx == 8) {  		for (idx = 0; idx < 8; idx++) { -			if (_psadTrk[idx] == 0) { -				_psadTrk[idx] = trk; -				_saudSize[idx] = 0; -				break; +			if (_psadTrk[idx] == 0 && +			    g_scumm->_mixer->_channels[idx] == NULL) { +					_psadTrk[idx] = trk; +					_saudSize[idx] = 0; +					break;  			}  		}  	}  | 
