aboutsummaryrefslogtreecommitdiff
path: root/queen/sound.cpp
diff options
context:
space:
mode:
authorJoost Peters2003-12-28 01:17:29 +0000
committerJoost Peters2003-12-28 01:17:29 +0000
commiteffc207b694c3d2a60fc364e3ea919dea1de9a50 (patch)
treee884ff2aa1a1ab9646be4e406c5c3a5b3ba21307 /queen/sound.cpp
parentbcba9807358b3b121cc97d282a093afaefe623da (diff)
downloadscummvm-rg350-effc207b694c3d2a60fc364e3ea919dea1de9a50.tar.gz
scummvm-rg350-effc207b694c3d2a60fc364e3ea919dea1de9a50.tar.bz2
scummvm-rg350-effc207b694c3d2a60fc364e3ea919dea1de9a50.zip
- added 'song' debugger command
- restore music after loading game - fix for bug in Roland Floda Corridor music - added LE struct reading methods (and renamed the old BE ones) for future compatibility with original DOS savegames svn-id: r11985
Diffstat (limited to 'queen/sound.cpp')
-rw-r--r--queen/sound.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/queen/sound.cpp b/queen/sound.cpp
index d1b7e56986..1a606603f4 100644
--- a/queen/sound.cpp
+++ b/queen/sound.cpp
@@ -110,7 +110,7 @@ void Sound::playSong(int16 songNum) {
if (!musicOn())
return;
- //TODO: Record onto song stack for saving/loading
+ _lastOverride = songNum;
switch (_tune[newTune - 1].mode) {
//Random loop
@@ -127,7 +127,16 @@ void Sound::playSong(int16 songNum) {
break;
}
- _vm->music()->playSong(_tune[newTune - 1].tuneNum[0] - 1);
+ int16 song = _tune[newTune - 1].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);
}