From 0f1e6bba8db6f0df8d902d5c3aadf23fbe46e8c1 Mon Sep 17 00:00:00 2001 From: qndel Date: Fri, 26 Apr 2019 21:39:30 +0200 Subject: [PATCH 1/2] gmenu_left_right bin exact --- Source/gmenu.cpp | 24 ++++++++++-------------- Source/gmenu.h | 2 +- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/Source/gmenu.cpp b/Source/gmenu.cpp index aeaa9d896..e50c22244 100644 --- a/Source/gmenu.cpp +++ b/Source/gmenu.cpp @@ -304,27 +304,23 @@ BOOL gmenu_presskeys(int a1) return TRUE; } -void gmenu_left_right(int a1) +void gmenu_left_right(BOOL isRight) { - signed int v1; // edx - unsigned int v2; // eax - int v3; // eax + int plOffset; - v1 = sgpCurrItem->dwFlags; if (sgpCurrItem->dwFlags & 0x40000000) { - v2 = sgpCurrItem->dwFlags & 0xFFF; - if (a1) { - if (v2 == ((v1 >> 12) & 0xFFF)) + plOffset = sgpCurrItem->dwFlags & 0xFFF; + if (isRight) { + if (plOffset == (int)(sgpCurrItem->dwFlags & 0xFFF000) >> 12) return; - v3 = v2 + 1; + plOffset++; } else { - if (!(v1 & 0xFFF)) + if (!plOffset) return; - v3 = v2 - 1; + plOffset--; } - _LOWORD(v1) = v1 & 0xF000; - sgpCurrItem->dwFlags = v1; - sgpCurrItem->dwFlags |= v3; + sgpCurrItem->dwFlags &= 0xFFFFF000; + sgpCurrItem->dwFlags |= plOffset; sgpCurrItem->fnMenu(FALSE); } } diff --git a/Source/gmenu.h b/Source/gmenu.h index 6d876037c..2888b01f1 100644 --- a/Source/gmenu.h +++ b/Source/gmenu.h @@ -25,7 +25,7 @@ void gmenu_draw_menu_item(TMenuItem *pItem, int a2); void gmenu_clear_buffer(int x, int y, int width, int height); int gmenu_get_lfont(TMenuItem *pItem); BOOL gmenu_presskeys(int a1); -void gmenu_left_right(int a1); +void gmenu_left_right(BOOL isRight); BOOL gmenu_on_mouse_move(); BOOLEAN gmenu_valid_mouse_pos(int *plOffset); int gmenu_left_mouse(int a1); From 6f7d4ee8dbc79262965a29b4faefed84fe54bcc9 Mon Sep 17 00:00:00 2001 From: qndel Date: Fri, 26 Apr 2019 21:40:36 +0200 Subject: [PATCH 2/2] gmenu_left_right bin exact --- Source/gmenu.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/gmenu.cpp b/Source/gmenu.cpp index e50c22244..85f4715b5 100644 --- a/Source/gmenu.cpp +++ b/Source/gmenu.cpp @@ -289,10 +289,10 @@ BOOL gmenu_presskeys(int a1) case VK_SPACE: return FALSE; case VK_LEFT: - gmenu_left_right(0); + gmenu_left_right(FALSE); break; case VK_RIGHT: - gmenu_left_right(1); + gmenu_left_right(TRUE); break; case VK_UP: gmenu_up_down(0);