]> git.mxchange.org Git - flightgear.git/commitdiff
Added a per-engine fuel pump switch.
authorcurt <curt>
Wed, 25 Sep 2002 22:05:49 +0000 (22:05 +0000)
committercurt <curt>
Wed, 25 Sep 2002 22:05:49 +0000 (22:05 +0000)
src/Controls/controls.cxx
src/Controls/controls.hxx

index 106208d807e2f7f7ea0523e54ea4e37c3e6fdc90..a60ae0ca36e7b80119b3507f15edfe13fa1bdde1 100644 (file)
@@ -78,6 +78,7 @@ void FGControls::reset_all()
     set_throttle( ALL_ENGINES, 0.0 );
     set_starter( ALL_ENGINES, false );
     set_magnetos( ALL_ENGINES, 0 );
+    set_fuel_pump( ALL_ENGINES, false );
     throttle_idle = true;
     set_fuel_selector( ALL_TANKS, true );
     gear_down = true;
@@ -95,6 +96,7 @@ FGControls::init ()
     for ( int engine = 0; engine < MAX_ENGINES; engine++ ) {
        throttle[engine] = 0.0;
        mixture[engine] = 1.0;
+       fuel_pump[engine] = false;
        prop_advance[engine] = 1.0;
        magnetos[engine] = 0;
        starter[engine] = false;
@@ -143,6 +145,10 @@ FGControls::bind ()
     fgTie(name, this, index,
         &FGControls::get_mixture, &FGControls::set_mixture);
     fgSetArchivable(name);
+    sprintf(name, "/controls/fuel-pump[%d]", index);
+    fgTie(name, this, index,
+        &FGControls::get_fuel_pump, &FGControls::set_fuel_pump);
+    fgSetArchivable(name);
     sprintf(name, "/controls/propeller-pitch[%d]", index);
     fgTie(name, this, index,
         &FGControls::get_prop_advance, &FGControls::set_prop_advance);
@@ -197,6 +203,8 @@ FGControls::unbind ()
     fgUntie(name);
     sprintf(name, "/controls/mixture[%d]", index);
     fgUntie(name);
+    sprintf(name, "/controls/fuel-pump[%d]", index);
+    fgUntie(name);
     sprintf(name, "/controls/propeller-pitch[%d]", index);
     fgUntie(name);
     sprintf(name, "/controls/magnetos[%d]", index);
@@ -397,6 +405,20 @@ FGControls::move_mixture( int engine, double amt )
     }
 }
 
+void
+FGControls::set_fuel_pump( int engine, bool val )
+{
+    if ( engine == ALL_ENGINES ) {
+       for ( int i = 0; i < MAX_ENGINES; i++ ) {
+           fuel_pump[i] = val;
+       }
+    } else {
+       if ( (engine >= 0) && (engine < MAX_ENGINES) ) {
+           fuel_pump[engine] = val;
+       }
+    }
+}
+
 void
 FGControls::set_prop_advance( int engine, double pos )
 {
index 51bb4328c88337788b4ff7d3016cd508fa5f0e56..a58561cb98d07790eb9d6b178bfa1c5b3dae7b17 100644 (file)
@@ -67,6 +67,7 @@ private:
     double flaps;
     double throttle[MAX_ENGINES];
     double mixture[MAX_ENGINES];
+    bool fuel_pump[MAX_ENGINES];
     double prop_advance[MAX_ENGINES];
     double parking_brake;
     double brake[MAX_WHEELS];
@@ -102,6 +103,7 @@ public:
     inline double get_flaps() const { return flaps; }
     inline double get_throttle(int engine) const { return throttle[engine]; }
     inline double get_mixture(int engine) const { return mixture[engine]; }
+    inline bool get_fuel_pump(int engine) const { return fuel_pump[engine]; }
     inline double get_prop_advance(int engine) const {
        return prop_advance[engine];
     }
@@ -133,6 +135,7 @@ public:
     void move_throttle( int engine, double amt );
     void set_mixture( int engine, double pos );
     void move_mixture( int engine, double amt );
+    void set_fuel_pump( int engine, bool val );
     void set_prop_advance( int engine, double pos );
     void move_prop_advance( int engine, double amt );
     void set_magnetos( int engine, int pos );