From 21f80b6507077b7f554ff43b71408c484c515298 Mon Sep 17 00:00:00 2001 From: "Teravus Ovares (Dan Olivares)" Date: Sun, 22 Nov 2009 22:04:52 -0500 Subject: [PATCH] * Adds a test for if the collision is at the bottom of the capsule on avatar. This prevents the 'double jump' capability that's been occurring for ages when avatar collide with prim on the side. --- OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 981cf430ce..e6b31ca6fa 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs @@ -835,7 +835,18 @@ namespace OpenSim.Region.Physics.OdePlugin // allows us to have different settings // We only need to test p2 for 'jump crouch purposes' - p2.IsColliding = true; + if (p2 is OdeCharacter) + { + // Testing if the collision is at the feet of the avatar + + //m_log.DebugFormat("[PHYSICS]: {0} - {1} - {2} - {3}", curContact.pos.Z, p2.Position.Z, (p2.Position.Z - curContact.pos.Z), (p2.Size.Z * 0.6f)); + if ((p2.Position.Z - curContact.pos.Z) > (p2.Size.Z * 0.6f)) + p2.IsColliding = true; + } + else + { + p2.IsColliding = true; + } //if ((framecount % m_returncollisions) == 0)