diff options
-rw-r--r-- | scumm/smush/smush_player.cpp | 7 | ||||
-rw-r--r-- | scumm/smush/smush_player.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index 27dfab07ef..2940cda6b9 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -241,6 +241,7 @@ SmushPlayer::SmushPlayer(ScummEngine_v6 *scumm, int speed) { _height = 0; _IACTpos = 0; _soundFrequency = 22050; + _initDone = false; _speed = speed; _insanity = false; _middleAudio = false; @@ -248,7 +249,8 @@ SmushPlayer::SmushPlayer(ScummEngine_v6 *scumm, int speed) { } SmushPlayer::~SmushPlayer() { - release(); + if (_initDone) + release(); } void SmushPlayer::init() { @@ -271,9 +273,12 @@ void SmushPlayer::init() { _smixer = new SmushMixer(_vm->_mixer); g_timer->installTimerProc(&timerCallback, _speed, this); + + _initDone = true; } void SmushPlayer::release() { + _vm->_timer->removeTimerProc(&timerCallback); _vm->_smushVideoShouldFinish = true; diff --git a/scumm/smush/smush_player.h b/scumm/smush/smush_player.h index 4ccb44c84e..b9c0b5c7de 100644 --- a/scumm/smush/smush_player.h +++ b/scumm/smush/smush_player.h @@ -65,6 +65,7 @@ private: bool _storeFrame; int _soundFrequency; bool _alreadyInit; + bool _initDone; int _speed; bool _outputSound; |