public static Message Decode(UDPPacket p) { var m = new AgentGroupDataUpdate { AgentID = p.ReadUUID() }; uint n = p.ReadUInt8(); for (uint i = 0; i < n; ++i) { m.GroupData.Add(new GroupDataEntry { GroupID = p.ReadUUID(), GroupPowers = (GroupPowers)p.ReadUInt64(), AcceptNotices = p.ReadBoolean(), GroupInsigniaID = p.ReadUUID(), Contribution = p.ReadInt32(), GroupName = p.ReadStringLen8() }); } return(m); }
public static Message DeserializeEQG(IValue value) { var m = (MapType)value; var groupDataArray = (AnArray)m["GroupData"]; var newGroupDataArray = (AnArray)m["NewGroupData"]; var agentData = (MapType)((AnArray)m["AgentData"])[0]; var res = new AgentGroupDataUpdate { AgentID = agentData["AgentID"].AsUUID }; int n = Math.Min(groupDataArray.Count, newGroupDataArray.Count); for (int i = 0; i < n; ++i) { var groupData = (MapType)groupDataArray[i]; var newGroupData = (MapType)newGroupDataArray[i]; byte[] grouppowers = (BinaryData)groupData["GroupPowers"]; if (BitConverter.IsLittleEndian) { Array.Reverse(grouppowers); } res.GroupData.Add(new GroupDataEntry { GroupID = groupData["GroupID"].AsUUID, GroupInsigniaID = groupData["GroupInsigniaID"].AsUUID, Contribution = groupData["Contribution"].AsInt, GroupPowers = (GroupPowers)BitConverter.ToUInt64(grouppowers, 0), GroupName = groupData["GroupName"].ToString(), AcceptNotices = groupData["AcceptNotices"].AsBoolean, ListInProfile = groupData["ListInProfile"].AsBoolean }); } return(res); }