diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/OdePlugin.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index a765878..0cbd4d6 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -127,7 +127,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
127 | contact.surface.bounce = 0.2f; | 127 | contact.surface.bounce = 0.2f; |
128 | 128 | ||
129 | TerrainContact.surface.mode |= d.ContactFlags.SoftERP; | 129 | TerrainContact.surface.mode |= d.ContactFlags.SoftERP; |
130 | TerrainContact.surface.mu = 250.0f; | 130 | TerrainContact.surface.mu = 550.0f; |
131 | TerrainContact.surface.bounce = 0.1f; | 131 | TerrainContact.surface.bounce = 0.1f; |
132 | TerrainContact.surface.soft_erp = 0.1025f; | 132 | TerrainContact.surface.soft_erp = 0.1025f; |
133 | 133 | ||
@@ -255,7 +255,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
255 | PhysicsActor p1; | 255 | PhysicsActor p1; |
256 | PhysicsActor p2; | 256 | PhysicsActor p2; |
257 | 257 | ||
258 | if (!actor_name_map.TryGetValue(g2, out p1)) | 258 | if (!actor_name_map.TryGetValue(g1, out p1)) |
259 | { | 259 | { |
260 | p1 = PANull; | 260 | p1 = PANull; |
261 | } | 261 | } |
@@ -267,16 +267,22 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
267 | // We only need to test p2 for 'jump crouch purposes' | 267 | // We only need to test p2 for 'jump crouch purposes' |
268 | p2.IsColliding = true; | 268 | p2.IsColliding = true; |
269 | 269 | ||
270 | |||
271 | |||
270 | switch(p1.PhysicsActorType) { | 272 | switch(p1.PhysicsActorType) { |
271 | case (int)ActorTypes.Agent: | 273 | case (int)ActorTypes.Agent: |
272 | p2.CollidingObj = true; | 274 | p2.CollidingObj = true; |
273 | break; | 275 | break; |
274 | case (int)ActorTypes.Prim: | 276 | case (int)ActorTypes.Prim: |
275 | p2.CollidingObj = true; | 277 | if (p2.Velocity.X >0 || p2.Velocity.Y > 0 || p2.Velocity.Z > 0) |
278 | p2.CollidingObj = true; | ||
276 | break; | 279 | break; |
277 | case (int)ActorTypes.Unknown: | 280 | case (int)ActorTypes.Unknown: |
278 | p2.CollidingGround = true; | 281 | p2.CollidingGround = true; |
279 | break; | 282 | break; |
283 | default: | ||
284 | p2.CollidingGround = true; | ||
285 | break; | ||
280 | } | 286 | } |
281 | 287 | ||
282 | if (name1 == "Terrain" || name2 == "Terrain") | 288 | if (name1 == "Terrain" || name2 == "Terrain") |