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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Aug 4 11:15:38 CEST 2010


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

Log Message:
-----------
SCI: fix fadeout on workarounds

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

Modified: scummvm/trunk/engines/sci/sound/soundcmd.cpp
===================================================================
--- scummvm/trunk/engines/sci/sound/soundcmd.cpp	2010-08-04 08:26:09 UTC (rev 51727)
+++ scummvm/trunk/engines/sci/sound/soundcmd.cpp	2010-08-04 09:15:37 UTC (rev 51728)
@@ -324,7 +324,11 @@
 	case 4: // SCI01+
 	case 5: // SCI1+ (SCI1 late sound scheme), with fade and continue
 		musicSlot->fadeTo = CLIP<uint16>(argv[1].toUint16(), 0, MUSIC_VOLUME_MAX);
-		musicSlot->fadeStep = volume > argv[1].toUint16() ? -argv[3].toUint16() : argv[3].toUint16();
+		// sometimes we get objects in that position, fix it up (ffs. workarounds)
+		if (!argv[1].segment)
+			musicSlot->fadeStep = volume > musicSlot->fadeTo ? -argv[3].toUint16() : argv[3].toUint16();
+		else
+			musicSlot->fadeStep = volume > musicSlot->fadeTo ? -5 : 5;
 		musicSlot->fadeTickerStep = argv[2].toUint16() * 16667 / _music->soundGetTempo();
 		musicSlot->fadeTicker = 0;
 		musicSlot->stopAfterFading = (argc == 5) ? (argv[4].toUint16() != 0) : false;


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