diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs index 3671fc2..ff5b6ab 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | |||
@@ -419,7 +419,7 @@ public sealed class BSCharacter : BSPhysObject | |||
419 | DetailLog("{0},BSCharacter.setTargetVelocity,call,vel={1}", LocalID, value); | 419 | DetailLog("{0},BSCharacter.setTargetVelocity,call,vel={1}", LocalID, value); |
420 | m_targetVelocity = value; | 420 | m_targetVelocity = value; |
421 | OMV.Vector3 targetVel = value; | 421 | OMV.Vector3 targetVel = value; |
422 | if (_setAlwaysRun) | 422 | if (_setAlwaysRun && !_flying) |
423 | targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 0f); | 423 | targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 0f); |
424 | 424 | ||
425 | if (m_moveActor != null) | 425 | if (m_moveActor != null) |
@@ -481,7 +481,10 @@ public sealed class BSCharacter : BSPhysObject | |||
481 | _orientation = value; | 481 | _orientation = value; |
482 | PhysScene.TaintedObject("BSCharacter.setOrientation", delegate() | 482 | PhysScene.TaintedObject("BSCharacter.setOrientation", delegate() |
483 | { | 483 | { |
484 | ForceOrientation = _orientation; | 484 | // Bullet assumes we know what we are doing when forcing orientation |
485 | // so it lets us go against all the rules and just compensates for them later. | ||
486 | // This keeps us from flipping the capsule over which the veiwer does not understand. | ||
487 | ForceOrientation = new OMV.Quaternion(0, 0, _orientation.Z,0); | ||
485 | }); | 488 | }); |
486 | } | 489 | } |
487 | } | 490 | } |