diff options
-rw-r--r-- | engines/toltecs/script.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/toltecs/script.cpp b/engines/toltecs/script.cpp index 708afb7008..959db8b277 100644 --- a/engines/toltecs/script.cpp +++ b/engines/toltecs/script.cpp @@ -183,6 +183,7 @@ void ScriptInterpreter::setMainScript(uint slotIndex) { } void ScriptInterpreter::runScript() { + uint32 lastScreenUpdate = 0; while (!_vm->shouldQuit()) { @@ -217,9 +218,13 @@ void ScriptInterpreter::runScript() { byte opcode = readByte(); execOpcode(opcode); - // Call updateScreen roughly every 10ms else the mouse cursor will be jerky - if (_vm->_system->getMillis() % 10 == 0) + // Update the screen at semi-regular intervals, else the mouse + // cursor will be jerky. + uint32 now = _vm->_system->getMillis(); + if (now < lastScreenUpdate || now - lastScreenUpdate > 10) { _vm->_system->updateScreen(); + lastScreenUpdate = _vm->_system->getMillis(); + } } |