1
0
Fork 0

Working on setting initial altitude correctly after a reset.

This commit is contained in:
curt 2001-01-17 20:32:02 +00:00
parent 26dca37028
commit a5e4e6be11
5 changed files with 20 additions and 10 deletions

View file

@ -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() );

View file

@ -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 = "

View file

@ -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();

View file

@ -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;

View file

@ -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;