diff options
author | Nicolas Bacca | 2005-03-26 13:24:53 +0000 |
---|---|---|
committer | Nicolas Bacca | 2005-03-26 13:24:53 +0000 |
commit | 5a7c9f7d7483f7f57802f0baf3766a7ea0d752d1 (patch) | |
tree | bc798566bfedacf8070059815a2f67dfa7d03b4c /scumm/smush | |
parent | 61aab60064882360286d1d00f801e6eeeeb5df8c (diff) | |
download | scummvm-rg350-5a7c9f7d7483f7f57802f0baf3766a7ea0d752d1.tar.gz scummvm-rg350-5a7c9f7d7483f7f57802f0baf3766a7ea0d752d1.tar.bz2 scummvm-rg350-5a7c9f7d7483f7f57802f0baf3766a7ea0d752d1.zip |
Tweak WinCE timer re-entry workaround to play Insane sequences
svn-id: r17242
Diffstat (limited to 'scumm/smush')
-rw-r--r-- | scumm/smush/smush_player.cpp | 8 | ||||
-rw-r--r-- | scumm/smush/smush_player.h | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index bf67ee2ed0..e3bd305ea4 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -220,6 +220,7 @@ void SmushPlayer::timerCallback(void *refCon) { ((SmushPlayer *)refCon)->parseNextFrame(); #ifdef _WIN32_WCE ((SmushPlayer *)refCon)->_inTimer = true; + ((SmushPlayer *)refCon)->_inTimerCount++; #endif } @@ -254,6 +255,8 @@ SmushPlayer::SmushPlayer(ScummEngine_v6 *scumm, int speed) { _skipPalette = false; #ifdef _WIN32_WCE _inTimer = false; + _inTimerCount = 0; + _inTimerCountRedraw = ConfMan.getInt("Smush_force_redraw"); #endif } @@ -948,8 +951,10 @@ void SmushPlayer::handleFrame(Chunk &b) { end_time = _vm->_system->getMillis(); #ifdef _WIN32_WCE - if (!_inTimer) + if (!_inTimer || _inTimerCount == _inTimerCountRedraw) { updateScreen(); + _inTimerCount = 0; + } #else updateScreen(); #endif @@ -1249,6 +1254,7 @@ void SmushPlayer::play(const char *filename, int32 offset, int32 startFrame) { _updateNeeded = false; #ifdef _WIN32_WCE _inTimer = false; + _inTimerCount = 0; #endif end_time = _vm->_system->getMillis(); diff --git a/scumm/smush/smush_player.h b/scumm/smush/smush_player.h index 1b3a656ef1..8cd06a2f44 100644 --- a/scumm/smush/smush_player.h +++ b/scumm/smush/smush_player.h @@ -78,6 +78,8 @@ private: bool _skipPalette; #ifdef _WIN32_WCE bool _inTimer; + int16 _inTimerCount; + int16 _inTimerCountRedraw; #endif Common::Mutex _mutex; |