diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 49 |
1 files changed, 33 insertions, 16 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index bb6e89b..6f4d6c3 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -281,7 +281,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
281 | 281 | ||
282 | private bool m_followCamAuto = false; | 282 | private bool m_followCamAuto = false; |
283 | 283 | ||
284 | private Vector3? m_forceToApply; | 284 | // private object m_forceToApplyLock = new object(); |
285 | // private bool m_forceToApplyValid; | ||
286 | // private Vector3 m_forceToApply; | ||
285 | private int m_userFlags; | 287 | private int m_userFlags; |
286 | public int UserFlags | 288 | public int UserFlags |
287 | { | 289 | { |
@@ -582,11 +584,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
582 | { | 584 | { |
583 | get | 585 | get |
584 | { | 586 | { |
585 | return m_drawDistance; | 587 | return m_drawDistance; |
586 | } | 588 | } |
587 | set | 589 | set |
588 | { | 590 | { |
589 | m_drawDistance = Util.Clamp(value, 32f, m_scene.MaxDrawDistance); | 591 | m_drawDistance = Util.Clamp(value, 32f, m_scene.MaxDrawDistance); |
590 | } | 592 | } |
591 | } | 593 | } |
592 | 594 | ||
@@ -594,7 +596,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
594 | { | 596 | { |
595 | get | 597 | get |
596 | { | 598 | { |
597 | return Util.Clamp(m_drawDistance, 32f, m_scene.MaxRegionViewDistance); | 599 | return Util.Clamp(m_drawDistance, 32f, m_scene.MaxRegionViewDistance); |
598 | } | 600 | } |
599 | } | 601 | } |
600 | 602 | ||
@@ -2120,6 +2122,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2120 | if (haveAnims) | 2122 | if (haveAnims) |
2121 | SendAnimPackToAgent(this, animIDs, animseqs, animsobjs); | 2123 | SendAnimPackToAgent(this, animIDs, animseqs, animsobjs); |
2122 | 2124 | ||
2125 | |||
2123 | // we should be able to receive updates, etc | 2126 | // we should be able to receive updates, etc |
2124 | // so release them | 2127 | // so release them |
2125 | m_inTransit = false; | 2128 | m_inTransit = false; |
@@ -2238,6 +2241,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2238 | } | 2241 | } |
2239 | finally | 2242 | finally |
2240 | { | 2243 | { |
2244 | haveGroupInformation = false; | ||
2245 | gotCrossUpdate = false; | ||
2246 | crossingFlags = 0; | ||
2241 | m_inTransit = false; | 2247 | m_inTransit = false; |
2242 | } | 2248 | } |
2243 | // if hide force a check | 2249 | // if hide force a check |
@@ -2247,9 +2253,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2247 | // m_currentParcelHide = newhide; | 2253 | // m_currentParcelHide = newhide; |
2248 | // } | 2254 | // } |
2249 | 2255 | ||
2250 | haveGroupInformation = false; | ||
2251 | gotCrossUpdate = false; | ||
2252 | crossingFlags = 0; | ||
2253 | 2256 | ||
2254 | m_scene.EventManager.OnRegionHeartbeatEnd += RegionHeartbeatEnd; | 2257 | m_scene.EventManager.OnRegionHeartbeatEnd += RegionHeartbeatEnd; |
2255 | 2258 | ||
@@ -3006,7 +3009,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3006 | 3009 | ||
3007 | MovingToTarget = false; | 3010 | MovingToTarget = false; |
3008 | // MoveToPositionTarget = Vector3.Zero; | 3011 | // MoveToPositionTarget = Vector3.Zero; |
3009 | m_forceToApply = null; // cancel possible last action | 3012 | // lock(m_forceToApplyLock) |
3013 | // m_forceToApplyValid = false; // cancel possible last action | ||
3010 | 3014 | ||
3011 | // We need to reset the control flag as the ScenePresenceAnimator uses this to determine the correct | 3015 | // We need to reset the control flag as the ScenePresenceAnimator uses this to determine the correct |
3012 | // resting animation (e.g. hover or stand). NPCs don't have a client that will quickly reset this flag. | 3016 | // resting animation (e.g. hover or stand). NPCs don't have a client that will quickly reset this flag. |
@@ -3638,8 +3642,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
3638 | } | 3642 | } |
3639 | 3643 | ||
3640 | // m_log.DebugFormat("[SCENE PRESENCE]: Setting force to apply to {0} for {1}", direc, Name); | 3644 | // m_log.DebugFormat("[SCENE PRESENCE]: Setting force to apply to {0} for {1}", direc, Name); |
3641 | 3645 | /* | |
3642 | m_forceToApply = direc; | 3646 | lock(m_forceToApplyLock) |
3647 | { | ||
3648 | m_forceToApply = direc; | ||
3649 | m_forceToApplyValid = true; | ||
3650 | } | ||
3651 | */ | ||
3652 | Velocity = direc; | ||
3643 | Animator.UpdateMovementAnimations(); | 3653 | Animator.UpdateMovementAnimations(); |
3644 | } | 3654 | } |
3645 | 3655 | ||
@@ -4734,17 +4744,21 @@ namespace OpenSim.Region.Framework.Scenes | |||
4734 | /// </summary> | 4744 | /// </summary> |
4735 | public void UpdateMovement() | 4745 | public void UpdateMovement() |
4736 | { | 4746 | { |
4747 | /* | ||
4737 | if (IsInTransit) | 4748 | if (IsInTransit) |
4738 | return; | 4749 | return; |
4739 | if (m_forceToApply.HasValue) | ||
4740 | { | ||
4741 | Vector3 force = m_forceToApply.Value; | ||
4742 | 4750 | ||
4743 | Velocity = force; | 4751 | lock(m_forceToApplyLock) |
4752 | { | ||
4753 | if (m_forceToApplyValid) | ||
4754 | { | ||
4755 | Velocity = m_forceToApply; | ||
4744 | 4756 | ||
4745 | m_forceToApply = null; | 4757 | m_forceToApplyValid = false; |
4746 | TriggerScenePresenceUpdated(); | 4758 | TriggerScenePresenceUpdated(); |
4759 | } | ||
4747 | } | 4760 | } |
4761 | */ | ||
4748 | } | 4762 | } |
4749 | 4763 | ||
4750 | /// <summary> | 4764 | /// <summary> |
@@ -4767,6 +4781,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
4767 | // Appearance.SetHeight(); | 4781 | // Appearance.SetHeight(); |
4768 | Appearance.SetSize(new Vector3(0.45f,0.6f,1.9f)); | 4782 | Appearance.SetSize(new Vector3(0.45f,0.6f,1.9f)); |
4769 | 4783 | ||
4784 | // lock(m_forceToApplyLock) | ||
4785 | // m_forceToApplyValid = false; | ||
4786 | |||
4770 | PhysicsScene scene = m_scene.PhysicsScene; | 4787 | PhysicsScene scene = m_scene.PhysicsScene; |
4771 | Vector3 pVec = AbsolutePosition; | 4788 | Vector3 pVec = AbsolutePosition; |
4772 | 4789 | ||