X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIAircraft.hxx;h=022572563bdc9fc641b989e1880ee225c92ae738;hb=1c3e2d4942fe74dac43f1f6af542f9de7d4825db;hp=43aab0384390c969dda1899b00d4f1dc2eedaed9;hpb=4c01e0e76aafba5b0d8b103a0d37bacd542e1154;p=flightgear.git diff --git a/src/AIModel/AIAircraft.hxx b/src/AIModel/AIAircraft.hxx index 43aab0384..022572563 100644 --- a/src/AIModel/AIAircraft.hxx +++ b/src/AIModel/AIAircraft.hxx @@ -24,6 +24,9 @@ #include "AIManager.hxx" #include "AIBase.hxx" +#include +#include + #include SG_USING_STD(string); @@ -45,35 +48,65 @@ private: } PERF_STRUCT; public: - - enum aircraft_e {LIGHT=0, WW2_FIGHTER, JET_TRANSPORT, JET_FIGHTER}; + enum aircraft_e {LIGHT=0, WW2_FIGHTER, JET_TRANSPORT, JET_FIGHTER, TANKER}; static const PERF_STRUCT settings[]; - FGAIAircraft(); + FGAIAircraft(FGAIManager* mgr, FGAISchedule *ref=0); ~FGAIAircraft(); bool init(); + virtual void bind(); + virtual void unbind(); void update(double dt); void SetPerformance(const PERF_STRUCT *ps); + void SetFlightPlan(FGAIFlightPlan *f); + FGAIFlightPlan* GetFlightPlan() { return fp; }; void AccelTo(double speed); void PitchTo(double angle); void RollTo(double angle); void YawTo(double angle); void ClimbTo(double altitude); void TurnTo(double heading); - -private: + void ProcessFlightPlan( double dt, time_t now ); + void getGroundElev(double dt); + void loadNextLeg (); + + void setAcType(string ac) { acType = ac; }; + void setCompany(string comp) { company = comp;}; + //void setSchedule(FGAISchedule *ref) { trafficRef = ref;}; + inline void SetTanker(bool setting) { isTanker = setting; }; + +private: + FGAISchedule *trafficRef; + bool hdg_lock; bool alt_lock; - + double dt_count; + double dt_elev_count; + double headingChangeRate; + double groundTargetSpeed; + double groundOffset; double dt; const PERF_STRUCT *performance; + bool use_perf_vs; + SGPropertyNode* refuel_node; + bool isTanker; void Run(double dt); double sign(double x); + + string acType; + string company; + int spinCounter; + double prevSpeed; + double prev_dist_to_go; + + bool _getGearDown() const; + bool reachedWaypoint; }; + #endif // _FG_AIAircraft_HXX