aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/imuse/imuse.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2008-01-11 22:59:13 +0000
committerTorbjörn Andersson2008-01-11 22:59:13 +0000
commitb97c9ef136436112e3a58e5fbe4a2b59242d4152 (patch)
treecf35e9cc9c93eaa4e48c73891ef8f4fb80534f54 /engines/scumm/imuse/imuse.cpp
parentd205129f2bd1c51791b73b619797cfe0b4723800 (diff)
downloadscummvm-rg350-b97c9ef136436112e3a58e5fbe4a2b59242d4152.tar.gz
scummvm-rg350-b97c9ef136436112e3a58e5fbe4a2b59242d4152.tar.bz2
scummvm-rg350-b97c9ef136436112e3a58e5fbe4a2b59242d4152.zip
Work around bug #1324106 again. Apparently, I was mistaken the other day when I
said the timer changes fixed it. This time, I've made the workaround a bit simpler to understand, though. svn-id: r30429
Diffstat (limited to 'engines/scumm/imuse/imuse.cpp')
-rw-r--r--engines/scumm/imuse/imuse.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/engines/scumm/imuse/imuse.cpp b/engines/scumm/imuse/imuse.cpp
index 0e21e9a24b..2d20b72db6 100644
--- a/engines/scumm/imuse/imuse.cpp
+++ b/engines/scumm/imuse/imuse.cpp
@@ -871,7 +871,23 @@ int32 IMuseInternal::doCommand_internal(int numargs, int a[]) {
player->setDetune(a[2]);
return 0;
case 6:
- player->setSpeed(a[2]);
+ // WORKAROUND for bug #1324106. When playing the
+ // "flourishes" as Rapp's body appears from his ashes,
+ // MI2 sets up triggers to pause the music, in case the
+ // animation plays too slowly, and then the music is
+ // manually unpaused for the next part of the music.
+ //
+ // In ScummVM, the animation finishes slightly too
+ // quickly, and the pause command is run *after* the
+ // unpause command. So we work around it by ignoring
+ // all attempts at pausing this particular sound.
+ //
+ // I could have sworn this wasn't needed after the
+ // recent timer change, but now it looks like it's
+ // still needed after all.
+ if (_game_id != GID_MONKEY2 || player->getID() != 183 || a[2] != 0) {
+ player->setSpeed(a[2]);
+ }
return 0;
case 7:
return player->jump(a[2], a[3], a[4]) ? 0 : -1;