[Scummvm-cvs-logs] SF.net SVN: scummvm:[52098] scummvm/trunk/engines/scumm/sound.cpp

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sun Aug 15 13:37:57 CEST 2010


Revision: 52098
          http://scummvm.svn.sourceforge.net/scummvm/?rev=52098&view=rev
Author:   eriktorbjorn
Date:     2010-08-15 11:37:57 +0000 (Sun, 15 Aug 2010)

Log Message:
-----------
SCUMM: Fix bug #3024173 - LOOM-PCE: Music stops prematurely

Apparently, the original interpreter hard-coded the lengths of the
audio tracks on the CD, and in this particular case it makes a
difference that one of the tracks is slightly longer on the disc
than the scripts assume it is. Thanks to hennymcc for doing all the
hard work in figuring this out.

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/sound.cpp

Modified: scummvm/trunk/engines/scumm/sound.cpp
===================================================================
--- scummvm/trunk/engines/scumm/sound.cpp	2010-08-15 11:20:23 UTC (rev 52097)
+++ scummvm/trunk/engines/scumm/sound.cpp	2010-08-15 11:37:57 UTC (rev 52098)
@@ -170,7 +170,18 @@
 			static const char tracks[20] = {3, 4, 5, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 19, 20, 21};
 
 			_currentCDSound = soundID;
-			playCDTrack(tracks[soundID - 13], 1, 0, 0);
+
+			// The original game had hard-coded lengths for all
+			// tracks, but this one track is the only one (as far
+			// as we know) where this actually matters. See bug
+			// #3024173 - LOOM-PCE: Music stops prematurely.
+
+			int track = tracks[soundID - 13];
+			if (track == 6) {
+				playCDTrack(track, 1, 0, 260);
+			} else {
+				playCDTrack(track, 1, 0, 0);
+			}
 		} else {
 			if (_vm->_musicEngine) {
 				_vm->_musicEngine->startSound(soundID);


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