aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/timers.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2013-07-20 23:00:43 -0400
committerMatthew Hoops2013-07-20 23:06:36 -0400
commit4e9e2f4feadebbe34b54bbd56b2d34f5a2e165ac (patch)
treefbeffc0ffe26a896ab73da0346550229070253a7 /engines/pegasus/timers.cpp
parentb79fd7e965e2792a18e477b830067182f35a216a (diff)
downloadscummvm-rg350-4e9e2f4feadebbe34b54bbd56b2d34f5a2e165ac.tar.gz
scummvm-rg350-4e9e2f4feadebbe34b54bbd56b2d34f5a2e165ac.tar.bz2
scummvm-rg350-4e9e2f4feadebbe34b54bbd56b2d34f5a2e165ac.zip
PEGASUS: Fix possible timer "skip" when resuming
pause/resume need to treat things a bit differently from the normal setRate function. This caused a jump in a timer when resuming from the pause menu in certain cases, though not all the time. Regression from b50cac637ece07c87e39232a1e8fe7262ace06f2, which was part of the fix for the lid animations.
Diffstat (limited to 'engines/pegasus/timers.cpp')
-rw-r--r--engines/pegasus/timers.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/engines/pegasus/timers.cpp b/engines/pegasus/timers.cpp
index 50cc9bc6d8..8463d866e8 100644
--- a/engines/pegasus/timers.cpp
+++ b/engines/pegasus/timers.cpp
@@ -115,7 +115,7 @@ void TimeBase::stop() {
void TimeBase::pause() {
if (isRunning() && !_paused) {
_pausedRate = getRate();
- stop();
+ _rate = 0;
_paused = true;
_pauseStart = g_system->getMillis();
}
@@ -123,7 +123,7 @@ void TimeBase::pause() {
void TimeBase::resume() {
if (_paused) {
- setRate(_pausedRate);
+ _rate = _pausedRate;
_paused = false;
if (isRunning())