aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs56
1 files changed, 28 insertions, 28 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 9fe3a9e..2b1b342 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1887,29 +1887,26 @@ namespace OpenSim.Region.Framework.Scenes
1887 m_log.DebugFormat( 1887 m_log.DebugFormat(
1888 "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name); 1888 "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name);
1889 1889
1890 // Resume scripts this possible should also be moved down after sending the avatar to viewer ? 1890 foreach(SceneObjectGroup sog in m_attachments)
1891 foreach (SceneObjectGroup sog in m_attachments)
1892 { 1891 {
1893 SendFullUpdateToClient(ControllingClient); 1892 sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource());
1894 SendAttachmentFullUpdateToAgentNF(sog, this); 1893 sog.ResumeScripts();
1894 }
1895 1895
1896 if (!sog.HasPrivateAttachmentPoint) 1896 foreach (ScenePresence p in allpresences)
1897 {
1898 if (p == this)
1897 { 1899 {
1898 // sog.ScheduleGroupForFullUpdate(); 1900 SendTerseUpdateToAgentNF(this);
1899 foreach(ScenePresence p in allpresences) 1901 SendAttachmentsToAgentNF(this);
1900 { 1902 continue;
1901 if (p == this) 1903 }
1902 continue;
1903 1904
1904 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) 1905 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
1905 continue; 1906 continue;
1906 1907
1907 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path 1908 SendTerseUpdateToAgentNF(p);
1908 SendAttachmentFullUpdateToAgentNF(sog, p); 1909 SendAttachmentsToAgentNF(p);
1909 };
1910 }
1911 sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource());
1912 sog.ResumeScripts();
1913 } 1910 }
1914 } 1911 }
1915 } 1912 }
@@ -3428,7 +3425,9 @@ namespace OpenSim.Region.Framework.Scenes
3428 if (remoteClient.IsActive) 3425 if (remoteClient.IsActive)
3429 { 3426 {
3430 //m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity); 3427 //m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity);
3431 remoteClient.SendEntityUpdate(this, PrimUpdateFlags.FullUpdate); 3428 remoteClient.SendEntityUpdate(this,
3429 PrimUpdateFlags.Position | PrimUpdateFlags.Rotation | PrimUpdateFlags.Velocity
3430 | PrimUpdateFlags.Acceleration | PrimUpdateFlags.AngularVelocity);
3432 m_scene.StatsReporter.AddAgentUpdates(1); 3431 m_scene.StatsReporter.AddAgentUpdates(1);
3433 } 3432 }
3434 } 3433 }
@@ -4761,8 +4760,8 @@ namespace OpenSim.Region.Framework.Scenes
4761 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) 4760 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
4762 return; 4761 return;
4763 4762
4763 SendTerseUpdateToAgentNF(p);
4764 SendAttachmentFullUpdateToAgentNF(sog, p); 4764 SendAttachmentFullUpdateToAgentNF(sog, p);
4765 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
4766 }); 4765 });
4767 } 4766 }
4768 } 4767 }
@@ -4772,13 +4771,13 @@ namespace OpenSim.Region.Framework.Scenes
4772 // for now they are checked in several places down the line... 4771 // for now they are checked in several places down the line...
4773 public void SendAttachmentsToAgentNF(ScenePresence p) 4772 public void SendAttachmentsToAgentNF(ScenePresence p)
4774 { 4773 {
4774 SendTerseUpdateToAgentNF(p);
4775 lock (m_attachments) 4775 lock (m_attachments)
4776 { 4776 {
4777 foreach (SceneObjectGroup sog in m_attachments) 4777 foreach (SceneObjectGroup sog in m_attachments)
4778 { 4778 {
4779 SendAttachmentFullUpdateToAgentNF(sog, p); 4779 SendAttachmentFullUpdateToAgentNF(sog, p);
4780 } 4780 }
4781 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
4782 } 4781 }
4783 } 4782 }
4784 4783
@@ -5966,7 +5965,7 @@ namespace OpenSim.Region.Framework.Scenes
5966 public void HasMovedAway() 5965 public void HasMovedAway()
5967 { 5966 {
5968 List<ScenePresence> allpresences = m_scene.GetScenePresences(); 5967 List<ScenePresence> allpresences = m_scene.GetScenePresences();
5969 /* foreach (ScenePresence p in allpresences) 5968 foreach (ScenePresence p in allpresences)
5970 { 5969 {
5971 if (p == this) 5970 if (p == this)
5972 continue; 5971 continue;
@@ -5974,19 +5973,20 @@ namespace OpenSim.Region.Framework.Scenes
5974 if (!p.IsChildAgent) 5973 if (!p.IsChildAgent)
5975 p.SendKillTo(this); 5974 p.SendKillTo(this);
5976 } 5975 }
5977 */ 5976
5978 if (Scene.AttachmentsModule != null) 5977 if (Scene.AttachmentsModule != null)
5979 Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true); 5978 Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true);
5980 } 5979 }
5981 5980
5981
5982// kill with attachs root kills 5982// kill with attachs root kills
5983 public void SendKillTo(ScenePresence p) 5983 public void SendKillTo(ScenePresence p)
5984 { 5984 {
5985 List<uint> ids = new List<uint>(m_attachments.Count + 1); 5985 List<uint> ids = new List<uint>(m_attachments.Count + 1);
5986// foreach (SceneObjectGroup sog in m_attachments) 5986 foreach (SceneObjectGroup sog in m_attachments)
5987// { 5987 {
5988// ids.Add(sog.RootPart.LocalId); 5988 ids.Add(sog.RootPart.LocalId);
5989// } 5989 }
5990 5990
5991 ids.Add(LocalId); 5991 ids.Add(LocalId);
5992 p.ControllingClient.SendKillObject(ids); 5992 p.ControllingClient.SendKillObject(ids);