X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FATC%2Fapproach.cxx;h=c3b2390fc125604d423d860b8a73a9522215c094;hb=2fec1506d3baeac09bcd0975899b14309318574f;hp=5d9670687398c047b15a87c57f5aebe88a2e30be;hpb=7543409e472bbd58fd24f8f005e0d41c8f7d10ea;p=flightgear.git diff --git a/src/ATC/approach.cxx b/src/ATC/approach.cxx index 5d9670687..c3b2390fc 100644 --- a/src/ATC/approach.cxx +++ b/src/ATC/approach.cxx @@ -23,26 +23,63 @@ #include #include -#include +#ifdef FG_WEATHERCM +# include +#else +# include +# include +#endif + + +PlaneApp::PlaneApp() +: + ident(""), + lon(0.0), + lat(0.0), + alt(0.0), + hdg(0.0), + dist(0.0), + brg(0.0), + spd(0.0), + contact(0), + wpn(0), + dnwp(-999.), + dcc(0.0), + dnc(0.0), + aalt(0.0), + ahdg(0.0), + on_crs(true), + tlm(0.0) +{ +} //Constructor -FGApproach::FGApproach(){ +FGApproach::FGApproach() +: type(0), + lon(0.0), lat(0.0), elev(0.0), + x(0.0), y(0.0), z(0.0), + freq(0), + bucket(0), + range(0.0), + active_runway(""), + active_rw_hdg(0.0), + display(false), + displaying(false), + ident(""), + name(""), + num_planes(0), + transmission(""), + first(true), + trans_ident(""), + approach_failed(false) +{ comm1_node = fgGetNode("/radios/comm[0]/frequencies/selected-mhz", true); comm2_node = fgGetNode("/radios/comm[1]/frequencies/selected-mhz", true); - num_planes = 0; lon_node = fgGetNode("/position/longitude-deg", true); lat_node = fgGetNode("/position/latitude-deg", true); elev_node = fgGetNode("/position/altitude-ft", true); - first = true; - active_runway = ""; - for ( int i=0; iget(position); +#else + FGEnvironment stationweather = + globals->get_environment_mgr()->getEnvironment(lat, lon, elev); +#endif SGPath path( globals->get_fg_root() ); path.append( "Airports" ); @@ -193,6 +235,7 @@ void FGApproach::get_active_runway() { FGRunways runways( path.c_str() ); //Set the heading to into the wind +#ifdef FG_WEATHERCM double wind_x = stationweather.Wind[0]; double wind_y = stationweather.Wind[1]; @@ -210,6 +253,9 @@ void FGApproach::get_active_runway() { if (hdg < 0.0) hdg += 360.0; } +#else + double hdg = stationweather.get_wind_from_heading_deg(); +#endif FGRunway runway; if ( runways.search( ident, int(hdg), &runway) ) { @@ -338,8 +384,9 @@ void FGApproach::calc_hd_course_dist(const double &h1, const double &d1, int FGApproach::RemovePlane() { // first check if anything has to be done + int i; bool rmplane = false; - for (int i=0; i range*SG_NM_TO_METER) { rmplane = true; break; @@ -349,13 +396,13 @@ int FGApproach::RemovePlane() { // now make a copy of the plane list PlaneApp tmp[max_planes]; - for (int i=0; i