diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/ODECharacter.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index e5e7d07..b832e0a 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -519,7 +519,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
519 | d.BodySetMass(Body, ref ShellMass); | 519 | d.BodySetMass(Body, ref ShellMass); |
520 | d.Matrix3 m_caprot; | 520 | d.Matrix3 m_caprot; |
521 | // 90 Stand up on the cap of the capped cyllinder | 521 | // 90 Stand up on the cap of the capped cyllinder |
522 | d.RFromAxisAndAngle(out m_caprot, 1, 0, 1, (float)(Math.PI / 2)); | 522 | if (_parent_scene.IsAvCapsuleTilted) |
523 | { | ||
524 | d.RFromAxisAndAngle(out m_caprot, 1, 0, 1, (float)(Math.PI / 2)); | ||
525 | } | ||
526 | else | ||
527 | { | ||
528 | d.RFromAxisAndAngle(out m_caprot, 0, 0, 1, (float)(Math.PI / 2)); | ||
529 | } | ||
523 | 530 | ||
524 | 531 | ||
525 | d.GeomSetRotation(Shell, ref m_caprot); | 532 | d.GeomSetRotation(Shell, ref m_caprot); |
@@ -542,12 +549,24 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
542 | d.JointSetAMotorAngle(Amotor, 2, 0); | 549 | d.JointSetAMotorAngle(Amotor, 2, 0); |
543 | 550 | ||
544 | // These lowstops and high stops are effectively (no wiggle room) | 551 | // These lowstops and high stops are effectively (no wiggle room) |
545 | d.JointSetAMotorParam(Amotor, (int)dParam.LowStop, -0.000000000001f); | 552 | if (_parent_scene.IsAvCapsuleTilted) |
546 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -0.000000000001f); | 553 | { |
547 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, -0.000000000001f); | 554 | d.JointSetAMotorParam(Amotor, (int)dParam.LowStop, -0.000000000001f); |
548 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 0.000000000001f); | 555 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -0.000000000001f); |
549 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0.000000000001f); | 556 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, -0.000000000001f); |
550 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 0.000000000001f); | 557 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 0.000000000001f); |
558 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0.000000000001f); | ||
559 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 0.000000000001f); | ||
560 | } | ||
561 | else | ||
562 | { | ||
563 | d.JointSetAMotorParam(Amotor, (int)dParam.LowStop, -0); | ||
564 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -0); | ||
565 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, -0); | ||
566 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 0); | ||
567 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0); | ||
568 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 0); | ||
569 | } | ||
551 | 570 | ||
552 | // Fudge factor is 1f by default, we're setting it to 0. We don't want it to Fudge or the | 571 | // Fudge factor is 1f by default, we're setting it to 0. We don't want it to Fudge or the |
553 | // capped cyllinder will fall over | 572 | // capped cyllinder will fall over |