[Scummvm-cvs-logs] CVS: scummvm/sword1 music.cpp,1.22,1.23

Torbj?rn Andersson eriktorbjorn at users.sourceforge.net
Wed Jan 14 10:40:05 CET 2004


Update of /cvsroot/scummvm/scummvm/sword1
In directory sc8-pr-cvs1:/tmp/cvs-serv3985

Modified Files:
	music.cpp 
Log Message:
I found and fixed a nasty fade-up bug in BS2. I don't know if the same
situation could happen in BS1, but it's better to be safe than sorry, so
here are the same changes, as applied to the BS1 music code.


Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/music.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- music.cpp	14 Jan 2004 08:09:03 -0000	1.22
+++ music.cpp	14 Jan 2004 18:39:24 -0000	1.23
@@ -34,19 +34,23 @@
 // assume that if locking is needed it has already been taken care of.
 
 void MusicHandle::fadeDown() {
-	if (_fading < 0)
-		_fading = -_fading;
-	else if (_fading == 0)
-		_fading = FADE_LENGTH * getRate();
-	_fadeSamples = FADE_LENGTH * getRate();
+	if (streaming()) {
+		if (_fading < 0)
+			_fading = -_fading;
+		else if (_fading == 0)
+			_fading = FADE_LENGTH * getRate();
+		_fadeSamples = FADE_LENGTH * getRate();
+	}
 }
 
 void MusicHandle::fadeUp() {
-	if (_fading > 0)
-		_fading = -_fading;
-	else if (_fading == 0)
-		_fading = -1;
-	_fadeSamples = FADE_LENGTH * getRate();
+	if (streaming()) {
+		if (_fading > 0)
+			_fading = -_fading;
+		else if (_fading == 0)
+			_fading = -1;
+		_fadeSamples = FADE_LENGTH * getRate();
+	}
 }
 
 bool MusicHandle::endOfData() const {
@@ -76,7 +80,7 @@
 		} else if (_fading < 0) {
 			_fading--;
 			sample = -(sample * _fading) / _fadeSamples;
-			if (_fading == -_fadeSamples)
+			if (_fading <= -_fadeSamples)
 				_fading = 0;
 		}
 		*buffer++ = sample;





More information about the Scummvm-git-logs mailing list