aboutsummaryrefslogtreecommitdiff
path: root/scumm/smush/smush_player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/smush/smush_player.cpp')
-rw-r--r--scumm/smush/smush_player.cpp7
1 files changed, 6 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;