diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 55 |
1 files changed, 41 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 548a64f..c8ac014 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -573,8 +573,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
573 | private List<SceneObjectPart> m_PlaySoundSlavePrims = new List<SceneObjectPart>(); | 573 | private List<SceneObjectPart> m_PlaySoundSlavePrims = new List<SceneObjectPart>(); |
574 | public List<SceneObjectPart> PlaySoundSlavePrims | 574 | public List<SceneObjectPart> PlaySoundSlavePrims |
575 | { | 575 | { |
576 | get { return m_LoopSoundSlavePrims; } | 576 | get { return m_PlaySoundSlavePrims; } |
577 | set { m_LoopSoundSlavePrims = value; } | 577 | set { m_PlaySoundSlavePrims = value; } |
578 | } | 578 | } |
579 | 579 | ||
580 | private SceneObjectPart m_LoopSoundMasterPrim = null; | 580 | private SceneObjectPart m_LoopSoundMasterPrim = null; |
@@ -2820,29 +2820,59 @@ namespace OpenSim.Region.Framework.Scenes | |||
2820 | } | 2820 | } |
2821 | } | 2821 | } |
2822 | 2822 | ||
2823 | // /// <summary> | ||
2824 | // /// | ||
2825 | // /// </summary> | ||
2826 | // /// <param name="remoteClient"></param> | ||
2827 | // public void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | ||
2828 | // { | ||
2829 | // m_parentGroup.SendPartFullUpdate(remoteClient, this, clientFlags); | ||
2830 | // } | ||
2831 | |||
2832 | |||
2823 | /// <summary> | 2833 | /// <summary> |
2824 | /// | 2834 | /// Send a full update to the client for the given part |
2825 | /// </summary> | 2835 | /// </summary> |
2826 | /// <param name="remoteClient"></param> | 2836 | /// <param name="remoteClient"></param> |
2827 | public void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | 2837 | /// <param name="clientFlags"></param> |
2838 | protected internal void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | ||
2828 | { | 2839 | { |
2829 | m_parentGroup.SendPartFullUpdate(remoteClient, this, clientFlags); | 2840 | // m_log.DebugFormat( |
2830 | } | 2841 | // "[SOG]: Sendinging part full update to {0} for {1} {2}", remoteClient.Name, part.Name, part.LocalId); |
2842 | |||
2843 | if (IsRoot) | ||
2844 | { | ||
2845 | if (IsAttachment) | ||
2846 | { | ||
2847 | SendFullUpdateToClient(remoteClient, AttachedPos, clientFlags); | ||
2848 | } | ||
2849 | else | ||
2850 | { | ||
2851 | SendFullUpdateToClient(remoteClient, AbsolutePosition, clientFlags); | ||
2852 | } | ||
2853 | } | ||
2854 | else | ||
2855 | { | ||
2856 | SendFullUpdateToClient(remoteClient, clientFlags); | ||
2857 | } | ||
2858 | } | ||
2831 | 2859 | ||
2832 | /// <summary> | 2860 | /// <summary> |
2833 | /// | 2861 | /// Send a full update for this part to all clients. |
2834 | /// </summary> | 2862 | /// </summary> |
2835 | public void SendFullUpdateToAllClients() | 2863 | public void SendFullUpdateToAllClients() |
2836 | { | 2864 | { |
2837 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); | 2865 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); |
2838 | for (int i = 0; i < avatars.Length; i++) | 2866 | for (int i = 0; i < avatars.Length; i++) |
2839 | { | 2867 | { |
2840 | // Ugly reference :( | 2868 | SendFullUpdate(avatars[i].ControllingClient, avatars[i].GenerateClientFlags(UUID)); |
2841 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, | ||
2842 | avatars[i].GenerateClientFlags(UUID)); | ||
2843 | } | 2869 | } |
2844 | } | 2870 | } |
2845 | 2871 | ||
2872 | /// <summary> | ||
2873 | /// Send a full update to all clients except the one nominated. | ||
2874 | /// </summary> | ||
2875 | /// <param name="agentID"></param> | ||
2846 | public void SendFullUpdateToAllClientsExcept(UUID agentID) | 2876 | public void SendFullUpdateToAllClientsExcept(UUID agentID) |
2847 | { | 2877 | { |
2848 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); | 2878 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); |
@@ -2850,10 +2880,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2850 | { | 2880 | { |
2851 | // Ugly reference :( | 2881 | // Ugly reference :( |
2852 | if (avatars[i].UUID != agentID) | 2882 | if (avatars[i].UUID != agentID) |
2853 | { | 2883 | SendFullUpdate(avatars[i].ControllingClient, avatars[i].GenerateClientFlags(UUID)); |
2854 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, | ||
2855 | avatars[i].GenerateClientFlags(UUID)); | ||
2856 | } | ||
2857 | } | 2884 | } |
2858 | } | 2885 | } |
2859 | 2886 | ||