[Scummvm-cvs-logs] CVS: scummvm/sword2/driver d_sound.cpp,1.91,1.92 d_sound.h,1.37,1.38

Torbj?rn Andersson eriktorbjorn at users.sourceforge.net
Wed Dec 31 06:06:02 CET 2003


Update of /cvsroot/scummvm/scummvm/sword2/driver
In directory sc8-pr-cvs1:/tmp/cvs-serv24644/driver

Modified Files:
	d_sound.cpp d_sound.h 
Log Message:
When saving the music state, remember the name of the music file that was
open so that it can be re-opened afterwards. It's not so much that it may
have changed, but it may have been closed.

This should fix a crash when escaping the credits.


Index: d_sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/driver/d_sound.cpp,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -d -r1.91 -r1.92
--- d_sound.cpp	28 Dec 2003 15:08:11 -0000	1.91
+++ d_sound.cpp	31 Dec 2003 14:05:53 -0000	1.92
@@ -196,6 +196,11 @@
 	_music[2]._filePos = _music[saveStream]._filePos;
 	_music[2]._fileEnd = _music[saveStream]._fileEnd;
 	_music[2]._lastSample = _music[saveStream]._lastSample;
+
+	if (fpMus.isOpen())
+		savedMusicFilename = strdup(fpMus.name());
+	else
+		savedMusicFilename = NULL;
 }
 
 void Sound::restoreMusicState() {
@@ -226,6 +231,15 @@
 	_music[restoreStream]._filePos = _music[2]._filePos;
 	_music[restoreStream]._fileEnd = _music[2]._fileEnd;
 	_music[restoreStream]._lastSample = _music[2]._lastSample;
+
+	if (savedMusicFilename) {
+		if (fpMus.isOpen())
+			fpMus.close();
+
+		fpMus.open(savedMusicFilename);
+		free(savedMusicFilename);
+		savedMusicFilename = NULL;
+	}
 }
 
 void Sound::playLeadOut(uint8 *leadOut) {

Index: d_sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/driver/d_sound.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- d_sound.h	28 Dec 2003 15:08:11 -0000	1.37
+++ d_sound.h	31 Dec 2003 14:05:53 -0000	1.38
@@ -109,6 +109,8 @@
 
 	void updateCompSampleStreaming(int16 *data, uint len);
 
+	char *savedMusicFilename;
+
 public:
 	Sound(Sword2Engine *vm);
 	~Sound();





More information about the Scummvm-git-logs mailing list