diff options
author | Florian Kagerer | 2009-03-08 02:17:14 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-03-08 02:17:14 +0000 |
commit | e23fd08dfbdac9d6eedb78813d3504eeccba31a5 (patch) | |
tree | ba0a0c81477f8327a2b8275e27cf17fecc12b3da /engines/kyra/timer.cpp | |
parent | cc89a46a0ef8b9bd62e69ab0d6a8c1e28bc46781 (diff) | |
download | scummvm-rg350-e23fd08dfbdac9d6eedb78813d3504eeccba31a5.tar.gz scummvm-rg350-e23fd08dfbdac9d6eedb78813d3504eeccba31a5.tar.bz2 scummvm-rg350-e23fd08dfbdac9d6eedb78813d3504eeccba31a5.zip |
LOL: fixed bug reported by MD5 (crashes and freezes caused by calls to non-existent sub scripts)
svn-id: r39209
Diffstat (limited to 'engines/kyra/timer.cpp')
-rw-r--r-- | engines/kyra/timer.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/engines/kyra/timer.cpp b/engines/kyra/timer.cpp index 88b86393c8..c3ebad852a 100644 --- a/engines/kyra/timer.cpp +++ b/engines/kyra/timer.cpp @@ -122,9 +122,9 @@ void TimerManager::update() { _nextRun += 99999; for (Iterator pos = _timers.begin(); pos != _timers.end(); ++pos) { - if (pos->enabled) + if (pos->enabled == 1) - if (pos->enabled && pos->countdown >= 0) { + if (pos->enabled == 1 && pos->countdown >= 0) { if (pos->nextRun <= _system->getMillis()) { if (pos->func && pos->func->isValid()) { (*pos->func)(pos->id); @@ -138,7 +138,6 @@ void TimerManager::update() { _nextRun = MIN(_nextRun, pos->nextRun); } } - } void TimerManager::resync() { @@ -229,10 +228,10 @@ void TimerManager::pauseSingleTimer(uint8 id, bool p) { if (p) { timer->pauseStartTime = _system->getMillis(); - timer->enabled = 0; + timer->enabled ^= 2; } else if (timer->pauseStartTime) { int32 elapsedTime = _system->getMillis() - timer->pauseStartTime; - timer->enabled = 1; + timer->enabled ^= 2; timer->lastUpdate += elapsedTime; timer->nextRun += elapsedTime; resync(); @@ -256,7 +255,7 @@ void TimerManager::enable(uint8 id) { Iterator timer = Common::find_if(_timers.begin(), _timers.end(), TimerEqual(id)); if (timer != _timers.end()) - timer->enabled = 1; + timer->enabled |= 1; else warning("TimerManager::enable: No timer %d", id); } @@ -266,7 +265,7 @@ void TimerManager::disable(uint8 id) { Iterator timer = Common::find_if(_timers.begin(), _timers.end(), TimerEqual(id)); if (timer != _timers.end()) - timer->enabled = 0; + timer->enabled &= 2; else warning("TimerManager::disable: No timer %d", id); } |