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 c59eedf..7bf7511 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -2656,7 +2656,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2656 | 2656 | ||
2657 | // Bit 0: Mature, bit 7: on sale, other bits: no idea | 2657 | // Bit 0: Mature, bit 7: on sale, other bits: no idea |
2658 | reply.Data.Flags = (byte)( | 2658 | reply.Data.Flags = (byte)( |
2659 | ((land.Flags & (uint)ParcelFlags.MaturePublish) != 0 ? (1 << 0) : 0) + | 2659 | (info.AccessLevel > 13 ? (1 << 0) : 0) + |
2660 | ((land.Flags & (uint)ParcelFlags.ForSale) != 0 ? (1 << 7) : 0)); | 2660 | ((land.Flags & (uint)ParcelFlags.ForSale) != 0 ? (1 << 7) : 0)); |
2661 | 2661 | ||
2662 | Vector3 pos = land.UserLocation; | 2662 | Vector3 pos = land.UserLocation; |
@@ -2664,8 +2664,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2664 | { | 2664 | { |
2665 | pos = (land.AABBMax + land.AABBMin) * 0.5f; | 2665 | pos = (land.AABBMax + land.AABBMin) * 0.5f; |
2666 | } | 2666 | } |
2667 | reply.Data.GlobalX = info.RegionLocX * Constants.RegionSize + x; | 2667 | reply.Data.GlobalX = info.RegionLocX + x; |
2668 | reply.Data.GlobalY = info.RegionLocY * Constants.RegionSize + y; | 2668 | reply.Data.GlobalY = info.RegionLocY + y; |
2669 | reply.Data.GlobalZ = pos.Z; | 2669 | reply.Data.GlobalZ = pos.Z; |
2670 | reply.Data.SimName = Utils.StringToBytes(info.RegionName); | 2670 | reply.Data.SimName = Utils.StringToBytes(info.RegionName); |
2671 | reply.Data.SnapshotID = land.SnapshotID; | 2671 | 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 4ccd0f0..31aa017 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 |
@@ -1459,13 +1460,15 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1459 | if (extLandData.RegionHandle == m_scene.RegionInfo.RegionHandle) | 1460 | if (extLandData.RegionHandle == m_scene.RegionInfo.RegionHandle) |
1460 | { | 1461 | { |
1461 | extLandData.LandData = this.GetLandObject(extLandData.X, extLandData.Y).LandData; | 1462 | extLandData.LandData = this.GetLandObject(extLandData.X, extLandData.Y).LandData; |
1463 | extLandData.RegionAccess = m_scene.RegionInfo.AccessLevel; | ||
1462 | } | 1464 | } |
1463 | else | 1465 | else |
1464 | { | 1466 | { |
1465 | ILandService landService = m_scene.RequestModuleInterface<ILandService>(); | 1467 | ILandService landService = m_scene.RequestModuleInterface<ILandService>(); |
1466 | extLandData.LandData = landService.GetLandData(extLandData.RegionHandle, | 1468 | extLandData.LandData = landService.GetLandData(extLandData.RegionHandle, |
1467 | extLandData.X, | 1469 | extLandData.X, |
1468 | extLandData.Y); | 1470 | extLandData.Y, |
1471 | out extLandData.RegionAccess); | ||
1469 | if (extLandData.LandData == null) | 1472 | if (extLandData.LandData == null) |
1470 | { | 1473 | { |
1471 | // we didn't find the region/land => don't cache | 1474 | // we didn't find the region/land => don't cache |
@@ -1497,6 +1500,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1497 | r.RegionName = info.RegionName; | 1500 | r.RegionName = info.RegionName; |
1498 | r.RegionLocX = (uint)info.RegionLocX; | 1501 | r.RegionLocX = (uint)info.RegionLocX; |
1499 | r.RegionLocY = (uint)info.RegionLocY; | 1502 | r.RegionLocY = (uint)info.RegionLocY; |
1503 | r.RegionSettings.Maturity = (int)Util.ConvertAccessLevelToMaturity(data.RegionAccess); | ||
1500 | remoteClient.SendParcelInfo(r, data.LandData, parcelID, data.X, data.Y); | 1504 | remoteClient.SendParcelInfo(r, data.LandData, parcelID, data.X, data.Y); |
1501 | } | 1505 | } |
1502 | else | 1506 | else |