aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-08-11 15:04:26 +0000
committerMartin Kiewitz2010-08-11 15:04:26 +0000
commit324e9373477532468ca8723f165a4ac595653223 (patch)
tree114945609522fabe74053397418331e0e2e77f60
parent8889a6574de0b1da2302ea7f51c806407abeb908 (diff)
downloadscummvm-rg350-324e9373477532468ca8723f165a4ac595653223.tar.gz
scummvm-rg350-324e9373477532468ca8723f165a4ac595653223.tar.bz2
scummvm-rg350-324e9373477532468ca8723f165a4ac595653223.zip
SCI: not pausing kDoSound samples anymore
but pausing looped samples only fixes "I'm melting" sample in sq1 death (bug #3038048) added detailed comment about this change svn-id: r51985
-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;