]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIAircraft.cxx
Support helipad names in the --runway startup option
[flightgear.git] / src / AIModel / AIAircraft.cxx
index bb54085bc659e4e1db96d3c5a41d6aa02a8f52d1..5e803ef5e159b81e6c3934a73c060f13ab96a16a 100644 (file)
 #include <simgear/structure/exception.hxx>
 
 #include <string>
-#include <math.h>
-#include <time.h>
-
-#ifdef _MSC_VER
-#  include <float.h>
-#  define finite _finite
-#elif defined(__sun) || defined(sgi)
-#  include <ieeefp.h>
-#endif
+#include <cmath>
+#include <ctime>
 
+// 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 );