Fixed player's character staying in the unsynced state when rejoining while the character is dead/unconscious. Closes #857
This commit is contained in:
@@ -1346,6 +1346,17 @@ namespace Barotrauma
|
|||||||
//use simple interpolation for other players' characters and characters that can't move
|
//use simple interpolation for other players' characters and characters that can't move
|
||||||
if (character.MemState.Count > 0)
|
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)
|
if (character.MemState[0].Interact == null || character.MemState[0].Interact.Removed)
|
||||||
{
|
{
|
||||||
character.DeselectCharacter();
|
character.DeselectCharacter();
|
||||||
|
|||||||
Reference in New Issue
Block a user