diff options
author | Oren Hurvitz | 2014-04-16 14:53:19 +0300 |
---|---|---|
committer | Oren Hurvitz | 2014-04-20 06:23:37 +0100 |
commit | 853c0fccc88e78500364abb25b822a0d9f1337b1 (patch) | |
tree | fef15a87407b404e740c6bb9e7e129f1df21df9f | |
parent | Fixed: once a user has rezzed an object, they could then duplicate it as much... (diff) | |
download | opensim-SC_OLD-853c0fccc88e78500364abb25b822a0d9f1337b1.zip opensim-SC_OLD-853c0fccc88e78500364abb25b822a0d9f1337b1.tar.gz opensim-SC_OLD-853c0fccc88e78500364abb25b822a0d9f1337b1.tar.bz2 opensim-SC_OLD-853c0fccc88e78500364abb25b822a0d9f1337b1.tar.xz |
Fixed: when any avatar changed his Active Group, it was set as the active group for *all* the avatars in the scene (not permanently)
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index f80f5a0..c905f20 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -397,9 +397,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
397 | } | 397 | } |
398 | public UUID AgentId { get { return m_agentId; } } | 398 | public UUID AgentId { get { return m_agentId; } } |
399 | public ISceneAgent SceneAgent { get; set; } | 399 | public ISceneAgent SceneAgent { get; set; } |
400 | public UUID ActiveGroupId { get { return m_activeGroupID; } } | 400 | public UUID ActiveGroupId { get { return m_activeGroupID; } private set { m_activeGroupID = value; } } |
401 | public string ActiveGroupName { get { return m_activeGroupName; } } | 401 | public string ActiveGroupName { get { return m_activeGroupName; } private set { m_activeGroupName = value; } } |
402 | public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } } | 402 | public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } private set { m_activeGroupPowers = value; } } |
403 | public bool IsGroupMember(UUID groupID) { return m_groupPowers.ContainsKey(groupID); } | 403 | public bool IsGroupMember(UUID groupID) { return m_groupPowers.ContainsKey(groupID); } |
404 | 404 | ||
405 | /// <summary> | 405 | /// <summary> |
@@ -2271,9 +2271,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2271 | 2271 | ||
2272 | public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) | 2272 | public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) |
2273 | { | 2273 | { |
2274 | m_activeGroupID = activegroupid; | 2274 | if (agentid == AgentId) |
2275 | m_activeGroupName = groupname; | 2275 | { |
2276 | m_activeGroupPowers = grouppowers; | 2276 | ActiveGroupId = activegroupid; |
2277 | ActiveGroupName = groupname; | ||
2278 | ActiveGroupPowers = grouppowers; | ||
2279 | } | ||
2277 | 2280 | ||
2278 | AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate); | 2281 | AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate); |
2279 | sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid; | 2282 | sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid; |
@@ -5415,8 +5418,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5415 | 5418 | ||
5416 | public ulong GetGroupPowers(UUID groupID) | 5419 | public ulong GetGroupPowers(UUID groupID) |
5417 | { | 5420 | { |
5418 | if (groupID == m_activeGroupID) | 5421 | if (groupID == ActiveGroupId) |
5419 | return m_activeGroupPowers; | 5422 | return ActiveGroupPowers; |
5420 | 5423 | ||
5421 | if (m_groupPowers.ContainsKey(groupID)) | 5424 | if (m_groupPowers.ContainsKey(groupID)) |
5422 | return m_groupPowers[groupID]; | 5425 | return m_groupPowers[groupID]; |
@@ -7166,7 +7169,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7166 | { | 7169 | { |
7167 | handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, | 7170 | handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, |
7168 | dupe.SharedData.DuplicateFlags, AgentId, | 7171 | dupe.SharedData.DuplicateFlags, AgentId, |
7169 | m_activeGroupID); | 7172 | ActiveGroupId); |
7170 | } | 7173 | } |
7171 | } | 7174 | } |
7172 | 7175 | ||
@@ -7779,7 +7782,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7779 | if (handlerObjectDuplicateOnRay != null) | 7782 | if (handlerObjectDuplicateOnRay != null) |
7780 | { | 7783 | { |
7781 | handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, | 7784 | handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, |
7782 | AgentId, m_activeGroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, | 7785 | AgentId, ActiveGroupId, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, |
7783 | dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, | 7786 | dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, |
7784 | dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); | 7787 | dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); |
7785 | } | 7788 | } |