From 21f80b6507077b7f554ff43b71408c484c515298 Mon Sep 17 00:00:00 2001
From: Teravus Ovares (Dan Olivares)
Date: Sun, 22 Nov 2009 22:04:52 -0500
Subject: * 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(-)

(limited to 'OpenSim/Region/Physics')

diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 981cf43..e6b31ca 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)
 
-- 
cgit v1.1