From 9cd8c02911f2d9e8849e505b4b3ce3c043c36e5a Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Fri, 10 Nov 2023 11:34:52 +0100 Subject: [PATCH] Fix `NetworkTransform` to properly reject local simulation deltas on incoming authoritative transform data #1907 --- Source/Engine/Networking/Components/NetworkTransform.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Source/Engine/Networking/Components/NetworkTransform.cpp b/Source/Engine/Networking/Components/NetworkTransform.cpp index af802649b..6f5943ff1 100644 --- a/Source/Engine/Networking/Components/NetworkTransform.cpp +++ b/Source/Engine/Networking/Components/NetworkTransform.cpp @@ -301,11 +301,8 @@ void NetworkTransform::Deserialize(NetworkStream* stream) _buffer.Clear(); _bufferHasDeltas = true; } - // TODO: items are added in order to do batch removal - for (int32 i = 0; i < _buffer.Count() && _buffer[i].SequenceIndex < sequenceIndex; i++) - { - _buffer.RemoveAtKeepOrder(i); - } + while (_buffer.Count() != 0 && _buffer[0].SequenceIndex < sequenceIndex) + _buffer.RemoveAtKeepOrder(0); // Use received authoritative actor transformation but re-apply all deltas not yet processed by the server due to lag (reconciliation) for (auto& e : _buffer)