aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/PhysicsModules
diff options
context:
space:
mode:
authorUbitUmarov2016-07-24 21:16:14 +0100
committerUbitUmarov2016-07-24 21:16:14 +0100
commit574b97d93d3118fb6f6bd0113711551fcc5712cb (patch)
tree005104bac458109d97c75b6a5564d8b77c46462e /OpenSim/Region/PhysicsModules
parent add a missing update to avatar damage Invulnerable (diff)
downloadopensim-SC_OLD-574b97d93d3118fb6f6bd0113711551fcc5712cb.zip
opensim-SC_OLD-574b97d93d3118fb6f6bd0113711551fcc5712cb.tar.gz
opensim-SC_OLD-574b97d93d3118fb6f6bd0113711551fcc5712cb.tar.bz2
opensim-SC_OLD-574b97d93d3118fb6f6bd0113711551fcc5712cb.tar.xz
ubOde fix contact relative velocity sign
Diffstat (limited to 'OpenSim/Region/PhysicsModules')
-rw-r--r--OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs61
1 files changed, 31 insertions, 30 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
index e0644e3..a49c44c 100644
--- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
+++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
@@ -1079,44 +1079,45 @@ namespace OpenSim.Region.PhysicsModule.ubOde
1079 { 1079 {
1080 case ActorTypes.Agent: 1080 case ActorTypes.Agent:
1081 case ActorTypes.Prim: 1081 case ActorTypes.Prim:
1082 {
1083 switch ((ActorTypes)p2.PhysicsActorType)
1082 { 1084 {
1083 switch ((ActorTypes)p2.PhysicsActorType) 1085 case ActorTypes.Agent:
1084 { 1086 case ActorTypes.Prim:
1085 case ActorTypes.Agent: 1087 if (p2events)
1086 case ActorTypes.Prim: 1088 {
1087 if (p2events) 1089 AddCollisionEventReporting(p2);
1088 { 1090 p2.AddCollisionEvent(p1.ParentActor.LocalID, contact);
1089 AddCollisionEventReporting(p2); 1091 }
1090 p2.AddCollisionEvent(p1.ParentActor.LocalID, contact); 1092 obj2LocalID = p2.ParentActor.LocalID;
1091 } 1093 break;
1092 obj2LocalID = p2.ParentActor.LocalID;
1093 break;
1094 1094
1095 case ActorTypes.Ground: 1095 case ActorTypes.Ground:
1096 case ActorTypes.Unknown: 1096 case ActorTypes.Unknown:
1097 default: 1097 default:
1098 obj2LocalID = 0; 1098 obj2LocalID = 0;
1099 break; 1099 break;
1100 } 1100 }
1101 if (p1events) 1101 if (p1events)
1102 { 1102 {
1103 contact.SurfaceNormal = -contact.SurfaceNormal; 1103 contact.SurfaceNormal = -contact.SurfaceNormal;
1104 AddCollisionEventReporting(p1); 1104 contact.RelativeSpeed = -contact.RelativeSpeed;
1105 p1.AddCollisionEvent(obj2LocalID, contact); 1105 AddCollisionEventReporting(p1);
1106 } 1106 p1.AddCollisionEvent(obj2LocalID, contact);
1107 break;
1108 } 1107 }
1108 break;
1109 }
1109 case ActorTypes.Ground: 1110 case ActorTypes.Ground:
1110 case ActorTypes.Unknown: 1111 case ActorTypes.Unknown:
1111 default: 1112 default:
1113 {
1114 if (p2events && !p2.IsVolumeDtc)
1112 { 1115 {
1113 if (p2events && !p2.IsVolumeDtc) 1116 AddCollisionEventReporting(p2);
1114 { 1117 p2.AddCollisionEvent(0, contact);
1115 AddCollisionEventReporting(p2);
1116 p2.AddCollisionEvent(0, contact);
1117 }
1118 break;
1119 } 1118 }
1119 break;
1120 }
1120 } 1121 }
1121 } 1122 }
1122 1123