aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs26
2 files changed, 19 insertions, 15 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 829d4ce..4a6f72c 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4558,8 +4558,14 @@ namespace OpenSim.Region.Framework.Scenes
4558 // a UseCircuitCode packet which in turn calls AddNewAgent which finally creates the ScenePresence. 4558 // a UseCircuitCode packet which in turn calls AddNewAgent which finally creates the ScenePresence.
4559 ScenePresence sp = WaitGetScenePresence(cAgentData.AgentID); 4559 ScenePresence sp = WaitGetScenePresence(cAgentData.AgentID);
4560 4560
4561 if (sp != null) 4561 if (sp != null)
4562 { 4562 {
4563 if (!sp.IsChildAgent)
4564 {
4565 m_log.WarnFormat("[SCENE]: Ignoring a child update on a root agent {0} {1} in {2}",
4566 sp.Name, sp.UUID, Name);
4567 return false;
4568 }
4563 if (cAgentData.SessionID != sp.ControllingClient.SessionId) 4569 if (cAgentData.SessionID != sp.ControllingClient.SessionId)
4564 { 4570 {
4565 m_log.WarnFormat( 4571 m_log.WarnFormat(
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index fbb18b7..405ad73 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1684,20 +1684,6 @@ namespace OpenSim.Region.Framework.Scenes
1684 return; 1684 return;
1685 } 1685 }
1686 1686
1687 // Prevent teleporting to an underground location
1688 // (may crash client otherwise)
1689 //
1690
1691/* this is done in MakeRootAgent
1692 Vector3 pos = AbsolutePosition;
1693 float ground = m_scene.GetGroundHeight(pos.X, pos.Y);
1694 if (pos.Z < ground + 1.5f)
1695 {
1696 pos.Z = ground + 1.5f;
1697 AbsolutePosition = pos;
1698 }
1699*/
1700
1701 m_log.DebugFormat("[CompleteMovement] WaitForUpdateAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 1687 m_log.DebugFormat("[CompleteMovement] WaitForUpdateAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts));
1702 1688
1703 bool flying = ((m_AgentControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0); 1689 bool flying = ((m_AgentControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
@@ -1904,7 +1890,9 @@ namespace OpenSim.Region.Framework.Scenes
1904 { 1890 {
1905 IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); 1891 IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
1906 if (m_agentTransfer != null) 1892 if (m_agentTransfer != null)
1893 {
1907 m_agentTransfer.EnableChildAgents(this); 1894 m_agentTransfer.EnableChildAgents(this);
1895 }
1908 } 1896 }
1909 } 1897 }
1910 1898
@@ -4171,6 +4159,16 @@ namespace OpenSim.Region.Framework.Scenes
4171 if ((cAgentData.Throttles != null) && cAgentData.Throttles.Length > 0) 4159 if ((cAgentData.Throttles != null) && cAgentData.Throttles.Length > 0)
4172 ControllingClient.SetChildAgentThrottle(cAgentData.Throttles); 4160 ControllingClient.SetChildAgentThrottle(cAgentData.Throttles);
4173 4161
4162 if(cAgentData.ChildrenCapSeeds != null && cAgentData.ChildrenCapSeeds.Count >0)
4163 {
4164 if (Scene.CapsModule != null)
4165 {
4166 Scene.CapsModule.SetChildrenSeed(UUID, cAgentData.ChildrenCapSeeds);
4167 }
4168
4169 KnownRegions = cAgentData.ChildrenCapSeeds;
4170 }
4171
4174 //cAgentData.AVHeight; 4172 //cAgentData.AVHeight;
4175 //m_velocity = cAgentData.Velocity; 4173 //m_velocity = cAgentData.Velocity;
4176 } 4174 }