#include <string>
SG_USING_STD(string);
-enum PatternLeg {
- TAKEOFF_ROLL,
- CLIMBOUT,
- TURN1,
- CROSSWIND,
- TURN2,
- DOWNWIND,
- TURN3,
- BASE,
- TURN4,
- FINAL,
- LANDING_ROLL
-};
-
enum TaxiState {
TD_INBOUND,
TD_OUTBOUND,
void RegisterTransmission(int code);
// This is a hack and will probably go eventually
- inline bool AtHoldShort() {return(holdingShort);}
+ inline bool AtHoldShort() {return holdingShort;}
protected:
int numInPattern; // Number of planes in the pattern (this might get more complicated if high performance GA aircraft fly a higher pattern eventually)
int numAhead; // More importantly - how many of them are ahead of us?
double distToNext; // And even more importantly, how near are we getting to the one immediately ahead?
- PatternLeg leg; // Out current position in the pattern
+ //PatternLeg leg; // Our current position in the pattern - now moved to FGAIPlane
StartofDescent SoD; // Start of descent calculated wrt wind, pattern size & altitude, glideslope etc
// Taxiing details
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-/*****************************************************************
-*
-* WARNING - Curt has some ideas about AI traffic so anything in here
-* may get rewritten or scrapped. Contact Curt curt@flightgear.org
-* before spending any time or effort on this code!!!
-*
-******************************************************************/
-
#ifndef _FG_AI_PLANE_HXX
#define _FG_AI_PLANE_HXX
#include "AIEntity.hxx"
#include "ATC.hxx"
+enum PatternLeg {
+ TAKEOFF_ROLL,
+ CLIMBOUT,
+ TURN1,
+ CROSSWIND,
+ TURN2,
+ DOWNWIND,
+ TURN3,
+ BASE,
+ TURN4,
+ FINAL,
+ LANDING_ROLL,
+ LEG_UNKNOWN
+};
/*****************************************************************
*
public:
+ FGAIPlane();
virtual ~FGAIPlane();
// Run the internal calculations
// Send a transmission *TO* the AIPlane.
// FIXME int code is a hack - eventually this will receive Alexander's coded messages.
virtual void RegisterTransmission(int code);
+
+ // Return the current pattern leg the plane is flying.
+ inline PatternLeg GetLeg() {return leg;}
protected:
PlaneRec plane;
void Bank(double angle);
void LevelWings(void);
+
+ PatternLeg leg;
};
#endif // _FG_AI_PLANE_HXX