diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 40 |
1 files changed, 40 insertions, 0 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(); |