diff options
author | Torbjörn Andersson | 2008-07-06 19:25:32 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2008-07-06 19:25:32 +0000 |
commit | ae026486ef4c425c930110ac7ca6f97501b1c482 (patch) | |
tree | 73d41849d72c91f3856b04795c33f1088a971bfa /sound | |
parent | 1cc9af6b1023d438193587171890bf2ca7d5adbf (diff) | |
download | scummvm-rg350-ae026486ef4c425c930110ac7ca6f97501b1c482.tar.gz scummvm-rg350-ae026486ef4c425c930110ac7ca6f97501b1c482.tar.bz2 scummvm-rg350-ae026486ef4c425c930110ac7ca6f97501b1c482.zip |
Fixed silly error. The NEXT_BREAK event should, of course, jump to the event
*after* the FOR_LOOP event. Apart from simplifying things, this should allow
limited number of repeats to work.
svn-id: r32931
Diffstat (limited to 'sound')
-rw-r--r-- | sound/midiparser_xmidi.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sound/midiparser_xmidi.cpp b/sound/midiparser_xmidi.cpp index 08fdfd657b..1a90f24703 100644 --- a/sound/midiparser_xmidi.cpp +++ b/sound/midiparser_xmidi.cpp @@ -104,14 +104,12 @@ void MidiParser_XMIDI::parseNextEvent(EventInfo &info) { if (info.basic.param1 == 0x74) { // XMIDI_CONTROLLER_FOR_LOOP - byte *pos = _position._play_pos - 3; - if (_loopCount < 0 || _loop[_loopCount].pos != pos) { - if (_loopCount < ARRAYSIZE(_loop) - 1) - _loopCount++; + byte *pos = _position._play_pos; + if (_loopCount < ARRAYSIZE(_loop) - 1) + _loopCount++; - _loop[_loopCount].pos = pos; - _loop[_loopCount].repeat = info.basic.param2; - } + _loop[_loopCount].pos = pos; + _loop[_loopCount].repeat = info.basic.param2; } else if (info.basic.param1 == 0x75) { // XMIDI_CONTROLLER_NEXT_BREAK if (_loopCount >= 0) { |