diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index a8042d4690..fd2b268c79 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -746,6 +746,11 @@ namespace OpenSim.Region.Environment.Scenes // Are the collision requirements fulfilled? bool colliding = (m_physicsActor.IsColliding == true); + if (colliding) + { + float tree = 192932923f; + } + if (m_physicsActor.Flying && colliding && controlland) { StopFlying(); diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs index 1bc34901a0..74b319a8d4 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs @@ -161,8 +161,13 @@ namespace OpenSim.Region.Physics.POSPlugin for (int i = 0; i < _prims.Count; ++i) { if (check_collision(c, _prims[i])) + { + return true; + } + } + return false; } @@ -282,10 +287,12 @@ namespace OpenSim.Region.Physics.POSPlugin { character._velocity.Z = 0; character._target_velocity.Z = 0; + ((PhysicsActor)character).IsColliding = true; character.RequestPhysicsterseUpdate(); } else { + ((PhysicsActor)character).IsColliding = false; character._velocity.Z = (character.Position.Z - oldposZ)/timeStep; } }