Some more work on AI/ATC user interaction integration:
* Update AI aircraft object based on user position. * Process flightplan * Don't try to update the radar information for AIAircraft that don't have a valid manager pointer
This commit is contained in:
parent
b9b2d9386c
commit
17fececa9f
3 changed files with 15 additions and 1 deletions
|
@ -165,7 +165,12 @@ void FGAIAircraft::setPerformance(const std::string& acclass) {
|
|||
handleATCRequests(); // ATC also has a word to say
|
||||
updateSecondaryTargetValues(); // target roll, vertical speed, pitch
|
||||
updateActualState();
|
||||
UpdateRadar(manager);
|
||||
// We currently have one situation in which an AIAircraft object is used that is not attached to the
|
||||
// AI manager. In this particular case, the AIAircraft is used to shadow the user's aircraft's behavior in the AI world.
|
||||
// Since we perhaps don't want a radar entry of our own aircraft, the following conditional should probably be adequate
|
||||
// enough
|
||||
if (manager)
|
||||
UpdateRadar(manager);
|
||||
checkVisibility();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
// FGAIAircraft - AIBase derived class creates an AI aircraft
|
||||
//
|
||||
// Written by David Culp, started October 2003.
|
||||
|
|
|
@ -149,6 +149,7 @@ void FGATCManager::init() {
|
|||
|
||||
|
||||
fp->restart();
|
||||
fp->setLeg(leg);
|
||||
ai_ac.SetFlightPlan(fp);
|
||||
if (controller) {
|
||||
controller->announcePosition(ai_ac.getID(), fp, fp->getCurrentWaypoint()->routeIndex,
|
||||
|
@ -186,6 +187,13 @@ void FGATCManager::update ( double time ) {
|
|||
altitude, time);
|
||||
//string airport = fgGetString("/sim/presets/airport-id");
|
||||
//FGAirport *apt = FGAirport::findByIdent(airport);
|
||||
// AT this stage we should update the flightplan, so that waypoint incrementing is conducted as well as leg loading.
|
||||
ai_ac.setLatitude(latitude);
|
||||
ai_ac.setLongitude(longitude);
|
||||
ai_ac.setAltitude(altitude);
|
||||
ai_ac.setHeading(heading);
|
||||
ai_ac.setSpeed(speed);
|
||||
ai_ac.update(time);
|
||||
controller->render();
|
||||
//cerr << "Adding groundnetWork to the scenegraph::update" << endl;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue