X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIAircraft.hxx;h=ea2d08e7cba1882f194590f49a74818c810a6680;hb=3d4806adbe6705f785fd950bd4b4afde1cb4f8d2;hp=3921bacc6439d2e92e6a48a0758f8a6a0ae7e378;hpb=ed434d9967b0b23e4abb172d699ef956246f4bf9;p=flightgear.git diff --git a/src/AIModel/AIAircraft.hxx b/src/AIModel/AIAircraft.hxx index 3921bacc6..ea2d08e7c 100644 --- a/src/AIModel/AIAircraft.hxx +++ b/src/AIModel/AIAircraft.hxx @@ -42,7 +42,6 @@ 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); @@ -77,6 +76,11 @@ public: bool getTaxiClearanceRequest() { return needsTaxiClearance; }; FGAISchedule * getTrafficRef() { return trafficRef; }; void setTrafficRef(FGAISchedule *ref) { trafficRef = ref; }; + void resetTakeOffStatus() { takeOffStatus = 0;}; + void setTakeOffStatus(int status) { takeOffStatus = status; }; + void scheduleForATCTowerDepartureControl(int state); + + //inline bool isScheduledForTakeoff() { return scheduledForTakeoff; }; virtual const char* getTypeString(void) const { return "aircraft"; } @@ -95,7 +99,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; }; @@ -104,7 +111,9 @@ protected: private: FGAISchedule *trafficRef; - FGATCController *controller, *prevController; + FGATCController *controller, + *prevController, + *towerController; // Only needed to make a pre-announcement bool hdg_lock; bool alt_lock; @@ -147,6 +156,7 @@ private: void checkVisibility(); inline bool isStationary() { return ((fabs(speed)<=0.0001)&&(fabs(tgt_speed)<=0.0001));} inline bool needGroundElevation() { if (!isStationary()) _needsGroundElevation=true;return _needsGroundElevation;} + double sign(double x); @@ -167,9 +177,12 @@ private: bool reachedWaypoint; bool needsTaxiClearance; bool _needsGroundElevation; + 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); };