fix script main menu for controllers
This commit is contained in:
parent
6a1d1c0b0a
commit
40acfdc07d
@ -36,6 +36,11 @@ namespace menus
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int UI_SetActiveMenu(int local_client_num, int menu)
|
||||||
|
{
|
||||||
|
return utils::hook::invoke<int>(0x1E4D80_b, local_client_num, menu);
|
||||||
|
}
|
||||||
|
|
||||||
void CL_ShowSystemCursor(int a1)
|
void CL_ShowSystemCursor(int a1)
|
||||||
{
|
{
|
||||||
return utils::hook::invoke<void>(0x5BAA60_b, a1);
|
return utils::hook::invoke<void>(0x5BAA60_b, a1);
|
||||||
@ -117,7 +122,7 @@ namespace menus
|
|||||||
auto vY = y / (game::ScrPlace_HiResGetScaleY() * scrPlaceFull->scaleVirtualToFull[1]);
|
auto vY = y / (game::ScrPlace_HiResGetScaleY() * scrPlaceFull->scaleVirtualToFull[1]);
|
||||||
*reinterpret_cast<float*>(0x352E590_b) = vX; // cursorX
|
*reinterpret_cast<float*>(0x352E590_b) = vX; // cursorX
|
||||||
*reinterpret_cast<float*>(0x352E594_b) = vY; // cursorY
|
*reinterpret_cast<float*>(0x352E594_b) = vY; // cursorY
|
||||||
int isCursorVisible = vX >= 0.0 && vX <= 640.0 && vY >= 0.0 && vY <= 480.0;
|
auto isCursorVisible = vX >= 0.0 && vX <= 640.0 && vY >= 0.0 && vY <= 480.0;
|
||||||
|
|
||||||
if (isCursorVisible)
|
if (isCursorVisible)
|
||||||
{
|
{
|
||||||
@ -165,14 +170,25 @@ namespace menus
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ui_set_active_menu_stub(int client_num, int idx)
|
void lui_toggle_menu_stub(int controller_index, void* context)
|
||||||
{
|
{
|
||||||
if (open_script_main_menu())
|
if (!game::VirtualLobby_Loaded())
|
||||||
|
{
|
||||||
|
if (!script_main_menu.empty())
|
||||||
|
{
|
||||||
|
if (game::Menu_IsMenuOpenAndVisible(0, script_main_menu.data()))
|
||||||
|
{
|
||||||
|
UI_SetActiveMenu(0, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (open_script_main_menu())
|
||||||
{
|
{
|
||||||
*game::keyCatchers = *game::keyCatchers & 1 | 0x10;
|
*game::keyCatchers = *game::keyCatchers & 1 | 0x10;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return utils::hook::invoke<void>(0x1E4D80_b, client_num, idx); // UI_SetActiveMenu
|
}
|
||||||
|
}
|
||||||
|
return utils::hook::invoke<void>(0x270A90_b, controller_index, context); // LUI_ToggleMenu
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,8 +215,9 @@ namespace menus
|
|||||||
// add legacy menu mouse fix
|
// add legacy menu mouse fix
|
||||||
utils::hook::call(0x5BA535_b, ui_mouse_fix);
|
utils::hook::call(0x5BA535_b, ui_mouse_fix);
|
||||||
|
|
||||||
// add script main menu (ESC)
|
// add script main menu
|
||||||
utils::hook::call(0x135C82_b, ui_set_active_menu_stub);
|
utils::hook::call(0x1E5143_b, lui_toggle_menu_stub); // (CL_ExecBinding)
|
||||||
|
utils::hook::call(0x131377_b, lui_toggle_menu_stub); // (UI_SetActiveMenu)
|
||||||
|
|
||||||
command::add("openmenu", [](const command::params& params)
|
command::add("openmenu", [](const command::params& params)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user