X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2Fflight.cxx;h=2694fa7f44f3b31ee44f9ac69ac990db788710b7;hb=0cabedaa4f8ce11bdab4d182937110d111d2590c;hp=2845c8e3b35be515dbc93c37ba35fdb56d37b10f;hpb=47825dcbae3113d4d414b9c2164387211d51b4e1;p=flightgear.git diff --git a/src/FDM/flight.cxx b/src/FDM/flight.cxx index 2845c8e3b..2694fa7f4 100644 --- a/src/FDM/flight.cxx +++ b/src/FDM/flight.cxx @@ -159,6 +159,7 @@ FGInterface::_setup () sin_latitude=cos_latitude=0; sin_longitude=cos_longitude=0; altitude_agl=0; + _acmodel = 0; } void @@ -182,6 +183,12 @@ FGInterface::common_init () // stamp(); // set_remainder( 0 ); + // linking in FGAircraft instance... + // FIXME: when using multiple instances, then there will be more than + // one model so get_aircraft_model will have to be indexed to the correct + // model. + _acmodel = globals->get_aircraft_model(); + // Set initial position SG_LOG( SG_FLIGHT, SG_INFO, "...initializing position..." ); set_Longitude( fgGetDouble("/position/longitude-deg") @@ -190,6 +197,8 @@ FGInterface::common_init () * SGD_DEGREES_TO_RADIANS ); double ground_elev_m = globals->get_scenery()->get_cur_elev(); double ground_elev_ft = ground_elev_m * SG_METER_TO_FEET; + _acmodel->get3DModel()->getFGLocation()->set_cur_elev_m( ground_elev_m ); + _set_Runway_altitude ( ground_elev_ft ); if ( fgGetBool("/sim/startup/onground") || fgGetDouble("/position/altitude-ft") < ground_elev_ft ) { fgSetDouble("/position/altitude-ft", ground_elev_ft); @@ -448,8 +457,7 @@ void FGInterface::_updateGeodeticPosition( double lat, double lon, double alt ) _set_Geodetic_Position( lat, lon, alt ); _set_Sea_level_radius( sl_radius * SG_METER_TO_FEET ); - _set_Runway_altitude( globals->get_scenery()->get_cur_elev() - * SG_METER_TO_FEET ); + _set_Runway_altitude( getACModel()->get3DModel()->getFGLocation()->get_cur_elev_m() * SG_METER_TO_FEET ); _set_sin_lat_geocentric( lat_geoc ); _set_cos_lat_geocentric( lat_geoc ); @@ -505,8 +513,7 @@ void FGInterface::_updateGeocentricPosition( double lat_geoc, double lon, _set_Geodetic_Position( lat_geod, lon, alt ); _set_Sea_level_radius( sl_radius2 * SG_METER_TO_FEET ); - _set_Runway_altitude( globals->get_scenery()->get_cur_elev() - * SG_METER_TO_FEET ); + _set_Runway_altitude( getACModel()->get3DModel()->getFGLocation()->get_cur_elev_m() * SG_METER_TO_FEET ); _set_sin_lat_geocentric( lat_geoc ); _set_cos_lat_geocentric( lat_geoc );