From 29f0744f7dc80d46b13e05ba4cca768370f8dfc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 21 Jan 2025 12:21:05 +0100 Subject: [PATCH] Add warnings on pause screen if a game is known not to work with infrastructure --- UI/PauseScreen.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/UI/PauseScreen.cpp b/UI/PauseScreen.cpp index 82afb18fde..f889692313 100644 --- a/UI/PauseScreen.cpp +++ b/UI/PauseScreen.cpp @@ -389,16 +389,23 @@ void GamePauseScreen::CreateViews() { if (IsNetworkConnected()) { leftColumnItems->Add(new NoticeView(NoticeLevel::INFO, nw->T("Network connected"), "")); - if (!g_infraDNSConfig.revivalTeam.empty() && netInetInited) { - leftColumnItems->Add(new TextView(std::string(nw->T("Infrastructure Mode server by")) + ":")); - leftColumnItems->Add(new TextView(g_infraDNSConfig.revivalTeam)); - if (!g_infraDNSConfig.revivalTeamURL.empty()) { - leftColumnItems->Add(new Button(g_infraDNSConfig.revivalTeamURL))->OnClick.Add([](UI::EventParams &e) { - if (!g_infraDNSConfig.revivalTeamURL.empty()) { - System_LaunchUrl(LaunchUrlType::BROWSER_URL, g_infraDNSConfig.revivalTeamURL.c_str()); - } - return UI::EVENT_DONE; - }); + if (g_infraDNSConfig.loaded) { + if (g_infraDNSConfig.state == InfraGameState::NotWorking) { + leftColumnItems->Add(new NoticeView(NoticeLevel::WARN, nw->T("Some network functionality in this game is not working"), "")); + } else if (g_infraDNSConfig.state == InfraGameState::Unknown) { + leftColumnItems->Add(new NoticeView(NoticeLevel::WARN, nw->T("Network functionality in this game is not guaranteed"), "")); + } + if (!g_infraDNSConfig.revivalTeam.empty() && netInetInited) { + leftColumnItems->Add(new TextView(std::string(nw->T("Infrastructure Mode server by")) + ":")); + leftColumnItems->Add(new TextView(g_infraDNSConfig.revivalTeam)); + if (!g_infraDNSConfig.revivalTeamURL.empty()) { + leftColumnItems->Add(new Button(g_infraDNSConfig.revivalTeamURL))->OnClick.Add([](UI::EventParams &e) { + if (!g_infraDNSConfig.revivalTeamURL.empty()) { + System_LaunchUrl(LaunchUrlType::BROWSER_URL, g_infraDNSConfig.revivalTeamURL.c_str()); + } + return UI::EVENT_DONE; + }); + } } }