Add custom main-menu overlay & input routing

Integrates a PrismaUI full-screen main-menu overlay with input capture and a bridge to the server browser. Adds F4TMainMenuBridge and F4TMainMenuVanillaSettings stubs, exposes Show/Hide/IsMainMenuVisible/IsCustomMenuInputCaptured in F4TPrismaUI, and routes gamepad input via SetMainMenuActive in F4TMenuInput. MainMenuInject implements robust readiness checks with Bink/frame gating and disables legacy multiplayer-row injection (constexpr false). Fixes cursor clipping by clearing RE::MenuCursor constraints each frame and removes unsupported viewport meta from HTML. Adds window.CO_App/handleControllerInput stubs and updates docs/changelog.
This commit is contained in:
2026-07-06 17:47:57 +12:00
parent 980944f4ba
commit f1635948ee
16 changed files with 1226 additions and 377 deletions
+10
View File
@@ -0,0 +1,10 @@
#pragma once
namespace F4T::MainMenu
{
namespace MainMenuBridge
{
void ForwardControllerInput(const char* a_button, const char* a_phase);
void Initialize();
}
}
+1
View File
@@ -8,6 +8,7 @@ namespace RE
namespace F4T::MainMenuInject
{
bool IsMainMenuOnMainPanel(const RE::UI* a_ui);
bool IsMainMenuReadyForCustomOverlay(const RE::UI* a_ui);
void SetMainMenuInputSuppressed(bool a_suppressed);
void Install();
}
@@ -0,0 +1,7 @@
#pragma once
namespace F4T::MainMenuVanillaSettings
{
void OpenGameSettings();
void Initialize();
}
+1
View File
@@ -10,6 +10,7 @@ namespace F4T::MenuInput
{
void Register();
void SetBrowserActive(bool a_active);
void SetMainMenuActive(bool a_active);
bool IsGamepadConnected();
void PollGamepad();
bool ForwardButtonEvent(const RE::ButtonEvent* a_event);
+7
View File
@@ -3,7 +3,14 @@
namespace F4T::PrismaUI
{
void OnGameDataReady();
void ShowServerBrowser();
void HideServerBrowser();
bool IsBrowserVisible();
void ShowMainMenu();
void HideMainMenu();
bool IsMainMenuVisible();
bool IsCustomMenuInputCaptured();
}