aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authorMW2007-08-21 18:11:45 +0000
committerMW2007-08-21 18:11:45 +0000
commit0e6f57a3038e54cb1a2f229ebaae0cf8ee05b7ea (patch)
treedaac6856dc6a72211f7eefaa27f19041d9dc7fb0 /OpenSim/Region/Environment/Scenes
parentOld group is now deleted from datastore when you link groups/prims, so that t... (diff)
downloadopensim-SC-0e6f57a3038e54cb1a2f229ebaae0cf8ee05b7ea.zip
opensim-SC-0e6f57a3038e54cb1a2f229ebaae0cf8ee05b7ea.tar.gz
opensim-SC-0e6f57a3038e54cb1a2f229ebaae0cf8ee05b7ea.tar.bz2
opensim-SC-0e6f57a3038e54cb1a2f229ebaae0cf8ee05b7ea.tar.xz
Hopefully fixed the problem of users avatars not always showing up when either you or another user has crossed from one region to another. (however a avatar's appearance isn't kept across regions, but we need to add that to inter-regions communications so for now people will have to put up with some other user's avatars appearing as the bald(ish) fat man
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-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 }