]> git.mxchange.org Git - flightgear.git/commitdiff
bfi load/save fix from David.
authorcurt <curt>
Fri, 15 Sep 2000 19:28:26 +0000 (19:28 +0000)
committercurt <curt>
Fri, 15 Sep 2000 19:28:26 +0000 (19:28 +0000)
Added an initial freeze on startup so that we can try to avoid bouncing the
plane on it's back during the very low frame rate / scenery loading startup
conditions.

src/Main/bfi.cxx
src/Main/main.cxx

index e39d43921e4863749ef1f6374498308af325a28e..8dbd5209606e8540fb0da33e8338cef13901415b 100644 (file)
@@ -250,15 +250,15 @@ FGBFI::reinit ()
 
   cout << "BFI: start reinit\n";
 
-  setHeading(getHeading());
-  setPitch(getPitch());
-  setRoll(getRoll());
-  setSpeedNorth(getSpeedNorth());
-  setSpeedEast(getSpeedEast());
-  setSpeedDown(getSpeedDown());
-  setLatitude(getLatitude());
-  setLongitude(getLongitude());
-  setAltitude(getAltitude());
+//   setHeading(getHeading());
+//   setPitch(getPitch());
+//   setRoll(getRoll());
+//   setSpeedNorth(getSpeedNorth());
+//   setSpeedEast(getSpeedEast());
+//   setSpeedDown(getSpeedDown());
+//   setLatitude(getLatitude());
+//   setLongitude(getLongitude());
+//   setAltitude(getAltitude());
 
                                // TODO: add more AP stuff
   double elevator = getElevator();
index 626c85f7ec0785aa569727d384835b44e284d957..ef3bf9cdbce59acb530fbc9d52a1b4c4b820651b 100644 (file)
@@ -130,6 +130,9 @@ FGGeneral general;
 static int idle_state = 0;
 static int global_multi_loop;
 
+// attempt to avoid a large bounce at startup
+static bool initial_freeze = true;
+
 // Another hack
 int use_signals = 0;
 
@@ -617,7 +620,7 @@ void fgUpdateTimeDepCalcs(int multi_loop, int remainder) {
        multi_loop = 1;
     }
 
-    if ( !globals->get_freeze() ) {
+    if ( !globals->get_freeze() && !initial_freeze ) {
        // run Autopilot system
        current_autopilot->run();
 
@@ -633,6 +636,10 @@ void fgUpdateTimeDepCalcs(int multi_loop, int remainder) {
        //              fdm_state, 0, remainder );
        cur_fdm_state->update( 0 );
        FGSteam::update( 0 );
+
+       if ( global_tile_mgr.queue_size() == 0 ) {
+           initial_freeze = false;
+       }
     }
 
     fdm_list.push_back( *cur_fdm_state );