Fixed player's character staying in the unsynced state when rejoining while the character is dead/unconscious. Closes #857

This commit is contained in:
Joonas Rikkonen
2018-11-05 12:41:11 +02:00
parent 1b4b5bb2e7
commit 20da81e5dc

View File

@@ -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();