X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIAircraft.cxx;h=5e803ef5e159b81e6c3934a73c060f13ab96a16a;hb=9d995907db00728da7eac9297ecbab93ed8a7400;hp=bb54085bc659e4e1db96d3c5a41d6aa02a8f52d1;hpb=b3dbfe21fe1bcd59ce186dbc1833ef2b65eadf75;p=flightgear.git diff --git a/src/AIModel/AIAircraft.cxx b/src/AIModel/AIAircraft.cxx index bb54085bc..5e803ef5e 100644 --- a/src/AIModel/AIAircraft.cxx +++ b/src/AIModel/AIAircraft.cxx @@ -33,16 +33,11 @@ #include #include -#include -#include - -#ifdef _MSC_VER -# include -# define finite _finite -#elif defined(__sun) || defined(sgi) -# include -#endif +#include +#include +// defined in AIShip.cxx +extern double fgIsFinite(double x); #include "AIAircraft.hxx" #include "performancedata.hxx" @@ -177,18 +172,12 @@ void FGAIAircraft::setPerformance(const std::string& acType, const std::string& // 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) + if (manager){ UpdateRadar(manager); - checkVisibility(); + invisible = !manager->isVisible(pos); + } } -void FGAIAircraft::checkVisibility() -{ - double visibility_meters = fgGetDouble("/environment/visibility-m"); - invisible = (SGGeodesy::distanceM(globals->get_view_position(), pos) > visibility_meters); -} - - void FGAIAircraft::AccelTo(double speed) { tgt_speed = speed; @@ -945,7 +934,7 @@ void FGAIAircraft::controlHeading(FGAIWaypoint* curr) { SG_NORMALIZE_RANGE(calc_bearing, 0.0, 360.0); } - if (std::isfinite(calc_bearing)) { + if (fgIsFinite(calc_bearing)) { double hdg_error = calc_bearing - tgt_heading; if (fabs(hdg_error) > 0.01) { TurnTo( calc_bearing );