Fixed some inconsistencies and oddities in physics-handling code
I'm not sure if this fixes or breaks anything, but it's worth a shot.
This commit is contained in:
@@ -470,7 +470,7 @@ namespace Barotrauma
|
||||
}
|
||||
else
|
||||
{
|
||||
body.FarseerBody.Enabled = false;
|
||||
body.Enabled = false;
|
||||
}
|
||||
|
||||
if ((newPosition - SimPosition).Length() > body.LinearVelocity.Length() * 2.0f)
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace Barotrauma
|
||||
}
|
||||
|
||||
//re-enable collider
|
||||
if (!Collider.FarseerBody.Enabled)
|
||||
if (!Collider.Enabled)
|
||||
{
|
||||
var lowestLimb = FindLowestLimb();
|
||||
|
||||
@@ -87,7 +87,7 @@ namespace Barotrauma
|
||||
Math.Max(lowestLimb.SimPosition.Y + (Collider.radius + Collider.height / 2), Collider.SimPosition.Y)),
|
||||
0.0f);
|
||||
|
||||
Collider.FarseerBody.Enabled = true;
|
||||
Collider.Enabled = true;
|
||||
}
|
||||
|
||||
ResetPullJoints();
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace Barotrauma
|
||||
|
||||
|
||||
//re-enable collider
|
||||
if (!Collider.FarseerBody.Enabled)
|
||||
if (!Collider.Enabled)
|
||||
{
|
||||
var lowestLimb = FindLowestLimb();
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace Barotrauma
|
||||
Collider.Rotation);
|
||||
|
||||
Collider.FarseerBody.ResetDynamics();
|
||||
Collider.FarseerBody.Enabled = true;
|
||||
Collider.Enabled = true;
|
||||
}
|
||||
|
||||
if (swimming)
|
||||
|
||||
@@ -1469,5 +1469,12 @@ namespace Barotrauma
|
||||
list.Remove(this);
|
||||
}
|
||||
|
||||
public static void RemoveAll()
|
||||
{
|
||||
for (int i = list.Count - 1; i >= 0; i--)
|
||||
{
|
||||
list[i].Remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1605,7 +1605,7 @@ namespace Barotrauma
|
||||
msg.Write(body.FarseerBody.Awake);
|
||||
if (body.FarseerBody.Awake)
|
||||
{
|
||||
body.FarseerBody.Enabled = true;
|
||||
body.Enabled = true;
|
||||
msg.WriteRangedSingle(MathHelper.Clamp(body.LinearVelocity.X, -MaxVel, MaxVel), -MaxVel, MaxVel, 12);
|
||||
msg.WriteRangedSingle(MathHelper.Clamp(body.LinearVelocity.Y, -MaxVel, MaxVel), -MaxVel, MaxVel, 12);
|
||||
}
|
||||
|
||||
@@ -835,6 +835,7 @@ namespace Barotrauma
|
||||
{
|
||||
StairDirection = StairDirection == Direction.Left ? Direction.Right : Direction.Left;
|
||||
bodies.ForEach(b => GameMain.World.RemoveBody(b));
|
||||
bodies.Clear();
|
||||
|
||||
CreateStairBodies();
|
||||
}
|
||||
|
||||
@@ -1208,9 +1208,9 @@ namespace Barotrauma
|
||||
Item.ItemList.Clear();
|
||||
}
|
||||
|
||||
PhysicsBody.RemoveAll();
|
||||
Ragdoll.RemoveAll();
|
||||
|
||||
Ragdoll.list.Clear();
|
||||
PhysicsBody.RemoveAll();
|
||||
|
||||
GameMain.World.Clear();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user