diff options
author | Vladimir Menshakov | 2010-01-05 22:09:16 +0000 |
---|---|---|
committer | Vladimir Menshakov | 2010-01-05 22:09:16 +0000 |
commit | 841e2d34242418ed0c86a6d8d3a4a97faa085ae6 (patch) | |
tree | 9c9f5d2a405f8ab0e1dbd343793028cec3bceae5 /engines/teenagent/teenagent.cpp | |
parent | e38b7b3cc53fe02312fcaee5e95c37dfa1c65c92 (diff) | |
download | scummvm-rg350-841e2d34242418ed0c86a6d8d3a4a97faa085ae6.tar.gz scummvm-rg350-841e2d34242418ed0c86a6d8d3a4a97faa085ae6.tar.bz2 scummvm-rg350-841e2d34242418ed0c86a6d8d3a4a97faa085ae6.zip |
separate timers for mark, scene and messages.
svn-id: r47056
Diffstat (limited to 'engines/teenagent/teenagent.cpp')
-rw-r--r-- | engines/teenagent/teenagent.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp index e20e974d5c..ac399b269c 100644 --- a/engines/teenagent/teenagent.cpp +++ b/engines/teenagent/teenagent.cpp @@ -518,18 +518,27 @@ Common::Error TeenAgentEngine::run() { uint32 delta = new_timer - timer; timer = new_timer; - if (game_timer <= delta) { - bool b = scene->render(); + bool tick_game = game_timer <= delta; + if (tick_game) + game_timer = kGameDelay - ((delta - game_timer) % kGameDelay); + else + game_timer -= delta; + + bool tick_mark = mark_timer <= delta; + if (tick_mark) + mark_timer = kMarkDelay - ((delta - mark_timer) % kMarkDelay); + else + mark_timer -= delta; + + if (tick_game || tick_mark) { + bool b = scene->render(tick_game, tick_mark, delta); if (!inventory->active() && !b && action != kActionNone) { processObject(); action = kActionNone; dst_object = NULL; } - scene_busy = b; - game_timer = kGameDelay - ((delta - game_timer) % kGameDelay); - } else - game_timer -= delta; + } bool busy = inventory->active() || scene_busy; |