From d5bb80798d106f0460ea57b0a0cf22e1829cd96d Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 21 Aug 2014 23:18:51 +0100 Subject: [PATCH] make the hack more extensive. Forbid sog/sop updates if Intransit but release it sooner --- .../Region/Framework/Scenes/ScenePresence.cs | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index f9266b4eab..fd1ec82791 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -3515,10 +3515,10 @@ namespace OpenSim.Region.Framework.Scenes SendAppearanceToAgent(this); -// if (cachedappearance) -// { + m_inTransit = false; + SendAppearanceToAllOtherAgents(); -// } + if(Animator!= null) Animator.SendAnimPack(); } @@ -4668,7 +4668,7 @@ namespace OpenSim.Region.Framework.Scenes public void SendAttachmentScheduleUpdate(SceneObjectGroup sog) { - if (IsChildAgent) + if (IsChildAgent || IsInTransit) return; SceneObjectPart[] origparts = sog.Parts; @@ -4746,7 +4746,7 @@ namespace OpenSim.Region.Framework.Scenes public void SendAttachmentUpdate(SceneObjectGroup sog, UpdateRequired UpdateFlag) { - if (IsChildAgent) + if (IsChildAgent || IsInTransit) return; PrimUpdateFlags flag; @@ -4796,7 +4796,7 @@ namespace OpenSim.Region.Framework.Scenes public void SendAttachmentScheduleUpdate(SceneObjectPart part) { - if (IsChildAgent) + if (IsChildAgent || IsInTransit) return; @@ -4836,7 +4836,7 @@ namespace OpenSim.Region.Framework.Scenes public void SendAttachmentUpdate(SceneObjectPart part, UpdateRequired UpdateFlag) { - if (IsChildAgent) + if (IsChildAgent || IsInTransit) return; PrimUpdateFlags flag; @@ -5850,7 +5850,12 @@ namespace OpenSim.Region.Framework.Scenes { List allpresences = m_scene.GetScenePresences(); foreach (ScenePresence p in allpresences) - SendKillTo(p); + { + if (p == this) + continue; + SendKillTo(p); + p.SendKillTo(this); + } if (Scene.AttachmentsModule != null) Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true); }