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 57635f5..badf782 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; |
@@ -2842,29 +2842,59 @@ namespace OpenSim.Region.Framework.Scenes | |||
2842 | } | 2842 | } |
2843 | } | 2843 | } |
2844 | 2844 | ||
2845 | // /// <summary> | ||
2846 | // /// | ||
2847 | // /// </summary> | ||
2848 | // /// <param name="remoteClient"></param> | ||
2849 | // public void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | ||
2850 | // { | ||
2851 | // m_parentGroup.SendPartFullUpdate(remoteClient, this, clientFlags); | ||
2852 | // } | ||
2853 | |||
2854 | |||
2845 | /// <summary> | 2855 | /// <summary> |
2846 | /// | 2856 | /// Send a full update to the client for the given part |
2847 | /// </summary> | 2857 | /// </summary> |
2848 | /// <param name="remoteClient"></param> | 2858 | /// <param name="remoteClient"></param> |
2849 | public void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | 2859 | /// <param name="clientFlags"></param> |
2860 | protected internal void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | ||
2850 | { | 2861 | { |
2851 | m_parentGroup.SendPartFullUpdate(remoteClient, this, clientFlags); | 2862 | // m_log.DebugFormat( |
2852 | } | 2863 | // "[SOG]: Sendinging part full update to {0} for {1} {2}", remoteClient.Name, part.Name, part.LocalId); |
2864 | |||
2865 | if (IsRoot) | ||
2866 | { | ||
2867 | if (IsAttachment) | ||
2868 | { | ||
2869 | SendFullUpdateToClient(remoteClient, AttachedPos, clientFlags); | ||
2870 | } | ||
2871 | else | ||
2872 | { | ||
2873 | SendFullUpdateToClient(remoteClient, AbsolutePosition, clientFlags); | ||
2874 | } | ||
2875 | } | ||
2876 | else | ||
2877 | { | ||
2878 | SendFullUpdateToClient(remoteClient, clientFlags); | ||
2879 | } | ||
2880 | } | ||
2853 | 2881 | ||
2854 | /// <summary> | 2882 | /// <summary> |
2855 | /// | 2883 | /// Send a full update for this part to all clients. |
2856 | /// </summary> | 2884 | /// </summary> |
2857 | public void SendFullUpdateToAllClients() | 2885 | public void SendFullUpdateToAllClients() |
2858 | { | 2886 | { |
2859 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); | 2887 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); |
2860 | for (int i = 0; i < avatars.Length; i++) | 2888 | for (int i = 0; i < avatars.Length; i++) |
2861 | { | 2889 | { |
2862 | // Ugly reference :( | 2890 | SendFullUpdate(avatars[i].ControllingClient, avatars[i].GenerateClientFlags(UUID)); |
2863 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, | ||
2864 | avatars[i].GenerateClientFlags(UUID)); | ||
2865 | } | 2891 | } |
2866 | } | 2892 | } |
2867 | 2893 | ||
2894 | /// <summary> | ||
2895 | /// Send a full update to all clients except the one nominated. | ||
2896 | /// </summary> | ||
2897 | /// <param name="agentID"></param> | ||
2868 | public void SendFullUpdateToAllClientsExcept(UUID agentID) | 2898 | public void SendFullUpdateToAllClientsExcept(UUID agentID) |
2869 | { | 2899 | { |
2870 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); | 2900 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); |
@@ -2872,10 +2902,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2872 | { | 2902 | { |
2873 | // Ugly reference :( | 2903 | // Ugly reference :( |
2874 | if (avatars[i].UUID != agentID) | 2904 | if (avatars[i].UUID != agentID) |
2875 | { | 2905 | SendFullUpdate(avatars[i].ControllingClient, avatars[i].GenerateClientFlags(UUID)); |
2876 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, | ||
2877 | avatars[i].GenerateClientFlags(UUID)); | ||
2878 | } | ||
2879 | } | 2906 | } |
2880 | } | 2907 | } |
2881 | 2908 | ||