aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2016-08-20 01:59:40 +0100
committerUbitUmarov2016-08-20 01:59:40 +0100
commitc17e337eca799326c0c383db22d1f724996e9618 (patch)
treed60f94864560994ab686c84432f1054474dac77f /OpenSim/Region
parentfix physics sits on child prims (diff)
downloadopensim-SC_OLD-c17e337eca799326c0c383db22d1f724996e9618.zip
opensim-SC_OLD-c17e337eca799326c0c383db22d1f724996e9618.tar.gz
opensim-SC_OLD-c17e337eca799326c0c383db22d1f724996e9618.tar.bz2
opensim-SC_OLD-c17e337eca799326c0c383db22d1f724996e9618.tar.xz
fix GetLandData(...) in land connectors not suporting large regions
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs16
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs15
2 files changed, 29 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
index 2fd21be..551947b 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
@@ -128,9 +128,23 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Land
128 { 128 {
129 m_log.DebugFormat("[LAND IN CONNECTOR]: GetLandData for {0}. Count = {1}", 129 m_log.DebugFormat("[LAND IN CONNECTOR]: GetLandData for {0}. Count = {1}",
130 regionHandle, m_Scenes.Count); 130 regionHandle, m_Scenes.Count);
131
132 uint rx = 0, ry = 0;
133 Util.RegionHandleToWorldLoc(regionHandle, out rx, out ry);
134
131 foreach (Scene s in m_Scenes) 135 foreach (Scene s in m_Scenes)
132 { 136 {
133 if (s.RegionInfo.RegionHandle == regionHandle) 137 uint t = s.RegionInfo.WorldLocX;
138 if( rx < t)
139 continue;
140 t += s.RegionInfo.RegionSizeX;
141 if( rx >= t)
142 continue;
143 t = s.RegionInfo.WorldLocY;
144 if( ry < t)
145 continue;
146 t += s.RegionInfo.RegionSizeY;
147 if( ry < t)
134 { 148 {
135 m_log.Debug("[LAND IN CONNECTOR]: Found region to GetLandData from"); 149 m_log.Debug("[LAND IN CONNECTOR]: Found region to GetLandData from");
136 regionAccess = s.RegionInfo.AccessLevel; 150 regionAccess = s.RegionInfo.AccessLevel;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs
index 5329933..2e22965 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs
@@ -124,9 +124,22 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
124 m_log.DebugFormat("[LAND CONNECTOR]: request for land data in {0} at {1}, {2}", 124 m_log.DebugFormat("[LAND CONNECTOR]: request for land data in {0} at {1}, {2}",
125 regionHandle, x, y); 125 regionHandle, x, y);
126 126
127 uint rx = 0, ry = 0;
128 Util.RegionHandleToWorldLoc(regionHandle, out rx, out ry);
129
127 foreach (Scene s in m_Scenes) 130 foreach (Scene s in m_Scenes)
128 { 131 {
129 if (s.RegionInfo.RegionHandle == regionHandle) 132 uint t = s.RegionInfo.WorldLocX;
133 if( rx < t)
134 continue;
135 t += s.RegionInfo.RegionSizeX;
136 if( rx >= t)
137 continue;
138 t = s.RegionInfo.WorldLocY;
139 if( ry < t)
140 continue;
141 t += s.RegionInfo.RegionSizeY;
142 if( ry < t)
130 { 143 {
131 LandData land = s.GetLandData(x, y); 144 LandData land = s.GetLandData(x, y);
132 regionAccess = s.RegionInfo.AccessLevel; 145 regionAccess = s.RegionInfo.AccessLevel;