aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Hoops2013-07-20 23:00:43 -0400
committerMatthew Hoops2013-07-20 23:06:36 -0400
commit4e9e2f4feadebbe34b54bbd56b2d34f5a2e165ac (patch)
treefbeffc0ffe26a896ab73da0346550229070253a7
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.
-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())