diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index c45fc0f..d7660fd 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -140,6 +140,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
140 | private Vector3? m_forceToApply; | 140 | private Vector3? m_forceToApply; |
141 | private uint m_requestedSitTargetID; | 141 | private uint m_requestedSitTargetID; |
142 | private UUID m_requestedSitTargetUUID; | 142 | private UUID m_requestedSitTargetUUID; |
143 | public bool SitGround = false; | ||
143 | 144 | ||
144 | private SendCourseLocationsMethod m_sendCourseLocationsMethod; | 145 | private SendCourseLocationsMethod m_sendCourseLocationsMethod; |
145 | 146 | ||
@@ -1393,6 +1394,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1393 | { | 1394 | { |
1394 | m_updateCount = 0; // Kill animation update burst so that the SIT_G.. will stick. | 1395 | m_updateCount = 0; // Kill animation update burst so that the SIT_G.. will stick. |
1395 | Animator.TrySetMovementAnimation("SIT_GROUND_CONSTRAINED"); | 1396 | Animator.TrySetMovementAnimation("SIT_GROUND_CONSTRAINED"); |
1397 | |||
1398 | // TODO: This doesn't prevent the user from walking yet. | ||
1399 | // Setting parent ID would fix this, if we knew what value | ||
1400 | // to use. Or we could add a m_isSitting variable. | ||
1401 | //Animator.TrySetMovementAnimation("SIT_GROUND_CONSTRAINED"); | ||
1402 | SitGround = true; | ||
1396 | } | 1403 | } |
1397 | 1404 | ||
1398 | // In the future, these values might need to go global. | 1405 | // In the future, these values might need to go global. |
@@ -1409,7 +1416,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1409 | 1416 | ||
1410 | bool update_movementflag = false; | 1417 | bool update_movementflag = false; |
1411 | 1418 | ||
1412 | if (m_allowMovement) | 1419 | if (m_allowMovement && !SitGround) |
1413 | { | 1420 | { |
1414 | if (agentData.UseClientAgentPosition) | 1421 | if (agentData.UseClientAgentPosition) |
1415 | { | 1422 | { |
@@ -1637,7 +1644,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1637 | } | 1644 | } |
1638 | } | 1645 | } |
1639 | 1646 | ||
1640 | if (update_movementflag) | 1647 | if (update_movementflag && !SitGround) |
1641 | Animator.UpdateMovementAnimations(); | 1648 | Animator.UpdateMovementAnimations(); |
1642 | 1649 | ||
1643 | m_scene.EventManager.TriggerOnClientMovement(this); | 1650 | m_scene.EventManager.TriggerOnClientMovement(this); |
@@ -1748,6 +1755,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1748 | /// </summary> | 1755 | /// </summary> |
1749 | public void StandUp() | 1756 | public void StandUp() |
1750 | { | 1757 | { |
1758 | SitGround = false; | ||
1759 | |||
1751 | if (m_parentID != 0) | 1760 | if (m_parentID != 0) |
1752 | { | 1761 | { |
1753 | SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); | 1762 | SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); |