Browse Source

Merge pull request #1055 from qndel/gmenu_left_right

gmenu_left_right bin exact
pull/100/head
Robin Eklind 7 years ago committed by GitHub
parent
commit
8ec6423ea4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 28
      Source/gmenu.cpp
  2. 2
      Source/gmenu.h

28
Source/gmenu.cpp

@ -289,10 +289,10 @@ BOOL gmenu_presskeys(int a1)
case VK_SPACE: case VK_SPACE:
return FALSE; return FALSE;
case VK_LEFT: case VK_LEFT:
gmenu_left_right(0); gmenu_left_right(FALSE);
break; break;
case VK_RIGHT: case VK_RIGHT:
gmenu_left_right(1); gmenu_left_right(TRUE);
break; break;
case VK_UP: case VK_UP:
gmenu_up_down(0); gmenu_up_down(0);
@ -304,27 +304,23 @@ BOOL gmenu_presskeys(int a1)
return TRUE; return TRUE;
} }
void gmenu_left_right(int a1) void gmenu_left_right(BOOL isRight)
{ {
signed int v1; // edx int plOffset;
unsigned int v2; // eax
int v3; // eax
v1 = sgpCurrItem->dwFlags;
if (sgpCurrItem->dwFlags & 0x40000000) { if (sgpCurrItem->dwFlags & 0x40000000) {
v2 = sgpCurrItem->dwFlags & 0xFFF; plOffset = sgpCurrItem->dwFlags & 0xFFF;
if (a1) { if (isRight) {
if (v2 == ((v1 >> 12) & 0xFFF)) if (plOffset == (int)(sgpCurrItem->dwFlags & 0xFFF000) >> 12)
return; return;
v3 = v2 + 1; plOffset++;
} else { } else {
if (!(v1 & 0xFFF)) if (!plOffset)
return; return;
v3 = v2 - 1; plOffset--;
} }
_LOWORD(v1) = v1 & 0xF000; sgpCurrItem->dwFlags &= 0xFFFFF000;
sgpCurrItem->dwFlags = v1; sgpCurrItem->dwFlags |= plOffset;
sgpCurrItem->dwFlags |= v3;
sgpCurrItem->fnMenu(FALSE); sgpCurrItem->fnMenu(FALSE);
} }
} }

2
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); void gmenu_clear_buffer(int x, int y, int width, int height);
int gmenu_get_lfont(TMenuItem *pItem); int gmenu_get_lfont(TMenuItem *pItem);
BOOL gmenu_presskeys(int a1); BOOL gmenu_presskeys(int a1);
void gmenu_left_right(int a1); void gmenu_left_right(BOOL isRight);
BOOL gmenu_on_mouse_move(); BOOL gmenu_on_mouse_move();
BOOLEAN gmenu_valid_mouse_pos(int *plOffset); BOOLEAN gmenu_valid_mouse_pos(int *plOffset);
int gmenu_left_mouse(int a1); int gmenu_left_mouse(int a1);

Loading…
Cancel
Save