Skip to content

Commit 4efcc4d

Browse files
committed
Addendum to 43630d3 (Merge mishap)
1 parent 27ebfbc commit 4efcc4d

File tree

1 file changed

+21
-26
lines changed

1 file changed

+21
-26
lines changed

Client/core/CModManager.cpp

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -56,39 +56,30 @@ bool CModManager::TriggerCommand(const char* commandName, size_t commandNameLeng
5656

5757
void CModManager::DoPulsePreFrame()
5858
{
59-
TIMING_GRAPH("+DoPulsePreFrame");
60-
CCore::GetSingleton().GetFPSLimiter()->OnFrameStart(); // Prepare FPS limiting for this frame
61-
6259
if (m_client)
6360
{
6461
m_client->PreFrameExecutionHandler();
6562
}
66-
TIMING_GRAPH("-DoPulsePreFrame");
6763
}
6864

6965
void CModManager::DoPulsePreHUDRender(bool bDidUnminimize, bool bDidRecreateRenderTargets)
7066
{
71-
TIMING_GRAPH("+DoPulsePreHUDRender");
7267
if (m_client)
7368
{
7469
m_client->PreHUDRenderExecutionHandler(bDidUnminimize, bDidRecreateRenderTargets);
7570
}
76-
TIMING_GRAPH("-DoPulsePreHUDRender");
7771
}
7872

7973
void CModManager::DoPulsePostFrame()
8074
{
81-
auto handleStateChange = [&]()
75+
if (m_state == State::PendingStart)
8276
{
83-
if (m_state == State::PendingStart)
84-
Start();
85-
else if (m_state == State::PendingStop)
86-
Stop();
87-
};
88-
89-
TIMING_GRAPH("+DoPulsePostFrame");
90-
91-
handleStateChange(); // Handle state changes before pulse
77+
Start();
78+
}
79+
else if (m_state == State::PendingStop)
80+
{
81+
Stop();
82+
}
9283

9384
if (m_client)
9485
{
@@ -99,15 +90,20 @@ void CModManager::DoPulsePostFrame()
9990
CCore::GetSingleton().GetNetwork()->DoPulse();
10091
}
10192

102-
CCore::GetSingleton().DoReliablePulse(); // Do reliable pulse
103-
104-
handleStateChange(); // Handle state changes after pulse
105-
106-
// TODO: ENSURE "CModManager::DoPulsePostFrame" IS THE LAST THING BEFORE THE FRAME ENDS
107-
CCore::GetSingleton().GetFPSLimiter()->OnFrameEnd(); // Apply FPS limiting
93+
// Make sure frame rate limit gets applied
94+
if (m_client != nullptr)
95+
CCore::GetSingleton().EnsureFrameRateLimitApplied(); // Catch missed frames
96+
else
97+
CCore::GetSingleton().ApplyFrameRateLimit(); // Limit when not connected
10898

109-
TIMING_GRAPH("-DoPulsePostFrame");
110-
TIMING_GRAPH("");
99+
if (m_state == State::PendingStart)
100+
{
101+
Start();
102+
}
103+
else if (m_state == State::PendingStop)
104+
{
105+
Stop();
106+
}
111107
}
112108

113109
bool CModManager::Load(const char* arguments)
@@ -187,7 +183,7 @@ bool CModManager::TryStart()
187183
return false;
188184
}
189185

190-
using InitClientFn = CClientBase* (__cdecl*)();
186+
using InitClientFn = CClientBase*(__cdecl*)();
191187
InitClientFn initClient = nullptr;
192188
if (!SharedUtil::TryGetProcAddress(library, "InitClient", initClient))
193189
{
@@ -288,4 +284,3 @@ void CModManager::TryStop()
288284
CLocalGUI::GetSingleton().GetMainMenu()->SetIsIngame(false);
289285
CLocalGUI::GetSingleton().GetMainMenu()->SetVisible(true, false);
290286
}
291-

0 commit comments

Comments
 (0)