diff options
author | Martin Kiewitz | 2010-08-11 15:04:26 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-08-11 15:04:26 +0000 |
commit | 324e9373477532468ca8723f165a4ac595653223 (patch) | |
tree | 114945609522fabe74053397418331e0e2e77f60 /engines | |
parent | 8889a6574de0b1da2302ea7f51c806407abeb908 (diff) | |
download | scummvm-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
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; |