diff options
author | Jamieson Christian | 2006-03-09 03:29:12 +0000 |
---|---|---|
committer | Jamieson Christian | 2006-03-09 03:29:12 +0000 |
commit | effed85448baa683ed5dafe2cf2c5531c092a951 (patch) | |
tree | a0e520f08c097a58f85e27f1beb3f6aaa2011c97 /engines/scumm/imuse/imuse_player.cpp | |
parent | ea26ccea4a3afc9e18d11f6e6e52119ae43fb68e (diff) | |
download | scummvm-rg350-effed85448baa683ed5dafe2cf2c5531c092a951.tar.gz scummvm-rg350-effed85448baa683ed5dafe2cf2c5531c092a951.tar.bz2 scummvm-rg350-effed85448baa683ed5dafe2cf2c5531c092a951.zip |
Implemented SysEx command 1 for non-S&M SCUMM games, per the latest comment on Bug 1088045.
svn-id: r21156
Diffstat (limited to 'engines/scumm/imuse/imuse_player.cpp')
-rw-r--r-- | engines/scumm/imuse/imuse_player.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
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. |