[Scummvm-cvs-logs] CVS: scummvm/scumm sound.cpp,1.247,1.248

Max Horn fingolfin at users.sourceforge.net
Wed Sep 10 16:36:40 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv21697

Modified Files:
	sound.cpp 
Log Message:
experimental fix for bug #802396 (LOOMCD: Sound lock up); it turns out this is a very long standing bug (pre-0.4.1 at the least). This fix may cause regressions in games using CD tracks, beware

Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.247
retrieving revision 1.248
diff -u -d -r1.247 -r1.248
--- sound.cpp	10 Sep 2003 12:43:53 -0000	1.247
+++ sound.cpp	10 Sep 2003 22:36:46 -0000	1.248
@@ -742,6 +742,7 @@
 	if (a != 0 && a == _currentCDSound) {
 		_currentCDSound = 0;
 		stopCD();
+		stopCDTimer();
 	}
 
 	if (_scumm->_features & GF_FMTOWNS) {
@@ -759,6 +760,7 @@
 	if (_currentCDSound != 0) {
 		_currentCDSound = 0;
 		stopCD();
+		stopCDTimer();
 	}
 
 	// Clear the (secondary) sound queue
@@ -1491,7 +1493,7 @@
 			_dig_cd.numLoops = numLoops;
 			_dig_cd.start = startFrame;
 			_dig_cd.duration = duration;
-			_track_info[index]->play(_scumm->_mixer, &_dig_cd.handle, startFrame, duration);
+			_track_info[index]->play(_scumm->_mixer, &_dig_cd.handle, _dig_cd.start, _dig_cd.duration);
 		} else {
 			_scumm->_system->play_cdrom(track, numLoops, startFrame, duration);
 		}
@@ -1504,7 +1506,6 @@
 }
 
 void Sound::stopCD() {
-	stopCDTimer();
 
 	if (_dig_cd.playing) {
 		_scumm->_mixer->stopHandle(_dig_cd.handle);





More information about the Scummvm-git-logs mailing list