From 8251508412940b3f584f051a860a1bb4ddbfb62e Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 3 Jul 2008 23:04:12 +0000 Subject: * On client login, send only one terrain patch at a time (with pauses) instead of 4 at a time * Certain terrains which are fine went patches are sent singly cause a libsecondlife failure when patches are sent in batches * See http://opensimulator.org/mantis/view.php?id=1662 for more details --- .../Environment/Modules/World/Terrain/TerrainChannel.cs | 2 +- .../Environment/Modules/World/Terrain/TerrainModule.cs | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/Environment/Modules/World/Terrain') diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs index 53d03fc..24a76f7 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs @@ -45,7 +45,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain public TerrainChannel() { - map = new double[Constants.RegionSize,Constants.RegionSize]; + map = new double[Constants.RegionSize, Constants.RegionSize]; taint = new bool[Constants.RegionSize / 16,Constants.RegionSize / 16]; int x; diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs index fb81abc..f47e6c0 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs @@ -494,8 +494,9 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain } /// - /// Checks to see if the terrain has been modified since last check - /// if the call is asked to respect the estate settings for terrain_raise_limit and + /// Checks to see if the terrain has been modified since last check. + /// If it has been modified, every all the terrain patches are sent to the client. + /// If the call is asked to respect the estate settings for terrain_raise_limit and /// terrain_lower_limit, it will clamp terrain updates between these values /// currently invoked by client_OnModifyTerrain only and not the Commander interfaces /// should height map deltas be limited to the estate settings limits @@ -520,6 +521,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain // what we are going to send to the client serialised = m_channel.GetFloatsSerialised(); } + SendToClients(serialised, x, y); shouldTaint = true; } @@ -578,7 +580,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain private void SendToClients(float[] serialised, int x, int y) { m_scene.ForEachClient( - delegate(IClientAPI controller) { controller.SendLayerData(x / Constants.TerrainPatchSize, y / Constants.TerrainPatchSize, serialised); }); + delegate(IClientAPI controller) + { controller.SendLayerData( + x / Constants.TerrainPatchSize, y / Constants.TerrainPatchSize, serialised); + } + ); } private void client_OnModifyTerrain(float height, float seconds, byte size, byte action, float north, float west, -- cgit v1.1