diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 17 |
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() |