diff --git a/src/Aircraft/controls.cxx b/src/Aircraft/controls.cxx index 2995136..e57c4c8 100644 --- a/src/Aircraft/controls.cxx +++ b/src/Aircraft/controls.cxx @@ -241,10 +241,14 @@ FGControls::bind () fgTie("/controls/flight/elevator", this, &FGControls::get_elevator, &FGControls::set_elevator); fgSetArchivable("/controls/flight/elevator"); + fgTie("/controls/flight/flipper", this, + &FGControls::get_flipper, &FGControls::set_flipper); fgTie("/controls/flight/elevator-trim", this, &FGControls::get_elevator_trim, &FGControls::set_elevator_trim); fgSetArchivable("/controls/flight/elevator-trim"); + fgTie("/controls/flight/flipper-trim", this, + &FGControls::get_flipper_trim, &FGControls::set_flipper_trim); fgTie("/controls/flight/rudder", this, &FGControls::get_rudder, &FGControls::set_rudder); @@ -835,6 +839,8 @@ void FGControls::unbind () fgUntie("/controls/flight/aileron-trim"); fgUntie("/controls/flight/elevator"); fgUntie("/controls/flight/elevator-trim"); + fgUntie("/controls/flight/flipper"); + fgUntie("/controls/flight/flipper-trim"); fgUntie("/controls/flight/rudder"); fgUntie("/controls/flight/rudder-trim"); fgUntie("/controls/flight/flaps"); @@ -1103,6 +1109,12 @@ FGControls::set_elevator( double pos ) elevator = pos; CLAMP( &elevator, -1.0, 1.0 ); } +void +FGControls::set_flipper( double pos ) +{ + elevator = -pos; + CLAMP( &elevator, -1.0, 1.0 ); +} void FGControls::move_elevator( double amt ) @@ -1117,6 +1129,12 @@ FGControls::set_elevator_trim( double pos ) elevator_trim = pos; CLAMP( &elevator_trim, -1.0, 1.0 ); } +void +FGControls::set_flipper_trim( double pos ) +{ + elevator_trim = -pos; + CLAMP( &elevator_trim, -1.0, 1.0 ); +} void FGControls::move_elevator_trim( double amt ) diff --git a/src/Aircraft/controls.hxx b/src/Aircraft/controls.hxx index 7df7ef6..4b2b77f 100644 --- a/src/Aircraft/controls.hxx +++ b/src/Aircraft/controls.hxx @@ -280,7 +280,9 @@ public: inline double get_aileron() const { return aileron; } inline double get_aileron_trim() const { return aileron_trim; } inline double get_elevator() const { return elevator; } + inline double get_flipper() const { return -elevator; } inline double get_elevator_trim() const { return elevator_trim; } + inline double get_flipper_trim() const { return -elevator_trim; } inline double get_rudder() const { return rudder; } inline double get_rudder_trim() const { return rudder_trim; } inline double get_flaps() const { return flaps; } @@ -465,8 +467,10 @@ public: void set_aileron_trim( double pos ); void move_aileron_trim( double amt ); void set_elevator( double pos ); + void set_flipper( double pos ); void move_elevator( double amt ); void set_elevator_trim( double pos ); + void set_flipper_trim( double pos ); void move_elevator_trim( double amt ); void set_rudder( double pos ); void move_rudder( double amt );