aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/PhysicsModules/SharedBase/PhysicsActor.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/OpenSim/Region/PhysicsModules/SharedBase/PhysicsActor.cs b/OpenSim/Region/PhysicsModules/SharedBase/PhysicsActor.cs
index 393afae..f82e289 100644
--- a/OpenSim/Region/PhysicsModules/SharedBase/PhysicsActor.cs
+++ b/OpenSim/Region/PhysicsModules/SharedBase/PhysicsActor.cs
@@ -126,9 +126,20 @@ namespace OpenSim.Region.PhysicsModules.SharedBase
126 m_objCollisionList.Add(localID, contact); 126 m_objCollisionList.Add(localID, contact);
127 } 127 }
128 else 128 else
129 { 129 {
130 float lastVel = m_objCollisionList[localID].RelativeSpeed;
130 if (m_objCollisionList[localID].PenetrationDepth < contact.PenetrationDepth) 131 if (m_objCollisionList[localID].PenetrationDepth < contact.PenetrationDepth)
132 {
133 if(Math.Abs(lastVel) > Math.Abs(contact.RelativeSpeed))
134 contact.RelativeSpeed = lastVel;
131 m_objCollisionList[localID] = contact; 135 m_objCollisionList[localID] = contact;
136 }
137 else if(Math.Abs(lastVel) < Math.Abs(contact.RelativeSpeed))
138 {
139 ContactPoint tmp = m_objCollisionList[localID];
140 tmp.RelativeSpeed = contact.RelativeSpeed;
141 m_objCollisionList[localID] = tmp;
142 }
132 } 143 }
133 } 144 }
134 145