diff options
-rw-r--r-- | scumm/smush/scumm_renderer.cpp | 1 | ||||
-rw-r--r-- | sound/mixer.cpp | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/scumm/smush/scumm_renderer.cpp b/scumm/smush/scumm_renderer.cpp index e4399747c2..0a0fba6856 100644 --- a/scumm/smush/scumm_renderer.cpp +++ b/scumm/smush/scumm_renderer.cpp @@ -194,6 +194,7 @@ ScummRenderer::ScummRenderer(Scumm * scumm, uint32 speed) : _scumm(scumm), _smixer(0), _insaneSpeed(speed) { + scumm->_mixer->stopAll(); } static ScummRenderer * s_renderer; diff --git a/sound/mixer.cpp b/sound/mixer.cpp index c1ab3ed884..ef5c40af33 100644 --- a/sound/mixer.cpp +++ b/sound/mixer.cpp @@ -642,6 +642,11 @@ void SoundMixer::ChannelStream::mix(int16 * data, uint len) { const int16 * vol_tab = _mixer->_volumeTable; byte * end_of_data = _endOfData; + if (_toBeDestroyed) { + realDestroy(); + return; + } + if (_pos == end_of_data) { if (--_timeOut == 0) { realDestroy(); |