diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/PhysicsModules/Ode/OdeScene.cs | 21 |
2 files changed, 21 insertions, 2 deletions
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs b/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs index f535c41..aaf90f2 100644 --- a/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs +++ b/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs | |||
@@ -279,7 +279,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
279 | 279 | ||
280 | public override bool IsPhysical | 280 | public override bool IsPhysical |
281 | { | 281 | { |
282 | get { return false; } | 282 | get { return m_isPhysical; } |
283 | set { return; } | 283 | set { return; } |
284 | } | 284 | } |
285 | 285 | ||
diff --git a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs index 7ba2083..e23cca6 100644 --- a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs +++ b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs | |||
@@ -1442,9 +1442,28 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1442 | obj2LocalID = 0; | 1442 | obj2LocalID = 0; |
1443 | //ctype = 0; | 1443 | //ctype = 0; |
1444 | //cStartStop = 0; | 1444 | //cStartStop = 0; |
1445 | if (!p2.SubscribedEvents() && !p1.SubscribedEvents()) | 1445 | // if (!p2.SubscribedEvents() && !p1.SubscribedEvents()) |
1446 | // return; | ||
1447 | bool p1events = p1.SubscribedEvents(); | ||
1448 | bool p2events = p2.SubscribedEvents(); | ||
1449 | |||
1450 | if (p1.IsVolumeDtc) | ||
1451 | p2events = false; | ||
1452 | if (p2.IsVolumeDtc) | ||
1453 | p1events = false; | ||
1454 | |||
1455 | if (!p2events && !p1events) | ||
1446 | return; | 1456 | return; |
1447 | 1457 | ||
1458 | Vector3 vel = Vector3.Zero; | ||
1459 | if (p2 != null && p2.IsPhysical) | ||
1460 | vel = p2.Velocity; | ||
1461 | |||
1462 | if (p1 != null && p1.IsPhysical) | ||
1463 | vel -= p1.Velocity; | ||
1464 | |||
1465 | contact.RelativeSpeed = Vector3.Dot(vel, contact.SurfaceNormal); | ||
1466 | |||
1448 | switch ((ActorTypes)p2.PhysicsActorType) | 1467 | switch ((ActorTypes)p2.PhysicsActorType) |
1449 | { | 1468 | { |
1450 | case ActorTypes.Agent: | 1469 | case ActorTypes.Agent: |