diff --git a/include/Nazara/Network/ENetHost.hpp b/include/Nazara/Network/ENetHost.hpp index fe9956538..97b12f2c0 100644 --- a/include/Nazara/Network/ENetHost.hpp +++ b/include/Nazara/Network/ENetHost.hpp @@ -53,6 +53,8 @@ namespace Nz void Flush(); + inline UInt32 GetServiceTime() const; + int Service(ENetEvent* event, UInt32 timeout); void SimulateNetwork(double packetLossProbability, UInt16 minDelay, UInt16 maxDelay); diff --git a/include/Nazara/Network/ENetHost.inl b/include/Nazara/Network/ENetHost.inl index c7e65ab95..8aa722771 100644 --- a/include/Nazara/Network/ENetHost.inl +++ b/include/Nazara/Network/ENetHost.inl @@ -51,6 +51,11 @@ namespace Nz m_peers.clear(); m_socket.Close(); } + + inline UInt32 Nz::ENetHost::GetServiceTime() const + { + return m_serviceTime; + } } #include diff --git a/src/Nazara/Network/ENetPeer.cpp b/src/Nazara/Network/ENetPeer.cpp index ae0952be5..6c5940629 100644 --- a/src/Nazara/Network/ENetPeer.cpp +++ b/src/Nazara/Network/ENetPeer.cpp @@ -474,7 +474,8 @@ namespace Nz if (m_state == ENetPeerState::Disconnected || m_state == ENetPeerState::Zombie) return true; - UInt32 serviceTime = m_host->m_serviceTime; + UInt32 serviceTime = m_host->GetServiceTime(); + UInt32 receivedSentTime = NetToHost(command->acknowledge.receivedSentTime); receivedSentTime |= serviceTime & 0xFFFF0000; if ((receivedSentTime & 0x8000) > (serviceTime & 0x8000))