From 20da81e5dcda5dfe45978b00c83c58d41fb35e5f Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Mon, 5 Nov 2018 12:41:11 +0200 Subject: [PATCH] Fixed player's character staying in the unsynced state when rejoining while the character is dead/unconscious. Closes #857 --- .../Source/Characters/Animation/Ragdoll.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Animation/Ragdoll.cs b/Barotrauma/BarotraumaShared/Source/Characters/Animation/Ragdoll.cs index 57a6d341f..6767454e9 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Animation/Ragdoll.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Animation/Ragdoll.cs @@ -1346,6 +1346,17 @@ namespace Barotrauma //use simple interpolation for other players' characters and characters that can't move if (character.MemState.Count > 0) { + CharacterStateInfo serverPos = character.MemState.Last(); + if (!character.isSynced) + { + SetPosition(serverPos.Position, false); + Collider.LinearVelocity = Vector2.Zero; + character.MemLocalState.Clear(); + character.LastNetworkUpdateID = serverPos.ID; + character.isSynced = true; + return; + } + if (character.MemState[0].Interact == null || character.MemState[0].Interact.Removed) { character.DeselectCharacter();