# include <windows.h>
#endif
-#include <GL/glut.h> // needed before pu.h
#include <plib/pu.h> // plib include
#include <FDM/flight.hxx>
#include "gui.h"
#include "trackball.h"
-// from main.cxx
-extern void fgReshape(int, int);
-
// FOR MOUSE VIEW MODE
// stashed trackball(_quat0, 0.0, 0.0, 0.0, 0.0);
static float _quat0[4];
void reInit(puObject *cb)
{
- BusyCursor(0);
+ // BusyCursor(0);
Quat0();
- int freeze = globals->get_freeze();
- if(!freeze)
- globals->set_freeze( true );
+ static const SGPropertyNode *master_freeze
+ = fgGetNode("/sim/freeze/master");
+
+ bool freeze = master_freeze->getBoolValue();
+ if ( !freeze ) {
+ fgSetBool("/sim/freeze/master", true);
+ }
cur_fdm_state->unbind();
globals->restoreInitialState();
- // Unsuccessful KLUDGE to fix the 'every other time'
- // problem when doing a 'reset' after a 'goto airport'
-
- // string AptId( fgGetString("/sim/startup/airport-id") );
- // if( AptId.c_str() != "\0" )
- // fgSetPosFromAirportID( AptId );
-
+ // update our position based on current presets
+ fgInitPosition();
+
+ SGTime *t = globals->get_time_params();
+ delete t;
+ t = fgInitTime();
+ globals->set_time_params( t );
+
fgReInitSubsystems();
- // reduntant(fgReInitSubsystems) ?
- global_tile_mgr.update( fgGetDouble("/position/longitude-deg"),
- fgGetDouble("/position/latitude-deg") );
-
- cur_light_params.Update();
+ globals->get_tile_mgr()->update( fgGetDouble("/environment/visibility-m") );
- fgReshape( xsize, ysize );
+ globals->get_renderer()->resize( xsize, ysize );
- BusyCursor(1);
+ // BusyCursor(1);
if ( !freeze ) {
- globals->set_freeze( false );
+ fgSetBool("/sim/freeze/master", false);
}
}