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,
~FGAISchedule(); //destructor
- bool update(time_t now);
+ bool update(time_t now, const SGVec3d& userCart);
bool init();
double getSpeed ();
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 ();
+ 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;};