diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index 2866b54..1038111 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -81,10 +81,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
81 | /// <summary> | 81 | /// <summary> |
82 | /// Stop the scripts contained in all the prims in this group | 82 | /// Stop the scripts contained in all the prims in this group |
83 | /// </summary> | 83 | /// </summary> |
84 | /// <param name="sceneObjectBeingDeleted"> | ||
85 | /// Should be true if these scripts are being removed because the scene | ||
86 | /// object is being deleted. This will prevent spurious updates to the client. | ||
87 | /// </param> | ||
88 | public void RemoveScriptInstances(bool sceneObjectBeingDeleted) | 84 | public void RemoveScriptInstances(bool sceneObjectBeingDeleted) |
89 | { | 85 | { |
90 | SceneObjectPart[] parts = m_parts.GetArray(); | 86 | SceneObjectPart[] parts = m_parts.GetArray(); |
@@ -239,6 +235,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
239 | 235 | ||
240 | public uint GetEffectivePermissions() | 236 | public uint GetEffectivePermissions() |
241 | { | 237 | { |
238 | return GetEffectivePermissions(false); | ||
239 | } | ||
240 | |||
241 | public uint GetEffectivePermissions(bool useBase) | ||
242 | { | ||
242 | uint perms=(uint)(PermissionMask.Modify | | 243 | uint perms=(uint)(PermissionMask.Modify | |
243 | PermissionMask.Copy | | 244 | PermissionMask.Copy | |
244 | PermissionMask.Move | | 245 | PermissionMask.Move | |
@@ -250,7 +251,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
250 | for (int i = 0; i < parts.Length; i++) | 251 | for (int i = 0; i < parts.Length; i++) |
251 | { | 252 | { |
252 | SceneObjectPart part = parts[i]; | 253 | SceneObjectPart part = parts[i]; |
253 | ownerMask &= part.OwnerMask; | 254 | if (useBase) |
255 | ownerMask &= part.BaseMask; | ||
256 | else | ||
257 | ownerMask &= part.OwnerMask; | ||
254 | perms &= part.Inventory.MaskEffectivePermissions(); | 258 | perms &= part.Inventory.MaskEffectivePermissions(); |
255 | } | 259 | } |
256 | 260 | ||
@@ -392,6 +396,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
392 | 396 | ||
393 | public void ResumeScripts() | 397 | public void ResumeScripts() |
394 | { | 398 | { |
399 | if (m_scene.RegionInfo.RegionSettings.DisableScripts) | ||
400 | return; | ||
401 | |||
395 | SceneObjectPart[] parts = m_parts.GetArray(); | 402 | SceneObjectPart[] parts = m_parts.GetArray(); |
396 | for (int i = 0; i < parts.Length; i++) | 403 | for (int i = 0; i < parts.Length; i++) |
397 | parts[i].Inventory.ResumeScripts(); | 404 | parts[i].Inventory.ResumeScripts(); |