aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/PhysicsModules/BulletS
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/PhysicsModules/BulletS')
-rw-r--r--OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs8
1 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs b/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
index 989b339..bd3c7ac 100644
--- a/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
+++ b/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
@@ -653,8 +653,15 @@ public sealed class BSCharacter : BSPhysObject
653 { 653 {
654 // Since this force is being applied in only one step, make this a force per second. 654 // Since this force is being applied in only one step, make this a force per second.
655 OMV.Vector3 addForce = force / PhysScene.LastTimeStep; 655 OMV.Vector3 addForce = force / PhysScene.LastTimeStep;
656
657 // compensate for density variation
658 // with a adicional parameter to sync with old ode
659 if(pushforce)
660 addForce = addForce * Density * BSParam.DensityScaleFactor * 0.08f;;
661
656 AddForce(addForce, pushforce, false); 662 AddForce(addForce, pushforce, false);
657 } 663 }
664
658 public override void AddForce(OMV.Vector3 force, bool pushforce, bool inTaintTime) { 665 public override void AddForce(OMV.Vector3 force, bool pushforce, bool inTaintTime) {
659 if (force.IsFinite()) 666 if (force.IsFinite())
660 { 667 {
@@ -668,6 +675,7 @@ public sealed class BSCharacter : BSPhysObject
668 if (PhysBody.HasPhysicalBody) 675 if (PhysBody.HasPhysicalBody)
669 { 676 {
670 PhysScene.PE.ApplyCentralForce(PhysBody, addForce); 677 PhysScene.PE.ApplyCentralForce(PhysBody, addForce);
678 PhysScene.PE.Activate(PhysBody, true);
671 } 679 }
672 }); 680 });
673 } 681 }