From 3834000778b121a963ddbda8d5c2a9a2cd554569 Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 28 Jan 2011 03:35:59 +0100 Subject: [PATCH] Change the way ban lines work --- .../World/Land/LandManagementModule.cs | 16 ++++++++++++---- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 9bcaf327d4..4f24415364 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -367,10 +367,18 @@ namespace OpenSim.Region.CoreModules.World.Land private void ForceAvatarToPosition(ScenePresence avatar, Vector3? position) { if (m_scene.Permissions.IsGod(avatar.UUID)) return; - if (position.HasValue) - { - forcedPosition[avatar.ControllingClient.AgentId] = (Vector3)position; - } + + if (!position.HasValue) + return; + + bool isFlying = avatar.PhysicsActor.Flying; + avatar.RemoveFromPhysicalScene(); + + avatar.AbsolutePosition = (Vector3)position; + + avatar.AddToPhysicalScene(isFlying); + + forcedPosition[avatar.ControllingClient.AgentId] = (Vector3)position; } public void SendYouAreRestrictedNotice(ScenePresence avatar) diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index a1ca9c512a..1d7bf4c42f 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -1128,7 +1128,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// Removes physics plugin scene representation of this agent if it exists. /// - private void RemoveFromPhysicalScene() + public void RemoveFromPhysicalScene() { if (PhysicsActor != null) {