diff options
author | Justin Clark-Casey (justincc) | 2011-12-08 18:34:23 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-12-08 18:34:23 +0000 |
commit | f61e54892f2284b6f89bacf3069467c05b2eea11 (patch) | |
tree | 87cb0933707a8e02f920910c7669273232021470 /OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |
parent | Simplify Scene.AddNewClient() (diff) | |
download | opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.zip opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.tar.gz opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.tar.bz2 opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.tar.xz |
On a new client circuit, send the initial reply ack to let the client know it's live before sending other data.
This means that avatar/appearance data of other avatars and scene objects for a client will be sent after the ack rather than possibly before.
This may stop some avatars appearing grey on login.
This introduces a new OpenSim.Framework.ISceneAgent to accompany the existing OpenSim.Framework.ISceneObject and ISceneEntity
This allows IClientAPI to handle this as it can't reference OpenSim.Region.Framework.Interfaces
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 7d39ddc..f246637 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -379,6 +379,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
379 | set { m_startpos = value; } | 379 | set { m_startpos = value; } |
380 | } | 380 | } |
381 | public UUID AgentId { get { return m_agentId; } } | 381 | public UUID AgentId { get { return m_agentId; } } |
382 | public ISceneAgent SceneAgent { get; private set; } | ||
382 | public UUID ActiveGroupId { get { return m_activeGroupID; } } | 383 | public UUID ActiveGroupId { get { return m_activeGroupID; } } |
383 | public string ActiveGroupName { get { return m_activeGroupName; } } | 384 | public string ActiveGroupName { get { return m_activeGroupName; } } |
384 | public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } } | 385 | public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } } |
@@ -508,6 +509,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
508 | 509 | ||
509 | // Remove ourselves from the scene | 510 | // Remove ourselves from the scene |
510 | m_scene.RemoveClient(AgentId, true); | 511 | m_scene.RemoveClient(AgentId, true); |
512 | SceneAgent = null; | ||
511 | 513 | ||
512 | // We can't reach into other scenes and close the connection | 514 | // We can't reach into other scenes and close the connection |
513 | // We need to do this over grid communications | 515 | // We need to do this over grid communications |
@@ -687,7 +689,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
687 | 689 | ||
688 | public virtual void Start() | 690 | public virtual void Start() |
689 | { | 691 | { |
690 | m_scene.AddNewClient(this, PresenceType.User); | 692 | SceneAgent = m_scene.AddNewClient(this, PresenceType.User); |
691 | 693 | ||
692 | RefreshGroupMembership(); | 694 | RefreshGroupMembership(); |
693 | } | 695 | } |