aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs17
2 files changed, 18 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index d0156e1..9060bf2 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -1195,7 +1195,8 @@ namespace OpenSim.Region.Framework.Scenes
1195 } 1195 }
1196 agent.RestoreInCurrentScene(); 1196 agent.RestoreInCurrentScene();
1197 } 1197 }
1198 agent.IsInTransit = false; 1198 // In any case
1199 agent.NotInTransit();
1199 1200
1200 //m_log.DebugFormat("[SCENE COMM]: Crossing agent {0} {1} completed.", agent.Firstname, agent.Lastname); 1201 //m_log.DebugFormat("[SCENE COMM]: Crossing agent {0} {1} completed.", agent.Firstname, agent.Lastname);
1201 } 1202 }
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index df6c97a..fc883db 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -934,6 +934,12 @@ namespace OpenSim.Region.Framework.Scenes
934 Velocity = new Vector3(0, 0, 0); 934 Velocity = new Vector3(0, 0, 0);
935 AbsolutePosition = pos; 935 AbsolutePosition = pos;
936 AddToPhysicalScene(isFlying); 936 AddToPhysicalScene(isFlying);
937 if (m_appearance != null)
938 {
939 if (m_appearance.AvatarHeight > 0)
940 SetHeight(m_appearance.AvatarHeight);
941 }
942
937 SendTerseUpdateToAllClients(); 943 SendTerseUpdateToAllClients();
938 } 944 }
939 945
@@ -2438,14 +2444,23 @@ namespace OpenSim.Region.Framework.Scenes
2438 /// </summary> 2444 /// </summary>
2439 protected void CrossToNewRegion() 2445 protected void CrossToNewRegion()
2440 { 2446 {
2447 InTransit();
2448 m_scene.CrossAgentToNewRegion(this, m_physicsActor.Flying);
2449 }
2450
2451 public void InTransit()
2452 {
2441 m_inTransit = true; 2453 m_inTransit = true;
2442 2454
2443 if ((m_physicsActor != null) && m_physicsActor.Flying) 2455 if ((m_physicsActor != null) && m_physicsActor.Flying)
2444 m_AgentControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; 2456 m_AgentControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
2445 else if ((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0) 2457 else if ((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0)
2446 m_AgentControlFlags &= ~(uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; 2458 m_AgentControlFlags &= ~(uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
2459 }
2447 2460
2448 m_scene.CrossAgentToNewRegion(this, m_physicsActor.Flying); 2461 public void NotInTransit()
2462 {
2463 m_inTransit = false;
2449 } 2464 }
2450 2465
2451 public void RestoreInCurrentScene() 2466 public void RestoreInCurrentScene()