aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs40
1 files changed, 33 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index cb7422b..bb6e89b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3335,11 +3335,16 @@ namespace OpenSim.Region.Framework.Scenes
3335 Velocity = Vector3.Zero; 3335 Velocity = Vector3.Zero;
3336 m_AngularVelocity = Vector3.Zero; 3336 m_AngularVelocity = Vector3.Zero;
3337 3337
3338 m_requestedSitTargetID = 0;
3339 part.AddSittingAvatar(this);
3340
3341 ParentPart = part;
3342 ParentID = part.LocalId;
3343
3338 Vector3 cameraAtOffset = part.GetCameraAtOffset(); 3344 Vector3 cameraAtOffset = part.GetCameraAtOffset();
3339 Vector3 cameraEyeOffset = part.GetCameraEyeOffset(); 3345 Vector3 cameraEyeOffset = part.GetCameraEyeOffset();
3340 bool forceMouselook = part.GetForceMouselook(); 3346 bool forceMouselook = part.GetForceMouselook();
3341 3347
3342
3343 if (!part.IsRoot) 3348 if (!part.IsRoot)
3344 { 3349 {
3345 Orientation = part.RotationOffset * Orientation; 3350 Orientation = part.RotationOffset * Orientation;
@@ -3365,13 +3370,7 @@ namespace OpenSim.Region.Framework.Scenes
3365 3370
3366 ControllingClient.SendSitResponse( 3371 ControllingClient.SendSitResponse(
3367 part.ParentGroup.UUID, offset, Orientation, true, cameraAtOffset, cameraEyeOffset, forceMouselook); 3372 part.ParentGroup.UUID, offset, Orientation, true, cameraAtOffset, cameraEyeOffset, forceMouselook);
3368
3369 3373
3370 m_requestedSitTargetID = 0;
3371 part.AddSittingAvatar(this);
3372
3373 ParentPart = part;
3374 ParentID = part.LocalId;
3375 3374
3376 SendAvatarDataToAllAgents(); 3375 SendAvatarDataToAllAgents();
3377 3376
@@ -5560,6 +5559,13 @@ namespace OpenSim.Region.Framework.Scenes
5560 5559
5561 public void HandleForceReleaseControls(IClientAPI remoteClient, UUID agentID) 5560 public void HandleForceReleaseControls(IClientAPI remoteClient, UUID agentID)
5562 { 5561 {
5562 foreach (ScriptControllers c in scriptedcontrols.Values)
5563 {
5564 SceneObjectGroup sog = m_scene.GetSceneObjectGroup(c.objectID);
5565 if(sog != null && !sog.IsDeleted && sog.RootPart.PhysActor != null)
5566 sog.RootPart.PhysActor.OnPhysicsRequestingCameraData -= physActor_OnPhysicsRequestingCameraData;
5567 }
5568
5563 IgnoredControls = ScriptControlled.CONTROL_ZERO; 5569 IgnoredControls = ScriptControlled.CONTROL_ZERO;
5564 lock (scriptedcontrols) 5570 lock (scriptedcontrols)
5565 { 5571 {
@@ -5568,6 +5574,26 @@ namespace OpenSim.Region.Framework.Scenes
5568 ControllingClient.SendTakeControls(int.MaxValue, false, false); 5574 ControllingClient.SendTakeControls(int.MaxValue, false, false);
5569 } 5575 }
5570 5576
5577 public void HandleRevokePermissions(UUID objectID, uint permissions )
5578 {
5579
5580 // still skeleton code
5581 if((permissions & (16 | 0x8000 )) == 0) //PERMISSION_TRIGGER_ANIMATION | PERMISSION_OVERRIDE_ANIMATIONS
5582 return;
5583 if(objectID == m_scene.RegionInfo.RegionID) // for all objects
5584 {
5585
5586 }
5587 else
5588 {
5589 SceneObjectPart part = m_scene.GetSceneObjectPart(objectID);
5590 if(part != null)
5591 {
5592
5593 }
5594 }
5595 }
5596
5571 public void ClearControls() 5597 public void ClearControls()
5572 { 5598 {
5573 IgnoredControls = ScriptControlled.CONTROL_ZERO; 5599 IgnoredControls = ScriptControlled.CONTROL_ZERO;