diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index 8a1141fd11..bb0db0d5f0 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -1,4 +1,4 @@ - <<<>>>>The following people have contributed to OpenSim (Thank you +<<<>>>>The following people have contributed to OpenSim (Thank you for your effort!) = Current OpenSim Developers (in very rough order of appearance) = diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index dce20c14cd..42b6bc56ea 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -634,10 +634,18 @@ namespace OpenSim.Region.Framework.Scenes ScenePresence agent = icon.EndInvoke(iar); //// If the cross was successful, this agent is a child agent - //if (agent.IsChildAgent) - // agent.Reset(); - //else // Not successful - // agent.RestoreInCurrentScene(); + if (agent.IsChildAgent) + { + if (agent.ParentUUID != UUID.Zero) + { + agent.ParentPart = null; + agent.ParentPosition = Vector3.Zero; + } + } + +// agent.Reset(); +// else // Not successful +// agent.RestoreInCurrentScene(); // In any case agent.IsInTransit = false; diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs index 7b232c185b..9fefc4e190 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs @@ -793,10 +793,7 @@ namespace OpenSim.Region.Physics.OdePlugin float perr; // default to global but don't go underground - if (t < m_VhoverHeight) - perr = m_VhoverHeight - pos.Z; - else - perr = t - pos.Z; ; + perr = m_VhoverHeight - pos.Z; if ((m_flags & VehicleFlag.HOVER_GLOBAL_HEIGHT) == 0) { @@ -817,9 +814,13 @@ namespace OpenSim.Region.Physics.OdePlugin perr += w; } } + else if (t > m_VhoverHeight) + perr = t - pos.Z; ; + if ((m_flags & VehicleFlag.HOVER_UP_ONLY) == 0 || perr > 0) { - force.Z += (perr / m_VhoverTimescale / m_VhoverTimescale - curVel.Z * m_VhoverEfficiency) / m_timestep; + // force.Z += (perr / m_VhoverTimescale / m_VhoverTimescale - curVel.Z * m_VhoverEfficiency) / m_timestep; + force.Z += (perr / m_VhoverTimescale - curVel.Z * m_VhoverEfficiency);// * m_invtimestep); force.Z += _pParentScene.gravityz * (1f - m_VehicleBuoyancy); } else // no buoyancy