diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp index 37a7745d345..057102260df 100644 --- a/engines/mohawk/riven.cpp +++ b/engines/mohawk/riven.cpp @@ -209,6 +209,7 @@ Common::Error MohawkEngine_Riven::run() { void MohawkEngine_Riven::doFrame() { // Update background running things + uint32 loopStart = _system->getMillis(); _sound->updateSLST(); _video->updateMovies(); @@ -234,9 +235,11 @@ void MohawkEngine_Riven::doFrame() { // Update the screen once per frame _system->updateScreen(); + uint32 loopElapsed = _system->getMillis() - loopStart; // Cut down on CPU usage - _system->delayMillis(10); + if (loopElapsed < 10) + _system->delayMillis(10 - loopElapsed); } void MohawkEngine_Riven::processInput() { diff --git a/engines/mohawk/riven.h b/engines/mohawk/riven.h index b887fc1184a..e938d2711c1 100644 --- a/engines/mohawk/riven.h +++ b/engines/mohawk/riven.h @@ -106,6 +106,7 @@ public: bool hasFeature(EngineFeature f) const override; void doFrame(); + void processInput(); private: // Datafiles