aboutsummaryrefslogtreecommitdiff
path: root/queen/sound.cpp
diff options
context:
space:
mode:
authorJoost Peters2004-01-19 23:54:50 +0000
committerJoost Peters2004-01-19 23:54:50 +0000
commit698eefae58b5ff065fc777b28530a3d77e5f9933 (patch)
tree5c216cee86d2c0b8d3145076391a58ec0c57374c /queen/sound.cpp
parent2f7198a3acabe4db57a001817686abe397c96e3f (diff)
downloadscummvm-rg350-698eefae58b5ff065fc777b28530a3d77e5f9933.tar.gz
scummvm-rg350-698eefae58b5ff065fc777b28530a3d77e5f9933.tar.bz2
scummvm-rg350-698eefae58b5ff065fc777b28530a3d77e5f9933.zip
- Enable music queueing (I don't really like the levels of indirection, but it'll do for now)
- Handle special music type '2000' (restart previously queued music) svn-id: r12529
Diffstat (limited to 'queen/sound.cpp')
-rw-r--r--queen/sound.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/queen/sound.cpp b/queen/sound.cpp
index 19f7711f82..d9b3f92bdd 100644
--- a/queen/sound.cpp
+++ b/queen/sound.cpp
@@ -138,16 +138,11 @@ void Sound::playSong(int16 songNum) {
break;
}
- int16 song = _tune[newTune].tuneNum[0] - 1;
-
- // Work around bug in Roland music, note that these numbers are 'one-off' from
- // the original code.
- if (/*isRoland && */ song == 88 || song == 89) {
- warning("Working around Roland music bug");
- song = 62;
- }
-
- _vm->music()->playSong(song);
+ _vm->music()->queueClear();
+ int i = 0;
+ while(_tune[newTune].tuneNum[i])
+ _vm->music()->queueSong(_tune[newTune].tuneNum[i++] - 1);
+ _vm->music()->playMusic();
}
void Sound::saveState(byte *&ptr) {