diff --git a/Source/Engine/Networking/Drivers/NetworkLagDriver.cpp b/Source/Engine/Networking/Drivers/NetworkLagDriver.cpp index 244a2e1a8..615aab7d6 100644 --- a/Source/Engine/Networking/Drivers/NetworkLagDriver.cpp +++ b/Source/Engine/Networking/Drivers/NetworkLagDriver.cpp @@ -97,7 +97,7 @@ bool NetworkLagDriver::PopEvent(NetworkEvent* eventPtr) if (!_driver) return false; - // Try to pop event from the queue + // Try to pop lagged event from the queue for (int32 i = 0; i < _events.Count(); i++) { auto& e = _events[i]; @@ -112,6 +112,9 @@ bool NetworkLagDriver::PopEvent(NetworkEvent* eventPtr) // Consume any incoming events while (_driver->PopEvent(eventPtr)) { + if (Lag <= 0.0) + return true; + auto& e = _events.AddOne(); e.Lag = (double)Lag; e.Event = *eventPtr; @@ -121,6 +124,12 @@ bool NetworkLagDriver::PopEvent(NetworkEvent* eventPtr) void NetworkLagDriver::SendMessage(const NetworkChannelType channelType, const NetworkMessage& message) { + if (Lag <= 0.0) + { + _driver->SendMessage(channelType, message); + return; + } + auto& msg = _messages.AddOne(); msg.Lag = (double)Lag; msg.Type = 0; @@ -130,6 +139,12 @@ void NetworkLagDriver::SendMessage(const NetworkChannelType channelType, const N void NetworkLagDriver::SendMessage(NetworkChannelType channelType, const NetworkMessage& message, NetworkConnection target) { + if (Lag <= 0.0) + { + _driver->SendMessage(channelType, message, target); + return; + } + auto& msg = _messages.AddOne(); msg.Lag = (double)Lag; msg.Type = 1; @@ -140,6 +155,12 @@ void NetworkLagDriver::SendMessage(NetworkChannelType channelType, const Network void NetworkLagDriver::SendMessage(const NetworkChannelType channelType, const NetworkMessage& message, const Array& targets) { + if (Lag <= 0.0) + { + _driver->SendMessage(channelType, message, targets); + return; + } + auto& msg = _messages.AddOne(); msg.Lag = (double)Lag; msg.Type = 2;