aboutsummaryrefslogtreecommitdiff
path: root/sound/midiparser_xmidi.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2008-07-08 16:25:39 +0000
committerTorbjörn Andersson2008-07-08 16:25:39 +0000
commitc2c4963e96383b354fb34776f34ca018734c6f9d (patch)
treef0a92148810c1b17e4ffb2a1092f97078c9c70c4 /sound/midiparser_xmidi.cpp
parent8093dbaf49ae54aac783cdf996911c459aac5468 (diff)
downloadscummvm-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.cpp5
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) {