]> git.mxchange.org Git - flightgear.git/commitdiff
Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
authorcurt <curt>
Sun, 25 Oct 1998 14:08:37 +0000 (14:08 +0000)
committercurt <curt>
Sun, 25 Oct 1998 14:08:37 +0000 (14:08 +0000)
Aircraft/aircraft.cxx
Autopilot/autopilot.cxx
Cockpit/cockpit.cxx
Controls/controls.cxx
Controls/controls.hxx
FDM/LaRCsim.cxx
Joystick/joystick.cxx
Main/GLUTkey.cxx
Main/GLUTmain.cxx
Main/options.hxx

index d2ff48cae782ea546976631acd328100cc42b65c..21c9a3518d15d13c26f979f82330c2a029065111 100644 (file)
@@ -38,30 +38,37 @@ void fgAircraftInit( void ) {
     fgPrintf( FG_AIRCRAFT, FG_INFO, "Initializing Aircraft structure\n" );
 
     current_aircraft.flight   = &cur_flight_params;
-    current_aircraft.controls = &cur_control_params;
+    current_aircraft.controls = &controls;
 }
 
 
 // Display various parameters to stdout
 void fgAircraftOutputCurrent(fgAIRCRAFT *a) {
     fgFLIGHT *f;
-    fgCONTROLS *c;
 
     f = a->flight;
-    c = a->controls;
 
     fgPrintf( FG_FLIGHT, FG_DEBUG,
              "Pos = (%.2f,%.2f,%.2f)  (Phi,Theta,Psi)=(%.2f,%.2f,%.2f)\n",
              FG_Longitude * 3600.0 * RAD_TO_DEG, 
              FG_Latitude  * 3600.0 * RAD_TO_DEG,
              FG_Altitude, FG_Phi, FG_Theta, FG_Psi);
+
+    double elevator = controls.get_elevator();
+    double aileron = controls.get_aileron();
+    double rudder = controls.get_rudder();
+    double throttle = controls.get_throttle( 0 );
+
     fgPrintf( FG_FLIGHT, FG_DEBUG,
              "Kts = %.0f  Elev = %.2f, Aileron = %.2f, Rudder = %.2f  Power = %.2f\n", 
-             FG_V_equiv_kts, FG_Elevator, FG_Aileron, FG_Rudder, FG_Throttle[0]);
+             FG_V_equiv_kts, elevator, aileron,rudder, throttle );
 }
 
 
 // $Log$
+// Revision 1.3  1998/10/25 14:08:37  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.2  1998/10/17 01:33:52  curt
 // C++ ifying ...
 //
index f5a64710f286a4bc9ca17a8286e4c0c6aae8c32b..663a5e45b2eb5e3a6de945ca8f32ddf232b28d09 100644 (file)
 // They should eventually be member functions of the aircraft.
 //
 
-static double get_throttleval( void )
-{
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->throttle[0];     // Hack limiting to one engine
-}
-
-static double get_aileronval( void )
-{
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->aileron;
-}
-
-static double get_elevatorval( void )
-{
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->elevator;
-}
-
-static double get_elev_trimval( void )
-{
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->elevator_trim;
-}
-
-static double get_rudderval( void )
-{
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->rudder;
-}
 
 static double get_speed( void )
 {
@@ -290,8 +251,8 @@ int fgAPRun( void )
                                            APData->MaxAileron );
        }
                
-       fgAileronSet(AileronSet);
-       fgRudderSet(0.0);
+       controls.set_aileron( AileronSet );
+       controls.set_rudder( 0.0 );
     }
 
     // altitude hold or terrain follow enabled?
@@ -350,7 +311,7 @@ int fgAPRun( void )
        if ( total_adj >  0.6 ) { total_adj =  0.6; }
        if ( total_adj < -0.2 ) { total_adj = -0.2; }
 
-       fgElevSet( total_adj );
+       controls.set_elevator( total_adj );
     }
 
     // auto throttle enabled?
@@ -385,7 +346,7 @@ int fgAPRun( void )
        if ( total_adj > 1.0 ) { total_adj = 1.0; }
        if ( total_adj < 0.0 ) { total_adj = 0.0; }
 
-       fgThrottleSet( 0, total_adj );
+       controls.set_throttle( fgCONTROLS::FG_ALL_ENGINES, total_adj );
     }
 
      /*
index e4c77d2f80c9be8633d095e54cd6fb2f1fc1b2f7..827202e8cd359ff29535a243db5289fa65200670 100644 (file)
@@ -113,42 +113,27 @@ double get_long_min( void )
 
 double get_throttleval( void )
 {
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->throttle[0];     // Hack limiting to one engine
+    return controls.get_throttle( 0 );     // Hack limiting to one engine
 }
 
 double get_aileronval( void )
 {
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->aileron;
+    return controls.get_aileron();
 }
 
 double get_elevatorval( void )
 {
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->elevator;
+    return controls.get_elevator();
 }
 
 double get_elev_trimval( void )
 {
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->elevator_trim;
+    return controls.get_elevator_trim();
 }
 
 double get_rudderval( void )
 {
-       fgCONTROLS *pcontrols;
-
-  pcontrols = current_aircraft.controls;
-  return pcontrols->rudder;
+    return controls.get_rudder();
 }
 
 double get_speed( void )
@@ -315,6 +300,9 @@ void fgCockpitUpdate( void ) {
 
 
 // $Log$
+// Revision 1.20  1998/10/25 14:08:40  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.19  1998/10/17 01:33:56  curt
 // C++ ifying ...
 //
index 058d76eb86b5cc90820c78a080f2e3b992e03400..adf5426d71da6796999cbd0116e5c454cd63ae58 100644 (file)
 // (Log is kept at end of this file)
 
 
-#include <Controls/controls.hxx>
-#include <Aircraft/aircraft.hxx>
+#include "controls.hxx"
 
 
-fgCONTROLS cur_control_params;
+fgCONTROLS controls;
 
 
-void fgControlsInit( void ) {
-    int i;
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Elevator = 0.0;
-    FG_Elev_Trim = 1.969572E-03;
-    FG_Aileron  = 0.0;
-    FG_Rudder   = 0.0;
-
-    for ( i = 0; i < FG_MAX_ENGINES; i++ ) {
-       FG_Throttle[i] = 0.0;
-    }
-
-    FG_Brake_Amt = 0.0;
-}
-
-
-void fgElevMove(double amt) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Elevator += amt;
-
-    if ( FG_Elevator < -1.0 ) FG_Elevator = -1.0;
-    if ( FG_Elevator >  1.0 ) FG_Elevator =  1.0;
-}
-
-void fgElevSet(double pos) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Elevator = pos;
-
-    if ( FG_Elevator < -1.0 ) FG_Elevator = -1.0;
-    if ( FG_Elevator >  1.0 ) FG_Elevator =  1.0;
-}
-
-void fgElevTrimMove(double amt) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Elev_Trim += amt;
-
-    if ( FG_Elev_Trim < -1.0 ) FG_Elev_Trim = -1.0;
-    if ( FG_Elev_Trim >  1.0 ) FG_Elev_Trim =  1.0;
-}
-
-void fgElevTrimSet(double pos) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Elev_Trim = pos;
-
-    if ( FG_Elev_Trim < -1.0 ) FG_Elev_Trim = -1.0;
-    if ( FG_Elev_Trim >  1.0 ) FG_Elev_Trim =  1.0;
-}
-
-void fgAileronMove(double amt) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Aileron += amt;
-
-    if ( FG_Aileron < -1.0 ) FG_Aileron = -1.0;
-    if ( FG_Aileron >  1.0 ) FG_Aileron =  1.0;
-}
-
-void fgAileronSet(double pos) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Aileron = pos;
-
-    if ( FG_Aileron < -1.0 ) FG_Aileron = -1.0;
-    if ( FG_Aileron >  1.0 ) FG_Aileron =  1.0;
-}
-
-void fgRudderMove(double amt) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Rudder += amt;
-
-    if ( FG_Rudder < -1.0 ) FG_Rudder = -1.0;
-    if ( FG_Rudder >  1.0 ) FG_Rudder =  1.0;
-}
-
-void fgRudderSet(double pos) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Rudder = pos;
-
-    if ( FG_Rudder < -1.0 ) FG_Rudder = -1.0;
-    if ( FG_Rudder >  1.0 ) FG_Rudder =  1.0;
-}
-
-void fgThrottleMove(int engine, double amt) {
-    int i;
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    if ( engine == FG_Throttle_All ) {
-       for ( i = 0; i < FG_MAX_ENGINES; i++ ) {
-           FG_Throttle[i] += amt;
-           if ( FG_Throttle[i] < 0.0 ) FG_Throttle[i] = 0.0;
-           if ( FG_Throttle[i] > 1.0 ) FG_Throttle[i] = 1.0;
-       }
-    } else {
-       if ( (engine >= 0) && (engine < FG_MAX_ENGINES) ) {
-           FG_Throttle[engine] += amt;
-           if ( FG_Throttle[engine] < 0.0 ) FG_Throttle[engine] = 0.0;
-           if ( FG_Throttle[engine] > 1.0 ) FG_Throttle[engine] = 1.0;
-       }
+// Constructor
+fgCONTROLS::fgCONTROLS() :
+    aileron( 0.0 ),
+    elevator( 0.0 ),
+    elevator_trim( 1.969572E-03 ),
+    rudder( 0.0 )
+{
+    for ( int engine = 0; engine < FG_MAX_ENGINES; engine++ ) {
+       throttle[engine] = 0.0;
     }
-}
-
-void fgThrottleSet(int engine, double pos) {
-    int i;
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
 
-    if ( engine == FG_Throttle_All ) {
-       for ( i = 0; i < FG_MAX_ENGINES; i++ ) {
-           FG_Throttle[i] = pos;
-           if ( FG_Throttle[i] < 0.0 ) FG_Throttle[i] = 0.0;
-           if ( FG_Throttle[i] > 1.0 ) FG_Throttle[i] = 1.0;
-       }
-    } else {
-       if ( (engine >= 0) && (engine < FG_MAX_ENGINES) ) {
-           FG_Throttle[engine] = pos;
-           if ( FG_Throttle[engine] < 0.0 ) FG_Throttle[engine] = 0.0;
-           if ( FG_Throttle[engine] > 1.0 ) FG_Throttle[engine] = 1.0;
-       }
+    for ( int wheel = 0; wheel < FG_MAX_WHEELS; wheel++ ) {
+        brake[wheel] = 0.0;
     }
 }
 
 
-double fgBrakeGet( void ) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    return FG_Brake_Amt;
-}
-
-
-void fgBrakeSet( double brake_amt ) {
-    fgCONTROLS *c;
-    c = current_aircraft.controls;
-
-    FG_Brake_Amt = brake_amt;
+// Destructor
+fgCONTROLS::~fgCONTROLS() {
 }
 
 
 // $Log$
+// Revision 1.2  1998/10/25 14:08:41  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.1  1998/10/18 01:51:05  curt
 // c++-ifying ...
 //
index 79550732e3788d0c7349808e64e0976592057c4a..f9d77234e988bf540cd20e5c466f244fb20b924d 100644 (file)
@@ -26,7 +26,7 @@
 #define _CONTROLS_HXX
 
 
-#include <Include/fg_limits.h>
+// #include <Include/fg_limits.h>
 
 
 #ifndef __cplusplus                                                          
 
 // Define a structure containing the control parameters
 
-typedef struct {
+class fgCONTROLS {
+
+public:
+
+    static const int FG_ALL_ENGINES = -1;
+    static const int FG_MAX_ENGINES = 10;
+
+    static const int FG_ALL_WHEELS = -1;
+    static const int FG_MAX_WHEELS = 3;
+
+private:
+
     double aileron;
     double elevator;
     double elevator_trim;
     double rudder;
     double throttle[FG_MAX_ENGINES];
-    double brake_amt;
-} fgCONTROLS, *pfgControls;
+    double brake[FG_MAX_WHEELS];
+
+public:
+
+    fgCONTROLS();
+    ~fgCONTROLS();
+
+    // Query functions
+    inline double get_aileron() const { return aileron; }
+    inline double get_elevator() const { return elevator; }
+    inline double get_elevator_trim() const { return elevator_trim; }
+    inline double get_rudder() const { return rudder; }
+    inline double get_throttle(int engine) const { return throttle[engine]; }
+    inline double get_brake(int wheel) const { return brake[wheel]; }
 
+    // Update functions
+    inline void set_aileron( double pos ) {
+       aileron = pos;
+       if ( aileron < -1.0 ) aileron = -1.0;
+       if ( aileron >  1.0 ) aileron =  1.0;
+    }
+    inline void move_aileron( double amt ) {
+       aileron += amt;
+       if ( aileron < -1.0 ) aileron = -1.0;
+       if ( aileron >  1.0 ) aileron =  1.0;
+    }
+    inline void set_elevator( double pos ) {
+       elevator = pos;
+       if ( elevator < -1.0 ) elevator = -1.0;
+       if ( elevator >  1.0 ) elevator =  1.0;
+    }
+    inline void move_elevator( double amt ) {
+       elevator += amt;
+       if ( elevator < -1.0 ) elevator = -1.0;
+       if ( elevator >  1.0 ) elevator =  1.0;
+    }
+    inline void set_elevator_trim( double pos ) {
+       elevator_trim = pos;
+       if ( elevator_trim < -1.0 ) elevator_trim = -1.0;
+       if ( elevator_trim >  1.0 ) elevator_trim =  1.0;
+    }
+    inline void move_elevator_trim( double amt ) {
+       elevator_trim += amt;
+       if ( elevator_trim < -1.0 ) elevator_trim = -1.0;
+       if ( elevator_trim >  1.0 ) elevator_trim =  1.0;
+    }
+    inline void set_rudder( double pos ) {
+       rudder = pos;
+       if ( rudder < -1.0 ) rudder = -1.0;
+       if ( rudder >  1.0 ) rudder =  1.0;
+    }
+    inline void move_rudder( double amt ) {
+       rudder += amt;
+       if ( rudder < -1.0 ) rudder = -1.0;
+       if ( rudder >  1.0 ) rudder =  1.0;
+    }
+    inline void set_throttle( int engine, double pos ) {
+       if ( engine == FG_ALL_ENGINES ) {
+           for ( int i = 0; i < FG_MAX_ENGINES; i++ ) {
+               throttle[i] = pos;
+               if ( throttle[i] < 0.0 ) throttle[i] = 0.0;
+               if ( throttle[i] >  1.0 ) throttle[i] =  1.0;
+           }
+       } else {
+           if ( (engine >= 0) && (engine < FG_MAX_ENGINES) ) {
+               throttle[engine] = pos;
+               if ( throttle[engine] < 0.0 ) throttle[engine] = 0.0;
+               if ( throttle[engine] >  1.0 ) throttle[engine] =  1.0;
+           }
+       }
+    }
+    inline void move_throttle( int engine, double amt ) {
+       if ( engine == FG_ALL_ENGINES ) {
+           for ( int i = 0; i < FG_MAX_ENGINES; i++ ) {
+               throttle[i] += amt;
+               if ( throttle[i] < 0.0 ) throttle[i] = 0.0;
+               if ( throttle[i] >  1.0 ) throttle[i] =  1.0;
+           }
+       } else {
+           if ( (engine >= 0) && (engine < FG_MAX_ENGINES) ) {
+               throttle[engine] += amt;
+               if ( throttle[engine] < 0.0 ) throttle[engine] = 0.0;
+               if ( throttle[engine] >  1.0 ) throttle[engine] =  1.0;
+           }
+       }
+    }
+    inline void set_brake( int wheel, double pos ) {
+       if ( wheel == FG_ALL_WHEELS ) {
+           for ( int i = 0; i < FG_MAX_WHEELS; i++ ) {
+               brake[i] = pos;
+               if ( brake[i] < 0.0 ) brake[i] = 0.0;
+               if ( brake[i] >  1.0 ) brake[i] =  1.0;
+           }
+       } else {
+           if ( (wheel >= 0) && (wheel < FG_MAX_WHEELS) ) {
+               brake[wheel] = pos;
+               if ( brake[wheel] < 0.0 ) brake[wheel] = 0.0;
+               if ( brake[wheel] >  1.0 ) brake[wheel] =  1.0;
+           }
+       }
+    }
+    inline void move_brake( int wheel, double amt ) {
+       if ( wheel == FG_ALL_WHEELS ) {
+           for ( int i = 0; i < FG_MAX_WHEELS; i++ ) {
+               brake[i] += amt;
+               if ( brake[i] < 0.0 ) brake[i] = 0.0;
+               if ( brake[i] >  1.0 ) brake[i] =  1.0;
+           }
+       } else {
+           if ( (wheel >= 0) && (wheel < FG_MAX_WHEELS) ) {
+               brake[wheel] += amt;
+               if ( brake[wheel] < 0.0 ) brake[wheel] = 0.0;
+               if ( brake[wheel] >  1.0 ) brake[wheel] =  1.0;
+           }
+       }
+    }
+};
 
+
+/*
 #define FG_Elevator     c->elevator
 #define FG_Aileron      c->aileron
 #define FG_Rudder       c->rudder
@@ -53,24 +180,12 @@ typedef struct {
 #define FG_Throttle_All -1
 #define FG_Elev_Trim    c->elevator_trim
 #define FG_Brake_Amt    c->brake_amt
-
-/* 
-#define Left_button     cockpit_.left_pb_on_stick
-#define Right_button    cockpit_.right_pb_on_stick
-#define First_trigger   cockpit_.trig_pos_1
-#define Second_trigger  cockpit_.trig_pos_2
-#define Left_trim       cockpit_.left_trim
-#define Right_trim      cockpit_.right_trim
-#define SB_extend       cockpit_.sb_extend
-#define SB_retract      cockpit_.sb_retract
-#define Gear_sel_up     cockpit_.gear_sel_up 
 */
 
+extern fgCONTROLS controls;
 
-extern fgCONTROLS cur_control_params;
-
+/*
 void fgControlsInit( void );
-
 void fgElevMove(double amt);
 void fgElevSet(double pos);
 void fgElevTrimMove(double amt);
@@ -83,12 +198,15 @@ void fgThrottleMove(int engine, double amt);
 void fgThrottleSet(int engine, double pos);
 void fgBrakeSet( double brake_amt );
 double fgBrakeGet( void );
-
+*/
 
 #endif // _CONTROLS_HXX
 
 
 // $Log$
+// Revision 1.2  1998/10/25 14:08:42  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.1  1998/10/18 01:51:07  curt
 // c++-ifying ...
 //
index 8adc23b4005497a36756c7ca07a84936b52b2085..3230274f3785c76f8cb4cb4dd546c873c4c97ef0 100644 (file)
@@ -78,16 +78,13 @@ int fgLaRCsimUpdate(fgFLIGHT *f, int multiloop) {
 
 // Convert from the fgFLIGHT struct to the LaRCsim generic_ struct
 int fgFlight_2_LaRCsim (fgFLIGHT *f) {
-    fgCONTROLS *c;
 
-    c = current_aircraft.controls;
-
-    Lat_control = FG_Aileron;
-    Long_control = FG_Elevator;
-    Long_trim = FG_Elev_Trim;
-    Rudder_pedal = FG_Rudder;
-    Throttle_pct = FG_Throttle[0];
-    Brake_pct = FG_Brake_Amt;
+    Lat_control = controls.get_aileron();
+    Long_control = controls.get_elevator();
+    Long_trim = controls.get_elevator_trim();
+    Rudder_pedal = controls.get_rudder();
+    Throttle_pct = controls.get_throttle( 0 );
+    Brake_pct = controls.get_brake( 0 );
 
     Mass =      FG_Mass;
     I_xx =      FG_I_xx;
@@ -440,6 +437,9 @@ int fgLaRCsim_2_Flight (fgFLIGHT *f) {
 
 
 // $Log$
+// Revision 1.3  1998/10/25 14:08:43  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.2  1998/10/17 01:34:11  curt
 // C++ ifying ...
 //
index 0cba4f6e5e41223c8834af3768097f005881e27f..a95f971cf77288fe3c2c5ccb10ca50f171f44865 100644 (file)
@@ -86,21 +86,18 @@ int fgJoystickInit( void ) {
 
 // update the control parameters based on joystick intput
 int fgJoystickRead( void ) {
-    fgCONTROLS *c;
     int b;
 
-    c = current_aircraft.controls;
-
     if ( ! js0->notWorking() ) {
        js0->read( &b, js_ax0 ) ;
-       fgAileronSet( js_ax0[0] );
-       fgElevSet( -js_ax0[1] );
+       controls.set_aileron( js_ax0[0] );
+       controls.set_elevator( -js_ax0[1] );
     }
 
     if ( ! js1->notWorking() ) {
        js1->read( &b, js_ax1 ) ;
-       fgRudderSet( js_ax1[0] );
-       fgThrottleSet(FG_Throttle_All, -js_ax1[1] * 1.05 );
+       controls.set_rudder( js_ax1[0] );
+       controls.set_throttle( fgCONTROLS::FG_ALL_ENGINES, -js_ax1[1] * 1.05 );
     }
 
     return 1;
@@ -108,6 +105,9 @@ int fgJoystickRead( void ) {
 
 
 // $Log$
+// Revision 1.3  1998/10/25 14:08:44  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.2  1998/10/25 10:56:25  curt
 // Completely rewritten to use Steve Baker's joystick interface class.
 //
index 357bcab0c0d31d84f1c10cebf27766758985ad73..85b6969bfdf5064c91e6f9f2917fe9b0bee67f14 100644 (file)
@@ -69,7 +69,6 @@ static void local_update_sky_and_lighting_params( void ) {
 
 // Handle keyboard events
 void GLUTkey(unsigned char k, int x, int y) {
-    fgCONTROLS *c;
     fgFLIGHT *f;
     fgTIME *t;
     fgVIEW *v;
@@ -77,7 +76,6 @@ void GLUTkey(unsigned char k, int x, int y) {
     float fov, tmp;
     static bool winding_ccw = true;
 
-    c = current_aircraft.controls;
     f = current_aircraft.flight;
     t = &cur_time_params;
     v = &current_view;
@@ -178,46 +176,46 @@ void GLUTkey(unsigned char k, int x, int y) {
        fgPrintf( FG_INPUT, FG_DEBUG, "\n");
        switch (k) {
        case 50: // numeric keypad 2
-           fgElevMove(-0.05);
+           controls.move_elevator(-0.05);
            return;
        case 56: // numeric keypad 8
-           fgElevMove(0.05);
+           controls.move_elevator(0.05);
            return;
        case 49: // numeric keypad 1
-           fgElevTrimMove(-0.001);
+           controls.move_elevator_trim(-0.001);
            return;
        case 55: // numeric keypad 7
-           fgElevTrimMove(0.001);
+           controls.move_elevator_trim(0.001);
            return;
        case 52: // numeric keypad 4
-           fgAileronMove(-0.05);
+           controls.move_aileron(-0.05);
            return;
        case 54: // numeric keypad 6
-           fgAileronMove(0.05);
+           controls.move_aileron(0.05);
            return;
        case 48: // numeric keypad Ins
-           fgRudderMove(-0.05);
+           controls.move_rudder(-0.05);
            return;
        case 13: // numeric keypad Enter
-           fgRudderMove(0.05);
+           controls.move_rudder(0.05);
            return;
        case 53: // numeric keypad 5
-           fgAileronSet(0.0);
-           fgElevSet(0.0);
-           fgRudderSet(0.0);
+           controls.set_aileron(0.0);
+           controls.set_elevator(0.0);
+           controls.set_rudder(0.0);
            return;
        case 57: // numeric keypad 9 (Pg Up)
-           fgThrottleMove(0, 0.01);
+           controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, 0.01 );
            return;
        case 51: // numeric keypad 3 (Pg Dn)
-           fgThrottleMove(0, -0.01);
+           controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, -0.01 );
            return;
        case 98: // b key
            int b_ret;
            double b_set;
-           b_ret = int( fgBrakeGet() );
+           b_ret = int( controls.get_brake( 0 ) );
            b_set = double(!b_ret);
-           fgBrakeSet(b_set);
+           controls.set_brake( fgCONTROLS::FG_ALL_WHEELS, b_set);
            return;
        case 104: // h key
            HUD_brightkey( false );
@@ -351,39 +349,39 @@ void GLUTspecialkey(int k, int x, int y) {
            //exit(1);
            return;
        case GLUT_KEY_UP:
-           fgElevMove(0.05);
+           controls.move_elevator(0.05);
            return;
        case GLUT_KEY_DOWN:
-           fgElevMove(-0.05);
+           controls.move_elevator(-0.05);
            return;
        case GLUT_KEY_LEFT:
-           fgAileronMove(-0.05);
+           controls.move_aileron(-0.05);
            return;
        case GLUT_KEY_RIGHT:
-           fgAileronMove(0.05);
+           controls.move_aileron(0.05);
            return;
        case GLUT_KEY_HOME: // numeric keypad 1
-           fgElevTrimMove(0.001);
+           controls.move_elevator_trim(0.001);
            return;
        case GLUT_KEY_END: // numeric keypad 7
-           fgElevTrimMove(-0.001);
+           controls.move_elevator_trim(-0.001);
            return;
        case GLUT_KEY_INSERT: // numeric keypad Ins
-           fgRudderMove(-0.05);
+           controls.move_rudder(-0.05);
            return;
        case 13: // numeric keypad Enter
-           fgRudderMove(0.05);
+           controls.move_rudder(0.05);
            return;
        case 53: // numeric keypad 5
-           fgAileronSet(0.0);
-           fgElevSet(0.0);
-           fgRudderSet(0.0);
+           controls.set_aileron(0.0);
+           controls.set_elevator(0.0);
+           controls.set_rudder(0.0);
            return;
        case GLUT_KEY_PAGE_UP: // numeric keypad 9 (Pg Up)
-           fgThrottleMove(0, 0.01);
+           controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, 0.01 );
            return;
        case GLUT_KEY_PAGE_DOWN: // numeric keypad 3 (Pg Dn)
-           fgThrottleMove(0, -0.01);
+           controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, -0.01 );
            return;
        }
     }
@@ -391,6 +389,9 @@ void GLUTspecialkey(int k, int x, int y) {
 
 
 // $Log$
+// Revision 1.30  1998/10/25 14:08:46  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.29  1998/10/20 14:58:57  curt
 // Ctrl-R now reverses default polygon winding so I can see if a hole in the
 // terrain is a result of improper winding, or if it is just an empty hole.
index 4aa25ddc25de15a2b9dd9f995bc080c28454f4be..d7f420e59291247604f72d9797af050f081a5c08 100644 (file)
@@ -460,7 +460,6 @@ static const double alt_adjust_m = alt_adjust_ft * FEET_TO_METER;
 // What should we do when we have nothing else to do?  Let's get ready
 // for the next move and update the display?
 static void fgMainLoop( void ) {
-    fgCONTROLS *c;
     fgFLIGHT *f;
     fgGENERAL *g;
     fgTIME *t;
@@ -469,7 +468,6 @@ static void fgMainLoop( void ) {
     int i;
     double accum;
 
-    c = &cur_control_params;
     f = current_aircraft.flight;
     g = &general;
     t = &cur_time_params;
@@ -577,7 +575,7 @@ static void fgMainLoop( void ) {
     // Run audio scheduler
 #ifdef ENABLE_AUDIO_SUPPORT
     if ( current_options.get_sound() && audio_sched->working() ) {
-       double param = c->throttle[0] * 2.0 + 1.0;
+       double param = controls.get_throttle( 0 ) * 2.0 + 1.0;
 
        pitch_envelope.setStep  ( 0, 0.01, param );
        volume_envelope.setStep ( 0, 0.01, param );
@@ -894,6 +892,9 @@ int main( int argc, char **argv ) {
 
 
 // $Log$
+// Revision 1.61  1998/10/25 14:08:47  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.60  1998/10/25 10:57:18  curt
 // Changes to use the new joystick library if it is available.
 //
index fbf9e80020efc1079e3f181518f5505a9c8ab36b..1c6620894203c42092554cd4bc509cb39bb4e9eb 100644 (file)
@@ -1,4 +1,3 @@
-//
 // options.hxx -- class to handle command line options
 //
 // Written by Curtis Olson, started April 1998.
 using namespace std;
 #endif
 
+
 class fgOPTIONS {
+
 public:
+
     enum
     {
        FG_OPTIONS_OK = 0,
@@ -137,41 +139,41 @@ public:
     void usage ( void );
 
     // Query functions
-    string get_fg_root() const { return fg_root; }
-    string get_airport_id() const { return airport_id; }
-    double get_lon() const { return lon; }
-    double get_lat() const { return lat; }
-    double get_altitude() const { return altitude; }
-    double get_heading() const { return heading; }
-    double get_roll() const { return roll; }
-    double get_pitch() const { return pitch; }
-    bool get_game_mode() const { return game_mode; }
-    bool get_splash_screen() const { return splash_screen; }
-    bool get_intro_music() const { return intro_music; }
-    int get_mouse_pointer() const { return mouse_pointer; }
-    bool get_pause() const { return pause; }
-    bool get_hud_status() const { return hud_status; }
-    bool get_panel_status() const { return panel_status; }
-    bool get_sound() const { return sound; }
-    int get_flight_model() const { return flight_model; }
-    bool fog_enabled() const { return fog != FG_FOG_DISABLED; }
-    fgFogKind get_fog() const { return fog; }
-    double get_fov() const { return fov; }
-    bool get_fullscreen() const { return fullscreen; }
-    int get_shading() const { return shading; }
-    bool get_skyblend() const { return skyblend; }
-    bool get_textures() const { return textures; }
-    bool get_wireframe() const { return wireframe; }
-    int get_tile_radius() const { return tile_radius; }
-    int get_tile_diameter() const { return tile_diameter; }
-    int get_time_offset() const { return time_offset; }
-    int get_tris_or_culled() const { return tris_or_culled; }
+    inline string get_fg_root() const { return fg_root; }
+    inline string get_airport_id() const { return airport_id; }
+    inline double get_lon() const { return lon; }
+    inline double get_lat() const { return lat; }
+    inline double get_altitude() const { return altitude; }
+    inline double get_heading() const { return heading; }
+    inline double get_roll() const { return roll; }
+    inline double get_pitch() const { return pitch; }
+    inline bool get_game_mode() const { return game_mode; }
+    inline bool get_splash_screen() const { return splash_screen; }
+    inline bool get_intro_music() const { return intro_music; }
+    inline int get_mouse_pointer() const { return mouse_pointer; }
+    inline bool get_pause() const { return pause; }
+    inline bool get_hud_status() const { return hud_status; }
+    inline bool get_panel_status() const { return panel_status; }
+    inline bool get_sound() const { return sound; }
+    inline int get_flight_model() const { return flight_model; }
+    inline bool fog_enabled() const { return fog != FG_FOG_DISABLED; }
+    inline fgFogKind get_fog() const { return fog; }
+    inline double get_fov() const { return fov; }
+    inline bool get_fullscreen() const { return fullscreen; }
+    inline int get_shading() const { return shading; }
+    inline bool get_skyblend() const { return skyblend; }
+    inline bool get_textures() const { return textures; }
+    inline bool get_wireframe() const { return wireframe; }
+    inline int get_tile_radius() const { return tile_radius; }
+    inline int get_tile_diameter() const { return tile_diameter; }
+    inline int get_time_offset() const { return time_offset; }
+    inline int get_tris_or_culled() const { return tris_or_culled; }
 
     // Update functions
-    void set_hud_status( bool status ) { hud_status = status; }
-    void set_fov( double amount ) { fov = amount; }
-    void set_textures( bool status ) { textures = status; }
-    void cycle_fog( void ) { 
+    inline void set_hud_status( bool status ) { hud_status = status; }
+    inline void set_fov( double amount ) { fov = amount; }
+    inline void set_textures( bool status ) { textures = status; }
+    inline void cycle_fog( void ) { 
        if ( fog == FG_FOG_DISABLED ) {
            fog = FG_FOG_FASTEST;
        } else if ( fog == FG_FOG_FASTEST ) {
@@ -201,6 +203,9 @@ extern fgOPTIONS current_options;
 
 
 // $Log$
+// Revision 1.19  1998/10/25 14:08:49  curt
+// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
+//
 // Revision 1.18  1998/09/17 18:35:31  curt
 // Added F8 to toggle fog and F9 to toggle texturing.
 //