aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs56
1 files changed, 46 insertions, 10 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 809822d..c23369c 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -1002,31 +1002,67 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1002 /// <param name="map">heightmap</param> 1002 /// <param name="map">heightmap</param>
1003 public virtual void SendLayerData(float[] map) 1003 public virtual void SendLayerData(float[] map)
1004 { 1004 {
1005 ThreadPool.QueueUserWorkItem(new WaitCallback(DoSendLayerData), (object)map);
1006 //try
1007 //{
1008 // int[] patches = new int[4];
1009
1010 // for (int y = 0; y < 16; y++)
1011 // {
1012 // for (int x = 0; x < 16; x += 4)
1013 // {
1014 // patches[0] = x + 0 + y * 16;
1015 // patches[1] = x + 1 + y * 16;
1016 // patches[2] = x + 2 + y * 16;
1017 // patches[3] = x + 3 + y * 16;
1018
1019 // Packet layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches);
1020 // OutPacket(layerpack, ThrottleOutPacketType.Land);
1021 // }
1022 // }
1023 //}
1024 //catch (Exception e)
1025 //{
1026 // m_log.Warn("[client]: " +
1027 // "ClientView.API.cs: SendLayerData() - Failed with exception " + e.ToString());
1028 //}
1029 }
1030
1031
1032 private void DoSendLayerData(object o)
1033 {
1034 float[] map = (float[])o;
1005 try 1035 try
1006 { 1036 {
1007 int[] patches = new int[4];
1008
1009 for (int y = 0; y < 16; y++) 1037 for (int y = 0; y < 16; y++)
1010 { 1038 {
1011 for (int x = 0; x < 16; x += 4) 1039 for (int x = 0; x < 16; x += 4)
1012 { 1040 {
1013 patches[0] = x + 0 + y * 16; 1041 SendLayerPacket(map, y, x);
1014 patches[1] = x + 1 + y * 16; 1042 Thread.Sleep(150);
1015 patches[2] = x + 2 + y * 16;
1016 patches[3] = x + 3 + y * 16;
1017
1018 Packet layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches);
1019 OutPacket(layerpack, ThrottleOutPacketType.Land);
1020 } 1043 }
1021 } 1044 }
1022 } 1045 }
1023 catch (Exception e) 1046 catch (Exception e)
1024 { 1047 {
1025 m_log.Warn("[client]: " + 1048 m_log.Warn("[client]: " +
1026 "ClientView.API.cs: SendLayerData() - Failed with exception " + e.ToString()); 1049 "ClientView.API.cs: SendLayerData() - Failed with exception " + e.ToString());
1027 } 1050 }
1028 } 1051 }
1029 1052
1053 private void SendLayerPacket(float[] map, int y, int x)
1054 {
1055 int[] patches = new int[4];
1056 patches[0] = x + 0 + y * 16;
1057 patches[1] = x + 1 + y * 16;
1058 patches[2] = x + 2 + y * 16;
1059 patches[3] = x + 3 + y * 16;
1060
1061 Packet layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches);
1062 OutPacket(layerpack, ThrottleOutPacketType.Land);
1063 }
1064
1065
1030 /// <summary> 1066 /// <summary>
1031 /// Sends a specified patch to a client 1067 /// Sends a specified patch to a client
1032 /// </summary> 1068 /// </summary>