X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FControls%2Fcontrols.cxx;h=839353327f580ba29d10436085417bdca473d88d;hb=47772b9853cad2580dcc4dc665092fd660966ae5;hp=97d6a8990c9ac774545187ee4a430d3085cfc3bb;hpb=cff0022a164a2e3147ff7186d7b1dedcab900492;p=flightgear.git diff --git a/src/Controls/controls.cxx b/src/Controls/controls.cxx index 97d6a8990..839353327 100644 --- a/src/Controls/controls.cxx +++ b/src/Controls/controls.cxx @@ -27,37 +27,32 @@ #include
-FGControls controls; - - // 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 ) { - for ( int engine = 0; engine < MAX_ENGINES; engine++ ) { - throttle[engine] = 0.0; - mixture[engine] = 1.0; - prop_advance[engine] = 1.0; - } - - for ( int wheel = 0; wheel < MAX_WHEELS; wheel++ ) { - brake[wheel] = 0.0; - } } 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; } @@ -69,6 +64,19 @@ FGControls::~FGControls() { void FGControls::init () { + for ( int engine = 0; engine < MAX_ENGINES; engine++ ) { + 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++ ) { + brake[wheel] = 0.0; + } + + auto_coordination = fgGetNode("/sim/auto-coordination", true); } @@ -76,42 +84,60 @@ void FGControls::bind () { fgTie("/controls/aileron", this, - &FGControls::get_aileron, &FGControls::set_aileron); + &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"); fgTie("/controls/elevator-trim", this, &FGControls::get_elevator_trim, &FGControls::set_elevator_trim); + fgSetArchivable("/controls/elevator-trim"); 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"); int index; for (index = 0; index < MAX_ENGINES; index++) { char name[32]; sprintf(name, "/controls/throttle[%d]", index); fgTie(name, this, index, &FGControls::get_throttle, &FGControls::set_throttle); + fgSetArchivable(name); sprintf(name, "/controls/mixture[%d]", index); fgTie(name, this, index, &FGControls::get_mixture, &FGControls::set_mixture); - sprintf(name, "/controls/propellor-pitch[%d]", index); + fgSetArchivable(name); + 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); } - fgTie("/controls/throttle/all", this, ALL_ENGINES, - &FGControls::get_throttle, &FGControls::set_throttle); - fgTie("/controls/mixture/all", this, ALL_ENGINES, - &FGControls::get_mixture, &FGControls::set_mixture); - fgTie("/controls/propellor-pitch/all", this, ALL_ENGINES, - &FGControls::get_prop_advance, &FGControls::set_prop_advance); for (index = 0; index < MAX_WHEELS; index++) { char name[32]; sprintf(name, "/controls/brakes[%d]", index); fgTie(name, this, index, &FGControls::get_brake, &FGControls::set_brake); + fgSetArchivable(name); } - fgTie("/controls/brakes/all", this, ALL_WHEELS, - &FGControls::get_brake, &FGControls::set_brake); + 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) { }