diff --git a/src/Main/main.cxx b/src/Main/main.cxx index c49d214d5..bb14ae0fe 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -180,9 +180,6 @@ void fgUpdateTimeDepCalcs() { globals->get_model_mgr()->update(delta_time_sec); globals->get_aircraft_model()->update(delta_time_sec); - // update the view angle - globals->get_viewmgr()->update(delta_time_sec); - // Update solar system globals->get_ephem()->update( globals->get_time_params()->getMjd(), globals->get_time_params()->getLst(), @@ -343,8 +340,6 @@ static void fgMainLoop( void ) { SGTime *t = globals->get_time_params(); - globals->get_event_mgr()->update(delta_time_sec); - SG_LOG( SG_ALL, SG_DEBUG, "Running Main Loop"); SG_LOG( SG_ALL, SG_DEBUG, "======= ==== ===="); @@ -494,9 +489,6 @@ static void fgMainLoop( void ) { "Elapsed time is zero ... we're zinging" ); } - // Do any I/O channel work that might need to be done - globals->get_io()->update( real_delta_time_sec ); - // Run audio scheduler #ifdef ENABLE_AUDIO_SUPPORT if ( globals->get_soundmgr()->is_working() ) { @@ -545,6 +537,15 @@ static void fgMainLoop( void ) { } } + // run Nasal's settimer() loops right before the view manager + globals->get_event_mgr()->update(delta_time_sec); + + // update the view angle as late as possible, but before sound calculations + globals->get_viewmgr()->update(delta_time_sec); + + // Do any I/O channel work that might need to be done (must come after viewmgr) + globals->get_io()->update(real_delta_time_sec); + #ifdef ENABLE_AUDIO_SUPPORT // Right now we make a simplifying assumption that the primary // aircraft is the source of all sounds and that all sounds are