diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs | 26 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 10 |
2 files changed, 22 insertions, 14 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs index 46f108e..9b1b9b5 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -1135,20 +1135,20 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1135 | { | 1135 | { |
1136 | Hashtable hash = new Hashtable(); | 1136 | Hashtable hash = new Hashtable(); |
1137 | hash = (Hashtable)LLSD.LLSDDeserialize(Helpers.StringToField(request)); | 1137 | hash = (Hashtable)LLSD.LLSDDeserialize(Helpers.StringToField(request)); |
1138 | if(hash.ContainsKey("region_id") && hash.ContainsKey("location")) | 1138 | if (hash.ContainsKey("region_id") && hash.ContainsKey("location")) |
1139 | { | 1139 | { |
1140 | LLUUID regionID = (LLUUID)hash["region_id"]; | 1140 | LLUUID regionID = (LLUUID)hash["region_id"]; |
1141 | ArrayList list = (ArrayList)hash["location"]; | 1141 | ArrayList list = (ArrayList)hash["location"]; |
1142 | uint x = (uint)(double)list[0]; | 1142 | uint x = (uint)(double)list[0]; |
1143 | uint y = (uint)(double)list[1]; | 1143 | uint y = (uint)(double)list[1]; |
1144 | if(hash.ContainsKey("region_handle")) | 1144 | if (hash.ContainsKey("region_handle")) |
1145 | { | 1145 | { |
1146 | // if you do a "About Landmark" on a landmark a second time, the viewer sends the | 1146 | // if you do a "About Landmark" on a landmark a second time, the viewer sends the |
1147 | // region_handle it got earlier via RegionHandleRequest | 1147 | // region_handle it got earlier via RegionHandleRequest |
1148 | ulong regionHandle = Helpers.BytesToUInt64((byte[])hash["region_handle"]); | 1148 | ulong regionHandle = Helpers.BytesToUInt64((byte[])hash["region_handle"]); |
1149 | parcelID = Util.BuildFakeParcelID(regionHandle, x, y); | 1149 | parcelID = Util.BuildFakeParcelID(regionHandle, x, y); |
1150 | } | 1150 | } |
1151 | else if(regionID == m_scene.RegionInfo.RegionID) | 1151 | else if (regionID == m_scene.RegionInfo.RegionID) |
1152 | { | 1152 | { |
1153 | // a parcel request for a local parcel => no need to query the grid | 1153 | // a parcel request for a local parcel => no need to query the grid |
1154 | parcelID = Util.BuildFakeParcelID(m_scene.RegionInfo.RegionHandle, x, y); | 1154 | parcelID = Util.BuildFakeParcelID(m_scene.RegionInfo.RegionHandle, x, y); |
@@ -1157,7 +1157,8 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1157 | { | 1157 | { |
1158 | // a parcel request for a parcel in another region. Ask the grid about the region | 1158 | // a parcel request for a parcel in another region. Ask the grid about the region |
1159 | RegionInfo info = m_scene.CommsManager.GridService.RequestNeighbourInfo(regionID); | 1159 | RegionInfo info = m_scene.CommsManager.GridService.RequestNeighbourInfo(regionID); |
1160 | if(info != null) parcelID = Util.BuildFakeParcelID(info.RegionHandle, x, y); | 1160 | if (info != null) |
1161 | parcelID = Util.BuildFakeParcelID(info.RegionHandle, x, y); | ||
1161 | } | 1162 | } |
1162 | } | 1163 | } |
1163 | } | 1164 | } |
@@ -1182,7 +1183,8 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1182 | 1183 | ||
1183 | private void handleParcelInfo(IClientAPI remoteClient, LLUUID parcelID) | 1184 | private void handleParcelInfo(IClientAPI remoteClient, LLUUID parcelID) |
1184 | { | 1185 | { |
1185 | if(parcelID == LLUUID.Zero) return; | 1186 | if (parcelID == LLUUID.Zero) |
1187 | return; | ||
1186 | 1188 | ||
1187 | // assume we've got the parcelID we just computed in RemoteParcelRequest | 1189 | // assume we've got the parcelID we just computed in RemoteParcelRequest |
1188 | ulong regionHandle; | 1190 | ulong regionHandle; |
@@ -1191,17 +1193,19 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1191 | m_log.DebugFormat("[LAND] got parcelinfo request for regionHandle {0}, x/y {1}/{2}", regionHandle, x, y); | 1193 | m_log.DebugFormat("[LAND] got parcelinfo request for regionHandle {0}, x/y {1}/{2}", regionHandle, x, y); |
1192 | 1194 | ||
1193 | LandData landData; | 1195 | LandData landData; |
1194 | if(regionHandle == m_scene.RegionInfo.RegionHandle) landData = this.GetLandObject(x, y).landData; | 1196 | if (regionHandle == m_scene.RegionInfo.RegionHandle) |
1195 | else landData = m_scene.CommsManager.GridService.RequestLandData(regionHandle, x, y); | 1197 | landData = this.GetLandObject(x, y).landData; |
1198 | else | ||
1199 | landData = m_scene.CommsManager.GridService.RequestLandData(regionHandle, x, y); | ||
1196 | 1200 | ||
1197 | if(landData != null) | 1201 | if (landData != null) |
1198 | { | 1202 | { |
1199 | // we need to transfer the fake parcelID, not the one in landData, so the viewer can match it to the landmark. | 1203 | // we need to transfer the fake parcelID, not the one in landData, so the viewer can match it to the landmark. |
1200 | m_log.Debug("[LAND] got parcelinfo; sending"); | 1204 | m_log.Debug("[LAND] got parcelinfo; sending"); |
1201 | remoteClient.SendParcelInfo(m_scene.RegionInfo, landData, parcelID, x, y); | 1205 | remoteClient.SendParcelInfo(m_scene.RegionInfo, landData, parcelID, x, y); |
1202 | } | 1206 | } |
1203 | else m_log.Debug("[LAND] got no parcelinfo; not sending"); | 1207 | else |
1208 | m_log.Debug("[LAND] got no parcelinfo; not sending"); | ||
1204 | } | 1209 | } |
1205 | } | 1210 | } |
1206 | |||
1207 | } | 1211 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index f5117b9..e060f3d 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -3872,9 +3872,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
3872 | public void RegionHandleRequest(IClientAPI client, LLUUID regionID) | 3872 | public void RegionHandleRequest(IClientAPI client, LLUUID regionID) |
3873 | { | 3873 | { |
3874 | RegionInfo info; | 3874 | RegionInfo info; |
3875 | if(regionID == RegionInfo.RegionID) info = RegionInfo; | 3875 | if (regionID == RegionInfo.RegionID) |
3876 | else info = CommsManager.GridService.RequestNeighbourInfo(regionID); | 3876 | info = RegionInfo; |
3877 | if(info != null) client.SendRegionHandle(regionID, info.RegionHandle); | 3877 | else |
3878 | info = CommsManager.GridService.RequestNeighbourInfo(regionID); | ||
3879 | |||
3880 | if (info != null) | ||
3881 | client.SendRegionHandle(regionID, info.RegionHandle); | ||
3878 | } | 3882 | } |
3879 | 3883 | ||
3880 | 3884 | ||