aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/World')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs45
1 files changed, 22 insertions, 23 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 95b576f..4324ddc 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -1289,35 +1289,34 @@ namespace OpenSim.Region.CoreModules.World.Land
1289 bool needOverlay = false; 1289 bool needOverlay = false;
1290 if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay)) 1290 if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay))
1291 { 1291 {
1292 //the proprieties to who changed them
1293 ScenePresence av = m_scene.GetScenePresence(remote_client.AgentId);
1294 if(av.IsChildAgent || land != GetLandObject(av.AbsolutePosition.X, av.AbsolutePosition.Y))
1295 land.SendLandProperties(-10000, false, LandChannel.LAND_RESULT_SINGLE, remote_client);
1296 else
1297 land.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, remote_client);
1298
1299 UUID parcelID = land.LandData.GlobalID; 1292 UUID parcelID = land.LandData.GlobalID;
1300 m_scene.ForEachScenePresence(delegate(ScenePresence avatar) 1293 m_scene.ForEachScenePresence(delegate(ScenePresence avatar)
1301 { 1294 {
1302 if (avatar.IsDeleted || avatar.isNPC) 1295 if (avatar.IsDeleted || avatar.isNPC)
1303 return; 1296 return;
1304 1297
1305 IClientAPI client = avatar.ControllingClient; 1298 IClientAPI client = avatar.ControllingClient;
1306 if (needOverlay) 1299 if (needOverlay)
1307 SendParcelOverlay(client); 1300 SendParcelOverlay(client);
1308 1301
1309 if (avatar.IsChildAgent) 1302 if (avatar.IsChildAgent)
1310 return; 1303 {
1304 if(client == remote_client)
1305 land.SendLandProperties(-10000, false, LandChannel.LAND_RESULT_SINGLE, client);
1306 return;
1307 }
1311 1308
1312 ILandObject aland = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); 1309 ILandObject aland = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
1313 if (aland != null) 1310 if (aland != null)
1314 { 1311 {
1315 if (client != remote_client && land == aland) 1312 if(client == remote_client && land != aland)
1313 land.SendLandProperties(-10000, false, LandChannel.LAND_RESULT_SINGLE, client);
1314 else if (land == aland)
1316 aland.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, client); 1315 aland.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, client);
1317 } 1316 }
1318 if (avatar.currentParcelUUID == parcelID) 1317 if (avatar.currentParcelUUID == parcelID)
1319 avatar.currentParcelUUID = parcelID; // force parcel flags review 1318 avatar.currentParcelUUID = parcelID; // force parcel flags review
1320 }); 1319 });
1321 } 1320 }
1322 } 1321 }
1323 1322