diff options
Diffstat (limited to 'OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index 6279d6a..4a82f77 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |||
@@ -186,7 +186,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
186 | 186 | ||
187 | float frictionMovementMult = 0.8f; | 187 | float frictionMovementMult = 0.8f; |
188 | 188 | ||
189 | float TerrainBounce = 0.1f; | 189 | float TerrainBounce = 0.001f; |
190 | float TerrainFriction = 0.3f; | 190 | float TerrainFriction = 0.3f; |
191 | 191 | ||
192 | public float AvatarFriction = 0;// 0.9f * 0.5f; | 192 | public float AvatarFriction = 0;// 0.9f * 0.5f; |
@@ -1083,9 +1083,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1083 | case ActorTypes.Prim: | 1083 | case ActorTypes.Prim: |
1084 | if (p2events) | 1084 | if (p2events) |
1085 | { | 1085 | { |
1086 | AddCollisionEventReporting(p2); | 1086 | //AddCollisionEventReporting(p2); |
1087 | p2.AddCollisionEvent(p1.ParentActor.LocalID, contact); | 1087 | p2.AddCollisionEvent(p1.ParentActor.LocalID, contact); |
1088 | } | 1088 | } |
1089 | else if(p1.IsVolumeDtc) | ||
1090 | p2.AddVDTCCollisionEvent(p1.ParentActor.LocalID, contact); | ||
1091 | |||
1089 | obj2LocalID = p2.ParentActor.LocalID; | 1092 | obj2LocalID = p2.ParentActor.LocalID; |
1090 | break; | 1093 | break; |
1091 | 1094 | ||
@@ -1099,9 +1102,16 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1099 | { | 1102 | { |
1100 | contact.SurfaceNormal = -contact.SurfaceNormal; | 1103 | contact.SurfaceNormal = -contact.SurfaceNormal; |
1101 | contact.RelativeSpeed = -contact.RelativeSpeed; | 1104 | contact.RelativeSpeed = -contact.RelativeSpeed; |
1102 | AddCollisionEventReporting(p1); | 1105 | //AddCollisionEventReporting(p1); |
1103 | p1.AddCollisionEvent(obj2LocalID, contact); | 1106 | p1.AddCollisionEvent(obj2LocalID, contact); |
1104 | } | 1107 | } |
1108 | else if(p2.IsVolumeDtc) | ||
1109 | { | ||
1110 | contact.SurfaceNormal = -contact.SurfaceNormal; | ||
1111 | contact.RelativeSpeed = -contact.RelativeSpeed; | ||
1112 | //AddCollisionEventReporting(p1); | ||
1113 | p1.AddVDTCCollisionEvent(obj2LocalID, contact); | ||
1114 | } | ||
1105 | break; | 1115 | break; |
1106 | } | 1116 | } |
1107 | case ActorTypes.Ground: | 1117 | case ActorTypes.Ground: |
@@ -1110,7 +1120,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1110 | { | 1120 | { |
1111 | if (p2events && !p2.IsVolumeDtc) | 1121 | if (p2events && !p2.IsVolumeDtc) |
1112 | { | 1122 | { |
1113 | AddCollisionEventReporting(p2); | 1123 | //AddCollisionEventReporting(p2); |
1114 | p2.AddCollisionEvent(0, contact); | 1124 | p2.AddCollisionEvent(0, contact); |
1115 | } | 1125 | } |
1116 | break; | 1126 | break; |