aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/smush/smush_player.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp
index d5eaac4511..0076c287a9 100644
--- a/scumm/smush/smush_player.cpp
+++ b/scumm/smush/smush_player.cpp
@@ -257,8 +257,7 @@ SmushPlayer::SmushPlayer(ScummEngine_v6 *scumm, int speed) {
}
SmushPlayer::~SmushPlayer() {
- if (_initDone)
- release();
+ release();
}
void SmushPlayer::init() {
@@ -286,7 +285,9 @@ void SmushPlayer::init() {
}
void SmushPlayer::release() {
-
+ if (!_initDone)
+ return;
+
_vm->_timer->removeTimerProc(&timerCallback);
_vm->_smushVideoShouldFinish = true;
@@ -334,6 +335,9 @@ void SmushPlayer::release() {
// some explanation.
_vm->virtscr[0].pitch = _origPitch;
_vm->gdi._numStrips = _origNumStrips;
+
+
+ _initDone = false;
}
void SmushPlayer::checkBlock(const Chunk &b, Chunk::type type_expected, uint32 min_size) {