From effed85448baa683ed5dafe2cf2c5531c092a951 Mon Sep 17 00:00:00 2001 From: Jamieson Christian Date: Thu, 9 Mar 2006 03:29:12 +0000 Subject: Implemented SysEx command 1 for non-S&M SCUMM games, per the latest comment on Bug 1088045. svn-id: r21156 --- engines/scumm/imuse/imuse_player.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'engines/scumm/imuse') diff --git a/engines/scumm/imuse/imuse_player.cpp b/engines/scumm/imuse/imuse_player.cpp index f271fddb92..fddba2fcc9 100644 --- a/engines/scumm/imuse/imuse_player.cpp +++ b/engines/scumm/imuse/imuse_player.cpp @@ -456,10 +456,16 @@ void Player::sysEx(const byte *p, uint16 len) { break; case 1: - // This SysEx is used in Sam & Max for maybe_jump. - if (_scanning) - break; - maybe_jump(p[0], p[1] - 1, (READ_BE_UINT16(p + 2) - 1) * 4 + p[4], ((p[5] * TICKS_PER_BEAT) >> 2) + p[6]); + if (_se->_game_id != GID_SAMNMAX) { + // Shut down a part. [Bug 1088045, comments] + part = getPart (p[0]); + if (part != NULL) part->uninit(); + } else { + // Sam & Max: maybe_jump. + if (_scanning) + break; + maybe_jump(p[0], p[1] - 1, (READ_BE_UINT16(p + 2) - 1) * 4 + p[4], ((p[5] * TICKS_PER_BEAT) >> 2) + p[6]); + } break; case 2: // Start of song. Ignore for now. -- cgit v1.2.3