]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIAircraft.hxx
Fix stray back-button in Qt launcher
[flightgear.git] / src / AIModel / AIAircraft.hxx
index 58fd417f63306816f8702942abf1e0714244d9b3..9b804f90c57b97cbe61678170be91b8f1fd00e38 100644 (file)
 #ifndef _FG_AIAircraft_HXX
 #define _FG_AIAircraft_HXX
 
-#include "AIManager.hxx"
 #include "AIBase.hxx"
 
-#include <Traffic/SchedFlight.hxx>
-#include <Traffic/Schedule.hxx>
-#include <ATC/trafficcontrol.hxx>
-
 #include <string>
 
 class PerformanceData;
+class FGAISchedule;
+class FGAIFlightPlan;
+class FGATCController;
+class FGATCInstruction;
+class FGAIWaypoint;
 
 class FGAIAircraft : public FGAIBase {
 
@@ -43,6 +43,7 @@ public:
     // virtual bool init(bool search_in_AI_path=false);
     virtual void bind();
     virtual void update(double dt);
+    virtual void unbind();
 
     void setPerformance(const std::string& acType, const std::string& perfString);
   //  void setPerformance(PerformanceData *ps);
@@ -52,7 +53,7 @@ public:
     void initializeFlightPlan();
     FGAIFlightPlan* GetFlightPlan() const { return fp; };
     void ProcessFlightPlan( double dt, time_t now );
-    time_t checkForArrivalTime(const string& wptName);
+    time_t checkForArrivalTime(const std::string& wptName);
     
     void AccelTo(double speed);
     void PitchTo(double angle);
@@ -108,12 +109,13 @@ public:
 
     FGATCController * getATCController() { return controller; };
     
+    void clearATCController();
 protected:
     void Run(double dt);
 
 private:
     FGAISchedule *trafficRef;
-    FGATCController *controller, 
+    FGATCController *controller,
                     *prevController,
                     *towerController; // Only needed to make a pre-announcement
 
@@ -127,7 +129,6 @@ private:
     double speedFraction;
     double groundTargetSpeed;
     double groundOffset;
-    double dt;
 
     bool use_perf_vs;
     SGPropertyNode_ptr refuel_node;
@@ -145,17 +146,16 @@ private:
     void controlSpeed(FGAIWaypoint* curr,
                       FGAIWaypoint* next);
     
-    void updatePrimaryTargetValues(bool& flightplanActive, bool& aiOutOfSight);
+    void updatePrimaryTargetValues(double dt, bool& flightplanActive, bool& aiOutOfSight);
     
-    void updateSecondaryTargetValues();
-    void updateHeading();
+    void updateSecondaryTargetValues(double dt);
+    void updateHeading(double dt);
     void updateBankAngleTarget();
-    void updateVerticalSpeedTarget();
+    void updateVerticalSpeedTarget(double dt);
     void updatePitchAngleTarget();
-    void updateActualState();
+    void updateActualState(double dt);
     void updateModelProperties(double dt);
-    void handleATCRequests();
-    void checkVisibility();
+    void handleATCRequests(double dt);
     inline bool isStationary() { return ((fabs(speed)<=0.0001)&&(fabs(tgt_speed)<=0.0001));}
     inline bool needGroundElevation() { if (!isStationary()) _needsGroundElevation=true;return _needsGroundElevation;}
    
@@ -174,7 +174,6 @@ private:
 
     const char * _getTransponderCode() const;
 
-    bool reachedWaypoint;
     bool needsTaxiClearance;
     bool _needsGroundElevation;
     int  takeOffStatus; // 1 = joined departure cue; 2 = Passed DepartureHold waypoint; handover control to tower; 0 = any other state.