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; } } } |