Fixed a null exception when a dragged character is removed

This commit is contained in:
Regalis
2017-05-25 17:05:28 +03:00
parent 6223861f7a
commit 44349b97b0
2 changed files with 10 additions and 7 deletions
@@ -1256,7 +1256,7 @@ 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)
{ {
if (character.MemState[0].Interact == null) if (character.MemState[0].Interact == null || character.MemState[0].Interact.Removed)
{ {
character.DeselectCharacter(); character.DeselectCharacter();
character.SelectedConstruction = null; character.SelectedConstruction = null;
@@ -1348,7 +1348,7 @@ namespace Barotrauma
//the entity we're interacting with doesn't match the server's //the entity we're interacting with doesn't match the server's
if (localPos.Interact != serverPos.Interact) if (localPos.Interact != serverPos.Interact)
{ {
if (serverPos.Interact == null) if (serverPos.Interact == null || serverPos.Interact.Removed)
{ {
character.DeselectCharacter(); character.DeselectCharacter();
character.SelectedConstruction = null; character.SelectedConstruction = null;
+7 -4
View File
@@ -440,7 +440,7 @@ namespace Barotrauma
{ {
get get
{ {
return isDead || Stun > 0.0f || LockHands || IsUnconscious; return isDead || Stun > 0.0f || LockHands || IsUnconscious || Removed;
} }
} }
@@ -932,7 +932,7 @@ namespace Barotrauma
if (selectedConstruction != null && IsKeyDown(InputType.Aim)) selectedConstruction.SecondaryUse(deltaTime, this); if (selectedConstruction != null && IsKeyDown(InputType.Aim)) selectedConstruction.SecondaryUse(deltaTime, this);
} }
if (selectedCharacter!=null) if (selectedCharacter != null)
{ {
if (Vector2.DistanceSquared(selectedCharacter.WorldPosition, WorldPosition) > 90000.0f || !selectedCharacter.CanBeSelected) if (Vector2.DistanceSquared(selectedCharacter.WorldPosition, WorldPosition) > 90000.0f || !selectedCharacter.CanBeSelected)
{ {
@@ -1124,9 +1124,12 @@ namespace Barotrauma
{ {
if (selectedCharacter == null) return; if (selectedCharacter == null) return;
foreach (Limb limb in selectedCharacter.AnimController.Limbs) if (SelectedCharacter.AnimController != null)
{ {
if (limb.pullJoint != null) limb.pullJoint.Enabled = false; foreach (Limb limb in selectedCharacter.AnimController.Limbs)
{
if (limb.pullJoint != null) limb.pullJoint.Enabled = false;
}
} }
selectedCharacter = null; selectedCharacter = null;