diff options
author | Gregory Montoir | 2004-10-08 18:30:14 +0000 |
---|---|---|
committer | Gregory Montoir | 2004-10-08 18:30:14 +0000 |
commit | 9c863283ede4a5bf08eb1c0def5528556de2fb94 (patch) | |
tree | a1c828f0a938e936f9b80bcae924b022bde89bde /scumm | |
parent | eb97857c95f501f919e6de6b9d9beceb54af14bc (diff) | |
download | scummvm-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')
-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; |