diff --git a/engines/lure/events.cpp b/engines/lure/events.cpp index 30e393c1ee0..4e90d76b637 100644 --- a/engines/lure/events.cpp +++ b/engines/lure/events.cpp @@ -97,6 +97,28 @@ void Mouse::setCursorNum(uint8 cursorNum, int hotspotX, int hotspotY) { CursorMan.replaceCursor(cursorAddr, CURSOR_WIDTH, CURSOR_HEIGHT, hotspotX, hotspotY, 0); } +void Mouse::pushCursorNum(uint8 cursorNum) { + int hotspotX = 7, hotspotY = 7; + if ((cursorNum == CURSOR_ARROW) || (cursorNum == CURSOR_MENUBAR)) { + hotspotX = 0; + hotspotY = 0; + } + + pushCursorNum(cursorNum, hotspotX, hotspotY); +} + +void Mouse::pushCursorNum(uint8 cursorNum, int hotspotX, int hotspotY) { + Resources &res = Resources::getReference(); + + _cursorNum = cursorNum; + byte *cursorAddr = res.getCursor(cursorNum); + CursorMan.pushCursor(cursorAddr, CURSOR_WIDTH, CURSOR_HEIGHT, hotspotX, hotspotY, 0); +} + +void Mouse::popCursor() { + CursorMan.popCursor(); +} + void Mouse::setPosition(int newX, int newY) { System::getReference().warpMouse(newX, newY); } diff --git a/engines/lure/events.h b/engines/lure/events.h index e41ae722e74..435edc0a15e 100644 --- a/engines/lure/events.h +++ b/engines/lure/events.h @@ -52,6 +52,9 @@ public: bool lButton() { return _lButton; } bool rButton() { return _rButton; } void waitForRelease(); + void pushCursorNum(uint8 cursorNum); + void pushCursorNum(uint8 cursorNum, int hotspotX, int hotspotY); + void popCursor(); }; class Events {