Working on setting initial altitude correctly after a reset.
This commit is contained in:
parent
26dca37028
commit
a5e4e6be11
5 changed files with 20 additions and 10 deletions
|
@ -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() );
|
||||
|
|
|
@ -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 = "
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue