diff options
Diffstat (limited to 'OpenSim/Region')
5 files changed, 17 insertions, 9 deletions
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 |