public void UpdateLandProperties(ILandObject land, LandUpdateArgs args, IClientAPI remote_client) { bool snap_selection = false; bool needOverlay = false; if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay)) { UUID parcelID = land.LandData.GlobalID; m_scene.ForEachScenePresence(delegate(ScenePresence avatar) { if (avatar.IsDeleted || avatar.isNPC) return; IClientAPI client = avatar.ControllingClient; if (needOverlay) SendParcelOverlay(client); if (avatar.IsChildAgent) { if(client == remote_client) land.SendLandProperties(-10000, false, LandChannel.LAND_RESULT_SINGLE, client); return; } ILandObject aland = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); if (aland != null) { if(client == remote_client && land != aland) land.SendLandProperties(-10000, false, LandChannel.LAND_RESULT_SINGLE, client); else if (land == aland) aland.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, client); } if (avatar.currentParcelUUID == parcelID) avatar.currentParcelUUID = parcelID; // force parcel flags review }); } }