From a069ed09a82bfe07ef84a78202f502ed3b312134 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 12 Jul 2017 03:47:34 +0100 Subject: osSetParcelDetails: make seeAVs send updates. This is a temporary patch, this function does need to call a framework land function that deos issue proper updates about all fields to all cleints. ( sounds will not stop/start also for now) --- .../ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'OpenSim/Region/ScriptEngine/Shared/Api') diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 4aac9a0..f274cd3 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -1616,6 +1616,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api EstateSettings es = World.RegionInfo.EstateSettings; bool changed = false; + bool changedSeeAvs = false; // Process the rules, not sure what the impact would be of changing owner or group for (int idx = 0; idx < rules.Length;) @@ -1717,6 +1718,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if(newLand.SeeAVs != newavs) { changed = true; + changedSeeAvs = true; newLand.SeeAVs = newavs; } break; @@ -1741,7 +1743,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api } } if(changed) + { World.LandChannel.UpdateLandObject(newLand.LocalID,newLand); + + if(changedSeeAvs) + { + UUID parcelID= newLand.GlobalID; + World.ForEachScenePresence(delegate (ScenePresence avatar) + { + if (avatar != null && !avatar.IsDeleted && avatar.currentParcelUUID == parcelID ) + avatar.currentParcelUUID = parcelID; // force parcel flags review + }); + } + } + } public double osList2Double(LSL_Types.list src, int index) -- cgit v1.1