aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorUbitUmarov2014-08-28 00:44:59 +0100
committerUbitUmarov2014-08-28 00:44:59 +0100
commit38fc1cc4452a29fe552efcfbda95cb0eabb0e082 (patch)
treefb0a89ab35ae83e51d9d373a5bbe328fd642b114 /OpenSim/Region/Framework
parent dont create a cadu that is not used. Add a root region global position (diff)
downloadopensim-SC_OLD-38fc1cc4452a29fe552efcfbda95cb0eabb0e082.zip
opensim-SC_OLD-38fc1cc4452a29fe552efcfbda95cb0eabb0e082.tar.gz
opensim-SC_OLD-38fc1cc4452a29fe552efcfbda95cb0eabb0e082.tar.bz2
opensim-SC_OLD-38fc1cc4452a29fe552efcfbda95cb0eabb0e082.tar.xz
try to make child presence know its root region. Incomplete, some paths dont send the information.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs46
1 files changed, 7 insertions, 39 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index f2353b9..47acb0b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1162,45 +1162,9 @@ namespace OpenSim.Region.Framework.Scenes
1162 1162
1163 m_scene.EventManager.TriggerSetRootAgentScene(m_uuid, m_scene); 1163 m_scene.EventManager.TriggerSetRootAgentScene(m_uuid, m_scene);
1164 1164
1165/* this should be done by groups module on TriggerOnMakeRootAgent(this) below
1166 at least XmlIRpcGroups
1167 UUID groupUUID = UUID.Zero;
1168 string GroupName = string.Empty;
1169 ulong groupPowers = 0;
1170 1165
1171
1172
1173
1174 // ----------------------------------
1175 // Previous Agent Difference - AGNI sends an unsolicited AgentDataUpdate upon root agent status
1176 try
1177 {
1178
1179 if (gm != null)
1180 {
1181 groupUUID = ControllingClient.ActiveGroupId;
1182 GroupRecord record = gm.GetGroupRecord(groupUUID);
1183 if (record != null)
1184 GroupName = record.GroupName;
1185 GroupMembershipData groupMembershipData = gm.GetMembershipData(groupUUID, m_uuid);
1186 if (groupMembershipData != null)
1187 groupPowers = groupMembershipData.GroupPowers;
1188 }
1189 ControllingClient.SendAgentDataUpdate(m_uuid, groupUUID, Firstname, Lastname, groupPowers, GroupName,
1190 Grouptitle);
1191 }
1192 catch (Exception e)
1193 {
1194 m_log.Debug("[AGENTUPDATE]: " + e.ToString());
1195 }
1196 // ------------------------------------
1197*/
1198 if (ParentID == 0) 1166 if (ParentID == 0)
1199 { 1167 {
1200 // Moved this from SendInitialData to ensure that Appearance is initialized
1201 // before the inventory is processed in MakeRootAgent. This fixes a race condition
1202 // related to the handling of attachments
1203
1204 if (m_scene.TestBorderCross(pos, Cardinals.E)) 1168 if (m_scene.TestBorderCross(pos, Cardinals.E))
1205 { 1169 {
1206 Border crossedBorder = m_scene.GetCrossedBorder(pos, Cardinals.E); 1170 Border crossedBorder = m_scene.GetCrossedBorder(pos, Cardinals.E);
@@ -1310,11 +1274,14 @@ namespace OpenSim.Region.Framework.Scenes
1310 /// It doesn't get called for a teleport. Reason being, an agent that 1274 /// It doesn't get called for a teleport. Reason being, an agent that
1311 /// teleports out may not end up anywhere near this region 1275 /// teleports out may not end up anywhere near this region
1312 /// </remarks> 1276 /// </remarks>
1313 public void MakeChildAgent() 1277 public void MakeChildAgent(ulong newRegionHandle)
1314 { 1278 {
1315 m_scene.EventManager.OnRegionHeartbeatEnd -= RegionHeartbeatEnd; 1279 m_scene.EventManager.OnRegionHeartbeatEnd -= RegionHeartbeatEnd;
1316 1280
1317 m_log.DebugFormat("[SCENE PRESENCE]: Making {0} a child agent in {1}", Name, Scene.RegionInfo.RegionName); 1281 RegionHandle = newRegionHandle;
1282
1283 m_log.DebugFormat("[SCENE PRESENCE]: Making {0} a child agent in {1} from root region {2}",
1284 Name, Scene.RegionInfo.RegionName, newRegionHandle);
1318 1285
1319 // Reset the m_originRegionID as it has dual use as a flag to signal that the UpdateAgent() call orignating 1286 // Reset the m_originRegionID as it has dual use as a flag to signal that the UpdateAgent() call orignating
1320 // from the source simulator has completed on a V2 teleport. 1287 // from the source simulator has completed on a V2 teleport.
@@ -4023,6 +3990,7 @@ namespace OpenSim.Region.Framework.Scenes
4023 3990
4024 } 3991 }
4025 3992
3993/* useless. Either use MakeChild or delete the presence
4026 public void Reset() 3994 public void Reset()
4027 { 3995 {
4028// m_log.DebugFormat("[SCENE PRESENCE]: Resetting {0} in {1}", Name, Scene.RegionInfo.RegionName); 3996// m_log.DebugFormat("[SCENE PRESENCE]: Resetting {0} in {1}", Name, Scene.RegionInfo.RegionName);
@@ -4033,7 +4001,7 @@ namespace OpenSim.Region.Framework.Scenes
4033 4001
4034 Animator.ResetAnimations(); 4002 Animator.ResetAnimations();
4035 } 4003 }
4036 4004*/
4037 /// <summary> 4005 /// <summary>
4038 /// Computes which child agents to close when the scene presence moves to another region. 4006 /// Computes which child agents to close when the scene presence moves to another region.
4039 /// Removes those regions from m_knownRegions. 4007 /// Removes those regions from m_knownRegions.