diff --git a/engines/kyra/gui_v2.cpp b/engines/kyra/gui_v2.cpp index 43d480b1421..08b5a8038ed 100644 --- a/engines/kyra/gui_v2.cpp +++ b/engines/kyra/gui_v2.cpp @@ -572,7 +572,9 @@ int KyraEngine_v2::processButtonList(Button *buttonList, uint16 inputFlag) { } int KyraEngine_v2::buttonInventory(Button *button) { - //XXX test if cursor is shown + if (!_screen->isMouseShown()) + return 0; + int inventorySlot = button->index - 6; uint16 item = _mainCharacter.inventory[inventorySlot]; diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp index d323eb21ca7..da40d62cb62 100644 --- a/engines/kyra/screen.cpp +++ b/engines/kyra/screen.cpp @@ -2300,6 +2300,10 @@ void Screen::showMouse() { _mouseLockCount--; } +bool Screen::isMouseShown() const { + return (_mouseLockCount == 0); +} + void Screen::setShapePages(int page1, int page2) { debugC(9, kDebugLevelScreen, "Screen::setShapePages(%d, %d)", page1, page2); _shapePages[0] = _pagePtrs[page1]; diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h index 152ba91a21f..29969cb44d8 100644 --- a/engines/kyra/screen.h +++ b/engines/kyra/screen.h @@ -182,6 +182,7 @@ public: void hideMouse(); void showMouse(); void setMouseCursor(int x, int y, byte *shape); + bool isMouseShown() const; // rect handling virtual int getRectSize(int w, int h);