aboutsummaryrefslogtreecommitdiff
path: root/scumm/smush
diff options
context:
space:
mode:
authorGregory Montoir2004-10-08 18:30:14 +0000
committerGregory Montoir2004-10-08 18:30:14 +0000
commit9c863283ede4a5bf08eb1c0def5528556de2fb94 (patch)
treea1c828f0a938e936f9b80bcae924b022bde89bde /scumm/smush
parenteb97857c95f501f919e6de6b9d9beceb54af14bc (diff)
downloadscummvm-rg350-9c863283ede4a5bf08eb1c0def5528556de2fb94.tar.gz
scummvm-rg350-9c863283ede4a5bf08eb1c0def5528556de2fb94.tar.bz2
scummvm-rg350-9c863283ede4a5bf08eb1c0def5528556de2fb94.zip
fix bug #1042931. This version of comidemo doesn't have the videos. In this case, SmushPlayer::play() returns immediately without calling init(). Thus, if init() is not called, we shouldn't call release() at all.
svn-id: r15475
Diffstat (limited to 'scumm/smush')
-rw-r--r--scumm/smush/smush_player.cpp7
-rw-r--r--scumm/smush/smush_player.h1
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;