diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index c4876b3..48bf6f3 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -294,10 +294,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
294 | /// </summary> | 294 | /// </summary> |
295 | private Vector3 posLastSignificantMove; | 295 | private Vector3 posLastSignificantMove; |
296 | 296 | ||
297 | // For teleports and crossings callbacks | 297 | #region For teleports and crossings callbacks |
298 | |||
299 | /// <summary> | ||
300 | /// In the V1 teleport protocol, the destination simulator sends ReleaseAgent to this address. | ||
301 | /// </summary> | ||
298 | string m_callbackURI; | 302 | string m_callbackURI; |
303 | |||
299 | UUID m_originRegionID; | 304 | UUID m_originRegionID; |
300 | 305 | ||
306 | /// <summary> | ||
307 | /// Used by the entity transfer module to signal when the presence should not be closed because a subsequent | ||
308 | /// teleport is reusing the connection. | ||
309 | /// </summary> | ||
310 | /// <remarks>May be refactored or move somewhere else soon.</remarks> | ||
311 | public bool DoNotCloseAfterTeleport { get; set; } | ||
312 | |||
313 | #endregion | ||
314 | |||
301 | /// <value> | 315 | /// <value> |
302 | /// Script engines present in the scene | 316 | /// Script engines present in the scene |
303 | /// </value> | 317 | /// </value> |
@@ -764,13 +778,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
764 | } | 778 | } |
765 | } | 779 | } |
766 | 780 | ||
767 | /// <summary> | ||
768 | /// Used by the entity transfer module to signal when the presence should not be closed because a subsequent | ||
769 | /// teleport is reusing the connection. | ||
770 | /// </summary> | ||
771 | /// <remarks>May be refactored or move somewhere else soon.</remarks> | ||
772 | public bool DoNotCloseAfterTeleport { get; set; } | ||
773 | |||
774 | private float m_speedModifier = 1.0f; | 781 | private float m_speedModifier = 1.0f; |
775 | 782 | ||
776 | public float SpeedModifier | 783 | public float SpeedModifier |
@@ -1516,14 +1523,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
1516 | int count = 20; | 1523 | int count = 20; |
1517 | while (m_originRegionID.Equals(UUID.Zero) && count-- > 0) | 1524 | while (m_originRegionID.Equals(UUID.Zero) && count-- > 0) |
1518 | { | 1525 | { |
1519 | m_log.DebugFormat("[SCENE PRESENCE]: Agent {0} waiting for update in {1}", client.Name, Scene.RegionInfo.RegionName); | 1526 | m_log.DebugFormat("[SCENE PRESENCE]: Agent {0} waiting for update in {1}", client.Name, Scene.Name); |
1520 | Thread.Sleep(200); | 1527 | Thread.Sleep(200); |
1521 | } | 1528 | } |
1522 | 1529 | ||
1523 | if (m_originRegionID.Equals(UUID.Zero)) | 1530 | if (m_originRegionID.Equals(UUID.Zero)) |
1524 | { | 1531 | { |
1525 | // Movement into region will fail | 1532 | // Movement into region will fail |
1526 | m_log.WarnFormat("[SCENE PRESENCE]: Update agent {0} never arrived", client.Name); | 1533 | m_log.WarnFormat("[SCENE PRESENCE]: Update agent {0} never arrived in {1}", client.Name, Scene.Name); |
1527 | return false; | 1534 | return false; |
1528 | } | 1535 | } |
1529 | 1536 | ||
@@ -1829,8 +1836,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
1829 | // Here's where you get them. | 1836 | // Here's where you get them. |
1830 | m_AgentControlFlags = flags; | 1837 | m_AgentControlFlags = flags; |
1831 | m_headrotation = agentData.HeadRotation; | 1838 | m_headrotation = agentData.HeadRotation; |
1839 | byte oldState = State; | ||
1832 | State = agentData.State; | 1840 | State = agentData.State; |
1833 | 1841 | ||
1842 | // We need to send this back to the client in order to stop the edit beams | ||
1843 | if ((oldState & (uint)AgentState.Editing) != 0 && State == (uint)AgentState.None) | ||
1844 | ControllingClient.SendAgentTerseUpdate(this); | ||
1845 | |||
1846 | |||
1834 | PhysicsActor actor = PhysicsActor; | 1847 | PhysicsActor actor = PhysicsActor; |
1835 | if (actor == null) | 1848 | if (actor == null) |
1836 | { | 1849 | { |
@@ -3199,8 +3212,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3199 | } | 3212 | } |
3200 | 3213 | ||
3201 | // Minimum Draw distance is 64 meters, the Radius of the draw distance sphere is 32m | 3214 | // Minimum Draw distance is 64 meters, the Radius of the draw distance sphere is 32m |
3202 | if (Util.GetDistanceTo(AbsolutePosition, m_lastChildAgentUpdatePosition) >= Scene.ChildReprioritizationDistance || | 3215 | if (Util.GetDistanceTo(AbsolutePosition, m_lastChildAgentUpdatePosition) >= Scene.ChildReprioritizationDistance) |
3203 | Util.GetDistanceTo(CameraPosition, m_lastChildAgentUpdateCamPosition) >= Scene.ChildReprioritizationDistance) | ||
3204 | { | 3216 | { |
3205 | m_lastChildAgentUpdatePosition = AbsolutePosition; | 3217 | m_lastChildAgentUpdatePosition = AbsolutePosition; |
3206 | m_lastChildAgentUpdateCamPosition = CameraPosition; | 3218 | m_lastChildAgentUpdateCamPosition = CameraPosition; |