aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sfx/midiparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/sfx/midiparser.cpp')
-rw-r--r--engines/sci/sfx/midiparser.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/sci/sfx/midiparser.cpp b/engines/sci/sfx/midiparser.cpp
index ce8810bbfc..c900d5b1f6 100644
--- a/engines/sci/sfx/midiparser.cpp
+++ b/engines/sci/sfx/midiparser.cpp
@@ -135,8 +135,11 @@ void MidiParser_SCI::parseNextEvent(EventInfo &info) {
switch (info.basic.param1) {
case 0x50: // set reverb
break;
- case 0x52: // set hold
- _pSnd->hold = info.basic.param2;
+ case 0x52: // hold ID marker
+ // Check if the hold ID marker is the same as the hold ID marker set for that song by
+ // cmdSetSoundHold. If it is, set the loop position
+ if (info.basic.param2 == _pSnd->hold)
+ _loopTick = _position._play_tick;
break;
case 0x60: // update dataInc
switch (_soundVersion) {