diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 25 |
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 | } |