aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/sound/music.cpp11
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;