diff options
Diffstat (limited to 'engines/saga/sndres.cpp')
-rw-r--r-- | engines/saga/sndres.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/saga/sndres.cpp b/engines/saga/sndres.cpp index d9b31dcd35..9f8a155e32 100644 --- a/engines/saga/sndres.cpp +++ b/engines/saga/sndres.cpp @@ -103,9 +103,17 @@ SndRes::~SndRes() { void SndRes::setVoiceBank(int serial) { if (_voiceSerial == serial) return; + // Close previous voice bank file + if (_voiceSerial >= 0 && _voiceContext->file->isOpen()) + _voiceContext->file->close(); + _voiceSerial = serial; _voiceContext = _vm->_resource->getContext(GAME_VOICEFILE, _voiceSerial); + + // Open new voice bank file + if (!_voiceContext->file->isOpen()) + _voiceContext->file->open(_voiceContext->fileName); } void SndRes::playSound(uint32 resourceId, int volume, bool loop) { |