From 6b13730bc7451a407c6370d289545542c66a74ea Mon Sep 17 00:00:00 2001
From: Teravus Ovares
Date: Fri, 26 Sep 2008 12:56:17 +0000
Subject: * Wind updates. Still random.. but in 4 directions instead of
two! * It seems kind of silly to be building a 256x256 array just to use two
16 float blocks.. but for now the layerdata routine requires it so we'll go
along with that. * We only fill a 32x16 area of the 256x256 float array with
data. * We use patches 0,0 and 0,1 for the first and second patch to
determine the direction and magnitude of the wind.
---
.../Region/ClientStack/LindenUDP/LLClientView.cs | 50 ++++++++++++----------
1 file changed, 27 insertions(+), 23 deletions(-)
(limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index e21bf7c..39bda70 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -1235,7 +1235,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// heightmap
public virtual void SendWindData(float[] map)
{
- ThreadPool.QueueUserWorkItem(new WaitCallback(DoSendWindData), (object)map);
+ //ThreadPool.QueueUserWorkItem(new WaitCallback(DoSendWindData), (object)map);
}
///
@@ -1244,12 +1244,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
private void DoSendWindData(object o)
{
- float[] map = (float[])o;
+ //float[] map = (float[])o;
- try
- {
- for (int y = 0; y < 16; y++)
- {
+ //try
+ //{
+ //for (int y = 0; y < 16; y++)
+ //{
// For some terrains, sending more than one terrain patch at once results in a libsecondlife exception
// see http://opensimulator.org/mantis/view.php?id=1662
//for (int x = 0; x < 16; x += 4)
@@ -1257,17 +1257,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// SendLayerPacket(map, y, x);
// Thread.Sleep(150);
//}
- for (int x = 0; x < 16; x++)
- {
- SendWindData(x, y, map);
- Thread.Sleep(35);
- }
- }
- }
- catch (Exception e)
- {
- m_log.Warn("[CLIENT]: ClientView.API.cs: SendLayerData() - Failed with exception " + e.ToString());
- }
+ // for (int x = 0; x < 16; x++)
+ //{
+ //SendWindData(x, y, map);
+ //Thread.Sleep(35);
+ //}
+ //}
+ //}
+ //catch (Exception e)
+ //{
+ // m_log.Warn("[CLIENT]: ClientView.API.cs: SendLayerData() - Failed with exception " + e.ToString());
+ // }
}
///
@@ -1294,16 +1294,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// Patch coordinate (x) 0..15
/// Patch coordinate (y) 0..15
/// heightmap
- public void SendWindData(int px, int py, float[] map)
+ public void SendWindData(int p1x, int p1y, int p2x, int p2y, float[] map)
{
try
{
- int[] patches = new int[1];
- int patchx, patchy;
- patchx = px;
- patchy = py;
+ int[] patches = new int[2];
+ int patch1x, patch1y, patch2x, patch2y;
+ patch1x = p1x;
+ patch1y = p1y;
+ patch2x = p2x;
+ patch2y = p2y;
- patches[0] = patchx + 0 + patchy * 16;
+
+ patches[0] = patch1x + 0 + patch1y * 16;
+ patches[1] = patch2x + 0 + patch2y * 16;
LayerDataPacket layerpack = TerrainCompressor.CreateWindPacket(map, patches);
layerpack.Header.Zerocoded = true;
--
cgit v1.1