diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/sound/music.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp index 061f380ebc..c9a7de7b1c 100644 --- a/engines/sci/sound/music.cpp +++ b/engines/sci/sound/music.cpp @@ -465,6 +465,17 @@ void SciMusic::soundKill(MusicEntry *pSnd) { } void SciMusic::soundPause(MusicEntry *pSnd) { + // SCI seems not to be pausing samples played back by kDoSound at all + // It only stops looping samples (actually doesn't loop them again before they are unpaused) + // Examples: Space Quest 1 death by acid drops (pause is called even specifically for the sample, see bug #3038048) + // Eco Quest 1 during the intro when going to the abort-menu + // In both cases sierra sci keeps playing + // Leisure Suit Larry 1 doll scene - it seems that pausing here actually just stops + // further looping from happening + // This is a somewhat bigger change, I'm leaving in the old code in here just in case + // I'm currently pausing looped sounds directly, non-looped sounds won't get paused + if ((pSnd->pStreamAud) && (!pSnd->pLoopStream)) + return; pSnd->pauseCounter++; if (pSnd->status != kSoundPlaying) return; |