aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/ODECharacter.cs')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs33
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