From f26e8e5af07bf7a90857015afc35b5eed15004e0 Mon Sep 17 00:00:00 2001 From: curt Date: Wed, 25 Sep 2002 22:05:49 +0000 Subject: [PATCH] Added a per-engine fuel pump switch. --- src/Controls/controls.cxx | 22 ++++++++++++++++++++++ src/Controls/controls.hxx | 3 +++ 2 files changed, 25 insertions(+) diff --git a/src/Controls/controls.cxx b/src/Controls/controls.cxx index 106208d80..a60ae0ca3 100644 --- a/src/Controls/controls.cxx +++ b/src/Controls/controls.cxx @@ -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 ) { diff --git a/src/Controls/controls.hxx b/src/Controls/controls.hxx index 51bb4328c..a58561cb9 100644 --- a/src/Controls/controls.hxx +++ b/src/Controls/controls.hxx @@ -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 ); -- 2.39.5