aboutsummaryrefslogtreecommitdiff
path: root/scumm/sound.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/sound.cpp')
-rw-r--r--scumm/sound.cpp23
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;