Browse Source

gmenu_call_proc bin exact (#1179)

pull/114/head
qndel 7 years ago committed by Anders Jenbo
parent
commit
844845f0b0
  1. 30
      Source/gmenu.cpp

30
Source/gmenu.cpp

@ -93,37 +93,27 @@ BOOL gmenu_exception()
return sgpCurrentMenu != 0; return sgpCurrentMenu != 0;
} }
void gmenu_call_proc(TMenuItem *pItem, void(*gmFunc)(TMenuItem *)) void gmenu_call_proc(TMenuItem *pItem, void (*gmFunc)(TMenuItem *))
{ {
TMenuItem *v2; // eax int i;
int v3; // ecx
void(* *v4)(BOOL); // edx
PauseMode = 0; PauseMode = 0;
mouseNavigation = 0; mouseNavigation = FALSE;
v2 = pItem;
dword_63447C = gmFunc;
sgpCurrentMenu = pItem; sgpCurrentMenu = pItem;
dword_63447C = gmFunc;
if (gmFunc) { if (gmFunc) {
gmFunc(sgpCurrentMenu); dword_63447C(sgpCurrentMenu);
v2 = sgpCurrentMenu; pItem = sgpCurrentMenu;
} }
v3 = 0;
sgCurrentMenuIdx = 0; sgCurrentMenuIdx = 0;
if (v2) { if (sgpCurrentMenu) {
v4 = &v2->fnMenu; for (i = 0; sgpCurrentMenu[i].fnMenu; i++) {
while (*v4) { sgCurrentMenuIdx++;
++v3;
v4 += 3;
sgCurrentMenuIdx = v3;
} }
} }
sgpCurrItem = &v2[v3 - 1]; sgpCurrItem = &sgpCurrentMenu[sgCurrentMenuIdx - 1];
gmenu_up_down(TRUE); gmenu_up_down(TRUE);
} }
// 525740: using guessed type int PauseMode;
// 634464: using guessed type char mouseNavigation;
// 63448C: using guessed type int sgCurrentMenuIdx;
void gmenu_up_down(BOOL isDown) void gmenu_up_down(BOOL isDown)
{ {

Loading…
Cancel
Save