//
// 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>
static double real_delta_time_sec = 0.0;
double delta_time_sec = 0.0;
+extern float init_volume;
#ifdef macintosh
globals->get_time_params()->getLst(),
cur_fdm_state->get_Latitude() );
- // Update radio stack model
- current_radiostack->update(delta_time_sec);
}
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);