]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/YASim/Gear.cpp
replay system: allow to resume simulation at any point of replay-time.
[flightgear.git] / src / FDM / YASim / Gear.cpp
index 886a1a98953f49404f3d96c74de208c6b9b7ae0a..b4c7673cb541eddf4ead3f9c35c0fe4177c3e389 100644 (file)
@@ -284,16 +284,20 @@ void Gear::calcForce(RigidBody* body, State *s, float* v, float* rot)
 
     // Don't bother if it's not down
     if(_extension < 1)
-       return;
+    {
+        _wow = 0;
+        _frac = 0;
+        return;
+    }
 
     // Dont bother if we are in the "wrong" ground
     if (!((_onWater&&!_ground_isSolid)||(_onSolid&&_ground_isSolid)))  {
-       _wow = 0;
-       _frac = 0;
+         _wow = 0;
+         _frac = 0;
         _compressDist = 0;
         _rollSpeed = 0;
         _casterAngle = 0;
-       return;
+        return;
     }
 
     // The ground plane transformed to the local frame.
@@ -332,8 +336,10 @@ void Gear::calcForce(RigidBody* body, State *s, float* v, float* rot)
     float b = ground[3] - Math::dot3(tmp, ground)+BumpAltitude;
 
     // Calculate the point of ground _contact.
-    _frac = a/(a-b);
-    if(b < 0) _frac = 1;
+    if(b < 0)
+        _frac = 1;
+    else
+        _frac = a/(a-b);
     for(i=0; i<3; i++)
        _contact[i] = _pos[i] + _frac*_cmpr[i];