From: curt Date: Sun, 18 Oct 1998 01:51:04 +0000 (+0000) Subject: c++-ifying ... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=03005e608b31a174f5c485421aa9484bb79670bd;p=flightgear.git c++-ifying ... --- diff --git a/Controls/controls.c b/Controls/controls.c deleted file mode 100644 index 386b5a58a..000000000 --- a/Controls/controls.c +++ /dev/null @@ -1,218 +0,0 @@ -/************************************************************************** - * controls.c -- defines a standard interface to all flight sim controls - * - * Written by Curtis Olson, started May 1997. - * - * Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id$ - * (Log is kept at end of this file) - **************************************************************************/ - - -#include -#include - - -fgCONTROLS cur_control_params; - - -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; - } - } -} - -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; - } - } -} - - -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; -} - - -/* $Log$ -/* Revision 1.8 1998/09/29 02:01:31 curt -/* Added a brake. -/* - * Revision 1.7 1998/02/07 15:29:36 curt - * Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss - * - * - * Revision 1.6 1998/01/19 19:27:02 curt - * Merged in make system changes from Bob Kuehne - * This should simplify things tremendously. - * - * Revision 1.5 1998/01/19 18:40:22 curt - * Tons of little changes to clean up the code and to remove fatal errors - * when building with the c++ compiler. - * - * Revision 1.4 1997/12/10 22:37:41 curt - * Prepended "fg" on the name of all global structures that didn't have it yet. - * i.e. "struct WEATHER {}" became "struct fgWEATHER {}" - * - * Revision 1.3 1997/08/27 03:30:01 curt - * Changed naming scheme of basic shared structures. - * - * Revision 1.2 1997/06/21 17:12:48 curt - * Capitalized subdirectory names. - * - * Revision 1.1 1997/05/31 19:24:04 curt - * Initial revision. - * - */ diff --git a/Controls/controls.cxx b/Controls/controls.cxx new file mode 100644 index 000000000..058d76eb8 --- /dev/null +++ b/Controls/controls.cxx @@ -0,0 +1,219 @@ +// controls.cxx -- defines a standard interface to all flight sim controls +// +// Written by Curtis Olson, started May 1997. +// +// Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation; either version 2 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// +// $Id$ +// (Log is kept at end of this file) + + +#include +#include + + +fgCONTROLS cur_control_params; + + +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; + } + } +} + +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; + } + } +} + + +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; +} + + +// $Log$ +// Revision 1.1 1998/10/18 01:51:05 curt +// c++-ifying ... +// +// Revision 1.8 1998/09/29 02:01:31 curt +// Added a brake. +// +// Revision 1.7 1998/02/07 15:29:36 curt +// Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss +// +// +// Revision 1.6 1998/01/19 19:27:02 curt +// Merged in make system changes from Bob Kuehne +// This should simplify things tremendously. +// +// Revision 1.5 1998/01/19 18:40:22 curt +// Tons of little changes to clean up the code and to remove fatal errors +// when building with the c++ compiler. +// +// Revision 1.4 1997/12/10 22:37:41 curt +// Prepended "fg" on the name of all global structures that didn't have it yet. +// i.e. "struct WEATHER {}" became "struct fgWEATHER {}" +// +// Revision 1.3 1997/08/27 03:30:01 curt +// Changed naming scheme of basic shared structures. +// +// Revision 1.2 1997/06/21 17:12:48 curt +// Capitalized subdirectory names. +// +// Revision 1.1 1997/05/31 19:24:04 curt +// Initial revision. +// + diff --git a/Controls/controls.h b/Controls/controls.h deleted file mode 100644 index 2b6bf58f6..000000000 --- a/Controls/controls.h +++ /dev/null @@ -1,151 +0,0 @@ -// controls.h -- defines a standard interface to all flight sim controls -// -// Written by Curtis Olson, started May 1997. -// -// Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -// -// $Id$ -// (Log is kept at end of this file) - - -#ifndef _CONTROLS_H -#define _CONTROLS_H - - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Define a structure containing the control parameters */ - -typedef struct { - double aileron; - double elevator; - double elevator_trim; - double rudder; - double throttle[FG_MAX_ENGINES]; - double brake_amt; -} fgCONTROLS, *pfgControls; - - -#define FG_Elevator c->elevator -#define FG_Aileron c->aileron -#define FG_Rudder c->rudder -#define FG_Throttle c->throttle -#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 cur_control_params; - -void fgControlsInit( void ); - -void fgElevMove(double amt); -void fgElevSet(double pos); -void fgElevTrimMove(double amt); -void fgElevTrimSet(double pos); -void fgAileronMove(double amt); -void fgAileronSet(double pos); -void fgRudderMove(double amt); -void fgRudderSet(double pos); -void fgThrottleMove(int engine, double amt); -void fgThrottleSet(int engine, double pos); -void fgBrakeSet( double brake_amt ); -double fgBrakeGet( void ); - -#ifdef __cplusplus -} -#endif - - -#endif /* _CONTROLS_H */ - - -// $Log$ -// Revision 1.17 1998/09/29 14:57:00 curt -// c++-ified some comments. -// -// Revision 1.16 1998/09/29 02:01:32 curt -// Added a brake. -// -// Revision 1.15 1998/04/25 22:06:27 curt -// Edited cvs log messages in source files ... bad bad bad! -// -// Revision 1.14 1998/04/22 13:26:19 curt -// C++ - ifing the code a bit. -// -// Revision 1.13 1998/04/21 17:02:35 curt -// Prepairing for C++ integration. -// -// Revision 1.12 1998/02/09 22:56:48 curt -// Removed "depend" files from cvs control. Other minor make tweaks. -// -// Revision 1.11 1998/02/07 15:29:36 curt -// Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss -// -// -// Revision 1.10 1998/01/27 00:47:52 curt -// Incorporated Paul Bleisch's new debug message -// system and commandline/config file processing code. -// -// Revision 1.9 1998/01/22 02:59:31 curt -// Changed #ifdef FILE_H to #ifdef _FILE_H -// -// Revision 1.8 1998/01/19 18:40:22 curt -// Tons of little changes to clean up the code and to remove fatal errors -// when building with the c++ compiler. -// -// Revision 1.7 1997/12/15 23:54:36 curt -// Add xgl wrappers for debugging. -// Generate terrain normals on the fly. -// -// Revision 1.6 1997/12/10 22:37:41 curt -// Prepended "fg" on the name of all global structures that didn't have it yet. -// i.e. "struct WEATHER {}" became "struct fgWEATHER {}" -// -// Revision 1.5 1997/08/27 03:30:02 curt -// Changed naming scheme of basic shared structures. -// -// Revision 1.4 1997/07/23 21:52:18 curt -// Put comments around the text after an #endif for increased portability. -// -// Revision 1.3 1997/05/31 19:16:27 curt -// Elevator trim added. -// -// Revision 1.2 1997/05/23 15:40:33 curt -// Added GNU copyright headers. -// -// Revision 1.1 1997/05/16 15:59:48 curt -// Initial revision. -// diff --git a/Controls/controls.hxx b/Controls/controls.hxx new file mode 100644 index 000000000..79550732e --- /dev/null +++ b/Controls/controls.hxx @@ -0,0 +1,150 @@ +// controls.hxx -- defines a standard interface to all flight sim controls +// +// Written by Curtis Olson, started May 1997. +// +// Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation; either version 2 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// +// $Id$ +// (Log is kept at end of this file) + + +#ifndef _CONTROLS_HXX +#define _CONTROLS_HXX + + +#include + + +#ifndef __cplusplus +# error This library requires C++ +#endif + + +// Define a structure containing the control parameters + +typedef struct { + double aileron; + double elevator; + double elevator_trim; + double rudder; + double throttle[FG_MAX_ENGINES]; + double brake_amt; +} fgCONTROLS, *pfgControls; + + +#define FG_Elevator c->elevator +#define FG_Aileron c->aileron +#define FG_Rudder c->rudder +#define FG_Throttle c->throttle +#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 cur_control_params; + +void fgControlsInit( void ); + +void fgElevMove(double amt); +void fgElevSet(double pos); +void fgElevTrimMove(double amt); +void fgElevTrimSet(double pos); +void fgAileronMove(double amt); +void fgAileronSet(double pos); +void fgRudderMove(double amt); +void fgRudderSet(double pos); +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.1 1998/10/18 01:51:07 curt +// c++-ifying ... +// +// Revision 1.17 1998/09/29 14:57:00 curt +// c++-ified some comments. +// +// Revision 1.16 1998/09/29 02:01:32 curt +// Added a brake. +// +// Revision 1.15 1998/04/25 22:06:27 curt +// Edited cvs log messages in source files ... bad bad bad! +// +// Revision 1.14 1998/04/22 13:26:19 curt +// C++ - ifing the code a bit. +// +// Revision 1.13 1998/04/21 17:02:35 curt +// Prepairing for C++ integration. +// +// Revision 1.12 1998/02/09 22:56:48 curt +// Removed "depend" files from cvs control. Other minor make tweaks. +// +// Revision 1.11 1998/02/07 15:29:36 curt +// Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss +// +// +// Revision 1.10 1998/01/27 00:47:52 curt +// Incorporated Paul Bleisch's new debug message +// system and commandline/config file processing code. +// +// Revision 1.9 1998/01/22 02:59:31 curt +// Changed #ifdef FILE_H to #ifdef _FILE_H +// +// Revision 1.8 1998/01/19 18:40:22 curt +// Tons of little changes to clean up the code and to remove fatal errors +// when building with the c++ compiler. +// +// Revision 1.7 1997/12/15 23:54:36 curt +// Add xgl wrappers for debugging. +// Generate terrain normals on the fly. +// +// Revision 1.6 1997/12/10 22:37:41 curt +// Prepended "fg" on the name of all global structures that didn't have it yet. +// i.e. "struct WEATHER {}" became "struct fgWEATHER {}" +// +// Revision 1.5 1997/08/27 03:30:02 curt +// Changed naming scheme of basic shared structures. +// +// Revision 1.4 1997/07/23 21:52:18 curt +// Put comments around the text after an #endif for increased portability. +// +// Revision 1.3 1997/05/31 19:16:27 curt +// Elevator trim added. +// +// Revision 1.2 1997/05/23 15:40:33 curt +// Added GNU copyright headers. +// +// Revision 1.1 1997/05/16 15:59:48 curt +// Initial revision. +//