diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 19c068a..b735f36 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -868,6 +868,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
868 | // Let's send a full update of the agent. This is a synchronous call. | 868 | // Let's send a full update of the agent. This is a synchronous call. |
869 | AgentData agent = new AgentData(); | 869 | AgentData agent = new AgentData(); |
870 | sp.CopyTo(agent); | 870 | sp.CopyTo(agent); |
871 | |||
872 | if ((teleportFlags & (uint)TeleportFlags.IsFlying) != 0) | ||
873 | agent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; | ||
874 | |||
871 | agent.Position = agentCircuit.startpos; | 875 | agent.Position = agentCircuit.startpos; |
872 | SetCallbackURL(agent, sp.Scene.RegionInfo); | 876 | SetCallbackURL(agent, sp.Scene.RegionInfo); |
873 | 877 | ||
@@ -1109,6 +1113,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1109 | AgentData agent = new AgentData(); | 1113 | AgentData agent = new AgentData(); |
1110 | sp.CopyTo(agent); | 1114 | sp.CopyTo(agent); |
1111 | agent.Position = agentCircuit.startpos; | 1115 | agent.Position = agentCircuit.startpos; |
1116 | |||
1117 | if ((teleportFlags & (uint)TeleportFlags.IsFlying) != 0) | ||
1118 | agent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; | ||
1119 | |||
1112 | agent.SenderWantsToWaitForRoot = true; | 1120 | agent.SenderWantsToWaitForRoot = true; |
1113 | //SetCallbackURL(agent, sp.Scene.RegionInfo); | 1121 | //SetCallbackURL(agent, sp.Scene.RegionInfo); |
1114 | 1122 | ||
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index fd1bab6..dba95c7 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -4268,10 +4268,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
4268 | GodLevel = cAgent.GodLevel; | 4268 | GodLevel = cAgent.GodLevel; |
4269 | SetAlwaysRun = cAgent.AlwaysRun; | 4269 | SetAlwaysRun = cAgent.AlwaysRun; |
4270 | 4270 | ||
4271 | bool isFlying = ((m_AgentControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0); | ||
4272 | |||
4271 | Appearance = new AvatarAppearance(cAgent.Appearance); | 4273 | Appearance = new AvatarAppearance(cAgent.Appearance); |
4272 | if (PhysicsActor != null) | 4274 | if (PhysicsActor != null) |
4273 | { | 4275 | { |
4274 | bool isFlying = Flying; | ||
4275 | RemoveFromPhysicalScene(); | 4276 | RemoveFromPhysicalScene(); |
4276 | AddToPhysicalScene(isFlying); | 4277 | AddToPhysicalScene(isFlying); |
4277 | } | 4278 | } |