aboutsummaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorTorbjörn Andersson2008-07-06 19:25:32 +0000
committerTorbjörn Andersson2008-07-06 19:25:32 +0000
commitae026486ef4c425c930110ac7ca6f97501b1c482 (patch)
tree73d41849d72c91f3856b04795c33f1088a971bfa /sound
parent1cc9af6b1023d438193587171890bf2ca7d5adbf (diff)
downloadscummvm-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.cpp12
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) {