fixed memory leak when restarting

svn-id: r8661
This commit is contained in:
Max Horn 2003-06-26 23:04:41 +00:00
parent 1ec54d032e
commit aa19687a4c
2 changed files with 11 additions and 11 deletions

View file

@ -95,14 +95,13 @@ Sound::Sound(Scumm *parent) {
_current_cache = 0; _current_cache = 0;
_current_cd_sound = 0; _current_cd_sound = 0;
_sfxFile = 0;
_bundle = new Bundle(); _bundle = new Bundle();
} }
Sound::~Sound() { Sound::~Sound() {
if (_sfxFile) { delete _sfxFile;
_sfxFile->close();
delete _sfxFile;
}
delete _bundle; delete _bundle;
} }
@ -771,9 +770,10 @@ void Sound::setupSound() {
_scumm->_imuse->set_master_volume(_sound_volume_master); _scumm->_imuse->set_master_volume(_sound_volume_master);
_scumm->_imuse->set_music_volume(_sound_volume_music); _scumm->_imuse->set_music_volume(_sound_volume_music);
_scumm->_mixer->setVolume(_sound_volume_sfx * _sound_volume_master / 255);
_scumm->_mixer->setMusicVolume(_sound_volume_music);
} }
_scumm->_mixer->setVolume(_sound_volume_sfx * _sound_volume_master / 255);
_scumm->_mixer->setMusicVolume(_sound_volume_music);
delete _sfxFile;
_sfxFile = openSfxFile(); _sfxFile = openSfxFile();
} }
@ -1065,7 +1065,7 @@ void Sound::bundleMusicHandler(Scumm *scumm) {
if (_pauseBundleMusic) if (_pauseBundleMusic)
return; return;
if (_musicBundleToBeRemoved == true) { if (_musicBundleToBeRemoved) {
_scumm->_timer->releaseProcedure(&music_handler); _scumm->_timer->releaseProcedure(&music_handler);
_nameBundleMusic = ""; _nameBundleMusic = "";
if (_bundleMusicTrack != -1) { if (_bundleMusicTrack != -1) {
@ -1554,7 +1554,7 @@ int Sound::playMP3CDTrack(int track, int num_loops, int start, int delay) {
} }
int Sound::stopMP3CD() { int Sound::stopMP3CD() {
if (_dig_cd_playing == true) { if (_dig_cd_playing) {
_scumm->_mixer->stop(_dig_cd_index); _scumm->_mixer->stop(_dig_cd_index);
_dig_cd_playing = false; _dig_cd_playing = false;
_dig_cd_track = 0; _dig_cd_track = 0;
@ -1566,8 +1566,8 @@ int Sound::stopMP3CD() {
return -1; return -1;
} }
int Sound::pollMP3CD() const{ int Sound::pollMP3CD() const {
if (_dig_cd_playing == true) if (_dig_cd_playing)
return 1; return 1;
return 0; return 0;
} }

View file

@ -93,11 +93,11 @@ protected:
bool _dig_cd_playing; bool _dig_cd_playing;
DigitalTrackInfo *_track_info[CACHE_TRACKS]; DigitalTrackInfo *_track_info[CACHE_TRACKS];
int _current_cache;
Scumm *_scumm; Scumm *_scumm;
public: public:
int _current_cache;
int32 _bundleMusicPosition; int32 _bundleMusicPosition;
int _talkChannel; /* Mixer channel actor is talking on */ int _talkChannel; /* Mixer channel actor is talking on */