diff options
Diffstat (limited to 'scumm/smush')
-rw-r--r-- | scumm/smush/scumm_renderer.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/scumm/smush/scumm_renderer.cpp b/scumm/smush/scumm_renderer.cpp index 2db34688bd..94e0616ebd 100644 --- a/scumm/smush/scumm_renderer.cpp +++ b/scumm/smush/scumm_renderer.cpp @@ -27,9 +27,9 @@ #include "sound/mixer.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/imuse.h" #include "scumm/actor.h" - class ScummMixer : public Mixer { private: SoundMixer * _mixer; //!< pointer to the SoundMixer instance @@ -188,7 +188,6 @@ bool ScummMixer::stop() { _channels[i].chan = 0; } } -// _mixer->stopAll(); return true; } @@ -196,7 +195,6 @@ ScummRenderer::ScummRenderer(Scumm * scumm, uint32 speed) : _scumm(scumm), _smixer(0), _insaneSpeed(speed) { -// scumm->_mixer->stopAll(); } static ScummRenderer * s_renderer; @@ -207,7 +205,6 @@ static void smush_handler(void * engine) { Mixer * ScummRenderer::getMixer() { if(_smixer == 0) { - _scumm->_sound->pauseBundleMusic(true); _smixer = new ScummMixer(_scumm->_mixer); if(!_smixer) error("unable to allocate a smush mixer"); s_renderer = this; @@ -224,6 +221,9 @@ ScummRenderer::~ScummRenderer() { delete _smixer; _smixer = 0; } + if (_scumm->_imuseDigital) { + _scumm->_imuseDigital->pause(false); + } _scumm->_sound->pauseBundleMusic(false); _scumm->_fullRedraw = 1; _scumm->redrawBGAreas(); @@ -240,6 +240,9 @@ bool ScummRenderer::wait(int32 ms) { } bool ScummRenderer::startDecode(const char * fname, int32 version, int32 nbframes) { + if (_scumm->_imuseDigital) { + _scumm->_imuseDigital->pause(true); + } _scumm->_sound->pauseBundleMusic(true); _scumm->_videoFinished = false; _scumm->_insaneState = true; |