diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index ba3aaaed61..22860b1297 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -1619,8 +1619,8 @@ namespace OpenSim.Region.Framework.Scenes public void TeleportWithMomentum(Vector3 pos, Vector3? v) { - if(!CheckLocalTPLandingPoint(ref pos)) - return; + if(!CheckLocalTPLandingPoint(ref pos)) + return; if (ParentID != (uint)0) StandUp(); @@ -1642,6 +1642,20 @@ namespace OpenSim.Region.Framework.Scenes SendTerseUpdateToAllClients(); } + public void TeleportOnEject(Vector3 pos) + { + if (ParentID != (uint)0) + StandUp(); + + bool isFlying = Flying; + RemoveFromPhysicalScene(); + + AbsolutePosition = pos; + + AddToPhysicalScene(isFlying); + SendTerseUpdateToAllClients(); + } + public void avnLocalTeleport(Vector3 newpos, Vector3? newvel, bool rotateToVelXY) { if(!CheckLocalTPLandingPoint(ref newpos))