[Scummvm-cvs-logs] SF.net SVN: scummvm:[53720] scummvm/trunk/engines/toon

sylvaintv at users.sourceforge.net sylvaintv at users.sourceforge.net
Sat Oct 23 01:29:53 CEST 2010


Revision: 53720
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53720&view=rev
Author:   sylvaintv
Date:     2010-10-22 23:29:52 +0000 (Fri, 22 Oct 2010)

Log Message:
-----------
TOON: Close correctly sound packs

Modified Paths:
--------------
    scummvm/trunk/engines/toon/audio.cpp
    scummvm/trunk/engines/toon/audio.h

Modified: scummvm/trunk/engines/toon/audio.cpp
===================================================================
--- scummvm/trunk/engines/toon/audio.cpp	2010-10-22 23:13:17 UTC (rev 53719)
+++ scummvm/trunk/engines/toon/audio.cpp	2010-10-22 23:29:52 UTC (rev 53720)
@@ -46,12 +46,18 @@
 	for (int32 i = 0; i < 16; i++)
 		_channels[i] = 0;
 
+	for (int32 i = 0; i < 4; i++) 
+		_audioPacks[i] = 0;
+
 	voiceMuted = false;
 	musicMuted = false;
 	sfxMuted = false;
 }
 
 AudioManager::~AudioManager(void) {
+	for (int32 i = 0; i < 4; i++) {
+		closeAudioPack(i);
+	}
 }
 
 void AudioManager::muteMusic(bool muted) {
@@ -181,9 +187,18 @@
 		_channels[2]->stop(false);
 }
 
+
+void AudioManager::closeAudioPack(int32 id) {
+	if(_audioPacks[id]) {
+		delete _audioPacks[id];
+		_audioPacks[id] = 0;
+	}
+}
+
 bool AudioManager::loadAudioPack(int32 id, Common::String indexFile, Common::String packFile) {
 	debugC(4, kDebugAudio, "loadAudioPack(%d, %s, %s)", id, indexFile.c_str(), packFile.c_str());
 
+	closeAudioPack(id);
 	_audioPacks[id] = new AudioStreamPackage(_vm);
 	return _audioPacks[id]->loadAudioPackage(indexFile, packFile);
 }
@@ -453,6 +468,10 @@
 
 AudioStreamPackage::~AudioStreamPackage() {
 	delete[] _indexBuffer;
+	if (_file) {
+		delete _file;
+		_file = 0;
+	}
 }
 
 bool AudioStreamPackage::loadAudioPackage(Common::String indexFile, Common::String streamFile) {

Modified: scummvm/trunk/engines/toon/audio.h
===================================================================
--- scummvm/trunk/engines/toon/audio.h	2010-10-22 23:13:17 UTC (rev 53719)
+++ scummvm/trunk/engines/toon/audio.h	2010-10-22 23:29:52 UTC (rev 53720)
@@ -131,6 +131,7 @@
 	bool isMusicMuted() { return musicMuted; }	
 	bool isSfxMuted() { return sfxMuted; }
 
+	void closeAudioPack(int32 id);
 	bool loadAudioPack(int32 id, Common::String indexFile, Common::String packFile);
 
 	AudioStreamInstance *_channels[16];  // 0-1 : music


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