From a5e4e6be11bcd94dd0b78da7ef492767cc53dcf8 Mon Sep 17 00:00:00 2001 From: curt Date: Wed, 17 Jan 2001 20:32:02 +0000 Subject: [PATCH] Working on setting initial altitude correctly after a reset. --- src/FDM/LaRCsim.cxx | 1 - src/Main/fg_init.cxx | 22 ++++++++++++++++------ src/Main/main.cxx | 1 + src/Scenery/scenery.cxx | 1 + src/Scenery/tilemgr.cxx | 5 ++--- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/FDM/LaRCsim.cxx b/src/FDM/LaRCsim.cxx index 0dceba1e2..58efc5380 100644 --- a/src/FDM/LaRCsim.cxx +++ b/src/FDM/LaRCsim.cxx @@ -40,7 +40,6 @@ FGLaRCsim::FGLaRCsim( double dt ) { set_delta_t( dt ); - cout << "dt = " << get_delta_t() << endl; ls_toplevel_init( 0.0, (char *)fgGetString("/sim/aircraft").c_str() ); diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 0783faec9..881b225bf 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -356,14 +356,18 @@ bool fgInitPosition( void ) { f->set_Longitude( fgGetDouble("/position/longitude") * DEG_TO_RAD ); f->set_Latitude( fgGetDouble("/position/latitude") * DEG_TO_RAD ); - if ( scenery.cur_elev > fgGetDouble("/position/altitude") - 1) { - fgSetDouble("/position/altitude", scenery.cur_elev + 1 ); - } + FG_LOG( FG_GENERAL, FG_INFO, + "scenery.cur_elev = " << scenery.cur_elev ); + + // if ( scenery.cur_elev > fgGetDouble("/position/altitude") - 1) { + fgSetDouble("/position/altitude", scenery.cur_elev + 1 ); + // } FG_LOG( FG_GENERAL, FG_INFO, - "starting altitude is = " << fgGetDouble("/position/altitude") ); + "starting altitude is = " << + fgGetDouble("/position/altitude") ); - f->set_Altitude( fgGetDouble("/position/altitude") * METER_TO_FEET ); + f->set_Altitude( fgGetDouble("/position/altitude") ); FG_LOG( FG_GENERAL, FG_INFO, "Initial position is: (" << (f->get_Longitude() * RAD_TO_DEG) << ", " @@ -776,6 +780,12 @@ void fgReInitSubsystems( void ) if( !freeze ) globals->set_freeze( true ); + // Initialize the Scenery Management subsystem + if ( ! fgSceneryInit() ) { + FG_LOG( FG_GENERAL, FG_ALERT, "Error in Scenery initialization!" ); + exit(-1); + } + if( global_tile_mgr.init() ) { // Load the local scenery data global_tile_mgr.update( fgGetDouble("/position/longitude"), @@ -787,9 +797,9 @@ void fgReInitSubsystems( void ) // cout << "current scenery elev = " << scenery.cur_elev << endl; - fgInitPosition(); fgFDMSetGroundElevation( fgGetString("/sim/flight-model"), scenery.cur_elev ); + fgInitPosition(); // Reset our altitude if we are below ground FG_LOG( FG_GENERAL, FG_DEBUG, "Current altitude = " diff --git a/src/Main/main.cxx b/src/Main/main.cxx index fe21913f8..703071fa7 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -737,6 +737,7 @@ void fgUpdateTimeDepCalcs() { int multi_loop = 1; if ( !globals->get_freeze() && !initial_freeze ) { + // conceptually, this could be done for each fdm instance ... SGTimeStamp current; current.stamp(); long elapsed = current - cur_fdm_state->get_time_stamp(); diff --git a/src/Scenery/scenery.cxx b/src/Scenery/scenery.cxx index 2c0bf3f0d..cb21b6af0 100644 --- a/src/Scenery/scenery.cxx +++ b/src/Scenery/scenery.cxx @@ -48,6 +48,7 @@ struct fgSCENERY scenery; int fgSceneryInit( void ) { FG_LOG( FG_TERRAIN, FG_INFO, "Initializing scenery subsystem" ); + scenery.center = Point3D(0.0); scenery.cur_elev = -9999; return 1; diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index 08a6c0e37..efc925ad6 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -245,8 +245,6 @@ void FGTileMgr::initialize_queue() // system and load all relavant tiles FG_LOG( FG_TERRAIN, FG_INFO, "Updating Tile list for " << current_bucket ); - FG_LOG( FG_TERRAIN, FG_INFO, " Loading " - << xrange * yrange << " tiles" ); cout << "tile cache size = " << global_tile_cache.get_size() << endl; int i; @@ -334,7 +332,7 @@ int FGTileMgr::update( double lon, double lat ) { if ( scenery.center == Point3D(0.0) ) { // initializing - // cout << "initializing ... " << endl; + cout << "initializing scenery current elevation ... " << endl; sgdVec3 tmp_abs_view_pos; sgVec3 tmp_view_pos; @@ -354,6 +352,7 @@ int FGTileMgr::update( double lon, double lat ) { } else { scenery.cur_elev = 0.0; } + cout << "result = " << scenery.cur_elev << endl; } else { // cout << "abs view pos = " << current_view.abs_view_pos // << " view pos = " << current_view.view_pos << endl; -- 2.39.5