]> git.mxchange.org Git - flightgear.git/blobdiff - src/Controls/controls.cxx
Return a positive shortage when there is still fuel in the tank;
[flightgear.git] / src / Controls / controls.cxx
index 30492fa5f4dec22df6623d6f1ec4d56ba17ca4a8..839353327f580ba29d10436085417bdca473d88d 100644 (file)
 // Constructor
 FGControls::FGControls() :
     aileron( 0.0 ),
+    aileron_trim( 0.0 ),
     elevator( 0.0 ),
-    elevator_trim( 1.969572E-03 ),
+    elevator_trim( 0.0 ),
     rudder( 0.0 ),
+    rudder_trim( 0.0 ),
     throttle_idle( true )
 {
 }
@@ -41,11 +43,16 @@ FGControls::FGControls() :
 void FGControls::reset_all()
 {
     set_aileron(0.0);
+    set_aileron_trim(0.0);
     set_elevator(0.0);
     set_elevator_trim(0.0);
     set_rudder(0.0);
+    set_rudder_trim(0.0);
     set_throttle(FGControls::ALL_ENGINES, 0.0);
+    set_starter(FGControls::ALL_ENGINES, false);
+    set_magnetos(FGControls::ALL_ENGINES, 0);
     throttle_idle = true;
+    gear_down = true;
 }
 
 
@@ -61,6 +68,8 @@ FGControls::init ()
        throttle[engine] = 0.0;
        mixture[engine] = 1.0;
        prop_advance[engine] = 1.0;
+       magnetos[engine] = 0;
+       starter[engine] = false;
     }
 
     for ( int wheel = 0; wheel < MAX_WHEELS; wheel++ ) {
@@ -77,6 +86,9 @@ FGControls::bind ()
   fgTie("/controls/aileron", this,
        &FGControls::get_aileron, &FGControls::set_aileron);
   fgSetArchivable("/controls/aileron");
+  fgTie("/controls/aileron-trim", this,
+       &FGControls::get_aileron_trim, &FGControls::set_aileron_trim);
+  fgSetArchivable("/controls/aileron-trim");
   fgTie("/controls/elevator", this,
        &FGControls::get_elevator, &FGControls::set_elevator);
   fgSetArchivable("/controls/elevator");
@@ -86,6 +98,9 @@ FGControls::bind ()
   fgTie("/controls/rudder", this,
        &FGControls::get_rudder, &FGControls::set_rudder);
   fgSetArchivable("/controls/rudder");
+  fgTie("/controls/rudder-trim", this,
+       &FGControls::get_rudder_trim, &FGControls::set_rudder_trim);
+  fgSetArchivable("/controls/rudder-trim");
   fgTie("/controls/flaps", this,
        &FGControls::get_flaps, &FGControls::set_flaps);
   fgSetArchivable("/controls/flaps");
@@ -100,10 +115,18 @@ FGControls::bind ()
     fgTie(name, this, index,
         &FGControls::get_mixture, &FGControls::set_mixture);
     fgSetArchivable(name);
-    sprintf(name, "/controls/propellor-pitch[%d]", index);
+    sprintf(name, "/controls/propeller-pitch[%d]", index);
     fgTie(name, this, index,
         &FGControls::get_prop_advance, &FGControls::set_prop_advance);
     fgSetArchivable(name);
+    sprintf(name, "/controls/magnetos[%d]", index);
+    fgTie(name, this, index,
+        &FGControls::get_magnetos, &FGControls::set_magnetos);
+    fgSetArchivable(name);
+    sprintf(name, "/controls/starter[%d]", index);
+    fgTie(name, this, index,
+        &FGControls::get_starter, &FGControls::set_starter);
+    fgSetArchivable(name);
   }
   for (index = 0; index < MAX_WHEELS; index++) {
     char name[32];
@@ -112,6 +135,9 @@ FGControls::bind ()
         &FGControls::get_brake, &FGControls::set_brake);
     fgSetArchivable(name);
   }
+  fgTie("/controls/gear-down", this,
+       &FGControls::get_gear_down, &FGControls::set_gear_down);
+  fgSetArchivable("/controls/gear-down");
 }
 
 
@@ -120,9 +146,11 @@ FGControls::unbind ()
 {
                                // Tie control properties.
   fgUntie("/controls/aileron");
+  fgUntie("/controls/aileron-trim");
   fgUntie("/controls/elevator");
   fgUntie("/controls/elevator-trim");
   fgUntie("/controls/rudder");
+  fgUntie("/controls/rudder-trim");
   fgUntie("/controls/flaps");
   int index;
   for (index = 0; index < MAX_ENGINES; index++) {
@@ -131,7 +159,11 @@ FGControls::unbind ()
     fgUntie(name);
     sprintf(name, "/controls/mixture[%d]", index);
     fgUntie(name);
-    sprintf(name, "/controls/propellor-pitch[%d]", index);
+    sprintf(name, "/controls/propeller-pitch[%d]", index);
+    fgUntie(name);
+    sprintf(name, "/controls/magnetos[%d]", index);
+    fgUntie(name);
+    sprintf(name, "/controls/starter[%d]", index);
     fgUntie(name);
   }
   for (index = 0; index < MAX_WHEELS; index++) {
@@ -139,11 +171,12 @@ FGControls::unbind ()
     sprintf(name, "/controls/brakes[%d]", index);
     fgUntie(name);
   }
+  fgUntie("/controls/gear-down");
 }
 
 
 void
-FGControls::update ()
+FGControls::update (int dt)
 {
 }