]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIAircraft.hxx
Overhaul the ground-net / parking code.
[flightgear.git] / src / AIModel / AIAircraft.hxx
index d8cbe9d604498e18dabf5f8b24a31878dedef7bc..dec7a86a41c48ade05b7026d775614bd49fbbd5a 100644 (file)
@@ -42,11 +42,10 @@ public:
 
     // virtual bool init(bool search_in_AI_path=false);
     virtual void bind();
-    virtual void unbind();
     virtual void update(double dt);
 
-    void setPerformance(const std::string& perfString);
-    void setPerformance(PerformanceData *ps);
+    void setPerformance(const std::string& acType, const std::string& perfString);
+  //  void setPerformance(PerformanceData *ps);
 
     void setFlightPlan(const std::string& fp, bool repat = false);
     void SetFlightPlan(FGAIFlightPlan *f);
@@ -69,6 +68,8 @@ public:
     double getBearing(double crse);
 
     void setAcType(const std::string& ac) { acType = ac; };
+    std::string getAcType() const { return acType; }
+  
     void setCompany(const std::string& comp) { company = comp;};
 
     void announcePositionToController(); //TODO have to be public?
@@ -77,9 +78,11 @@ public:
     bool getTaxiClearanceRequest() { return needsTaxiClearance; };
     FGAISchedule * getTrafficRef() { return trafficRef; };
     void setTrafficRef(FGAISchedule *ref) { trafficRef = ref; };
-    void scheduleForATCTowerDepartureControl();
+    void resetTakeOffStatus() { takeOffStatus = 0;};
+    void setTakeOffStatus(int status) { takeOffStatus = status; };
+    void scheduleForATCTowerDepartureControl(int state);
 
-    inline bool isScheduledForTakeoff() { return scheduledForTakeoff; };
+    //inline bool isScheduledForTakeoff() { return scheduledForTakeoff; };
 
     virtual const char* getTypeString(void) const { return "aircraft"; }
 
@@ -98,7 +101,10 @@ public:
     inline double airspeed() const { return props->getFloatValue("velocities/airspeed-kt");};
     std::string atGate();
 
+    int getTakeOffStatus() { return takeOffStatus; };
+
     void checkTcas();
+    double calcVerticalSpeed(double vert_ft, double dist_m, double speed, double error);
 
     FGATCController * getATCController() { return controller; };
     
@@ -142,7 +148,6 @@ private:
     void updatePrimaryTargetValues(bool& flightplanActive, bool& aiOutOfSight);
     
     void updateSecondaryTargetValues();
-    void updatePosition();
     void updateHeading();
     void updateBankAngleTarget();
     void updateVerticalSpeedTarget();
@@ -173,10 +178,12 @@ private:
     bool reachedWaypoint;
     bool needsTaxiClearance;
     bool _needsGroundElevation;
-    bool scheduledForTakeoff;
+    int  takeOffStatus; // 1 = joined departure cue; 2 = Passed DepartureHold waypoint; handover control to tower; 0 = any other state. 
     time_t timeElapsed;
 
     PerformanceData* _performance; // the performance data for this aircraft
+    
+   void assertSpeed(double speed);
 };