diff options
author | Thanasis Antoniou | 2019-08-31 19:18:33 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-08-31 19:19:32 +0300 |
commit | a99e8d7baba5bcbc6cc07ff2d34d81fb7e3e93dc (patch) | |
tree | 05a80e1d0b4212c7a8b753c02ba8009a2c404b07 /engines/bladerunner/ui/elevator.cpp | |
parent | 196378d9da0366feb341c0b9ab5f63b6dce0c218 (diff) | |
download | scummvm-rg350-a99e8d7baba5bcbc6cc07ff2d34d81fb7e3e93dc.tar.gz scummvm-rg350-a99e8d7baba5bcbc6cc07ff2d34d81fb7e3e93dc.tar.bz2 scummvm-rg350-a99e8d7baba5bcbc6cc07ff2d34d81fb7e3e93dc.zip |
BLADERUNNER: Replace delayMillis(10) calls with software timers
Diffstat (limited to 'engines/bladerunner/ui/elevator.cpp')
-rw-r--r-- | engines/bladerunner/ui/elevator.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/bladerunner/ui/elevator.cpp b/engines/bladerunner/ui/elevator.cpp index a3f795263a..15354c739c 100644 --- a/engines/bladerunner/ui/elevator.cpp +++ b/engines/bladerunner/ui/elevator.cpp @@ -187,6 +187,8 @@ int Elevator::activate(int elevatorId) { void Elevator::open() { resetDescription(); _isOpen = true; + _timeLast = _vm->_time->currentSystem(); + _firstTickCall = true; } bool Elevator::isOpen() const { @@ -205,9 +207,18 @@ int Elevator::handleMouseDown(int x, int y) { void Elevator::tick() { if (!_vm->_windowIsActive) { + _timeLast = _vm->_time->currentSystem(); return; } + uint32 timeNow = _vm->_time->currentSystem(); + // unsigned difference is intentional + if (timeNow - _timeLast < _vm->kUpdateFrameTimeInMs && !_firstTickCall) { + return; + } else if (_firstTickCall) { + _firstTickCall = false; + } + int frame = _vqaPlayer->update(); assert(frame >= -1); @@ -231,7 +242,7 @@ void Elevator::tick() { _vm->blitToScreen(_vm->_surfaceFront); tickDescription(); - _vm->_system->delayMillis(10); + _timeLast = timeNow; } void Elevator::buttonClick(int buttonId) { |