From 3395285df1b3ed2badbb8848dc3ab20a71b00041 Mon Sep 17 00:00:00 2001 From: Ibra Date: Fri, 19 Jun 2026 19:10:09 +0300 Subject: [PATCH] fix: Correct avgFPS reporting in the network stats overlay --- Core/GameEngine/Source/GameNetwork/FrameMetrics.cpp | 10 +++++++++- .../Code/GameEngine/Source/GameClient/InGameUI.cpp | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Core/GameEngine/Source/GameNetwork/FrameMetrics.cpp b/Core/GameEngine/Source/GameNetwork/FrameMetrics.cpp index 1ff782babf8..0de0dd2096c 100644 --- a/Core/GameEngine/Source/GameNetwork/FrameMetrics.cpp +++ b/Core/GameEngine/Source/GameNetwork/FrameMetrics.cpp @@ -84,7 +84,11 @@ FrameMetrics::~FrameMetrics() { } void FrameMetrics::init() { +#if defined(GENERALS_ONLINE_HIGH_FPS_SERVER) + m_averageFps = GENERALS_ONLINE_HIGH_FPS_LIMIT; +#else m_averageFps = 30; +#endif #if defined(GENERALS_ONLINE) // NGMP_NOTE: Don't start with the assumption that we have latency. Connections are now formed earlier, so we have latency data earlier too. @@ -113,7 +117,11 @@ void FrameMetrics::init() { UnsignedInt i = 0; for (; i < TheGlobalData->m_networkFPSHistoryLength; ++i) { - m_fpsList[i] = 30.0; +#if defined(GENERALS_ONLINE_HIGH_FPS_SERVER) + m_fpsList[i] = GENERALS_ONLINE_HIGH_FPS_LIMIT; +#else + m_fpsList[i] = 30.0; +#endif } m_fpsListIndex = 0; for (i = 0; i < TheGlobalData->m_networkLatencyHistoryLength; ++i) diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp index cc0b6f4ac0f..85414731d44 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -7231,7 +7231,7 @@ void InGameUI::drawGameTime() m_gameTimeString->getSize(&w, &h); bool bIsHighQuality = true; - if (avgFPS < GENERALS_ONLINE_HIGH_FPS_LIMIT || status.m_cbSentUnackedReliable >= 1000 || (status.m_flConnectionQualityLocal != -1.f && status.m_flConnectionQualityLocal < 1.f) || (status.m_flConnectionQualityRemote != -1.f && status.m_flConnectionQualityRemote < 1.f)) + if (avgFPS < (GENERALS_ONLINE_HIGH_FPS_LIMIT - 1) || status.m_cbSentUnackedReliable >= 1000 || (status.m_flConnectionQualityLocal != -1.f && status.m_flConnectionQualityLocal < 1.f) || (status.m_flConnectionQualityRemote != -1.f && status.m_flConnectionQualityRemote < 1.f)) { bIsHighQuality = false; }