Browse Source

gmenu_up_down bin exact

pull/100/head
qndel 7 years ago committed by Anders Jenbo
parent
commit
9712874994
  1. 47
      Source/gmenu.cpp
  2. 2
      Source/gmenu.h

47
Source/gmenu.cpp

@ -126,38 +126,35 @@ void gmenu_call_proc(TMenuItem *pItem, void(*gmFunc)(TMenuItem *))
}
}
sgpCurrItem = &v2[v3 - 1];
gmenu_up_down(1);
gmenu_up_down(TRUE);
}
// 525740: using guessed type int PauseMode;
// 634464: using guessed type char byte_634464;
// 63448C: using guessed type int dword_63448C;
void gmenu_up_down(int a1)
void gmenu_up_down(BOOL isDown)
{
TMenuItem *v1; // eax
int v2; // edi
int i;
v1 = sgpCurrItem;
if (sgpCurrItem) {
byte_634464 = 0;
v2 = dword_63448C;
while (v2) {
--v2;
if (a1) {
++v1;
sgpCurrItem = v1;
if (v1->fnMenu)
goto LABEL_10;
v1 = dword_634480;
if (!sgpCurrItem) {
return;
}
byte_634464 = FALSE;
i = dword_63448C;
if (dword_63448C) {
while (i) {
i--;
if (isDown) {
sgpCurrItem++;
if (!sgpCurrItem->fnMenu)
sgpCurrItem = dword_634480;
} else {
if (v1 == dword_634480)
v1 = &dword_634480[dword_63448C];
--v1;
if (sgpCurrItem == dword_634480)
sgpCurrItem = &dword_634480[dword_63448C];
sgpCurrItem--;
}
sgpCurrItem = v1;
LABEL_10:
if ((v1->dwFlags & 0x80000000) != 0) {
if (v2)
if ((sgpCurrItem->dwFlags & 0x80000000) != 0) {
if (i)
PlaySFX(IS_TITLEMOV);
return;
}
@ -295,10 +292,10 @@ BOOL gmenu_presskeys(int a1)
gmenu_left_right(TRUE);
break;
case VK_UP:
gmenu_up_down(0);
gmenu_up_down(FALSE);
break;
case VK_DOWN:
gmenu_up_down(1);
gmenu_up_down(TRUE);
break;
}
return TRUE;

2
Source/gmenu.h

@ -19,7 +19,7 @@ void FreeGMenu();
void gmenu_init_menu();
BOOL gmenu_exception();
void gmenu_call_proc(TMenuItem *pItem, void(*gmFunc)(TMenuItem *));
void gmenu_up_down(int a1);
void gmenu_up_down(BOOL isDown);
void gmenu_draw();
void gmenu_draw_menu_item(TMenuItem *pItem, int a2);
void gmenu_clear_buffer(int x, int y, int width, int height);

Loading…
Cancel
Save