aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/Util.cs12
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs6
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs4
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs4
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs6
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs6
-rw-r--r--OpenSim/Server/Handlers/Land/LandHandlers.cs4
-rw-r--r--OpenSim/Services/Connectors/Land/LandServiceConnector.cs5
-rw-r--r--OpenSim/Services/Interfaces/ILandService.cs2
9 files changed, 36 insertions, 13 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index c39fb6f..af5a0ce 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -1171,6 +1171,16 @@ namespace OpenSim.Framework
1171 1171
1172 } 1172 }
1173 1173
1174 public static uint ConvertAccessLevelToMaturity(byte maturity)
1175 {
1176 if (maturity <= 13)
1177 return 0;
1178 else if (maturity <= 21)
1179 return 1;
1180 else
1181 return 2;
1182 }
1183
1174 /// <summary> 1184 /// <summary>
1175 /// Produces an OSDMap from its string representation on a stream 1185 /// Produces an OSDMap from its string representation on a stream
1176 /// </summary> 1186 /// </summary>
@@ -1486,4 +1496,4 @@ namespace OpenSim.Framework
1486 } 1496 }
1487 1497
1488 } 1498 }
1489} \ No newline at end of file 1499}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index d2d1e8f..af2dd85 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2675,7 +2675,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2675 2675
2676 // Bit 0: Mature, bit 7: on sale, other bits: no idea 2676 // Bit 0: Mature, bit 7: on sale, other bits: no idea
2677 reply.Data.Flags = (byte)( 2677 reply.Data.Flags = (byte)(
2678 ((land.Flags & (uint)ParcelFlags.MaturePublish) != 0 ? (1 << 0) : 0) + 2678 (info.AccessLevel > 13 ? (1 << 0) : 0) +
2679 ((land.Flags & (uint)ParcelFlags.ForSale) != 0 ? (1 << 7) : 0)); 2679 ((land.Flags & (uint)ParcelFlags.ForSale) != 0 ? (1 << 7) : 0));
2680 2680
2681 Vector3 pos = land.UserLocation; 2681 Vector3 pos = land.UserLocation;
@@ -2683,8 +2683,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2683 { 2683 {
2684 pos = (land.AABBMax + land.AABBMin) * 0.5f; 2684 pos = (land.AABBMax + land.AABBMin) * 0.5f;
2685 } 2685 }
2686 reply.Data.GlobalX = info.RegionLocX * Constants.RegionSize + x; 2686 reply.Data.GlobalX = info.RegionLocX + x;
2687 reply.Data.GlobalY = info.RegionLocY * Constants.RegionSize + y; 2687 reply.Data.GlobalY = info.RegionLocY + y;
2688 reply.Data.GlobalZ = pos.Z; 2688 reply.Data.GlobalZ = pos.Z;
2689 reply.Data.SimName = Utils.StringToBytes(info.RegionName); 2689 reply.Data.SimName = Utils.StringToBytes(info.RegionName);
2690 reply.Data.SnapshotID = land.SnapshotID; 2690 reply.Data.SnapshotID = land.SnapshotID;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
index bce160a..23251c9 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
@@ -121,7 +121,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Land
121 121
122 #region ILandService 122 #region ILandService
123 123
124 public LandData GetLandData(ulong regionHandle, uint x, uint y) 124 public LandData GetLandData(ulong regionHandle, uint x, uint y, out byte regionAccess)
125 { 125 {
126 m_log.DebugFormat("[LAND IN CONNECTOR]: GetLandData for {0}. Count = {1}", 126 m_log.DebugFormat("[LAND IN CONNECTOR]: GetLandData for {0}. Count = {1}",
127 regionHandle, m_Scenes.Count); 127 regionHandle, m_Scenes.Count);
@@ -130,10 +130,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Land
130 if (s.RegionInfo.RegionHandle == regionHandle) 130 if (s.RegionInfo.RegionHandle == regionHandle)
131 { 131 {
132 m_log.Debug("[LAND IN CONNECTOR]: Found region to GetLandData from"); 132 m_log.Debug("[LAND IN CONNECTOR]: Found region to GetLandData from");
133 regionAccess = s.RegionInfo.AccessLevel;
133 return s.GetLandData(x, y); 134 return s.GetLandData(x, y);
134 } 135 }
135 } 136 }
136 m_log.DebugFormat("[LAND IN CONNECTOR]: region handle {0} not found", regionHandle); 137 m_log.DebugFormat("[LAND IN CONNECTOR]: region handle {0} not found", regionHandle);
138 regionAccess = 42;
137 return null; 139 return null;
138 } 140 }
139 141
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs
index cb87f6f..e15f624 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs
@@ -116,8 +116,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
116 116
117 #region ILandService 117 #region ILandService
118 118
119 public LandData GetLandData(ulong regionHandle, uint x, uint y) 119 public LandData GetLandData(ulong regionHandle, uint x, uint y, out byte regionAccess)
120 { 120 {
121 regionAccess = 2;
121 m_log.DebugFormat("[LAND CONNECTOR]: request for land data in {0} at {1}, {2}", 122 m_log.DebugFormat("[LAND CONNECTOR]: request for land data in {0} at {1}, {2}",
122 regionHandle, x, y); 123 regionHandle, x, y);
123 124
@@ -126,6 +127,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
126 if (s.RegionInfo.RegionHandle == regionHandle) 127 if (s.RegionInfo.RegionHandle == regionHandle)
127 { 128 {
128 LandData land = s.GetLandData(x, y); 129 LandData land = s.GetLandData(x, y);
130 regionAccess = s.RegionInfo.AccessLevel;
129 return land; 131 return land;
130 } 132 }
131 } 133 }
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs
index 153c2a5..2386060 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs
@@ -108,13 +108,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
108 108
109 #region ILandService 109 #region ILandService
110 110
111 public override LandData GetLandData(ulong regionHandle, uint x, uint y) 111 public override LandData GetLandData(ulong regionHandle, uint x, uint y, out byte regionAccess)
112 { 112 {
113 LandData land = m_LocalService.GetLandData(regionHandle, x, y); 113 LandData land = m_LocalService.GetLandData(regionHandle, x, y, out regionAccess);
114 if (land != null) 114 if (land != null)
115 return land; 115 return land;
116 116
117 return base.GetLandData(regionHandle, x, y); 117 return base.GetLandData(regionHandle, x, y, out regionAccess);
118 118
119 } 119 }
120 #endregion ILandService 120 #endregion ILandService
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index cfee1b0..7e29a56 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -51,6 +51,7 @@ namespace OpenSim.Region.CoreModules.World.Land
51 public LandData LandData; 51 public LandData LandData;
52 public ulong RegionHandle; 52 public ulong RegionHandle;
53 public uint X, Y; 53 public uint X, Y;
54 public byte RegionAccess;
54 } 55 }
55 56
56 public class LandManagementModule : INonSharedRegionModule 57 public class LandManagementModule : INonSharedRegionModule
@@ -1484,13 +1485,15 @@ namespace OpenSim.Region.CoreModules.World.Land
1484 if (extLandData.RegionHandle == m_scene.RegionInfo.RegionHandle) 1485 if (extLandData.RegionHandle == m_scene.RegionInfo.RegionHandle)
1485 { 1486 {
1486 extLandData.LandData = this.GetLandObject(extLandData.X, extLandData.Y).LandData; 1487 extLandData.LandData = this.GetLandObject(extLandData.X, extLandData.Y).LandData;
1488 extLandData.RegionAccess = m_scene.RegionInfo.AccessLevel;
1487 } 1489 }
1488 else 1490 else
1489 { 1491 {
1490 ILandService landService = m_scene.RequestModuleInterface<ILandService>(); 1492 ILandService landService = m_scene.RequestModuleInterface<ILandService>();
1491 extLandData.LandData = landService.GetLandData(extLandData.RegionHandle, 1493 extLandData.LandData = landService.GetLandData(extLandData.RegionHandle,
1492 extLandData.X, 1494 extLandData.X,
1493 extLandData.Y); 1495 extLandData.Y,
1496 out extLandData.RegionAccess);
1494 if (extLandData.LandData == null) 1497 if (extLandData.LandData == null)
1495 { 1498 {
1496 // we didn't find the region/land => don't cache 1499 // we didn't find the region/land => don't cache
@@ -1522,6 +1525,7 @@ namespace OpenSim.Region.CoreModules.World.Land
1522 r.RegionName = info.RegionName; 1525 r.RegionName = info.RegionName;
1523 r.RegionLocX = (uint)info.RegionLocX; 1526 r.RegionLocX = (uint)info.RegionLocX;
1524 r.RegionLocY = (uint)info.RegionLocY; 1527 r.RegionLocY = (uint)info.RegionLocY;
1528 r.RegionSettings.Maturity = (int)Util.ConvertAccessLevelToMaturity(data.RegionAccess);
1525 remoteClient.SendParcelInfo(r, data.LandData, parcelID, data.X, data.Y); 1529 remoteClient.SendParcelInfo(r, data.LandData, parcelID, data.X, data.Y);
1526 } 1530 }
1527 else 1531 else
diff --git a/OpenSim/Server/Handlers/Land/LandHandlers.cs b/OpenSim/Server/Handlers/Land/LandHandlers.cs
index a21f9de..561f285 100644
--- a/OpenSim/Server/Handlers/Land/LandHandlers.cs
+++ b/OpenSim/Server/Handlers/Land/LandHandlers.cs
@@ -66,7 +66,8 @@ namespace OpenSim.Server.Handlers.Land
66 uint y = Convert.ToUInt32(requestData["y"]); 66 uint y = Convert.ToUInt32(requestData["y"]);
67 m_log.DebugFormat("[LAND HANDLER]: Got request for land data at {0}, {1} for region {2}", x, y, regionHandle); 67 m_log.DebugFormat("[LAND HANDLER]: Got request for land data at {0}, {1} for region {2}", x, y, regionHandle);
68 68
69 LandData landData = m_LocalService.GetLandData(regionHandle, x, y); 69 byte regionAccess;
70 LandData landData = m_LocalService.GetLandData(regionHandle, x, y, out regionAccess);
70 Hashtable hash = new Hashtable(); 71 Hashtable hash = new Hashtable();
71 if (landData != null) 72 if (landData != null)
72 { 73 {
@@ -83,6 +84,7 @@ namespace OpenSim.Server.Handlers.Land
83 hash["SalePrice"] = landData.SalePrice.ToString(); 84 hash["SalePrice"] = landData.SalePrice.ToString();
84 hash["SnapshotID"] = landData.SnapshotID.ToString(); 85 hash["SnapshotID"] = landData.SnapshotID.ToString();
85 hash["UserLocation"] = landData.UserLocation.ToString(); 86 hash["UserLocation"] = landData.UserLocation.ToString();
87 hash["RegionAccess"] = regionAccess.ToString();
86 } 88 }
87 89
88 XmlRpcResponse response = new XmlRpcResponse(); 90 XmlRpcResponse response = new XmlRpcResponse();
diff --git a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
index 0223a77..c439dc5 100644
--- a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
@@ -64,7 +64,7 @@ namespace OpenSim.Services.Connectors
64 m_GridService = gridServices; 64 m_GridService = gridServices;
65 } 65 }
66 66
67 public virtual LandData GetLandData(ulong regionHandle, uint x, uint y) 67 public virtual LandData GetLandData(ulong regionHandle, uint x, uint y, out byte regionAccess)
68 { 68 {
69 LandData landData = null; 69 LandData landData = null;
70 Hashtable hash = new Hashtable(); 70 Hashtable hash = new Hashtable();
@@ -74,6 +74,7 @@ namespace OpenSim.Services.Connectors
74 74
75 IList paramList = new ArrayList(); 75 IList paramList = new ArrayList();
76 paramList.Add(hash); 76 paramList.Add(hash);
77 regionAccess = 42; // Default to adult. Better safe...
77 78
78 try 79 try
79 { 80 {
@@ -109,6 +110,8 @@ namespace OpenSim.Services.Connectors
109 landData.SalePrice = Convert.ToInt32(hash["SalePrice"]); 110 landData.SalePrice = Convert.ToInt32(hash["SalePrice"]);
110 landData.SnapshotID = new UUID((string)hash["SnapshotID"]); 111 landData.SnapshotID = new UUID((string)hash["SnapshotID"]);
111 landData.UserLocation = Vector3.Parse((string)hash["UserLocation"]); 112 landData.UserLocation = Vector3.Parse((string)hash["UserLocation"]);
113 if (hash["RegionAccess"] != null)
114 regionAccess = (byte)Convert.ToInt32((string)hash["RegionAccess"]);
112 m_log.DebugFormat("[OGS1 GRID SERVICES] Got land data for parcel {0}", landData.Name); 115 m_log.DebugFormat("[OGS1 GRID SERVICES] Got land data for parcel {0}", landData.Name);
113 } 116 }
114 catch (Exception e) 117 catch (Exception e)
diff --git a/OpenSim/Services/Interfaces/ILandService.cs b/OpenSim/Services/Interfaces/ILandService.cs
index e2f1d1d..7a12aff 100644
--- a/OpenSim/Services/Interfaces/ILandService.cs
+++ b/OpenSim/Services/Interfaces/ILandService.cs
@@ -33,6 +33,6 @@ namespace OpenSim.Services.Interfaces
33{ 33{
34 public interface ILandService 34 public interface ILandService
35 { 35 {
36 LandData GetLandData(ulong regionHandle, uint x, uint y); 36 LandData GetLandData(ulong regionHandle, uint x, uint y, out byte regionAccess);
37 } 37 }
38} 38}