aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs27
1 files changed, 25 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
index 7367719..dd912da 100644
--- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
+++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
@@ -620,8 +620,6 @@ namespace OpenSim.Region.Physics.OdePlugin
620 return d.JointCreateContactPtr(world, contactgroup, contact); 620 return d.JointCreateContactPtr(world, contactgroup, contact);
621 } 621 }
622 622
623
624
625 private bool GetCurContactGeom(int index, ref d.ContactGeom newcontactgeom) 623 private bool GetCurContactGeom(int index, ref d.ContactGeom newcontactgeom)
626 { 624 {
627 if (ContactgeomsArray == IntPtr.Zero || index >= contactsPerCollision) 625 if (ContactgeomsArray == IntPtr.Zero || index >= contactsPerCollision)
@@ -1153,6 +1151,31 @@ namespace OpenSim.Region.Physics.OdePlugin
1153 } 1151 }
1154 } 1152 }
1155 break; 1153 break;
1154 case ActorTypes.Ground:
1155 case ActorTypes.Unknown:
1156 default:
1157 switch ((ActorTypes)p2.PhysicsActorType)
1158 {
1159 case ActorTypes.Agent:
1160 if (p2 is OdeCharacter)
1161 {
1162 cc2 = (OdeCharacter)p2;
1163 obj2LocalID = cc2.m_localID;
1164 if (p2events)
1165 cc2.AddCollisionEvent(0, contact);
1166 }
1167 break;
1168 case ActorTypes.Prim:
1169 if (p2 is OdePrim)
1170 {
1171 cp2 = (OdePrim)p2;
1172 obj2LocalID = cp2.m_localID;
1173 if (p2events)
1174 cp2.AddCollisionEvent(0, contact);
1175 }
1176 break;
1177 }
1178 break;
1156 } 1179 }
1157 } 1180 }
1158 1181