diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 40 |
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; |