Restyle server browser UI; hide overlay on join

Restyles the server browser to match main-menu/settings (Futura PT Demibold, amber/green palette, yellow selection bars, shared panel chrome), removes SVG border strips, and tweaks modal width/layout. Adds JS + C++ coordination so the custom main-menu overlay hides when a server join begins (C++ invokes onSessionLoading and calls HideMainMenu; CompleteJoinFailure restores the menu/browser). Controller glyph tint now derives from --co-amber. Updates changelog and dev-log; includes compiled Vault109 script update.
This commit is contained in:
2026-07-07 17:43:52 +12:00
parent 9447bc308f
commit 549c117818
11 changed files with 467 additions and 275 deletions
+18
View File
@@ -212,10 +212,21 @@ namespace F4T::ServerBrowser
LogInfo(std::format(" Joined server '{}'.", a_entry.name));
}
void RestoreMainMenuAfterJoinFailure()
{
if (F4T::PrismaUI::IsMainMenuVisible()) {
return;
}
F4T::PrismaUI::ShowMainMenu();
F4T::PrismaUI::ShowServerBrowser();
}
void CompleteJoinFailure(const ServerEntry& a_entry, std::string_view a_reason)
{
F4T::Networking::DisconnectFromLocalServer();
PushConnectionStatusEvent();
RestoreMainMenuAfterJoinFailure();
DispatchEvent(nlohmann::json{
{ "type", "joinFailed" },
{ "serverId", a_entry.id },
@@ -259,6 +270,13 @@ namespace F4T::ServerBrowser
{ "message", "Loading game..." }
});
if (g_api && g_view != 0 && g_api->IsValid(g_view)) {
g_api->Invoke(g_view, "if(window.onSessionLoading){window.onSessionLoading();}");
}
// Hide the custom main menu overlay before the vanilla loading screen appears.
F4T::PrismaUI::HideMainMenu();
const auto* taskInterface = F4SE::GetTaskInterface();
if (!taskInterface) {
a_error = "Game task interface is unavailable.";