[Scummvm-cvs-logs] SF.net SVN: scummvm:[51985] scummvm/trunk/engines/sci/sound/music.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Aug 11 17:04:26 CEST 2010


Revision: 51985
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51985&view=rev
Author:   m_kiewitz
Date:     2010-08-11 15:04:26 +0000 (Wed, 11 Aug 2010)

Log Message:
-----------
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

Modified Paths:
--------------
    scummvm/trunk/engines/sci/sound/music.cpp

Modified: scummvm/trunk/engines/sci/sound/music.cpp
===================================================================
--- scummvm/trunk/engines/sci/sound/music.cpp	2010-08-11 14:35:42 UTC (rev 51984)
+++ scummvm/trunk/engines/sci/sound/music.cpp	2010-08-11 15:04:26 UTC (rev 51985)
@@ -465,6 +465,17 @@
 }
 
 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;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list