From 3a83cf654eb42e60837a34b16b3628e0464976d9 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Sun, 9 Mar 2008 09:58:05 +0000 Subject: [PATCH] Fixed access of inventory in HoF while cursor is not visible. svn-id: r31081 --- engines/kyra/gui_v2.cpp | 4 +++- engines/kyra/screen.cpp | 4 ++++ engines/kyra/screen.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) 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);