diff options
author | Teravus Ovares | 2008-04-30 16:52:12 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-04-30 16:52:12 +0000 |
commit | b70da6ac1955ada29e1cb4dbe9aeb915735ec686 (patch) | |
tree | 68f6f5f3e7fe2b0fd9a8e0c9baf2dbfafeb90882 /OpenSim/Region/Environment/PermissionManager.cs | |
parent | * Deal with a situation where the new fields in the inventory store are null ... (diff) | |
download | opensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.zip opensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.tar.gz opensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.tar.bz2 opensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.tar.xz |
* Patch by Melanie. Implements proper objectflags on child objects. Thanks Melanie!
RE: 0001079: r4387. touch() event does not fire when touch script is in root prim and child prims are touched
Diffstat (limited to 'OpenSim/Region/Environment/PermissionManager.cs')
-rw-r--r-- | OpenSim/Region/Environment/PermissionManager.cs | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs index 5658be7..fd8387b 100644 --- a/OpenSim/Region/Environment/PermissionManager.cs +++ b/OpenSim/Region/Environment/PermissionManager.cs | |||
@@ -226,21 +226,14 @@ namespace OpenSim.Region.Environment | |||
226 | // Outside of this method, they should never be added to objectflags! | 226 | // Outside of this method, they should never be added to objectflags! |
227 | // -teravus | 227 | // -teravus |
228 | 228 | ||
229 | if (!m_scene.Entities.ContainsKey(objID)) | 229 | SceneObjectPart task=m_scene.GetSceneObjectPart(objID); |
230 | { | 230 | |
231 | return 0; | 231 | // this shouldn't ever happen.. return no permissions/objectflags. |
232 | } | 232 | if (task == null) |
233 | 233 | return (uint)0; | |
234 | // If it's not an object, we cant edit it. | ||
235 | if (!(m_scene.Entities[objID] is SceneObjectGroup)) | ||
236 | { | ||
237 | return 0; | ||
238 | } | ||
239 | |||
240 | SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[objID]; | ||
241 | LLUUID objectOwner = task.OwnerID; | ||
242 | 234 | ||
243 | uint objflags = task.RootPart.ObjectFlags; | 235 | uint objflags = task.GetEffectiveObjectFlags(); |
236 | LLUUID objectOwner = task.OwnerID; | ||
244 | 237 | ||
245 | 238 | ||
246 | // Remove any of the objectFlags that are temporary. These will get added back if appropriate | 239 | // Remove any of the objectFlags that are temporary. These will get added back if appropriate |
@@ -257,14 +250,14 @@ namespace OpenSim.Region.Environment | |||
257 | 250 | ||
258 | // Creating the three ObjectFlags options for this method to choose from. | 251 | // Creating the three ObjectFlags options for this method to choose from. |
259 | // Customize the OwnerMask | 252 | // Customize the OwnerMask |
260 | uint objectOwnerMask = ApplyObjectModifyMasks(task.RootPart.OwnerMask, objflags); | 253 | uint objectOwnerMask = ApplyObjectModifyMasks(task.OwnerMask, objflags); |
261 | objectOwnerMask |= (uint)LLObject.ObjectFlags.ObjectYouOwner; | 254 | objectOwnerMask |= (uint)LLObject.ObjectFlags.ObjectYouOwner; |
262 | 255 | ||
263 | // Customize the GroupMask | 256 | // Customize the GroupMask |
264 | uint objectGroupMask = ApplyObjectModifyMasks(task.RootPart.GroupMask, objflags); | 257 | uint objectGroupMask = ApplyObjectModifyMasks(task.GroupMask, objflags); |
265 | 258 | ||
266 | // Customize the EveryoneMask | 259 | // Customize the EveryoneMask |
267 | uint objectEveryoneMask = ApplyObjectModifyMasks(task.RootPart.EveryoneMask, objflags); | 260 | uint objectEveryoneMask = ApplyObjectModifyMasks(task.EveryoneMask, objflags); |
268 | 261 | ||
269 | 262 | ||
270 | // Hack to allow collaboration until Groups and Group Permissions are implemented | 263 | // Hack to allow collaboration until Groups and Group Permissions are implemented |