diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index eebb8ae..7c62f90 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -2233,9 +2233,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2233 | 2233 | ||
2234 | public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) | 2234 | public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) |
2235 | { | 2235 | { |
2236 | m_activeGroupID = activegroupid; | 2236 | if (agentid == AgentId) |
2237 | m_activeGroupName = groupname; | 2237 | { |
2238 | m_activeGroupPowers = grouppowers; | 2238 | m_activeGroupID = activegroupid; |
2239 | m_activeGroupName = groupname; | ||
2240 | m_activeGroupPowers = grouppowers; | ||
2241 | } | ||
2239 | 2242 | ||
2240 | AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate); | 2243 | AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate); |
2241 | sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid; | 2244 | sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid; |
@@ -3933,6 +3936,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3933 | part.Shape.ProfileHollow = 27500; | 3936 | part.Shape.ProfileHollow = 27500; |
3934 | } | 3937 | } |
3935 | } | 3938 | } |
3939 | else if (update.Entity is ScenePresence) | ||
3940 | { | ||
3941 | ScenePresence presence = (ScenePresence)update.Entity; | ||
3942 | |||
3943 | // If ParentUUID is not UUID.Zero and ParentID is 0, this | ||
3944 | // avatar is in the process of crossing regions while | ||
3945 | // sat on an object. In this state, we don't want any | ||
3946 | // updates because they will visually orbit the avatar. | ||
3947 | // Update will be forced once crossing is completed anyway. | ||
3948 | if (presence.ParentUUID != UUID.Zero && presence.ParentID == 0) | ||
3949 | continue; | ||
3950 | } | ||
3936 | 3951 | ||
3937 | ++updatesThisCall; | 3952 | ++updatesThisCall; |
3938 | 3953 | ||