From d5bb80798d106f0460ea57b0a0cf22e1829cd96d Mon Sep 17 00:00:00 2001
From: UbitUmarov
Date: Thu, 21 Aug 2014 23:18:51 +0100
Subject:  make the hack more extensive. Forbid sog/sop updates if Intransit
 but  release it sooner

---
 OpenSim/Region/Framework/Scenes/ScenePresence.cs | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index f9266b4..fd1ec82 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<ScenePresence> 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);
         }
-- 
cgit v1.1