[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