From daf644d6000396c61e5748892e4192b3c3cd27fc Mon Sep 17 00:00:00 2001 From: James Turner Date: Fri, 4 Nov 2011 12:02:43 +0000 Subject: [PATCH] Revert my code-cleanup, causing startup crashes, bah. --- src/Main/main.cxx | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/src/Main/main.cxx b/src/Main/main.cxx index b1b9e32e8..aed183c37 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -105,7 +105,20 @@ extern int _bootstrap_OSInit; // What should we do when we have nothing else to do? Let's get ready // for the next move and update the display? static void fgMainLoop( void ) { - + + static SGConstPropertyNode_ptr longitude + = fgGetNode("/position/longitude-deg"); + static SGConstPropertyNode_ptr latitude + = fgGetNode("/position/latitude-deg"); + static SGConstPropertyNode_ptr altitude + = fgGetNode("/position/altitude-ft"); + static SGConstPropertyNode_ptr vn_fps + = fgGetNode("/velocities/speed-north-fps"); + static SGConstPropertyNode_ptr ve_fps + = fgGetNode("/velocities/speed-east-fps"); + static SGConstPropertyNode_ptr vd_fps + = fgGetNode("/velocities/speed-down-fps"); + static SGPropertyNode_ptr frame_signal = fgGetNode("/sim/signals/frame", true); @@ -132,7 +145,11 @@ static void fgMainLoop( void ) { timeMgr->computeTimeDeltas(sim_dt, real_dt); // update magvar model - globals->get_mag()->update( globals->get_aircraft_position(), + globals->get_mag()->update( longitude->getDoubleValue() + * SGD_DEGREES_TO_RADIANS, + latitude->getDoubleValue() + * SGD_DEGREES_TO_RADIANS, + altitude->getDoubleValue() * SG_FEET_TO_METER, globals->get_time_params()->getJD() ); // Run ATC subsystem @@ -430,11 +447,16 @@ static void fgIdleFunction ( void ) { globals->set_mag( magvar ); - // kludge to initialize mag compass - // (should only be done for in-flight - // startup) + // kludge to initialize mag compass + // (should only be done for in-flight + // startup) // update magvar model - globals->get_mag()->update( globals->get_aircraft_position(), + globals->get_mag()->update( fgGetDouble("/position/longitude-deg") + * SGD_DEGREES_TO_RADIANS, + fgGetDouble("/position/latitude-deg") + * SGD_DEGREES_TO_RADIANS, + fgGetDouble("/position/altitude-ft") + * SG_FEET_TO_METER, globals->get_time_params()->getJD() ); double var = globals->get_mag()->get_magvar() * SGD_RADIANS_TO_DEGREES; fgSetDouble("/instrumentation/heading-indicator/offset-deg", -var); -- 2.39.5