diff options
Diffstat (limited to 'StarsEx/FlightComp.h')
-rw-r--r-- | StarsEx/FlightComp.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/StarsEx/FlightComp.h b/StarsEx/FlightComp.h new file mode 100644 index 0000000..07797a2 --- /dev/null +++ b/StarsEx/FlightComp.h @@ -0,0 +1,62 @@ +/* Starshatter: The Open Source Project + Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors + Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors + Copyright (c) 1997-2006, Destroyer Studios LLC. + + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + Flight Computer systems class +*/ + +#ifndef FLIGHT_COMP_H +#define FLIGHT_COMP_H + +#include "Types.h" +#include "Computer.h" +#include "Geometry.h" + +// +--------------------------------------------------------------------+ + +class Ship; + +// +--------------------------------------------------------------------+ + +class FlightComp : public Computer +{ +public: + enum CompType { AVIONICS=1, FLIGHT, TACTICAL }; + + FlightComp(int comp_type, const char* comp_name); + FlightComp(const Computer& rhs); + virtual ~FlightComp(); + + virtual void ExecSubFrame(); + + int Mode() const { return mode; } + double Throttle() const { return throttle; } + + void SetMode(int m) { mode = m; } + void SetVelocityLimit(double v) { vlimit = (float) v; } + void SetTransLimit(double x, double y, double z); + + void FullStop() { halt = true; } + +protected: + virtual void ExecTrans(); + virtual void ExecThrottle(); + + int mode; + int halt; + float throttle; + + float vlimit; + float trans_x_limit; + float trans_y_limit; + float trans_z_limit; +}; + +#endif // FLIGHT_COMP_H + |