diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 20 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 60 |
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 | } |