diff options
Diffstat (limited to 'engines/sci/sfx/soundcmd.cpp')
-rw-r--r-- | engines/sci/sfx/soundcmd.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/sci/sfx/soundcmd.cpp b/engines/sci/sfx/soundcmd.cpp index d308ba0602..b5c79a6f6c 100644 --- a/engines/sci/sfx/soundcmd.cpp +++ b/engines/sci/sfx/soundcmd.cpp @@ -853,10 +853,12 @@ void SoundCommandParser::cmdSetSoundHold(reg_t obj, int16 value) { return; } - // Hold the sound before it ends for the specified amount of time. The - // engine will signal when to stop it, by setting hold to 0, in which - // case stop the sound - _music->soundSetHold(musicSlot, value); + // Set the special hold marker ID where the song should be looped at. + // If the hold marker is 0, stop the song, as songs with a hold marker + // embedded don't have an end of track signal at the end, so that they + // loop instead of stopping + musicSlot->hold = value; + if (!value) cmdStopSound(obj, 0); #endif |