aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs20
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs60
2 files changed, 47 insertions, 33 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index d8e3082..c8555ab 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -368,7 +368,7 @@ namespace OpenSim.Region.CoreModules.World.Land
368 public void SendOutNearestBanLine(IClientAPI client) 368 public void SendOutNearestBanLine(IClientAPI client)
369 { 369 {
370 ScenePresence sp = m_scene.GetScenePresence(client.AgentId); 370 ScenePresence sp = m_scene.GetScenePresence(client.AgentId);
371 if (sp == null || sp.IsChildAgent) 371 if (sp == null)
372 return; 372 return;
373 373
374 List<ILandObject> checkLandParcels = ParcelsNearPoint(sp.AbsolutePosition); 374 List<ILandObject> checkLandParcels = ParcelsNearPoint(sp.AbsolutePosition);
@@ -394,11 +394,12 @@ namespace OpenSim.Region.CoreModules.World.Land
394 394
395 if (!m_scene.TryGetScenePresence(remoteClient.AgentId, out avatar)) 395 if (!m_scene.TryGetScenePresence(remoteClient.AgentId, out avatar))
396 return; 396 return;
397 if (avatar.IsChildAgent)
398 return;
399 397
400 SendParcelOverlay(remoteClient); 398 SendParcelOverlay(remoteClient);
401 399
400 if (avatar.IsChildAgent)
401 return;
402
402 ILandObject over = GetLandObject(avatar.AbsolutePosition.X,avatar.AbsolutePosition.Y); 403 ILandObject over = GetLandObject(avatar.AbsolutePosition.X,avatar.AbsolutePosition.Y);
403 if (over == null) 404 if (over == null)
404 return; 405 return;
@@ -958,7 +959,7 @@ namespace OpenSim.Region.CoreModules.World.Land
958 UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData); 959 UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData);
959 m_scene.ForEachClient(SendParcelOverlay); 960 m_scene.ForEachClient(SendParcelOverlay);
960 result.SendLandUpdateToAvatarsOverMe(); 961 result.SendLandUpdateToAvatarsOverMe();
961 962 startLandObject.SendLandUpdateToAvatarsOverMe();
962 } 963 }
963 964
964 /// <summary> 965 /// <summary>
@@ -1047,7 +1048,6 @@ namespace OpenSim.Region.CoreModules.World.Land
1047 /// <param name="remote_client">The object representing the client</param> 1048 /// <param name="remote_client">The object representing the client</param>
1048 public void SendParcelOverlay(IClientAPI remote_client) 1049 public void SendParcelOverlay(IClientAPI remote_client)
1049 { 1050 {
1050
1051 if (remote_client.SceneAgent.PresenceType == PresenceType.Npc) 1051 if (remote_client.SceneAgent.PresenceType == PresenceType.Npc)
1052 return; 1052 return;
1053 1053
@@ -1198,20 +1198,24 @@ namespace OpenSim.Region.CoreModules.World.Land
1198 bool needOverlay = false; 1198 bool needOverlay = false;
1199 if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay)) 1199 if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay))
1200 { 1200 {
1201 //the proprieties to who changed it 1201 //the proprieties to who changed them
1202 1202
1203 land.SendLandProperties(0, true, LandChannel.LAND_RESULT_SINGLE, remote_client); 1203 land.SendLandProperties(0, true, LandChannel.LAND_RESULT_SINGLE, remote_client);
1204 1204
1205 if (needOverlay) 1205 if (needOverlay)
1206 { 1206 {
1207 UUID parcelID = land.LandData.GlobalID; 1207 UUID parcelID = land.LandData.GlobalID;
1208 m_scene.ForEachRootScenePresence(delegate(ScenePresence avatar) 1208 m_scene.ForEachScenePresence(delegate(ScenePresence avatar)
1209 { 1209 {
1210 if (avatar.IsDeleted || avatar.IsChildAgent) 1210 if (avatar.IsDeleted || avatar.isNPC)
1211 return; 1211 return;
1212 1212
1213 IClientAPI client = avatar.ControllingClient; 1213 IClientAPI client = avatar.ControllingClient;
1214 SendParcelOverlay(client); 1214 SendParcelOverlay(client);
1215
1216 if (avatar.IsChildAgent)
1217 return;
1218
1215 ILandObject aland = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); 1219 ILandObject aland = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
1216 if (aland != null) 1220 if (aland != null)
1217 { 1221 {
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 7b0b103..03eac77 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -178,7 +178,7 @@ namespace OpenSim.Region.Framework.Scenes
178 if (land != null && !land.LandData.SeeAVs) 178 if (land != null && !land.LandData.SeeAVs)
179 m_currentParcelHide = true; 179 m_currentParcelHide = true;
180 180
181 if (m_previusParcelUUID != UUID.Zero) 181 if (m_previusParcelUUID != UUID.Zero || checksame)
182 ParcelCrossCheck(m_currentParcelUUID,m_previusParcelUUID,m_currentParcelHide, m_previusParcelHide, oldhide,checksame); 182 ParcelCrossCheck(m_currentParcelUUID,m_previusParcelUUID,m_currentParcelHide, m_previusParcelHide, oldhide,checksame);
183 } 183 }
184 } 184 }
@@ -1847,7 +1847,6 @@ namespace OpenSim.Region.Framework.Scenes
1847 } 1847 }
1848 } 1848 }
1849 1849
1850
1851 // send agentData to all clients including us (?) 1850 // send agentData to all clients including us (?)
1852 // get appearance 1851 // get appearance
1853 // if in cache sent it to all clients 1852 // if in cache sent it to all clients
@@ -1857,7 +1856,7 @@ namespace OpenSim.Region.Framework.Scenes
1857 // attachments 1856 // attachments
1858 if (isNPC || (TeleportFlags & TeleportFlags.ViaLogin) != 0) 1857 if (isNPC || (TeleportFlags & TeleportFlags.ViaLogin) != 0)
1859 { 1858 {
1860// if (Scene.AttachmentsModule != null) 1859 if (Scene.AttachmentsModule != null)
1861// Util.FireAndForget( 1860// Util.FireAndForget(
1862// o => 1861// o =>
1863// { 1862// {
@@ -5418,11 +5417,14 @@ namespace OpenSim.Region.Framework.Scenes
5418 foreach (ScenePresence p in viewsToSendme) 5417 foreach (ScenePresence p in viewsToSendme)
5419 { 5418 {
5420 m_log.Debug("[AVATAR]: viewMe: " + Lastname + " " + p.Lastname); 5419 m_log.Debug("[AVATAR]: viewMe: " + Lastname + " " + p.Lastname);
5421 ControllingClient.SendAvatarDataImmediate(p); 5420 if (!p.IsChildAgent)
5422 p.SendAppearanceToAgent(this); 5421 {
5423 p.SendAttachmentsToClient(ControllingClient); 5422 ControllingClient.SendAvatarDataImmediate(p);
5424 if (p.Animator != null) 5423 p.SendAppearanceToAgent(this);
5425 p.Animator.SendAnimPackToClient(ControllingClient); 5424 p.SendAttachmentsToClient(ControllingClient);
5425 if (p.Animator != null)
5426 p.Animator.SendAnimPackToClient(ControllingClient);
5427 }
5426 } 5428 }
5427 } 5429 }
5428 } 5430 }
@@ -5524,11 +5526,14 @@ namespace OpenSim.Region.Framework.Scenes
5524 foreach (ScenePresence p in viewsToSendme) 5526 foreach (ScenePresence p in viewsToSendme)
5525 { 5527 {
5526 m_log.Debug("[AVATAR]: viewMe: " + Lastname + "<-" + p.Lastname); 5528 m_log.Debug("[AVATAR]: viewMe: " + Lastname + "<-" + p.Lastname);
5527 ControllingClient.SendAvatarDataImmediate(p); 5529 if (!p.IsChildAgent)
5528 p.SendAppearanceToAgent(this); 5530 {
5529 p.SendAttachmentsToClient(ControllingClient); 5531 ControllingClient.SendAvatarDataImmediate(p);
5530 if (p.Animator != null) 5532 p.SendAppearanceToAgent(this);
5531 p.Animator.SendAnimPackToClient(ControllingClient); 5533 p.SendAttachmentsToClient(ControllingClient);
5534 if (p.Animator != null)
5535 p.Animator.SendAnimPackToClient(ControllingClient);
5536 }
5532 } 5537 }
5533 } 5538 }
5534 } 5539 }
@@ -5562,11 +5567,14 @@ namespace OpenSim.Region.Framework.Scenes
5562 foreach (ScenePresence p in viewsToSendme) 5567 foreach (ScenePresence p in viewsToSendme)
5563 { 5568 {
5564 m_log.Debug("[AVATAR]: viewMe: " + Lastname + "<-" + p.Lastname); 5569 m_log.Debug("[AVATAR]: viewMe: " + Lastname + "<-" + p.Lastname);
5565 ControllingClient.SendAvatarDataImmediate(p); 5570 if (!p.IsChildAgent)
5566 p.SendAppearanceToAgent(this); 5571 {
5567 p.SendAttachmentsToClient(ControllingClient); 5572 ControllingClient.SendAvatarDataImmediate(p);
5568 if (p.Animator != null) 5573 p.SendAppearanceToAgent(this);
5569 p.Animator.SendAnimPackToClient(ControllingClient); 5574 p.SendAttachmentsToClient(ControllingClient);
5575 if (p.Animator != null)
5576 p.Animator.SendAnimPackToClient(ControllingClient);
5577 }
5570 } 5578 }
5571 } 5579 }
5572 } 5580 }
@@ -5629,8 +5637,7 @@ namespace OpenSim.Region.Framework.Scenes
5629 5637
5630 // those on not on parcel see me 5638 // those on not on parcel see me
5631 if (currentParcelID != p.currentParcelUUID) 5639 if (currentParcelID != p.currentParcelUUID)
5632 { 5640 {
5633 m_log.Debug("[AVATAR]: viewTo: " + Lastname + " " + p.Lastname);
5634 viewsToSendto.Add(p); // they see me 5641 viewsToSendto.Add(p); // they see me
5635 } 5642 }
5636 } 5643 }
@@ -5775,11 +5782,14 @@ namespace OpenSim.Region.Framework.Scenes
5775 foreach (ScenePresence p in viewsToSendme) 5782 foreach (ScenePresence p in viewsToSendme)
5776 { 5783 {
5777 m_log.Debug("[AVATAR]: viewMe: " + Lastname + "<-" + p.Lastname); 5784 m_log.Debug("[AVATAR]: viewMe: " + Lastname + "<-" + p.Lastname);
5778 ControllingClient.SendAvatarDataImmediate(p); 5785 if (!p.IsChildAgent)
5779 p.SendAppearanceToAgent(this); 5786 {
5780 p.SendAttachmentsToClient(ControllingClient); 5787 ControllingClient.SendAvatarDataImmediate(p);
5781 if (p.Animator != null) 5788 p.SendAppearanceToAgent(this);
5782 p.Animator.SendAnimPackToClient(ControllingClient); 5789 p.SendAttachmentsToClient(ControllingClient);
5790 if (p.Animator != null)
5791 p.Animator.SendAnimPackToClient(ControllingClient);
5792 }
5783 } 5793 }
5784 } 5794 }
5785 } 5795 }