diff --git a/engines/ultima/ultima4/events/event_scummvm.cpp b/engines/ultima/ultima4/events/event_scummvm.cpp index 411021b93c3..3306226c041 100644 --- a/engines/ultima/ultima4/events/event_scummvm.cpp +++ b/engines/ultima/ultima4/events/event_scummvm.cpp @@ -333,6 +333,10 @@ void EventHandler::run() { break; } + // Brief delay + g_system->delayMillis(10); + + // Check for frame expiry uint32 time = g_system->getMillis(); if (time >= (_lastTickTime + FRAME_TIME)) { _lastTickTime = time; diff --git a/engines/ultima/ultima4/gfx/screen.cpp b/engines/ultima/ultima4/gfx/screen.cpp index 8f8ef0abb8f..0d3282b9ede 100644 --- a/engines/ultima/ultima4/gfx/screen.cpp +++ b/engines/ultima/ultima4/gfx/screen.cpp @@ -106,10 +106,11 @@ void Screen::loadCursors() { void Screen::setCursor(MouseCursor cursor) { const Cursor *c = _cursors[cursor]; - const uint TRANSPARENT = g_screen->format.RGBToColor(0x80, 0x80, 0x80); if (c && cursor != _currentCursor) { _currentCursor = cursor; + + const uint TRANSPARENT = g_screen->format.RGBToColor(0x80, 0x80, 0x80); CursorMan.replaceCursor(c->getPixels(), CURSOR_SIZE, CURSOR_SIZE, c->_hotspot.x, c->_hotspot.y, TRANSPARENT, false, &g_screen->format); }