aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs56
1 files changed, 21 insertions, 35 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 25a53b4..2b9665c 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -69,15 +69,14 @@ namespace OpenSim.Region.Framework.Scenes
69 public ScriptControlled eventControls; 69 public ScriptControlled eventControls;
70 } 70 }
71 71
72 public delegate void SendCoarseLocationsMethod(UUID scene, ScenePresence presence, List<Vector3> coarseLocations, List<UUID> avatarUUIDs); 72 public delegate void SendCourseLocationsMethod(UUID scene, ScenePresence presence, List<Vector3> coarseLocations, List<UUID> avatarUUIDs);
73 73
74 public class ScenePresence : EntityBase, IScenePresence 74 public class ScenePresence : EntityBase, IScenePresence
75 { 75 {
76// ~ScenePresence() 76// ~ScenePresence()
77// { 77// {
78// m_log.DebugFormat("[SCENE PRESENCE]: Destructor called on {0}", Name); 78// m_log.Debug("[SCENE PRESENCE] Destructor called");
79// } 79// }
80
81 private void TriggerScenePresenceUpdated() 80 private void TriggerScenePresenceUpdated()
82 { 81 {
83 if (m_scene != null) 82 if (m_scene != null)
@@ -189,7 +188,7 @@ namespace OpenSim.Region.Framework.Scenes
189 /// </summary> 188 /// </summary>
190 public bool SitGround { get; private set; } 189 public bool SitGround { get; private set; }
191 190
192 private SendCoarseLocationsMethod m_sendCoarseLocationsMethod; 191 private SendCourseLocationsMethod m_sendCourseLocationsMethod;
193 192
194 //private Vector3 m_requestedSitOffset = new Vector3(); 193 //private Vector3 m_requestedSitOffset = new Vector3();
195 194
@@ -547,7 +546,7 @@ namespace OpenSim.Region.Framework.Scenes
547 { 546 {
548 try 547 try
549 { 548 {
550 PhysicsActor.TargetVelocity = value; 549 PhysicsActor.Velocity = value;
551 } 550 }
552 catch (Exception e) 551 catch (Exception e)
553 { 552 {
@@ -712,7 +711,7 @@ namespace OpenSim.Region.Framework.Scenes
712 AttachmentsSyncLock = new Object(); 711 AttachmentsSyncLock = new Object();
713 AllowMovement = true; 712 AllowMovement = true;
714 IsChildAgent = true; 713 IsChildAgent = true;
715 m_sendCoarseLocationsMethod = SendCoarseLocationsDefault; 714 m_sendCourseLocationsMethod = SendCoarseLocationsDefault;
716 Animator = new ScenePresenceAnimator(this); 715 Animator = new ScenePresenceAnimator(this);
717 PresenceType = type; 716 PresenceType = type;
718 DrawDistance = world.DefaultDrawDistance; 717 DrawDistance = world.DefaultDrawDistance;
@@ -976,9 +975,7 @@ namespace OpenSim.Region.Framework.Scenes
976 { 975 {
977 if (wasChild && HasAttachments()) 976 if (wasChild && HasAttachments())
978 { 977 {
979 m_log.DebugFormat( 978 m_log.DebugFormat("[SCENE PRESENCE]: Restarting scripts in attachments...");
980 "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name);
981
982 // Resume scripts 979 // Resume scripts
983 Util.FireAndForget(delegate(object x) { 980 Util.FireAndForget(delegate(object x) {
984 foreach (SceneObjectGroup sog in m_attachments) 981 foreach (SceneObjectGroup sog in m_attachments)
@@ -1534,22 +1531,17 @@ namespace OpenSim.Region.Framework.Scenes
1534 bool DCFlagKeyPressed = false; 1531 bool DCFlagKeyPressed = false;
1535 Vector3 agent_control_v3 = Vector3.Zero; 1532 Vector3 agent_control_v3 = Vector3.Zero;
1536 1533
1537 bool newFlying = actor.Flying; 1534 bool oldflying = Flying;
1538 1535
1539 if (ForceFly) 1536 if (ForceFly)
1540 newFlying = true; 1537 actor.Flying = true;
1541 else if (FlyDisabled) 1538 else if (FlyDisabled)
1542 newFlying = false; 1539 actor.Flying = false;
1543 else 1540 else
1544 newFlying = ((flags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0); 1541 actor.Flying = ((flags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
1545 1542
1546 if (actor.Flying != newFlying) 1543 if (actor.Flying != oldflying)
1547 {
1548 // Note: ScenePresence.Flying is actually fetched from the physical actor
1549 // so setting PhysActor.Flying here also sets the ScenePresence's value.
1550 actor.Flying = newFlying;
1551 update_movementflag = true; 1544 update_movementflag = true;
1552 }
1553 1545
1554 if (ParentID == 0) 1546 if (ParentID == 0)
1555 { 1547 {
@@ -2631,17 +2623,17 @@ namespace OpenSim.Region.Framework.Scenes
2631 2623
2632 public void SendCoarseLocations(List<Vector3> coarseLocations, List<UUID> avatarUUIDs) 2624 public void SendCoarseLocations(List<Vector3> coarseLocations, List<UUID> avatarUUIDs)
2633 { 2625 {
2634 SendCoarseLocationsMethod d = m_sendCoarseLocationsMethod; 2626 SendCourseLocationsMethod d = m_sendCourseLocationsMethod;
2635 if (d != null) 2627 if (d != null)
2636 { 2628 {
2637 d.Invoke(m_scene.RegionInfo.originRegionID, this, coarseLocations, avatarUUIDs); 2629 d.Invoke(m_scene.RegionInfo.originRegionID, this, coarseLocations, avatarUUIDs);
2638 } 2630 }
2639 } 2631 }
2640 2632
2641 public void SetSendCoarseLocationMethod(SendCoarseLocationsMethod d) 2633 public void SetSendCourseLocationMethod(SendCourseLocationsMethod d)
2642 { 2634 {
2643 if (d != null) 2635 if (d != null)
2644 m_sendCoarseLocationsMethod = d; 2636 m_sendCourseLocationsMethod = d;
2645 } 2637 }
2646 2638
2647 public void SendCoarseLocationsDefault(UUID sceneId, ScenePresence p, List<Vector3> coarseLocations, List<UUID> avatarUUIDs) 2639 public void SendCoarseLocationsDefault(UUID sceneId, ScenePresence p, List<Vector3> coarseLocations, List<UUID> avatarUUIDs)
@@ -2845,7 +2837,7 @@ namespace OpenSim.Region.Framework.Scenes
2845 #region Significant Movement Method 2837 #region Significant Movement Method
2846 2838
2847 /// <summary> 2839 /// <summary>
2848 /// This checks for a significant movement and sends a coarselocationchange update 2840 /// This checks for a significant movement and sends a courselocationchange update
2849 /// </summary> 2841 /// </summary>
2850 protected void CheckForSignificantMovement() 2842 protected void CheckForSignificantMovement()
2851 { 2843 {
@@ -3282,7 +3274,6 @@ namespace OpenSim.Region.Framework.Scenes
3282 } 3274 }
3283 catch { } 3275 catch { }
3284 cAgent.DefaultAnim = Animator.Animations.DefaultAnimation; 3276 cAgent.DefaultAnim = Animator.Animations.DefaultAnimation;
3285 cAgent.AnimState = Animator.Animations.ImplicitDefaultAnimation;
3286 3277
3287 if (Scene.AttachmentsModule != null) 3278 if (Scene.AttachmentsModule != null)
3288 Scene.AttachmentsModule.CopyAttachments(this, cAgent); 3279 Scene.AttachmentsModule.CopyAttachments(this, cAgent);
@@ -3359,8 +3350,6 @@ namespace OpenSim.Region.Framework.Scenes
3359 Animator.Animations.FromArray(cAgent.Anims); 3350 Animator.Animations.FromArray(cAgent.Anims);
3360 if (cAgent.DefaultAnim != null) 3351 if (cAgent.DefaultAnim != null)
3361 Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); 3352 Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero);
3362 if (cAgent.AnimState != null)
3363 Animator.Animations.SetImplicitDefaultAnimation(cAgent.AnimState.AnimID, cAgent.AnimState.SequenceNum, UUID.Zero);
3364 3353
3365 if (Scene.AttachmentsModule != null) 3354 if (Scene.AttachmentsModule != null)
3366 Scene.AttachmentsModule.CopyAttachments(cAgent, this); 3355 Scene.AttachmentsModule.CopyAttachments(cAgent, this);
@@ -3643,16 +3632,13 @@ namespace OpenSim.Region.Framework.Scenes
3643 public List<SceneObjectGroup> GetAttachments(uint attachmentPoint) 3632 public List<SceneObjectGroup> GetAttachments(uint attachmentPoint)
3644 { 3633 {
3645 List<SceneObjectGroup> attachments = new List<SceneObjectGroup>(); 3634 List<SceneObjectGroup> attachments = new List<SceneObjectGroup>();
3646 3635
3647 if (attachmentPoint >= 0) 3636 lock (m_attachments)
3648 { 3637 {
3649 lock (m_attachments) 3638 foreach (SceneObjectGroup so in m_attachments)
3650 { 3639 {
3651 foreach (SceneObjectGroup so in m_attachments) 3640 if (attachmentPoint == so.AttachmentPoint)
3652 { 3641 attachments.Add(so);
3653 if (attachmentPoint == so.AttachmentPoint)
3654 attachments.Add(so);
3655 }
3656 } 3642 }
3657 } 3643 }
3658 3644