//
// Written by Curtis Olson, started May 1997.
//
-// Copyright (C) 1997 - 2002 Curtis L. Olson - curt@flightgear.org
+// Copyright (C) 1997 - 2002 Curtis L. Olson - http://www.flightgear.org/~curt
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
#include <Include/general.hxx>
#include <Cockpit/cockpit.hxx>
-#include <Cockpit/radiostack.hxx>
#include <Cockpit/hud.hxx>
#include <Model/panelnode.hxx>
#include <Model/modelmgr.hxx>
#include <Model/acmodel.hxx>
#include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx>
+#include <Sound/beacon.hxx>
+#include <Sound/morse.hxx>
#include <FDM/flight.hxx>
#include <FDM/UIUCModel/uiuc_aircraftdir.h>
-#include <FDM/ADA.hxx>
+// #include <FDM/ADA.hxx>
#include <ATC/ATCdisplay.hxx>
#include <ATC/ATCmgr.hxx>
#include <ATC/AIMgr.hxx>
static double real_delta_time_sec = 0.0;
double delta_time_sec = 0.0;
+extern float init_volume;
#ifdef macintosh
int idle_state = 0;
long global_multi_loop;
-
SGTimeStamp last_time_stamp;
SGTimeStamp current_time_stamp;
globals->get_time_params()->getLst(),
cur_fdm_state->get_Latitude() );
- // Update radio stack model
- current_radiostack->update(delta_time_sec);
}
// static const SGPropertyNode *replay_master
// = fgGetNode("/sim/freeze/replay", true);
- SGCloudLayer::enable_bump_mapping = fgGetBool("/sim/rendering/bump-mapping",true);
+ SGCloudLayer::enable_bump_mapping = fgGetBool("/sim/rendering/bump-mapping");
// Update the elapsed time.
static bool first_time = true;
real_delta_time_sec
= double(current_time_stamp - last_time_stamp) / 1000000.0;
+ // round the real time down to a multiple of 1/model-hz.
+ // this way all systems are updated the _same_ amount of dt.
+ {
+ static double rem = 0.0;
+ real_delta_time_sec += rem;
+ double hz = model_hz;
+ double nit = floor(real_delta_time_sec*hz);
+ rem = real_delta_time_sec - nit/hz;
+ real_delta_time_sec = nit/hz;
+ }
+
+
if ( clock_freeze->getBoolValue() ) {
delta_time_sec = 0;
} else {
if (!scenery_loaded && globals->get_tile_mgr()->all_queues_empty() && cur_fdm_state->get_inited()) {
fgSetBool("sim/sceneryloaded",true);
+ fgSetFloat("/sim/sound/volume", init_volume);
+ globals->get_soundmgr()->set_volume(init_volume);
}
if (fgGetBool("/sim/rendering/specular-highlight")) {
// printf("idle state == %d\n", idle_state);
if ( idle_state == 0 ) {
- fgSetBool("sim/initialised", false);
-
// Initialize the splash screen right away
if ( fgGetBool("/sim/startup/splash-screen") ) {
fgSplashInit(fgGetString("/sim/startup/splash-texture"));
if ( idle_state == 1000 ) {
// We've finished all our initialization steps, from now on we
// run the main loop.
- fgSetBool("sim/initialised",true);
fgSetBool("sim/sceneryloaded",false);
fgRegisterIdleHandler(fgMainLoop);
exit(-1);
}
+ sgUseDisplayList = fgGetBool( "/sim/rendering/use-display-list", true );
+
// Initialize the Aircraft directory to "" (UIUC)
aircraft_dir = "";
// build our custom render states
globals->get_renderer()->build_states();
- try {
- // pass control off to the master event handler
- fgOSMainLoop();
- } catch (...) {
- SG_LOG( SG_ALL, SG_ALERT,
- "Unknown exception in the main loop. Aborting..." );
- }
+ // pass control off to the master event handler
+ fgOSMainLoop();
// we never actually get here ... but to avoid compiler warnings,
// etc.