diff --git a/OpenSim/Framework/Communications/LoginResponse.cs b/OpenSim/Framework/Communications/LoginResponse.cs
index 9036884b67..00b691ef13 100644
--- a/OpenSim/Framework/Communications/LoginResponse.cs
+++ b/OpenSim/Framework/Communications/LoginResponse.cs
@@ -152,7 +152,7 @@ namespace OpenSim.Framework.UserManagement
ErrorReason = "key";
welcomeMessage = "Welcome to OpenSim!";
seedCapability = String.Empty;
- home = "{'region_handle':[r" + (1000*256).ToString() + ",r" + (1000*256).ToString() + "], 'position':[r" +
+ home = "{'region_handle':[r" + (1000*Constants.RegionSize).ToString() + ",r" + (1000*Constants.RegionSize).ToString() + "], 'position':[r" +
userProfile.homepos.X.ToString() + ",r" + userProfile.homepos.Y.ToString() + ",r" +
userProfile.homepos.Z.ToString() + "], 'look_at':[r" + userProfile.homelookat.X.ToString() + ",r" +
userProfile.homelookat.Y.ToString() + ",r" + userProfile.homelookat.Z.ToString() + "]}";
@@ -347,8 +347,8 @@ namespace OpenSim.Framework.UserManagement
responseData["home"] = home;
responseData["look_at"] = lookAt;
responseData["message"] = welcomeMessage;
- responseData["region_x"] = (Int32) RegionX*256;
- responseData["region_y"] = (Int32) RegionY*256;
+ responseData["region_x"] = (Int32)RegionX * Constants.RegionSize;
+ responseData["region_y"] = (Int32)RegionY * Constants.RegionSize;
//responseData["inventory-lib-root"] = new ArrayList(); // todo
@@ -447,8 +447,8 @@ namespace OpenSim.Framework.UserManagement
map["home"] = LLSD.FromString(home);
map["look_at"] = LLSD.FromString(lookAt);
map["message"] = LLSD.FromString(welcomeMessage);
- map["region_x"] = LLSD.FromInteger(RegionX * 256);
- map["region_y"] = LLSD.FromInteger(RegionY * 256);
+ map["region_x"] = LLSD.FromInteger(RegionX * Constants.RegionSize);
+ map["region_y"] = LLSD.FromInteger(RegionY * Constants.RegionSize);
if (m_buddyList != null)
{
diff --git a/OpenSim/Framework/Constants.cs b/OpenSim/Framework/Constants.cs
new file mode 100644
index 0000000000..b308221f6a
--- /dev/null
+++ b/OpenSim/Framework/Constants.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Framework
+{
+ public class Constants
+ {
+ public const uint RegionSize = 256;
+ }
+}
diff --git a/OpenSim/Framework/Data/RegionProfileData.cs b/OpenSim/Framework/Data/RegionProfileData.cs
index 48d3ebc68d..8119d018fc 100644
--- a/OpenSim/Framework/Data/RegionProfileData.cs
+++ b/OpenSim/Framework/Data/RegionProfileData.cs
@@ -169,7 +169,7 @@ namespace OpenSim.Framework.Data
RegionProfileData simData = new RegionProfileData();
simData.regionLocX = Convert.ToUInt32((string) responseData["region_locx"]);
simData.regionLocY = Convert.ToUInt32((string) responseData["region_locy"]);
- simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX*256), (simData.regionLocY*256));
+ simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * Constants.RegionSize), (simData.regionLocY * Constants.RegionSize));
simData.serverIP = (string) responseData["sim_ip"];
simData.serverPort = Convert.ToUInt32((string) responseData["sim_port"]);
simData.httpPort = Convert.ToUInt32((string) responseData["http_port"]);
@@ -203,7 +203,7 @@ namespace OpenSim.Framework.Data
RegionProfileData simData = new RegionProfileData();
simData.regionLocX = Convert.ToUInt32((string) responseData["region_locx"]);
simData.regionLocY = Convert.ToUInt32((string) responseData["region_locy"]);
- simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX*256), (simData.regionLocY*256));
+ simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * Constants.RegionSize), (simData.regionLocY * Constants.RegionSize));
simData.serverIP = (string) responseData["sim_ip"];
simData.serverPort = Convert.ToUInt32((string) responseData["sim_port"]);
simData.httpPort = Convert.ToUInt32((string) responseData["http_port"]);
diff --git a/OpenSim/Framework/RegionHandle.cs b/OpenSim/Framework/RegionHandle.cs
index 440aaf6ffe..9cfe53d353 100644
--- a/OpenSim/Framework/RegionHandle.cs
+++ b/OpenSim/Framework/RegionHandle.cs
@@ -63,8 +63,8 @@ namespace OpenSim.Framework
uint ny = (uint) y;
// Multiply grid coords to get region coords
- nx *= 256;
- ny *= 256;
+ nx *= Constants.RegionSize;
+ ny *= Constants.RegionSize;
// Stuff the IP address in too
nx = (uint) a << 16;
@@ -80,7 +80,7 @@ namespace OpenSim.Framework
/// Grid Y Coordinate
public RegionHandle(uint x, uint y)
{
- handle = ((x*256) << 32) | (y*256);
+ handle = ((x * Constants.RegionSize) << 32) | (y * Constants.RegionSize);
}
///
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index e953182d11..f97db5c208 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -156,7 +156,7 @@ namespace OpenSim.Framework
public ulong RegionHandle
{
- get { return Util.UIntsToLong((RegionLocX*256), (RegionLocY*256)); }
+ get { return Util.UIntsToLong((RegionLocX * (uint)Constants.RegionSize), (RegionLocY * (uint)Constants.RegionSize)); }
}
}
diff --git a/OpenSim/Framework/SerializableRegionInfo.cs b/OpenSim/Framework/SerializableRegionInfo.cs
index 0097fe41f3..077ed8da2f 100644
--- a/OpenSim/Framework/SerializableRegionInfo.cs
+++ b/OpenSim/Framework/SerializableRegionInfo.cs
@@ -155,7 +155,7 @@ namespace OpenSim.Framework
public ulong RegionHandle
{
- get { return Util.UIntsToLong((RegionLocX*256), (RegionLocY*256)); }
+ get { return Util.UIntsToLong((RegionLocX * (uint)Constants.RegionSize), (RegionLocY * (uint)Constants.RegionSize)); }
}
}
}
\ No newline at end of file
diff --git a/OpenSim/Framework/UserProfileData.cs b/OpenSim/Framework/UserProfileData.cs
index de44a0d3ef..9c02d78396 100644
--- a/OpenSim/Framework/UserProfileData.cs
+++ b/OpenSim/Framework/UserProfileData.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Framework
///
public ulong homeRegion
{
- get { return Helpers.UIntsToLong((homeRegionX*256), (homeRegionY*256)); }
+ get { return Helpers.UIntsToLong((homeRegionX * (uint)Constants.RegionSize), (homeRegionY * (uint)Constants.RegionSize)); }
set
{
homeRegionX = (uint) (value >> 40);
diff --git a/OpenSim/Grid/GridServer/GridManager.cs b/OpenSim/Grid/GridServer/GridManager.cs
index 0ccffd9e3d..efab4fce95 100644
--- a/OpenSim/Grid/GridServer/GridManager.cs
+++ b/OpenSim/Grid/GridServer/GridManager.cs
@@ -203,13 +203,13 @@ namespace OpenSim.Grid.GridServer
{
if (
getRegion(
- Util.UIntsToLong((uint) ((central_region.regionLocX + x)*256),
- (uint) (central_region.regionLocY + y)*256)) != null)
+ Util.UIntsToLong((uint)((central_region.regionLocX + x) * Constants.RegionSize),
+ (uint)(central_region.regionLocY + y) * Constants.RegionSize)) != null)
{
neighbour =
getRegion(
- Util.UIntsToLong((uint) ((central_region.regionLocX + x)*256),
- (uint) (central_region.regionLocY + y)*256));
+ Util.UIntsToLong((uint)((central_region.regionLocX + x) * Constants.RegionSize),
+ (uint)(central_region.regionLocY + y) * Constants.RegionSize));
response += "";
response += "" + neighbour.serverIP + "";
response += "" + neighbour.serverPort.ToString() + "";
@@ -303,7 +303,7 @@ namespace OpenSim.Grid.GridServer
}
catch (KeyNotFoundException) { }
- TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256));
+ TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * Constants.RegionSize), (TheSim.regionLocY * Constants.RegionSize));
TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/";
TheSim.httpServerURI = "http://" + TheSim.serverIP + ":" + TheSim.httpPort + "/";
@@ -416,13 +416,13 @@ namespace OpenSim.Grid.GridServer
{
if (
getRegion(
- Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * 256),
- (uint)(TheSim.regionLocY + y) * 256)) != null)
+ Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * Constants.RegionSize),
+ (uint)(TheSim.regionLocY + y) * Constants.RegionSize)) != null)
{
neighbour =
getRegion(
- Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * 256),
- (uint)(TheSim.regionLocY + y) * 256));
+ Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * Constants.RegionSize),
+ (uint)(TheSim.regionLocY + y) * Constants.RegionSize));
NeighbourBlock = new Hashtable();
NeighbourBlock["sim_ip"] = Util.GetHostFromDNS(neighbour.serverIP).ToString();
@@ -604,7 +604,7 @@ namespace OpenSim.Grid.GridServer
{
for (int y = ymin; y < ymax + 1; y++)
{
- ulong regHandle = Helpers.UIntsToLong((uint) (x*256), (uint) (y*256));
+ ulong regHandle = Helpers.UIntsToLong((uint)(x * Constants.RegionSize), (uint)(y * Constants.RegionSize));
simProfile = getRegion(regHandle);
if (simProfile != null)
{
@@ -764,12 +764,12 @@ namespace OpenSim.Grid.GridServer
case "region_locx":
TheSim.regionLocX = Convert.ToUInt32((string) simnode.ChildNodes[i].InnerText);
- TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX*256), (TheSim.regionLocY*256));
+ TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * Constants.RegionSize), (TheSim.regionLocY * Constants.RegionSize));
break;
case "region_locy":
TheSim.regionLocY = Convert.ToUInt32((string) simnode.ChildNodes[i].InnerText);
- TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX*256), (TheSim.regionLocY*256));
+ TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * Constants.RegionSize), (TheSim.regionLocY * Constants.RegionSize));
break;
}
}
@@ -787,9 +787,9 @@ namespace OpenSim.Grid.GridServer
return "ERROR! Servers must register with public addresses.";
}
- if (requireValid && (TheSim.serverIP.StartsWith("0.")))
+ if (requireValid && (TheSim.serverIP.StartsWith("0.") || TheSim.serverIP.StartsWith("255.")))
{
- return "ERROR! 0.*.*.* Addresses are invalid, please check your server config and try again";
+ return "ERROR! 0.*.*.* / 255.*.*.* Addresses are invalid, please check your server config and try again";
}
diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs
index c2669b041a..059a6b0932 100644
--- a/OpenSim/Grid/MessagingServer/MessageService.cs
+++ b/OpenSim/Grid/MessagingServer/MessageService.cs
@@ -451,7 +451,7 @@ namespace OpenSim.Grid.MessagingServer
regionProfile = new RegionProfileData();
regionProfile.httpPort = (uint)Convert.ToInt32((string)responseData["http_port"]);
regionProfile.httpServerURI = "http://" + internalIpStr + ":" + regionProfile.httpPort + "/";
- regionProfile.regionHandle = Helpers.UIntsToLong((regX * 256), (regY * 256));
+ regionProfile.regionHandle = Helpers.UIntsToLong((regX * Constants.RegionSize), (regY * Constants.RegionSize));
regionProfile.regionLocX = regX;
regionProfile.regionLocY = regY;
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs
index af234e2cab..09cd9fd87b 100644
--- a/OpenSim/Grid/UserServer/UserLoginService.cs
+++ b/OpenSim/Grid/UserServer/UserLoginService.cs
@@ -82,8 +82,8 @@ namespace OpenSim.Grid.UserServer
// Customise the response
//CFK: This is redundant and the next message should always appear.
//CFK: m_log.Info("[LOGIN]: Home Location");
- response.Home = "{'region_handle':[r" + (SimInfo.regionLocX*256).ToString() + ",r" +
- (SimInfo.regionLocY*256).ToString() + "], " +
+ response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * Constants.RegionSize).ToString() + ",r" +
+ (SimInfo.regionLocY * Constants.RegionSize).ToString() + "], " +
"'position':[r" + theUser.homeLocation.X.ToString() + ",r" +
theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " +
"'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" +
@@ -144,7 +144,7 @@ namespace OpenSim.Grid.UserServer
// Send him to default region instead
// Load information from the gridserver
- ulong defaultHandle = (((ulong) m_config.DefaultX*256) << 32) | ((ulong) m_config.DefaultY*256);
+ ulong defaultHandle = (((ulong)m_config.DefaultX * Constants.RegionSize) << 32) | ((ulong)m_config.DefaultY * Constants.RegionSize);
m_log.Warn(
"[LOGIN]: Home region not available: sending to default " + defaultHandle.ToString());
@@ -158,8 +158,8 @@ namespace OpenSim.Grid.UserServer
// Customise the response
m_log.Info("[LOGIN]: Home Location");
- response.Home = "{'region_handle':[r" + (SimInfo.regionLocX*256).ToString() + ",r" +
- (SimInfo.regionLocY*256).ToString() + "], " +
+ response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * Constants.RegionSize).ToString() + ",r" +
+ (SimInfo.regionLocY * Constants.RegionSize).ToString() + "], " +
"'position':[r" + theUser.homeLocation.X.ToString() + ",r" +
theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " +
"'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" +
diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs
index f6dd379cff..53748abc6f 100644
--- a/OpenSim/Region/Communications/Local/LocalLoginService.cs
+++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs
@@ -128,8 +128,8 @@ namespace OpenSim.Region.Communications.Local
if (reg != null)
{
- response.Home = "{'region_handle':[r" + (reg.RegionLocX*256).ToString() + ",r" +
- (reg.RegionLocY*256).ToString() + "], " +
+ response.Home = "{'region_handle':[r" + (reg.RegionLocX * Constants.RegionSize).ToString() + ",r" +
+ (reg.RegionLocY * Constants.RegionSize).ToString() + "], " +
"'position':[r" + theUser.homeLocation.X.ToString() + ",r" +
theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " +
"'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" +
diff --git a/OpenSim/Region/Environment/Interfaces/ITerrainChannel.cs b/OpenSim/Region/Environment/Interfaces/ITerrainChannel.cs
new file mode 100644
index 0000000000..9f70b98c5a
--- /dev/null
+++ b/OpenSim/Region/Environment/Interfaces/ITerrainChannel.cs
@@ -0,0 +1,10 @@
+using System;
+namespace OpenSim.Region.Environment.Interfaces
+{
+ interface ITerrainChannel
+ {
+ int Height { get; }
+ double this[int x, int y] { get; set; }
+ int Width { get; }
+ }
+}
diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs
index 7cc8519960..fec889909c 100644
--- a/OpenSim/Region/Environment/LandManagement/Land.cs
+++ b/OpenSim/Region/Environment/LandManagement/Land.cs
@@ -78,7 +78,7 @@ namespace OpenSim.Region.Environment.LandManagement
/// Returns true if the piece of land contains the specified point
public bool containsPoint(int x, int y)
{
- if (x >= 0 && y >= 0 && x <= 256 && x <= 256)
+ if (x >= 0 && y >= 0 && x <= Constants.RegionSize && x <= Constants.RegionSize)
{
return (landBitmap[x/4, y/4] == true);
}
@@ -545,7 +545,7 @@ namespace OpenSim.Region.Environment.LandManagement
///
public static bool[,] basicFullRegionLandBitmap()
{
- return getSquareLandBitmap(0, 0, 256, 256);
+ return getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize);
}
///
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs
index a4d8868ad7..f5e2a3ef69 100644
--- a/OpenSim/Region/Environment/LandManagement/LandManager.cs
+++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs
@@ -281,7 +281,7 @@ namespace OpenSim.Region.Environment.LandManagement
public Land getLandObject(int x, int y)
{
- if (x >= 256 || y >= 256 || x < 0 || y < 0)
+ if (x >= Constants.RegionSize || y >= Constants.RegionSize || x < 0 || y < 0)
{
// These exceptions here will cause a lot of complaints from the users specifically because
// they happen every time at border crossings
@@ -614,7 +614,7 @@ namespace OpenSim.Region.Environment.LandManagement
Land fullSimParcel = new Land(LLUUID.Zero, false, m_scene);
- fullSimParcel.setLandBitmap(Land.getSquareLandBitmap(0, 0, 256, 256));
+ fullSimParcel.setLandBitmap(Land.getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
fullSimParcel.landData.ownerID = m_regInfo.MasterAvatarAssignedUUID;
addLandObject(fullSimParcel);
diff --git a/OpenSim/Region/Environment/Modules/ChatModule.cs b/OpenSim/Region/Environment/Modules/ChatModule.cs
index 82bd2ec6bc..a34bd96f1e 100644
--- a/OpenSim/Region/Environment/Modules/ChatModule.cs
+++ b/OpenSim/Region/Environment/Modules/ChatModule.cs
@@ -223,7 +223,7 @@ namespace OpenSim.Region.Environment.Modules
// Filled in since it's easier than rewriting right now.
LLVector3 fromPos = e.Position;
- LLVector3 regionPos = new LLVector3(scene.RegionInfo.RegionLocX*256, scene.RegionInfo.RegionLocY*256, 0);
+ LLVector3 regionPos = new LLVector3(scene.RegionInfo.RegionLocX * Constants.RegionSize, scene.RegionInfo.RegionLocY * Constants.RegionSize, 0);
string fromName = e.From;
string message = e.Message;
@@ -237,7 +237,7 @@ namespace OpenSim.Region.Environment.Modules
if (avatar != null)
{
fromPos = avatar.AbsolutePosition;
- regionPos = new LLVector3(scene.RegionInfo.RegionLocX*256, scene.RegionInfo.RegionLocY*256, 0);
+ regionPos = new LLVector3(scene.RegionInfo.RegionLocX * Constants.RegionSize, scene.RegionInfo.RegionLocY * Constants.RegionSize, 0);
fromName = avatar.Firstname + " " + avatar.Lastname;
fromAgentID = e.Sender.AgentId;
}
diff --git a/OpenSim/Region/Environment/Modules/TerrainModule.cs b/OpenSim/Region/Environment/Modules/TerrainModule.cs
new file mode 100644
index 0000000000..7e163a3255
--- /dev/null
+++ b/OpenSim/Region/Environment/Modules/TerrainModule.cs
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) Contributors, http://opensimulator.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
+using Nini.Config;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using OpenSim.Framework;
+using OpenSim.Framework.Console;
+using OpenSim.Region.Environment.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using libsecondlife;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ ///
+ /// A new version of the old Channel class, simplified
+ ///
+ public class TerrainChannel : ITerrainChannel
+ {
+ private double[,] map;
+
+ public int Width
+ {
+ get { return map.GetLength(0); }
+ }
+
+ public int Height
+ {
+ get { return map.GetLength(1); }
+ }
+
+ public TerrainChannel Copy()
+ {
+ TerrainChannel copy = new TerrainChannel(false);
+ copy.map = (double[,])this.map.Clone();
+
+ return copy;
+ }
+
+ public double this[int x, int y]
+ {
+ get
+ {
+ return map[x, y];
+ }
+ set
+ {
+ map[x, y] = value;
+ }
+ }
+
+ public TerrainChannel()
+ {
+ map = new double[Constants.RegionSize, Constants.RegionSize];
+ }
+
+ public TerrainChannel(bool createMap)
+ {
+ if (createMap)
+ map = new double[Constants.RegionSize, Constants.RegionSize];
+ }
+
+ public TerrainChannel(int w, int h)
+ {
+ map = new double[w, h];
+ }
+ }
+
+ public class TerrainModule : IRegionModule
+ {
+ private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+
+ Scene m_scene;
+
+ private IConfigSource m_gConfig;
+
+ public void Initialise(Scene scene, IConfigSource config)
+ {
+ m_scene = scene;
+ m_gConfig = config;
+ }
+
+ public void Close()
+ {
+
+ }
+
+ public string Name
+ {
+ get { return "TerrainModule"; }
+ }
+
+ public bool IsSharedModule
+ {
+ get { return false; }
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ }
+
+}
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index 7698127e4b..48fa3dc0db 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Environment.Scenes
m_parentScene = parent;
m_regInfo = regInfo;
PermissionsMngr = permissionsMngr;
- QuadTree = new BasicQuadTreeNode(null, "/0/", 0, 0, 256, 256);
+ QuadTree = new BasicQuadTreeNode(null, "/0/", 0, 0, (short)Constants.RegionSize, (short)Constants.RegionSize);
QuadTree.Subdivide();
QuadTree.Subdivide();
}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 5842932127..eec51e6dc6 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1232,31 +1232,31 @@ namespace OpenSim.Region.Environment.Scenes
ulong newRegionHandle = 0;
LLVector3 pos = position;
- if (position.X > 257f)
+ if (position.X > Constants.RegionSize + 0.1f)
{
- pos.X = ((pos.X - 256));
-
- newRegionHandle = Util.UIntsToLong((uint)((thisx + 1) * 256), (uint)(thisy * 256));
+ pos.X = ((pos.X - Constants.RegionSize));
+
+ newRegionHandle = Util.UIntsToLong((uint)((thisx + 1) * Constants.RegionSize), (uint)(thisy * Constants.RegionSize));
// x + 1
}
- else if (position.X < -1f)
+ else if (position.X < -0.1f)
{
- pos.X = ((pos.X + 256));
- newRegionHandle = Util.UIntsToLong((uint)((thisx - 1) * 256), (uint)(thisy * 256));
+ pos.X = ((pos.X + Constants.RegionSize));
+ newRegionHandle = Util.UIntsToLong((uint)((thisx - 1) * Constants.RegionSize), (uint)(thisy * Constants.RegionSize));
// x - 1
}
- if (position.Y > 257f)
+ if (position.Y > Constants.RegionSize + 0.1f)
{
- pos.Y = ((pos.Y - 256));
- newRegionHandle = Util.UIntsToLong((uint)(thisx * 256), (uint)((thisy + 1) * 256));
+ pos.Y = ((pos.Y - Constants.RegionSize));
+ newRegionHandle = Util.UIntsToLong((uint)(thisx * Constants.RegionSize), (uint)((thisy + 1) * Constants.RegionSize));
// y + 1
}
else if (position.Y < -1f)
{
- pos.Y = ((pos.Y + 256));
- newRegionHandle = Util.UIntsToLong((uint)(thisx * 256), (uint)((thisy - 1) * 256));
+ pos.Y = ((pos.Y + Constants.RegionSize));
+ newRegionHandle = Util.UIntsToLong((uint)(thisx * Constants.RegionSize), (uint)((thisy - 1) * Constants.RegionSize));
// y - 1
}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index aa2f2d02ff..e8d4766aa7 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -387,7 +387,7 @@ namespace OpenSim.Region.Environment.Scenes
// This may need to be updated to the maximum draw distance possible..
// We might (and probably will) be checking for prim creation from other sims
// when the camera crosses the border.
- float idist = 256f;
+ float idist = (float)Constants.RegionSize;
if (inter.HitTF)
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 61fce39b4c..2b02ab957a 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -1514,12 +1514,12 @@ namespace OpenSim.Region.Environment.Scenes
pos2.Y = pos2.Y + (vel.Y*timeStep);
pos2.Z = pos2.Z + (vel.Z*timeStep);
- if ((pos2.X < 0) || (pos2.X > 256))
+ if ((pos2.X < 0) || (pos2.X > Constants.RegionSize))
{
CrossToNewRegion();
}
- if ((pos2.Y < 0) || (pos2.Y > 256))
+ if ((pos2.Y < 0) || (pos2.Y > Constants.RegionSize))
{
CrossToNewRegion();
}
@@ -1544,17 +1544,12 @@ namespace OpenSim.Region.Environment.Scenes
// distance into new region to place avatar
const float enterDistance = 0.1f;
- // region size
- // TODO: this should be hard-coded in some common place
- const float regionWidth = 256;
- const float regionHeight = 256;
-
if (pos.X < boundaryDistance)
{
neighbourx--;
- newpos.X = regionWidth - enterDistance;
+ newpos.X = Constants.RegionSize - enterDistance;
}
- else if (pos.X > regionWidth - boundaryDistance)
+ else if (pos.X > Constants.RegionSize - boundaryDistance)
{
neighbourx++;
newpos.X = enterDistance;
@@ -1563,16 +1558,16 @@ namespace OpenSim.Region.Environment.Scenes
if (pos.Y < boundaryDistance)
{
neighboury--;
- newpos.Y = regionHeight - enterDistance;
+ newpos.Y = Constants.RegionSize - enterDistance;
}
- else if (pos.Y > regionHeight - boundaryDistance)
+ else if (pos.Y > Constants.RegionSize - boundaryDistance)
{
neighboury++;
newpos.Y = enterDistance;
}
LLVector3 vel = m_velocity;
- ulong neighbourHandle = Helpers.UIntsToLong((uint) (neighbourx*256), (uint) (neighboury*256));
+ ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * Constants.RegionSize), (uint)(neighboury * Constants.RegionSize));
SimpleRegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle);
if (neighbourRegion != null)
{
@@ -1622,8 +1617,8 @@ namespace OpenSim.Region.Environment.Scenes
public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY)
{
//
- int shiftx = ((int)rRegionX - (int)tRegionX) * 256;
- int shifty = ((int)rRegionY - (int)tRegionY) * 256;
+ int shiftx = ((int)rRegionX - (int)tRegionX) * (int)Constants.RegionSize;
+ int shifty = ((int)rRegionY - (int)tRegionY) * (int)Constants.RegionSize;
m_DrawDistance = cAgentData.drawdistance;
m_pos = new LLVector3(cAgentData.Position.x + shiftx, cAgentData.Position.y + shifty, cAgentData.Position.z);
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
index a32bca5364..d767eabcdd 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
@@ -137,7 +137,7 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
{
actor.Position.Y = 0.1F;
}
- else if (actor.Position.Y >= 256)
+ else if (actor.Position.Y >= Constants.RegionSize)
{
actor.Position.Y = 255.9F;
}
@@ -146,16 +146,16 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
{
actor.Position.X = 0.1F;
}
- else if (actor.Position.X >= 256)
+ else if (actor.Position.X >= Constants.RegionSize)
{
actor.Position.X = 255.9F;
}
- float height = _heightMap[(int) actor.Position.Y*256 + (int) actor.Position.X] + 1.0f;
+ float height = _heightMap[(int)actor.Position.Y * Constants.RegionSize + (int)actor.Position.X] + 1.0f;
if (actor.Flying)
{
if (actor.Position.Z + (actor.Velocity.Z*timeStep) <
- _heightMap[(int) actor.Position.Y*256 + (int) actor.Position.X] + 2)
+ _heightMap[(int)actor.Position.Y * Constants.RegionSize + (int)actor.Position.X] + 2)
{
actor.Position.Z = height;
actor.Velocity.Z = 0;
diff --git a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs
index 5a8589c80c..314708f3b6 100644
--- a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs
+++ b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs
@@ -336,7 +336,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
private const int minXY = 0;
private const int minZ = 0;
- private const int maxXY = 256;
+ private const int maxXY = (int)Constants.RegionSize;
private const int maxZ = 4096;
private const int maxHandles = 32766; //Why? I don't know
private const float gravity = 9.8f;
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 4fbf653da2..3d70a3da53 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -85,9 +85,9 @@ namespace OpenSim.Region.Physics.OdePlugin
private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
CollisionLocker ode;
- // TODO: this should be hard-coded in some common place
- private const uint m_regionWidth = 256;
- private const uint m_regionHeight = 256;
+
+ private const uint m_regionWidth = Constants.RegionSize;
+ private const uint m_regionHeight = Constants.RegionSize;
private static float ODE_STEPSIZE = 0.020f;
private static bool RENDER_FLAG = false;
@@ -585,7 +585,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
private float GetTerrainHeightAtXY(float x, float y)
{
- return (float)_origheightmap[(int) y*256 + (int) x];
+ return (float)_origheightmap[(int)y * Constants.RegionSize + (int)x];
}
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
index 765293442b..3bd25f6ddc 100644
--- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
+++ b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
@@ -203,21 +203,21 @@ namespace OpenSim.Region.Physics.POSPlugin
{
character.Position.Y = 0.1F;
}
- else if (character.Position.Y >= 256)
+ else if (character.Position.Y >= Constants.RegionSize)
{
- character.Position.Y = 255.9F;
+ character.Position.Y = Constants.RegionSize - 0.1f;
}
if (character.Position.X < 0)
{
character.Position.X = 0.1F;
}
- else if (character.Position.X >= 256)
+ else if (character.Position.X >= Constants.RegionSize)
{
- character.Position.X = 255.9F;
+ character.Position.X = Constants.RegionSize - 0.1f;
}
- float terrainheight = _heightMap[(int) character.Position.Y*256 + (int) character.Position.X];
+ float terrainheight = _heightMap[(int)character.Position.Y * Constants.RegionSize + (int)character.Position.X];
if (character.Position.Z + (character._target_velocity.Z*timeStep) < terrainheight + 2)
{
character.Position.Z = terrainheight + 1.0f;
@@ -269,18 +269,18 @@ namespace OpenSim.Region.Physics.POSPlugin
{
character.Position.Y = 0.1F;
}
- else if (character.Position.Y >= 256)
+ else if (character.Position.Y >= Constants.RegionSize)
{
- character.Position.Y = 255.9F;
+ character.Position.Y = Constants.RegionSize - 0.1f;
}
if (character.Position.X < 0)
{
character.Position.X = 0.1F;
}
- else if (character.Position.X >= 256)
+ else if (character.Position.X >= Constants.RegionSize)
{
- character.Position.X = 255.9F;
+ character.Position.X = Constants.RegionSize - 0.1f;
}
character._velocity.X = (character.Position.X - oldposX)/timeStep;
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 2fc610aa33..c350301773 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -2232,7 +2232,7 @@ namespace OpenSim.Region.ScriptEngine.Common
public LSL_Types.Vector3 llGetRegionCorner()
{
m_host.AddScriptLPS(1);
- return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0);
+ return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * Constants.RegionSize, World.RegionInfo.RegionLocY * Constants.RegionSize, 0);
}
public LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start)
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
index 5c8b4b5b82..58586c0b47 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
@@ -272,41 +272,59 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
switch (l)
{
case enumCompileType.cs:
- compileScript = String.Empty +
- "using OpenSim.Region.ScriptEngine.Common; using System.Collections.Generic;\r\n" +
- String.Empty + "namespace SecondLife { " +
- String.Empty + "public class Script : OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { \r\n" +
- @"public Script() { } " +
- compileScript +
- "} }\r\n";
+ compileScript = CreateCSCompilerScript(compileScript);
break;
case enumCompileType.vb:
- compileScript = String.Empty +
- "Imports OpenSim.Region.ScriptEngine.Common: Imports System.Collections.Generic: " +
- String.Empty + "NameSpace SecondLife:" +
- String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.Common.LSL_BaseClass: " +
- "\r\nPublic Sub New()\r\nEnd Sub: " +
- compileScript +
- ":End Class :End Namespace\r\n";
+ compileScript = CreateVBCompilerScript(compileScript);
break;
case enumCompileType.js:
- compileScript = String.Empty +
- "import OpenSim.Region.ScriptEngine.Common; import System.Collections.Generic;\r\n" +
- "package SecondLife {\r\n" +
- "class Script extends OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { \r\n" +
- compileScript +
- "} }\r\n";
+ compileScript = CreateJSCompilerScript(compileScript);
break;
}
- return CompileFromCSorVBText(compileScript, l);
+ return CompileFromDotNetText(compileScript, l);
+ }
+
+ private static string CreateJSCompilerScript(string compileScript)
+ {
+ compileScript = String.Empty +
+ "import OpenSim.Region.ScriptEngine.Common; import System.Collections.Generic;\r\n" +
+ "package SecondLife {\r\n" +
+ "class Script extends OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { \r\n" +
+ compileScript +
+ "} }\r\n";
+ return compileScript;
+ }
+
+ private static string CreateCSCompilerScript(string compileScript)
+ {
+ compileScript = String.Empty +
+ "using OpenSim.Region.ScriptEngine.Common; using System.Collections.Generic;\r\n" +
+ String.Empty + "namespace SecondLife { " +
+ String.Empty + "public class Script : OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { \r\n" +
+ @"public Script() { } " +
+ compileScript +
+ "} }\r\n";
+ return compileScript;
+ }
+
+ private static string CreateVBCompilerScript(string compileScript)
+ {
+ compileScript = String.Empty +
+ "Imports OpenSim.Region.ScriptEngine.Common: Imports System.Collections.Generic: " +
+ String.Empty + "NameSpace SecondLife:" +
+ String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.Common.LSL_BaseClass: " +
+ "\r\nPublic Sub New()\r\nEnd Sub: " +
+ compileScript +
+ ":End Class :End Namespace\r\n";
+ return compileScript;
}
///
- /// Compile CS script to .Net assembly (.dll)
+ /// Compile .NET script to .Net assembly (.dll)
///
/// CS script
/// Filename to .dll assembly
- internal string CompileFromCSorVBText(string Script, enumCompileType lang)
+ internal string CompileFromDotNetText(string Script, enumCompileType lang)
{
string ext = "." + lang.ToString();