diff options
author | Torbjörn Andersson | 2008-07-08 16:25:39 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2008-07-08 16:25:39 +0000 |
commit | c2c4963e96383b354fb34776f34ca018734c6f9d (patch) | |
tree | f0a92148810c1b17e4ffb2a1092f97078c9c70c4 /sound/midiparser_xmidi.cpp | |
parent | 8093dbaf49ae54aac783cdf996911c459aac5468 (diff) | |
download | scummvm-rg350-c2c4963e96383b354fb34776f34ca018734c6f9d.tar.gz scummvm-rg350-c2c4963e96383b354fb34776f34ca018734c6f9d.tar.bz2 scummvm-rg350-c2c4963e96383b354fb34776f34ca018734c6f9d.zip |
On reading some more about XMIDI, I believe the NEXT and BREAK variants of the
controller are mutually exclusive cases, i.e. a BREAK simply means forget about
the innermost loop, and continue as if nothing had happened.
svn-id: r32966
Diffstat (limited to 'sound/midiparser_xmidi.cpp')
-rw-r--r-- | sound/midiparser_xmidi.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sound/midiparser_xmidi.cpp b/sound/midiparser_xmidi.cpp index 1a90f24703..f28c824a8e 100644 --- a/sound/midiparser_xmidi.cpp +++ b/sound/midiparser_xmidi.cpp @@ -114,10 +114,9 @@ void MidiParser_XMIDI::parseNextEvent(EventInfo &info) { // XMIDI_CONTROLLER_NEXT_BREAK if (_loopCount >= 0) { if (info.basic.param2 < 64) { + // End the current loop. _loopCount--; - } - - if (_loopCount >= 0) { + } else { _position._play_pos = _loop[_loopCount].pos; // Repeat 0 means "loop forever". if (_loop[_loopCount].repeat) { |