diff options
Diffstat (limited to 'scumm/sound.cpp')
-rw-r--r-- | scumm/sound.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp index b21e8a32ab..7382ee113c 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -114,16 +114,25 @@ void Sound::addSoundToQueue2(int sound, int heOffset, int heChannel, int heFlags _soundQue2Pos++; } -void Sound::processSoundQues() { +void Sound::processSound() { + if (_vm->_heversion >= 60) { + processSoundQueues(); + processSfxQueues(); + } else { + processSfxQueues(); + + if (_vm->_features & GF_DIGI_IMUSE) + return; + + processSoundQueues(); + } +} + +void Sound::processSoundQueues() { int i = 0, num; int snd, heOffset, heChannel, heFlags; int data[16]; - processSfxQueues(); - - if (_vm->_features & GF_DIGI_IMUSE) - return; - while (_soundQue2Pos) { _soundQue2Pos--; snd = _soundQue2[_soundQue2Pos].sound; @@ -1030,7 +1039,7 @@ void Sound::soundKludge(int *list, int num) { #endif if (list[0] == -1) { - processSoundQues(); + processSound(); } else { _soundQue[_soundQuePos++] = num; |