diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 2603fe1..565438d 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -665,7 +665,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
665 | CreateSceneViewer(); | 665 | CreateSceneViewer(); |
666 | m_animator = new ScenePresenceAnimator(this); | 666 | m_animator = new ScenePresenceAnimator(this); |
667 | } | 667 | } |
668 | 668 | ||
669 | private ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo) : this() | 669 | private ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo) : this() |
670 | { | 670 | { |
671 | m_rootRegionHandle = reginfo.RegionHandle; | 671 | m_rootRegionHandle = reginfo.RegionHandle; |
@@ -1459,7 +1459,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1459 | } | 1459 | } |
1460 | i++; | 1460 | i++; |
1461 | } | 1461 | } |
1462 | |||
1463 | //Paupaw:Do Proper PID for Autopilot here | 1462 | //Paupaw:Do Proper PID for Autopilot here |
1464 | if (bResetMoveToPosition) | 1463 | if (bResetMoveToPosition) |
1465 | { | 1464 | { |
@@ -2433,10 +2432,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
2433 | Rotation = rotation; | 2432 | Rotation = rotation; |
2434 | Vector3 direc = vec * rotation; | 2433 | Vector3 direc = vec * rotation; |
2435 | direc.Normalize(); | 2434 | direc.Normalize(); |
2435 | PhysicsActor actor = m_physicsActor; | ||
2436 | if ((vec.Z == 0f) && !actor.Flying) direc.Z = 0f; // Prevent camera WASD up. | ||
2436 | 2437 | ||
2437 | direc *= 0.03f * 128f * m_speedModifier; | 2438 | direc *= 0.03f * 128f * m_speedModifier; |
2438 | 2439 | ||
2439 | PhysicsActor actor = m_physicsActor; | ||
2440 | if (actor != null) | 2440 | if (actor != null) |
2441 | { | 2441 | { |
2442 | if (actor.Flying) | 2442 | if (actor.Flying) |
@@ -2458,11 +2458,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
2458 | { | 2458 | { |
2459 | if (direc.Z > 2.0f) | 2459 | if (direc.Z > 2.0f) |
2460 | { | 2460 | { |
2461 | direc.Z *= 3.0f; | 2461 | if(m_animator.m_animTickJump == -1) |
2462 | 2462 | { | |
2463 | // TODO: PreJump and jump happen too quickly. Many times prejump gets ignored. | 2463 | direc.Z *= 3.0f; // jump |
2464 | Animator.TrySetMovementAnimation("PREJUMP"); | 2464 | } |
2465 | Animator.TrySetMovementAnimation("JUMP"); | 2465 | else |
2466 | { | ||
2467 | direc.Z *= 0.1f; // prejump | ||
2468 | } | ||
2469 | /* Animations are controlled via GetMovementAnimation() in ScenePresenceAnimator.cs | ||
2470 | Animator.TrySetMovementAnimation("PREJUMP"); | ||
2471 | Animator.TrySetMovementAnimation("JUMP"); | ||
2472 | */ | ||
2466 | } | 2473 | } |
2467 | } | 2474 | } |
2468 | } | 2475 | } |