X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FTraffic%2FSchedule.hxx;h=bfda8c0fe4e4ea532d7febf14628b60d3e1e325e;hb=b090d3dabce3ad1261fb4b514cb71ed0c8a4d29b;hp=4dd8d5f001a16eec3f145313ff27c106bc91cbd1;hpb=d24fe199143c3cd0adecd74f02430125e2bad45e;p=flightgear.git diff --git a/src/Traffic/Schedule.hxx b/src/Traffic/Schedule.hxx index 4dd8d5f00..bfda8c0fe 100644 --- a/src/Traffic/Schedule.hxx +++ b/src/Traffic/Schedule.hxx @@ -48,17 +48,26 @@ class FGAISchedule string currentDestination; bool heavy; FGScheduledFlightVec flights; - float lat; - float lon; + SGGeod position; double radius; double groundOffset; double distanceToUser; int AIManagerRef; - //int score; + double score; + unsigned int runCount; + unsigned int hits; bool firstRun; double courseToDest; - - + bool initialized; + + void scheduleFlights(); + + /** + * Transition this schedule from distant mode to AI mode; + * create the AIAircraft (and flight plan) and register with the AIManager + */ + bool createAIAircraft(FGScheduledFlight* flight, double speedKnots, time_t deptime); + public: FGAISchedule(); // constructor FGAISchedule(string model, @@ -79,7 +88,7 @@ class FGAISchedule ~FGAISchedule(); //destructor - bool update(time_t now); + bool update(time_t now, const SGVec3d& userCart); bool init(); double getSpeed (); @@ -101,10 +110,17 @@ class FGAISchedule const string& getFlightRules () { return (*flights.begin())->getFlightRules (); }; bool getHeavy () { return heavy; }; double getCourse () { return courseToDest; }; + unsigned int getRunCount () { return runCount; }; + unsigned int getHits () { return hits; }; + + void setrunCount(unsigned int count) { runCount = count; }; + void setHits (unsigned int count) { hits = count; }; + void setScore () { score = runCount ? ((double) hits / (double) runCount) : 0; }; + double getScore () { return score; }; FGScheduledFlight*findAvailableFlight (const string ¤tDestination, const string &req); // used to sort in decending order of score: I've probably found a better way to // decending order sorting, but still need to test that. - //bool operator< (const FGAISchedule &other) const { return (score > other.score); }; + bool operator< (const FGAISchedule &other) const { return (score > other.score); }; //void * getAiRef () { return AIManagerRef; }; //FGAISchedule* getAddress () { return this;};