aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs9
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs16
2 files changed, 19 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index f674ce2..cdf6788 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -883,6 +883,15 @@ namespace OpenSim.Region.Environment.Scenes
883 return false; 883 return false;
884 } 884 }
885 885
886 public void SendKillObject(uint localID)
887 {
888 List<ScenePresence> avatars = this.RequestAvatarList();
889 for (int i = 0; i < avatars.Count; i++)
890 {
891 avatars[i].ControllingClient.SendKillObject(this.m_regionHandle, localID);
892 }
893 }
894
886 public void SendAllSceneObjectsToClient(IClientAPI client) 895 public void SendAllSceneObjectsToClient(IClientAPI client)
887 { 896 {
888 foreach (EntityBase ent in Entities.Values) 897 foreach (EntityBase ent in Entities.Values)
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 73e9d48..47f991c 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -461,8 +461,11 @@ namespace OpenSim.Region.Environment.Scenes
461 this.SendFullUpdateToOtherClient(avatar); 461 this.SendFullUpdateToOtherClient(avatar);
462 if (avatar.LocalId != this.LocalId) 462 if (avatar.LocalId != this.LocalId)
463 { 463 {
464 avatar.SendFullUpdateToOtherClient(this); 464 if (!avatar.childAgent)
465 avatar.SendAppearanceToOtherAgent(this); 465 {
466 avatar.SendFullUpdateToOtherClient(this);
467 avatar.SendAppearanceToOtherAgent(this);
468 }
466 } 469 }
467 } 470 }
468 } 471 }
@@ -479,8 +482,8 @@ namespace OpenSim.Region.Environment.Scenes
479 this.newAvatar = false; 482 this.newAvatar = false;
480 } 483 }
481 484
482 // this.SendFullUpdateToALLClients(); 485 this.SendFullUpdateToALLClients();
483 // this.SendArrearanceToAllOtherAgents(); 486 this.SendArrearanceToAllOtherAgents();
484 } 487 }
485 488
486 /// <summary> 489 /// <summary>
@@ -491,8 +494,8 @@ namespace OpenSim.Region.Environment.Scenes
491 { 494 {
492 this.ControllingClient.SendWearables(this.Wearables); 495 this.ControllingClient.SendWearables(this.Wearables);
493 496
494 this.SendFullUpdateToALLClients(); 497 //this.SendFullUpdateToALLClients();
495 this.SendArrearanceToAllOtherAgents(); 498 //this.SendArrearanceToAllOtherAgents();
496 499
497 this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient); 500 this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient);
498 this.ControllingClient.SendViewerTime(this.m_scene.TimePhase); 501 this.ControllingClient.SendViewerTime(this.m_scene.TimePhase);
@@ -638,6 +641,7 @@ namespace OpenSim.Region.Environment.Scenes
638 string capsPath = Util.GetCapsURL(this.ControllingClient.AgentId); 641 string capsPath = Util.GetCapsURL(this.ControllingClient.AgentId);
639 this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath); 642 this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath);
640 this.MakeChildAgent(); 643 this.MakeChildAgent();
644 this.m_scene.SendKillObject(this.m_localId);
641 } 645 }
642 } 646 }
643 } 647 }