diff --git a/src/game_mouse.cc b/src/game_mouse.cc index f62fb21..053c456 100644 --- a/src/game_mouse.cc +++ b/src/game_mouse.cc @@ -831,6 +831,22 @@ void gameMouseRefresh() } } +bool gameMouseClickOnInterfaceBar() +{ + Rect interfaceBarWindowRect; + windowGetRect(gInterfaceBarWindow, &interfaceBarWindowRect); + + int interfaceBarWindowRectLeft = 0; + int interfaceBarWindowRectRight = _scr_size.right; + + if (gInterfaceBarMode) { + interfaceBarWindowRectLeft = interfaceBarWindowRect.left; + interfaceBarWindowRectRight = interfaceBarWindowRect.right; + } + + return _mouse_click_in(interfaceBarWindowRectLeft, interfaceBarWindowRect.top, interfaceBarWindowRectRight, interfaceBarWindowRect.bottom); +} + // 0x44BFA8 void _gmouse_handle_event(int mouseX, int mouseY, int mouseState) { @@ -852,8 +868,7 @@ void _gmouse_handle_event(int mouseX, int mouseY, int mouseState) } } - // TODO: allow clicking to the left and right of the INTERFACE_BAR if gInterfaceBarMode is enabled - if (!_mouse_click_in(0, 0, _scr_size.right - _scr_size.left, _scr_size.bottom - _scr_size.top - INTERFACE_BAR_HEIGHT)) { + if (gameMouseClickOnInterfaceBar()) { return; } diff --git a/src/game_mouse.h b/src/game_mouse.h index 5c70a19..2f68658 100644 --- a/src/game_mouse.h +++ b/src/game_mouse.h @@ -186,5 +186,6 @@ int _gmouse_3d_move_to(int x, int y, int elevation, Rect* a4); int gameMouseHandleScrolling(int x, int y, int cursor); void _gmouse_remove_item_outline(Object* object); int objectIsDoor(Object* object); +bool gameMouseClickOnInterfaceBar(); #endif /* GAME_MOUSE_H */