diff options
| -rw-r--r-- | engines/scumm/sound.cpp | 13 | 
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp index 61445b21eb..28f1372746 100644 --- a/engines/scumm/sound.cpp +++ b/engines/scumm/sound.cpp @@ -170,7 +170,18 @@ void Sound::playSound(int soundID) {  			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);  | 
