diff options
author | UbitUmarov | 2014-08-20 17:48:10 +0100 |
---|---|---|
committer | UbitUmarov | 2014-08-20 17:48:10 +0100 |
commit | b21b6532b07a7a5b50e62de2f9b074c768a14e74 (patch) | |
tree | 812d398f76e5b4ebfee54bdf2e9d7ad024fec35b /OpenSim/Region/Framework | |
parent | also send attachment pre-kills on crossings (diff) | |
download | opensim-SC_OLD-b21b6532b07a7a5b50e62de2f9b074c768a14e74.zip opensim-SC_OLD-b21b6532b07a7a5b50e62de2f9b074c768a14e74.tar.gz opensim-SC_OLD-b21b6532b07a7a5b50e62de2f9b074c768a14e74.tar.bz2 opensim-SC_OLD-b21b6532b07a7a5b50e62de2f9b074c768a14e74.tar.xz |
sending attachment kills before putting them back doesnt cover all cases
and seems heavy for viewers
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index a0c3ba9..864f54d 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1878,7 +1878,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1878 | if (!IsChildAgent) | 1878 | if (!IsChildAgent) |
1879 | { | 1879 | { |
1880 | 1880 | ||
1881 | |||
1882 | ValidateAndSendAppearanceAndAgentData(); | 1881 | ValidateAndSendAppearanceAndAgentData(); |
1883 | 1882 | ||
1884 | m_log.DebugFormat("[CompleteMovement] ValidateAndSendAppearanceAndAgentData: {0}ms", Util.EnvironmentTickCountSubtract(ts)); | 1883 | m_log.DebugFormat("[CompleteMovement] ValidateAndSendAppearanceAndAgentData: {0}ms", Util.EnvironmentTickCountSubtract(ts)); |
@@ -1900,35 +1899,30 @@ namespace OpenSim.Region.Framework.Scenes | |||
1900 | m_log.DebugFormat( | 1899 | m_log.DebugFormat( |
1901 | "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name); | 1900 | "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name); |
1902 | 1901 | ||
1903 | List<uint> kk = new List<uint>(); | ||
1904 | |||
1905 | // Resume scripts this possible should also be moved down after sending the avatar to viewer ? | 1902 | // Resume scripts this possible should also be moved down after sending the avatar to viewer ? |
1906 | foreach (SceneObjectGroup sog in m_attachments) | 1903 | foreach (SceneObjectGroup sog in m_attachments) |
1907 | { | 1904 | { |
1908 | foreach (SceneObjectPart part in sog.Parts) | ||
1909 | kk.Add(part.LocalId); | ||
1910 | |||
1911 | sog.SendFullUpdateToClient(ControllingClient); | 1905 | sog.SendFullUpdateToClient(ControllingClient); |
1912 | SendFullUpdateToClient(ControllingClient); | 1906 | SendFullUpdateToClient(ControllingClient); |
1913 | 1907 | ||
1914 | // sog.ScheduleGroupForFullUpdate(); | 1908 | if (!sog.HasPrivateAttachmentPoint) |
1915 | m_scene.ForEachScenePresence(delegate(ScenePresence p) | ||
1916 | { | 1909 | { |
1917 | if (p == this) | 1910 | // sog.ScheduleGroupForFullUpdate(); |
1918 | return; | 1911 | m_scene.ForEachScenePresence(delegate(ScenePresence p) |
1919 | if (sog.HasPrivateAttachmentPoint) | 1912 | { |
1920 | return; | 1913 | if (p == this) |
1921 | if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) | 1914 | return; |
1922 | return; | 1915 | |
1923 | 1916 | if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) | |
1924 | p.ControllingClient.SendKillObject(kk); | 1917 | return; |
1925 | sog.SendFullUpdateToClient(p.ControllingClient); | 1918 | |
1926 | SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path | 1919 | sog.SendFullUpdateToClient(p.ControllingClient); |
1927 | }); | 1920 | SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path |
1928 | 1921 | }); | |
1922 | } | ||
1923 | |||
1929 | sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource()); | 1924 | sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource()); |
1930 | sog.ResumeScripts(); | 1925 | sog.ResumeScripts(); |
1931 | kk.Clear(); | ||
1932 | } | 1926 | } |
1933 | } | 1927 | } |
1934 | } | 1928 | } |
@@ -4758,6 +4752,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
4758 | } | 4752 | } |
4759 | } | 4753 | } |
4760 | 4754 | ||
4755 | // send attachments to a client without filters except for huds | ||
4756 | // for now they are checked in several places down the line... | ||
4757 | // kills all parts before sending | ||
4761 | public void SendAttachmentsToAgentNFPK(ScenePresence p) | 4758 | public void SendAttachmentsToAgentNFPK(ScenePresence p) |
4762 | { | 4759 | { |
4763 | lock (m_attachments) | 4760 | lock (m_attachments) |
@@ -5680,7 +5677,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5680 | p.SendAppearanceToAgent(this); | 5677 | p.SendAppearanceToAgent(this); |
5681 | if (p.Animator != null) | 5678 | if (p.Animator != null) |
5682 | p.Animator.SendAnimPackToClient(ControllingClient); | 5679 | p.Animator.SendAnimPackToClient(ControllingClient); |
5683 | p.SendAttachmentsToAgentNFPK(this); | 5680 | p.SendAttachmentsToAgentNF(this); |
5684 | } | 5681 | } |
5685 | } | 5682 | } |
5686 | } | 5683 | } |
@@ -5995,7 +5992,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5995 | SendAppearanceToAgent(p); | 5992 | SendAppearanceToAgent(p); |
5996 | if (Animator != null) | 5993 | if (Animator != null) |
5997 | Animator.SendAnimPackToClient(p.ControllingClient); | 5994 | Animator.SendAnimPackToClient(p.ControllingClient); |
5998 | SendAttachmentsToAgentNFPK(p); | 5995 | SendAttachmentsToAgentNF(p); |
5999 | } | 5996 | } |
6000 | } | 5997 | } |
6001 | 5998 | ||
@@ -6011,7 +6008,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
6011 | p.SendAppearanceToAgent(this); | 6008 | p.SendAppearanceToAgent(this); |
6012 | if (p.Animator != null) | 6009 | if (p.Animator != null) |
6013 | p.Animator.SendAnimPackToClient(ControllingClient); | 6010 | p.Animator.SendAnimPackToClient(ControllingClient); |
6014 | p.SendAttachmentsToAgentNFPK(this); | 6011 | p.SendAttachmentsToAgentNF(this); |
6015 | } | 6012 | } |
6016 | } | 6013 | } |
6017 | } | 6014 | } |