From: Christopher Yeoh <yeohc@au1.ibm.com>
The attached patch adds the automatic granting of PERMISSION_CONTROL_CAMERA on request to a script when an avatar is sitting on the object that the script resides in. It also automatically removes PERMISSION_TAKE_CONTROLS and PERMISSION_CONTROL_CAMERA from the scripts when an avatar stands up. It doesn't remove the other automatically granted permissions but this follows LL server behavior. Removing these two permissions avoids some potential race conditions (accidentally taking control after the avatar has stood up) which may be why LL put them in the first place.0.6.2-post-fixes
parent
efcf6ff095
commit
9bcaf98e37
|
@ -1434,6 +1434,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
foreach (UUID taskID in taskIDict.Keys)
|
||||
{
|
||||
UnRegisterControlEventsToScript(LocalId, taskID);
|
||||
taskIDict[taskID].PermsMask &= ~(
|
||||
2048 | //PERMISSION_CONTROL_CAMERA
|
||||
4); // PERMISSION_TAKE_CONTROLS
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2958,7 +2958,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
// When agent is sitting, certain permissions are implicit if requested from sitting agent
|
||||
int implicitPerms = ScriptBaseClass.PERMISSION_TRIGGER_ANIMATION |
|
||||
ScriptBaseClass.PERMISSION_CONTROL_CAMERA |
|
||||
ScriptBaseClass.PERMISSION_TRACK_CAMERA;
|
||||
ScriptBaseClass.PERMISSION_TRACK_CAMERA |
|
||||
ScriptBaseClass.PERMISSION_TAKE_CONTROLS;
|
||||
|
||||
if ((perm & (~implicitPerms)) == 0) // Requested only implicit perms
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue