@@ -21,6 +21,8 @@ namespace cage
2121 namespace
2222 {
2323 const ConfigSint32 confDebugLogLevel (" cage/steamsocks/logLevel" , k_ESteamNetworkingSocketsDebugOutputType_Msg);
24+ const ConfigFloat confSimulatedPacketLoss (" cage/steamsocks/simulatedPacketLoss" , 0 ); // 0 .. 1
25+ const ConfigFloat confSimulatedPacketDelay (" cage/steamsocks/simulatedPacketDelay" , 0 ); // ms
2426
2527 constexpr uint32 LanesCount = 4 ;
2628
@@ -144,11 +146,18 @@ namespace cage
144146 CAGE_ASSERT (utils);
145147 }
146148
147- struct InitializerDebugOutput
149+ struct InitializerConfiguration
148150 {
149- InitializerDebugOutput () { utils->SetDebugOutputFunction ((ESteamNetworkingSocketsDebugOutputType)(sint32)confDebugLogLevel, &debugOutputHandler); }
151+ InitializerConfiguration ()
152+ {
153+ utils->SetDebugOutputFunction ((ESteamNetworkingSocketsDebugOutputType)(sint32)confDebugLogLevel, &debugOutputHandler);
154+ float packetLoss = confSimulatedPacketLoss * 100 ;
155+ utils->SetConfigValue (k_ESteamNetworkingConfig_FakePacketLoss_Send, k_ESteamNetworkingConfig_Global, 0 , k_ESteamNetworkingConfig_Float, &packetLoss);
156+ sint32 packetDelay = confSimulatedPacketDelay;
157+ utils->SetConfigValue (k_ESteamNetworkingConfig_FakePacketLag_Send, k_ESteamNetworkingConfig_Global, 0 , k_ESteamNetworkingConfig_Int32, &packetDelay);
158+ }
150159 };
151- static InitializerDebugOutput initializerDebugOutput ;
160+ static InitializerConfiguration initializerConfiguration ;
152161
153162 #if defined(CAGE_USE_STEAM_SDK)
154163 struct InitializerSdk
@@ -159,7 +168,7 @@ namespace cage
159168 ESteamNetworkingAvailability a = sockets->InitAuthentication ();
160169 while (!networkingAvailable (a))
161170 {
162- threadSleep (5000 );
171+ threadSleep (5'000 );
163172 SteamAPI_RunCallbacks ();
164173 SteamGameServer_RunCallbacks ();
165174 a = sockets->GetAuthenticationStatus (nullptr );
@@ -183,7 +192,7 @@ namespace cage
183192 ESteamNetworkingAvailability a = utils->GetRelayNetworkStatus (nullptr );
184193 if (networkingAvailable (a))
185194 break ;
186- threadSleep (5000 );
195+ threadSleep (5'000 );
187196 SteamAPI_RunCallbacks ();
188197 }
189198 }
0 commit comments