aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorUbitUmarov2014-08-21 06:11:19 +0100
committerUbitUmarov2014-08-21 06:11:19 +0100
commitad6f9422792f981cf1c4b240a2a443075624b614 (patch)
tree7f49851e03e61f09048b6badfa81f4a0ca9d590c /OpenSim/Region/Framework
parentbug fix (diff)
downloadopensim-SC-ad6f9422792f981cf1c4b240a2a443075624b614.zip
opensim-SC-ad6f9422792f981cf1c4b240a2a443075624b614.tar.gz
opensim-SC-ad6f9422792f981cf1c4b240a2a443075624b614.tar.bz2
opensim-SC-ad6f9422792f981cf1c4b240a2a443075624b614.tar.xz
add filter sog updates
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs40
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs2
2 files changed, 40 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 28758a9..dd5ee65 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2636,6 +2636,16 @@ namespace OpenSim.Region.Framework.Scenes
2636 m_rootPart.UpdateFlag = UpdateRequired.TERSE; 2636 m_rootPart.UpdateFlag = UpdateRequired.TERSE;
2637 } 2637 }
2638 2638
2639 if (IsAttachment)
2640 {
2641 ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
2642 if (sp != null)
2643 {
2644 sp.SendAttachmentScheduleUpdate(this);
2645 return;
2646 }
2647 }
2648
2639 SceneObjectPart[] parts = m_parts.GetArray(); 2649 SceneObjectPart[] parts = m_parts.GetArray();
2640 for (int i = 0; i < parts.Length; i++) 2650 for (int i = 0; i < parts.Length; i++)
2641 { 2651 {
@@ -2697,6 +2707,16 @@ namespace OpenSim.Region.Framework.Scenes
2697 return; 2707 return;
2698 2708
2699// m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID); 2709// m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID);
2710
2711 if (IsAttachment)
2712 {
2713 ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
2714 if (sp != null)
2715 {
2716 sp.SendAttachmentUpdate(this,UpdateRequired.FULL);
2717 return;
2718 }
2719 }
2700 2720
2701 RootPart.SendFullUpdateToAllClients(); 2721 RootPart.SendFullUpdateToAllClients();
2702 2722
@@ -2720,6 +2740,16 @@ namespace OpenSim.Region.Framework.Scenes
2720 if (IsDeleted) 2740 if (IsDeleted)
2721 return; 2741 return;
2722 2742
2743 if (IsAttachment)
2744 {
2745 ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
2746 if (sp != null)
2747 {
2748 sp.SendAttachmentUpdate(RootPart, UpdateRequired.TERSE);
2749 return;
2750 }
2751 }
2752
2723 RootPart.SendTerseUpdateToAllClients(); 2753 RootPart.SendTerseUpdateToAllClients();
2724 } 2754 }
2725 2755
@@ -2739,6 +2769,16 @@ namespace OpenSim.Region.Framework.Scenes
2739 if (IsDeleted) 2769 if (IsDeleted)
2740 return; 2770 return;
2741 2771
2772 if (IsAttachment)
2773 {
2774 ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
2775 if (sp != null)
2776 {
2777 sp.SendAttachmentUpdate(this, UpdateRequired.TERSE);
2778 return;
2779 }
2780 }
2781
2742 SceneObjectPart[] parts = m_parts.GetArray(); 2782 SceneObjectPart[] parts = m_parts.GetArray();
2743 for (int i = 0; i < parts.Length; i++) 2783 for (int i = 0; i < parts.Length; i++)
2744 parts[i].SendTerseUpdateToAllClients(); 2784 parts[i].SendTerseUpdateToAllClients();
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index ea09379..34d0eaa 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1916,7 +1916,6 @@ namespace OpenSim.Region.Framework.Scenes
1916 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) 1916 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
1917 return; 1917 return;
1918 1918
1919 p.ControllingClient.SendPartFullUpdate(sog.RootPart,LocalId + 1);
1920 sog.SendFullUpdateToClient(p.ControllingClient); 1919 sog.SendFullUpdateToClient(p.ControllingClient);
1921 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path 1920 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
1922 }); 1921 });
@@ -4748,7 +4747,6 @@ namespace OpenSim.Region.Framework.Scenes
4748 { 4747 {
4749 if (p == this || !sog.HasPrivateAttachmentPoint) 4748 if (p == this || !sog.HasPrivateAttachmentPoint)
4750 { 4749 {
4751 p.ControllingClient.SendPartFullUpdate(sog.RootPart, LocalId +1 );
4752 sog.SendFullUpdateToClient(p.ControllingClient); 4750 sog.SendFullUpdateToClient(p.ControllingClient);
4753 } 4751 }
4754 } 4752 }