From 80a4f90e0d81a02db304906758784d3e02fe6c3f Mon Sep 17 00:00:00 2001 From: teascade Date: Sat, 25 Nov 2017 15:38:04 +0200 Subject: [PATCH] Fix ConnectionHandler not keeping track of LastXIDReceived --- scripts/net/syncing/ConnectionHandler.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/net/syncing/ConnectionHandler.cs b/scripts/net/syncing/ConnectionHandler.cs index 629a681..ee50e05 100644 --- a/scripts/net/syncing/ConnectionHandler.cs +++ b/scripts/net/syncing/ConnectionHandler.cs @@ -80,18 +80,28 @@ namespace Network.Syncing { Packets.Add(Peer.Protocol.DeserializePacket(packetBuffer, Metadata)); } + int BiggestReliableIDReceived = -1; + int BiggestUnreliableIDReceived = -1; + for (int i = 0; i < Packets.Count; i++) { Serializable Curr = Packets[i]; if (Curr.Metadata.Reliable) { if (Curr.Metadata.ID <= LastReliableIDReceived) { continue; + } else if (Curr.Metadata.ID > BiggestReliableIDReceived) { + BiggestReliableIDReceived = Curr.Metadata.ID; } } else { if (Curr.Metadata.ID <= LastUnreliableIDReceived) { continue; + } else if (Curr.Metadata.ID > BiggestUnreliableIDReceived) { + BiggestUnreliableIDReceived = Curr.Metadata.ID; } } + LastReliableIDReceived = BiggestReliableIDReceived; + LastUnreliableIDReceived = BiggestUnreliableIDReceived; + Peer.Protocol.HandleSerializable(Curr); }