diff options
Diffstat (limited to 'OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 61 |
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 | ||