aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP
diff options
context:
space:
mode:
authorMelanie2010-12-30 00:31:59 +0100
committerMelanie2010-12-30 01:36:09 +0000
commita32f80b9e3a84852558150c3b30722b6755a1ff0 (patch)
tree0dbb8375e701e59f08884be256afbc704ed3b1ef /OpenSim/Region/ClientStack/LindenUDP
parentBug fix in neighbors: serverURI now always has a trailing '/'... neighbors we... (diff)
downloadopensim-SC_OLD-a32f80b9e3a84852558150c3b30722b6755a1ff0.zip
opensim-SC_OLD-a32f80b9e3a84852558150c3b30722b6755a1ff0.tar.gz
opensim-SC_OLD-a32f80b9e3a84852558150c3b30722b6755a1ff0.tar.bz2
opensim-SC_OLD-a32f80b9e3a84852558150c3b30722b6755a1ff0.tar.xz
Implement SendPlacesReply
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index d63b719..ee4f04e 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -11997,7 +11997,61 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11997 11997
11998 //ControllingClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId, 11998 //ControllingClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId,
11999 // AbsolutePosition, Velocity, Vector3.Zero, m_bodyRot, new Vector4(0,0,1,AbsolutePosition.Z - 0.5f), m_uuid, null, GetUpdatePriority(ControllingClient))); 11999 // AbsolutePosition, Velocity, Vector3.Zero, m_bodyRot, new Vector4(0,0,1,AbsolutePosition.Z - 0.5f), m_uuid, null, GetUpdatePriority(ControllingClient)));
12000 }
12001
12002 public void SendPlacesReply(UUID queryID, UUID transactionID,
12003 PlacesReplyData[] data)
12004 {
12005 PlacesReplyPacket reply = null;
12006 PlacesReplyPacket.QueryDataBlock[] dataBlocks =
12007 new PlacesReplyPacket.QueryDataBlock[0];
12008
12009 for (int i = 0 ; i < data.Length ; i++)
12010 {
12011 PlacesReplyPacket.QueryDataBlock block =
12012 new PlacesReplyPacket.QueryDataBlock();
12013
12014 block.OwnerID = data[i].OwnerID;
12015 block.Name = Util.StringToBytes256(data[i].Name);
12016 block.Desc = Util.StringToBytes1024(data[i].Desc);
12017 block.ActualArea = data[i].ActualArea;
12018 block.BillableArea = data[i].BillableArea;
12019 block.Flags = data[i].Flags;
12020 block.GlobalX = data[i].GlobalX;
12021 block.GlobalY = data[i].GlobalY;
12022 block.GlobalZ = data[i].GlobalZ;
12023 block.SimName = Util.StringToBytes256(data[i].SimName);
12024 block.SnapshotID = data[i].SnapshotID;
12025 block.Dwell = data[i].Dwell;
12026 block.Price = data[i].Price;
12027
12028 if (reply != null && reply.Length + block.Length > 1400)
12029 {
12030 OutPacket(reply, ThrottleOutPacketType.Task);
12000 12031
12032 reply = null;
12033 dataBlocks = new PlacesReplyPacket.QueryDataBlock[0];
12034 }
12035
12036 if (reply == null)
12037 {
12038 reply = (PlacesReplyPacket)PacketPool.Instance.GetPacket(PacketType.PlacesReply);
12039 reply.AgentData = new PlacesReplyPacket.AgentDataBlock();
12040 reply.AgentData.AgentID = AgentId;
12041 reply.AgentData.QueryID = queryID;
12042
12043 reply.TransactionData = new PlacesReplyPacket.TransactionDataBlock();
12044 reply.TransactionData.TransactionID = transactionID;
12045
12046 reply.QueryData = dataBlocks;
12047 }
12048
12049 Array.Resize(ref dataBlocks, dataBlocks.Length + 1);
12050 dataBlocks[dataBlocks.Length - 1] = block;
12051 reply.QueryData = dataBlocks;
12052 }
12053 if (reply != null)
12054 OutPacket(reply, ThrottleOutPacketType.Task);
12001 } 12055 }
12002 } 12056 }
12003} 12057}