From: durk Date: Sat, 21 Jul 2007 12:29:09 +0000 (+0000) Subject: Slightly altered calling sequence ensures AI aircraft are removed from X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=c51c0b1664b70c10a186f6b3d528a8cffec0ba56;p=flightgear.git Slightly altered calling sequence ensures AI aircraft are removed from memory when flying out of user range. --- diff --git a/src/AIModel/AIAircraft.cxx b/src/AIModel/AIAircraft.cxx index 39c97f862..05860b603 100644 --- a/src/AIModel/AIAircraft.cxx +++ b/src/AIModel/AIAircraft.cxx @@ -735,29 +735,30 @@ void FGAIAircraft::updatePrimaryTargetValues() { time_t now = time(NULL) + fgGetLong("/sim/time/warp"); //cerr << "UpateTArgetValues() " << endl; ProcessFlightPlan(dt, now); - if (! fp->isActive(now)) { - // Do execute Ground elev for inactive aircraft, so they - // Are repositioned to the correct ground altitude when the user flies within visibility range. - // In addition, check whether we are out of user range, so this aircraft - // can be deleted. - if (onGround()) { + + // Do execute Ground elev for inactive aircraft, so they + // Are repositioned to the correct ground altitude when the user flies within visibility range. + // In addition, check whether we are out of user range, so this aircraft + // can be deleted. + if (onGround()) { Transform(); // make sure aip is initialized. - if (trafficRef) { - //cerr << trafficRef->getRegistration() << " Setting altitude to " << altitude_ft; - if (! aiTrafficVisible()) { - setDie(true); - throw AI_OutOfSight(); - } - getGroundElev(dt); - doGroundAltitude(); - // Transform(); - pos.setElevationFt(altitude_ft); - } + getGroundElev(dt); + doGroundAltitude(); + // Transform(); + pos.setElevationFt(altitude_ft); + } + if (trafficRef) { + //cerr << trafficRef->getRegistration() << " Setting altitude to " << altitude_ft; + if (! aiTrafficVisible()) { + setDie(true); + //cerr << trafficRef->getRegistration() << " is set to die " << endl; + throw AI_OutOfSight(); } + } + if (! fp->isActive(now)) { throw FP_Inactive(); } - } - else { + } else { // no flight plan, update target heading, speed, and altitude // from control properties. These default to the initial // settings in the config file, but can be changed "on the