diff --git a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveIdle.cs b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveIdle.cs index 0e9d9ea34..9bd5f267f 100644 --- a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveIdle.cs +++ b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveIdle.cs @@ -31,6 +31,11 @@ namespace Barotrauma var pathSteering = character.AIController.SteeringManager as IndoorsSteeringManager; + if (pathSteering==null) + { + return; + } + if (newTargetTimer <= 0.0f) { currentTarget = FindRandomTarget(); diff --git a/Subsurface/Source/Items/Components/Door.cs b/Subsurface/Source/Items/Components/Door.cs index 1bacc26f9..6933fb1cc 100644 --- a/Subsurface/Source/Items/Components/Door.cs +++ b/Subsurface/Source/Items/Components/Door.cs @@ -317,7 +317,7 @@ namespace Barotrauma.Items.Components return; } - Vector2 pos = new Vector2(item.Rect.Center.X, -item.Rect.Y); + Vector2 pos = new Vector2(item.Rect.Center.X, item.Rect.Y); if (item.Submarine != null) pos += item.Submarine.Position; pos.Y = -pos.Y; diff --git a/Subsurface/Source/Map/SubmarineBody.cs b/Subsurface/Source/Map/SubmarineBody.cs index 0320806bf..4c5b32f16 100644 --- a/Subsurface/Source/Map/SubmarineBody.cs +++ b/Subsurface/Source/Map/SubmarineBody.cs @@ -389,9 +389,19 @@ namespace Barotrauma Limb limb = f2.Body.UserData as Limb; if (limb!=null && limb.character.Submarine==null) { - var ragdoll = limb.character.AnimController; - ragdoll.SetPosition(ragdoll.RefLimb.Position - body.Position); - limb.character.Submarine = submarine; + Vector2 normal2; + FixedArray2 points; + contact.GetWorldManifold(out normal2, out points); + + if (Submarine.PickBody(points[0] - ConvertUnits.ToSimUnits(submarine.Position), points[0] - ConvertUnits.ToSimUnits(submarine.Position) - normal2, null, Physics.CollisionWall) != null) + { + return true; + } + + return false; + //var ragdoll = limb.character.AnimController; + //ragdoll.SetPosition(ragdoll.RefLimb.Position - body.Position); + //limb.character.Submarine = submarine; } return true; diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index aa21a3b5c..ba8cfe073 100644 Binary files a/Subsurface_Solution.v12.suo and b/Subsurface_Solution.v12.suo differ