Fixed: when any avatar changed his Active Group, it was set as the active group for *all* the avatars in the scene (not permanently)
parent
090f9bcece
commit
853c0fccc8
|
@ -397,9 +397,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
public UUID AgentId { get { return m_agentId; } }
|
public UUID AgentId { get { return m_agentId; } }
|
||||||
public ISceneAgent SceneAgent { get; set; }
|
public ISceneAgent SceneAgent { get; set; }
|
||||||
public UUID ActiveGroupId { get { return m_activeGroupID; } }
|
public UUID ActiveGroupId { get { return m_activeGroupID; } private set { m_activeGroupID = value; } }
|
||||||
public string ActiveGroupName { get { return m_activeGroupName; } }
|
public string ActiveGroupName { get { return m_activeGroupName; } private set { m_activeGroupName = value; } }
|
||||||
public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } }
|
public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } private set { m_activeGroupPowers = value; } }
|
||||||
public bool IsGroupMember(UUID groupID) { return m_groupPowers.ContainsKey(groupID); }
|
public bool IsGroupMember(UUID groupID) { return m_groupPowers.ContainsKey(groupID); }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -2271,9 +2271,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle)
|
public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle)
|
||||||
{
|
{
|
||||||
m_activeGroupID = activegroupid;
|
if (agentid == AgentId)
|
||||||
m_activeGroupName = groupname;
|
{
|
||||||
m_activeGroupPowers = grouppowers;
|
ActiveGroupId = activegroupid;
|
||||||
|
ActiveGroupName = groupname;
|
||||||
|
ActiveGroupPowers = grouppowers;
|
||||||
|
}
|
||||||
|
|
||||||
AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate);
|
AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate);
|
||||||
sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid;
|
sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid;
|
||||||
|
@ -5415,8 +5418,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
public ulong GetGroupPowers(UUID groupID)
|
public ulong GetGroupPowers(UUID groupID)
|
||||||
{
|
{
|
||||||
if (groupID == m_activeGroupID)
|
if (groupID == ActiveGroupId)
|
||||||
return m_activeGroupPowers;
|
return ActiveGroupPowers;
|
||||||
|
|
||||||
if (m_groupPowers.ContainsKey(groupID))
|
if (m_groupPowers.ContainsKey(groupID))
|
||||||
return m_groupPowers[groupID];
|
return m_groupPowers[groupID];
|
||||||
|
@ -7166,7 +7169,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
{
|
{
|
||||||
handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset,
|
handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset,
|
||||||
dupe.SharedData.DuplicateFlags, AgentId,
|
dupe.SharedData.DuplicateFlags, AgentId,
|
||||||
m_activeGroupID);
|
ActiveGroupId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7779,7 +7782,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
if (handlerObjectDuplicateOnRay != null)
|
if (handlerObjectDuplicateOnRay != null)
|
||||||
{
|
{
|
||||||
handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags,
|
handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags,
|
||||||
AgentId, m_activeGroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd,
|
AgentId, ActiveGroupId, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd,
|
||||||
dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection,
|
dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection,
|
||||||
dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates);
|
dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue