aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs25
1 files changed, 21 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index ea8d5c4..be21748 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -69,6 +69,7 @@ namespace OpenSim.Region.Environment.Scenes
69 private bool m_newForce = false; 69 private bool m_newForce = false;
70 private bool m_newAvatar = false; 70 private bool m_newAvatar = false;
71 private bool m_newCoarseLocations = true; 71 private bool m_newCoarseLocations = true;
72 private bool m_gotAllObjectsInScene = false;
72 private float m_avHeight = 127.0f; 73 private float m_avHeight = 127.0f;
73 74
74 protected RegionInfo m_regionInfo; 75 protected RegionInfo m_regionInfo;
@@ -327,7 +328,14 @@ namespace OpenSim.Region.Environment.Scenes
327 // this.UpdateQuadTreeNode(); 328 // this.UpdateQuadTreeNode();
328 //this.RefreshQuadObject(); 329 //this.RefreshQuadObject();
329 //} 330 //}
330 331 if (!m_gotAllObjectsInScene)
332 {
333 if (!m_isChildAgent || m_scene.m_sendTasksToChild)
334 {
335 m_scene.SendAllSceneObjectsToClient(this);
336 m_gotAllObjectsInScene = true;
337 }
338 }
331 if (m_partsUpdateQueue.Count > 0) 339 if (m_partsUpdateQueue.Count > 0)
332 { 340 {
333 bool runUpdate = true; 341 bool runUpdate = true;
@@ -400,7 +408,12 @@ namespace OpenSim.Region.Environment.Scenes
400 AddToPhysicalScene(); 408 AddToPhysicalScene();
401 m_physicsActor.Flying = isFlying; 409 m_physicsActor.Flying = isFlying;
402 410
403 m_scene.SendAllSceneObjectsToClient(this); 411 if (!m_gotAllObjectsInScene)
412 {
413 m_scene.SendAllSceneObjectsToClient(this);
414 m_gotAllObjectsInScene = true;
415 }
416
404 } 417 }
405 418
406 public void MakeChildAgent() 419 public void MakeChildAgent()
@@ -409,7 +422,7 @@ namespace OpenSim.Region.Environment.Scenes
409 m_isChildAgent = true; 422 m_isChildAgent = true;
410 423
411 RemoveFromPhysicalScene(); 424 RemoveFromPhysicalScene();
412 425
413 //this.Pos = new LLVector3(128, 128, 70); 426 //this.Pos = new LLVector3(128, 128, 70);
414 } 427 }
415 428
@@ -952,7 +965,7 @@ namespace OpenSim.Region.Environment.Scenes
952 SendFullUpdateToOtherClient(avatar); 965 SendFullUpdateToOtherClient(avatar);
953 if (avatar.LocalId != LocalId) 966 if (avatar.LocalId != LocalId)
954 { 967 {
955 if (!avatar.m_isChildAgent) 968 if (!avatar.m_isChildAgent || m_scene.m_sendTasksToChild)
956 { 969 {
957 avatar.SendFullUpdateToOtherClient(this); 970 avatar.SendFullUpdateToOtherClient(this);
958 avatar.SendAppearanceToOtherAgent(this); 971 avatar.SendAppearanceToOtherAgent(this);
@@ -985,7 +998,11 @@ namespace OpenSim.Region.Environment.Scenes
985 public void SendOwnAppearance( ) 998 public void SendOwnAppearance( )
986 { 999 {
987 SendOwnWearables( ); 1000 SendOwnWearables( );
1001
1002 //Ugly hack x.x - Trap set appearence to send all objects in this scene!
1003
988 m_scene.SendAllSceneObjectsToClient(this); 1004 m_scene.SendAllSceneObjectsToClient(this);
1005 m_gotAllObjectsInScene = true;
989 // TODO: remove this once the SunModule is slightly more tested 1006 // TODO: remove this once the SunModule is slightly more tested
990 // m_controllingClient.SendViewerTime(m_scene.TimePhase); 1007 // m_controllingClient.SendViewerTime(m_scene.TimePhase);
991 } 1008 }