aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorUbitUmarov2014-08-24 00:44:14 +0100
committerUbitUmarov2014-08-24 00:44:14 +0100
commitf4a6be86546b3bfeefbdbade33f2faabdd080c1f (patch)
tree643fa715a1c8b37bc7b3b976344d9aa405e138a8 /OpenSim/Region/Framework
parentsend avatar kills after attachments, send otherattachments before rest of (diff)
downloadopensim-SC_OLD-f4a6be86546b3bfeefbdbade33f2faabdd080c1f.zip
opensim-SC_OLD-f4a6be86546b3bfeefbdbade33f2faabdd080c1f.tar.gz
opensim-SC_OLD-f4a6be86546b3bfeefbdbade33f2faabdd080c1f.tar.bz2
opensim-SC_OLD-f4a6be86546b3bfeefbdbade33f2faabdd080c1f.tar.xz
clean sendKill a bit, remove a IsChild that is set too early in a calling
path
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs17
1 files changed, 15 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index f0ea0ba..e61e856 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3590,10 +3590,12 @@ namespace OpenSim.Region.Framework.Scenes
3590 if (p.UUID == UUID) 3590 if (p.UUID == UUID)
3591 return; 3591 return;
3592 3592
3593 // get the avatar, then a kill if can't see it
3594 p.SendInitialAvatarDataToAgent(this);
3595
3593 if (p.ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && GodLevel < 200) 3596 if (p.ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && GodLevel < 200)
3594 return; 3597 return;
3595 3598
3596 p.SendAvatarDataToAgentNF(this);
3597 p.SendAppearanceToAgentNF(this); 3599 p.SendAppearanceToAgentNF(this);
3598 p.SendAnimPackToAgentNF(this); 3600 p.SendAnimPackToAgentNF(this);
3599 p.SendAttachmentsToAgentNF(this); 3601 p.SendAttachmentsToAgentNF(this);
@@ -3651,6 +3653,16 @@ namespace OpenSim.Region.Framework.Scenes
3651 m_scene.StatsReporter.AddAgentUpdates(count); 3653 m_scene.StatsReporter.AddAgentUpdates(count);
3652 } 3654 }
3653 3655
3656 public void SendInitialAvatarDataToAgent(ScenePresence p)
3657 {
3658 p.ControllingClient.SendAvatarDataImmediate(this);
3659 if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
3660 // either just kill the object
3661 // p.ControllingClient.SendKillObject(new List<uint> {LocalId});
3662 // or also attachments viewer may still know about
3663 SendKillTo(p);
3664 }
3665
3654 /// <summary> 3666 /// <summary>
3655 /// Send avatar data to an agent. 3667 /// Send avatar data to an agent.
3656 /// </summary> 3668 /// </summary>
@@ -5959,7 +5971,8 @@ namespace OpenSim.Region.Framework.Scenes
5959 if (p == this) 5971 if (p == this)
5960 continue; 5972 continue;
5961 SendKillTo(p); 5973 SendKillTo(p);
5962 p.SendKillTo(this); 5974 if (!p.IsChildAgent)
5975 p.SendKillTo(this);
5963 } 5976 }
5964 if (Scene.AttachmentsModule != null) 5977 if (Scene.AttachmentsModule != null)
5965 Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true); 5978 Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true);