f->set_Longitude( fgGetDouble("/position/longitude") * DEG_TO_RAD );
f->set_Latitude( fgGetDouble("/position/latitude") * DEG_TO_RAD );
+ FG_LOG( FG_GENERAL, FG_INFO,
+ "scenery.cur_elev = " << scenery.cur_elev );
+ FG_LOG( FG_GENERAL, FG_INFO,
+ "/position/altitude = " << fgGetDouble("/position/altitude") );
+
+ // if we requested on ground startups
+ if ( fgGetBool( "/sim/startup/onground" ) ) {
+ fgSetDouble("/position/altitude", scenery.cur_elev + 1 );
+ }
+
+ // if requested altitude is below ground level
if ( scenery.cur_elev > fgGetDouble("/position/altitude") - 1) {
- fgSetDouble("/position/altitude", scenery.cur_elev + 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) << ", "
scenery.cur_elev );
double dt = 1.0 / fgGetInt("/sim/model-hz");
+ // cout << "dt = " << dt << endl;
const string &model = fgGetString("/sim/flight-model");
if (model == "larcsim") {
<< ", can't init aircraft");
exit(-1);
}
+ cur_fdm_state->stamp();
+ cur_fdm_state->set_remainder( 0 );
// allocates structures so must happen before any of the flight
// model or control parameters are set
FG_LOG( FG_GENERAL, FG_INFO, endl);
+ // Save the initial state for future
+ // reference.
+ globals->saveInitialState();
+
return true;
}
void fgReInitSubsystems( void )
{
+ FG_LOG( FG_GENERAL, FG_INFO,
+ "/position/altitude = " << fgGetDouble("/position/altitude") );
+
bool freeze = globals->get_freeze();
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"),
// 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 = "
<< globals->get_current_view()->get_abs_view_pos());
cur_fdm_state->init();
- cur_fdm_state->bind();
+// cur_fdm_state->bind();
// cur_fdm_state->init( 1.0 / fgGetInt("/sim/model-hz") );
scenery.cur_elev = cur_fdm_state->get_Runway_altitude() * FEET_TO_METER;