From 8cddb57d0817db963d12084760fc4b2d72c695ce Mon Sep 17 00:00:00 2001 From: galaxyhaxz Date: Sat, 31 Aug 2019 00:53:29 -0500 Subject: [PATCH] Fix returning in gmenu_lmouse --- Source/gmenu.cpp | 77 +++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 43 deletions(-) diff --git a/Source/gmenu.cpp b/Source/gmenu.cpp index 0b7a5165e..9b3e7f3ab 100644 --- a/Source/gmenu.cpp +++ b/Source/gmenu.cpp @@ -311,7 +311,6 @@ BOOLEAN gmenu_valid_mouse_pos(int *plOffset) BOOL gmenu_left_mouse(BOOL isDown) { - BOOL result; TMenuItem *pItem; DWORD i, w; int dummy; @@ -319,53 +318,45 @@ BOOL gmenu_left_mouse(BOOL isDown) if (!isDown) { if (mouseNavigation) { mouseNavigation = FALSE; - result = TRUE; + return TRUE; } else { - result = FALSE; + return FALSE; } + } + if (!sgpCurrentMenu) { + return FALSE; + } + if (MouseY >= PANEL_TOP) { + return FALSE; + } + if (MouseY - 117 < 0) { + return TRUE; + } + i = (MouseY - 117) / 45; + if (i >= sgCurrentMenuIdx) { + return TRUE; + } + pItem = &sgpCurrentMenu[i]; + if (!(sgpCurrentMenu[i].dwFlags & GMENU_ENABLED)) { + return TRUE; + } + w = gmenu_get_lfont(pItem); + if (MouseX < SCREEN_WIDTH / 2 - w / 2) { + return TRUE; + } + if (MouseX > SCREEN_WIDTH / 2 + w / 2) { + return TRUE; + } + sgpCurrItem = pItem; + PlaySFX(IS_TITLEMOV); + if (pItem->dwFlags & GMENU_SLIDER) { + mouseNavigation = gmenu_valid_mouse_pos(&dummy); + gmenu_on_mouse_move(); } else { - - if (!sgpCurrentMenu) { - return FALSE; - } - if (MouseY >= PANEL_TOP) { - return FALSE; - } - if (MouseY - 117 >= 0) { - i = (MouseY - 117) / 45; - if (i < sgCurrentMenuIdx) { - pItem = &sgpCurrentMenu[i]; - if ((sgpCurrentMenu[i].dwFlags & GMENU_ENABLED) != 0) { - w = gmenu_get_lfont(pItem); - if (MouseX >= SCREEN_WIDTH / 2 - w / 2) { - if (MouseX <= SCREEN_WIDTH / 2 + w / 2) { - sgpCurrItem = pItem; - PlaySFX(IS_TITLEMOV); - if (pItem->dwFlags & GMENU_SLIDER) { - mouseNavigation = gmenu_valid_mouse_pos(&dummy); - gmenu_on_mouse_move(); - } else { - sgpCurrItem->fnMenu(TRUE); - } - result = TRUE; - } else { - result = TRUE; - } - } else { - result = TRUE; - } - } else { - result = TRUE; - } - } else { - result = TRUE; - } - } else { - result = TRUE; - } + sgpCurrItem->fnMenu(TRUE); } - return result; + return TRUE; } void gmenu_enable(TMenuItem *pMenuItem, BOOL enable)