diff options
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandObject.cs | 4 |
2 files changed, 4 insertions, 11 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 7ba4a48..c32de62 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -2033,25 +2033,18 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
2033 | { | 2033 | { |
2034 | UUID parcel = UUID.Zero; | 2034 | UUID parcel = UUID.Zero; |
2035 | UUID.TryParse(id, out parcel); | 2035 | UUID.TryParse(id, out parcel); |
2036 | |||
2037 | // assume we've got the parcelID we just computed in RemoteParcelRequest | 2036 | // assume we've got the parcelID we just computed in RemoteParcelRequest |
2038 | ExtendedLandData extLandData = new ExtendedLandData(); | 2037 | ExtendedLandData extLandData = new ExtendedLandData(); |
2039 | if(!Util.ParseFakeParcelID(parcel, out extLandData.RegionHandle, | 2038 | if(!Util.ParseFakeParcelID(parcel, out extLandData.RegionHandle, |
2040 | out extLandData.X, out extLandData.Y)) | 2039 | out extLandData.X, out extLandData.Y)) |
2041 | return null; | 2040 | return null; |
2042 | m_log.DebugFormat("[LAND MANAGEMENT MODULE] : Got parcelinfo request for regionHandle {0}, x/y {1}/{2}", | 2041 | m_log.DebugFormat("[LAND MANAGEMENT MODULE]: Got parcelinfo request for regionHandle {0}, x/y {1}/{2}", |
2043 | extLandData.RegionHandle, extLandData.X, extLandData.Y); | 2042 | extLandData.RegionHandle, extLandData.X, extLandData.Y); |
2044 | 2043 | ||
2045 | // for this region or for somewhere else? | 2044 | // for this region or for somewhere else? |
2046 | if (extLandData.RegionHandle == m_scene.RegionInfo.RegionHandle) | 2045 | if (extLandData.RegionHandle == m_scene.RegionInfo.RegionHandle) |
2047 | { | 2046 | { |
2048 | ILandObject extLandObject = this.GetLandObject(extLandData.X, extLandData.Y); | 2047 | extLandData.LandData = this.GetLandObject(extLandData.X, extLandData.Y).LandData; |
2049 | if(extLandObject == null) | ||
2050 | { | ||
2051 | m_log.DebugFormat("[LAND MANAGEMENT MODULE]: ParcelInfoRequest: a FakeParcelID points to outside the region"); | ||
2052 | return null; | ||
2053 | } | ||
2054 | extLandData.LandData = extLandObject.LandData; | ||
2055 | extLandData.RegionAccess = m_scene.RegionInfo.AccessLevel; | 2048 | extLandData.RegionAccess = m_scene.RegionInfo.AccessLevel; |
2056 | } | 2049 | } |
2057 | else | 2050 | else |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 51e6071..cbe8a2e 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs | |||
@@ -1460,9 +1460,9 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1460 | for (int i = 0; i < bitmapLen; i++) | 1460 | for (int i = 0; i < bitmapLen; i++) |
1461 | { | 1461 | { |
1462 | tempByte = LandData.Bitmap[i]; | 1462 | tempByte = LandData.Bitmap[i]; |
1463 | for (int bitNum = 0; bitNum < 8; bitNum++) | 1463 | for (int bitmask = 0x80; bitmask > 0; bitmask = bitmask >> 1) |
1464 | { | 1464 | { |
1465 | bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte) 1); | 1465 | bool bit = (tempByte & bitmask) == bitmask; |
1466 | try | 1466 | try |
1467 | { | 1467 | { |
1468 | tempConvertMap[x, y] = bit; | 1468 | tempConvertMap[x, y] = bit; |