]> git.mxchange.org Git - flightgear.git/commitdiff
only lock AP automatically if above /autopilot/route-manager/min-lock-altitude-agl-ft
authormfranz <mfranz>
Fri, 12 May 2006 09:36:21 +0000 (09:36 +0000)
committermfranz <mfranz>
Fri, 12 May 2006 09:36:21 +0000 (09:36 +0000)
The ufo sets this to a very low value, "serious" aircraft (which don't want this
unrealistic automatism at all) set it to a very high value, and those that don't
care ... don't need to care.

src/Autopilot/route_mgr.cxx
src/Autopilot/route_mgr.hxx

index 0fe2d7f433957373d55930395c92f32458dc3108..b95b39b8e171794d258f1e320fd620327e498ff8 100644 (file)
@@ -144,7 +144,7 @@ void FGRouteMgr::update( double dt ) {
             target_altitude_ft->setDoubleValue( target_alt * SG_METER_TO_FEET );
             altitude_set = true;
 
-            if ( !on_ground() )
+            if ( !near_ground() )
                 altitude_lock->setStringValue( "altitude-hold" );
         }
 
@@ -295,7 +295,7 @@ int FGRouteMgr::new_waypoint( const string& Tgt_Alt, int n ) {
         add_waypoint( *wp, n );
         delete wp;
 
-        if ( !on_ground() )
+        if ( !near_ground() )
             fgSetString( "/autopilot/locks/heading", "true-heading-hold" );
     }
     return type;
@@ -391,11 +391,15 @@ void FGRouteMgr::update_mirror() {
 }
 
 
-bool FGRouteMgr::on_ground() {
+bool FGRouteMgr::near_ground() {
     SGPropertyNode *gear = fgGetNode( "/gear/gear/wow", false );
     if ( !gear || gear->getType() == SGPropertyNode::NONE )
         return fgGetBool( "/sim/presets/onground", true );
 
+    if ( fgGetDouble("/position/altitude-agl-ft", 300.0)
+            < fgGetDouble("/autopilot/route-manager/min-lock-altitude-agl-ft") )
+        return true;
+
     return gear->getBoolValue();
 }
 
index 69fa508af84aa934975b08df5bf8da6fe9011a8d..22d373a3dfddb8cba63ee78c528c273072d47ee1 100644 (file)
@@ -95,7 +95,7 @@ private:
 
     int make_waypoint( SGWayPoint **wp, string& target );
     void update_mirror();
-    bool on_ground();
+    bool near_ground();
 
 public: