#include <Airports/dynamics.hxx>
#include <Airports/airport.hxx>
#include <Main/util.hxx>
+#include <Traffic/Schedule.hxx>
#include <simgear/structure/exception.hxx>
// defined in AIShip.cxx
extern double fgIsFinite(double x);
+#include "AIManager.hxx"
#include "AIAircraft.hxx"
+#include "AIFlightPlan.hxx"
#include "performancedata.hxx"
#include "performancedb.hxx"
#include <signal.h>
Transform();
}
+void FGAIAircraft::unbind()
+{
+ FGAIBase::unbind();
+ clearATCController();
+}
+
void FGAIAircraft::setPerformance(const std::string& acType, const std::string& acclass)
{
static PerformanceDB perfdb; //TODO make it a global service
return vs;
}
+void FGAIAircraft::clearATCController()
+{
+ controller = 0;
+ prevController = 0;
+ towerController = 0;
+}
+
void FGAIAircraft::assertSpeed(double speed)
{
if ((speed < -50) || (speed > 1000)) {
controller = trafficRef->getDepartureAirport()->getDynamics()->getStartupController();
break;
case 2: // Taxiing to runway
- if (trafficRef->getDepartureAirport()->getDynamics()->getGroundNetwork()->exists())
- controller = trafficRef->getDepartureAirport()->getDynamics()->getGroundNetwork();
+ if (trafficRef->getDepartureAirport()->getDynamics()->getGroundController()->exists())
+ controller = trafficRef->getDepartureAirport()->getDynamics()->getGroundController();
break;
case 3: //Take off tower controller
if (trafficRef->getDepartureAirport()->getDynamics()) {
}
break;
case 6:
- if (trafficRef->getDepartureAirport()->getDynamics()) {
+ if (trafficRef->getArrivalAirport()->getDynamics()) {
controller = trafficRef->getArrivalAirport()->getDynamics()->getApproachController();
}
break;
case 8: // Taxiing for parking
- if (trafficRef->getArrivalAirport()->getDynamics()->getGroundNetwork()->exists())
- controller = trafficRef->getArrivalAirport()->getDynamics()->getGroundNetwork();
+ if (trafficRef->getArrivalAirport()->getDynamics()->getGroundController()->exists())
+ controller = trafficRef->getArrivalAirport()->getDynamics()->getGroundController();
break;
default:
controller = 0;