aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs')
-rw-r--r--OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs15
1 files changed, 10 insertions, 5 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
index 0837bfb..844d02b 100644
--- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
+++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
@@ -951,7 +951,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde
951 SharedTmpcontact.surface.mu = mu; 951 SharedTmpcontact.surface.mu = mu;
952 SharedTmpcontact.surface.bounce = bounce; 952 SharedTmpcontact.surface.bounce = bounce;
953 953
954 bool noskip = true; 954 d.ContactGeom altContact = new d.ContactGeom();
955 bool useAltcontact;
956 bool noskip;
955 957
956 if(dop1ava || dop2ava) 958 if(dop1ava || dop2ava)
957 smoothMesh = false; 959 smoothMesh = false;
@@ -959,10 +961,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde
959 while (true) 961 while (true)
960 { 962 {
961 noskip = true; 963 noskip = true;
964 useAltcontact = false;
962 965
963 if (dop1ava) 966 if (dop1ava)
964 { 967 {
965 if ((((OdeCharacter)p1).Collide(g1, g2, false, ref curContact, ref FeetCollision))) 968 if ((((OdeCharacter)p1).Collide(g1, g2, false, ref curContact, ref altContact , ref useAltcontact, ref FeetCollision)))
966 { 969 {
967 if (p2.PhysicsActorType == (int)ActorTypes.Agent) 970 if (p2.PhysicsActorType == (int)ActorTypes.Agent)
968 { 971 {
@@ -977,7 +980,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde
977 } 980 }
978 else if (dop2ava) 981 else if (dop2ava)
979 { 982 {
980 if ((((OdeCharacter)p2).Collide(g2, g1, true, ref curContact, ref FeetCollision))) 983 if ((((OdeCharacter)p2).Collide(g2, g1, true, ref curContact, ref altContact , ref useAltcontact, ref FeetCollision)))
981 { 984 {
982 if (p1.PhysicsActorType == (int)ActorTypes.Agent) 985 if (p1.PhysicsActorType == (int)ActorTypes.Agent)
983 { 986 {
@@ -993,8 +996,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde
993 996
994 if (noskip) 997 if (noskip)
995 { 998 {
996 Joint = CreateContacJoint(ref curContact,smoothMesh); 999 if(useAltcontact)
997 1000 Joint = CreateContacJoint(ref altContact,smoothMesh);
1001 else
1002 Joint = CreateContacJoint(ref curContact,smoothMesh);
998 if (Joint == IntPtr.Zero) 1003 if (Joint == IntPtr.Zero)
999 break; 1004 break;
1000 1005