void
agRadar::update (double delta_time_sec)
{
- if ( ! _sim_init_done ) {
-
- if ( ! fgGetBool("sim/sceneryloaded", false) )
- return;
-
- _sim_init_done = true;
- }
+ if (!_sceneryLoaded->getBoolValue())
+ return;
if ( !_odg || ! _serviceable_node->getBoolValue() ) {
_Instrument->setStringValue("status","");
_time = 0.0;
-
update_terrain();
// wxRadarBg::update(delta_time_sec);
}
void
radAlt::update (double delta_time_sec)
{
- if ( ! _sim_init_done ) {
-
- if ( ! fgGetBool("sim/sceneryloaded", false) )
- return;
-
- _sim_init_done = true;
- }
+ if (!_sceneryLoaded->getBoolValue())
+ return;
if ( !_odg || ! _serviceable_node->getBoolValue() ) {
_Instrument->setStringValue("status","");
}
_time += delta_time_sec;
-
if (_time < _interval)
return;
_time = 0.0;
+
update_altitude();
}
-
-
double
radAlt::getDistanceAntennaToHit(SGVec3d nearestHit) const
{
_interval(node->getDoubleValue("update-interval-sec", 1.0)),
_elapsed_time(0),
_persistance(0),
- _sim_init_done(false),
_odg(0),
_range_nm(0),
_scale(0),
wxRadarBg::init ()
{
_serviceable_node = _Instrument->getNode("serviceable", true);
+ _sceneryLoaded = fgGetNode("/sim/sceneryloaded", true);
// texture name to use in 2D and 3D instruments
_texture_path = _Instrument->getStringValue("radar-texture-path",
void
wxRadarBg::update (double delta_time_sec)
{
- if (!_sim_init_done) {
- if (!fgGetBool("sim/sceneryloaded", false))
- return;
+ if (!_sceneryLoaded->getBoolValue())
+ return;
- _sim_init_done = true;
- }
if (!_odg || !_serviceable_node->getBoolValue()) {
_Instrument->setStringValue("status", "");
return;
}
+
_time += delta_time_sec;
- if (_time < _interval){
-// cout << "WXradar update too soon " << _time << endl;
+ if (_time < _interval)
return;
- }
-// cout << "WXradar updating" << _time<< endl;
_time = 0.0;
double _interval;
double _elapsed_time;
double _persistance;
- bool _sim_init_done;
SGPropertyNode_ptr _serviceable_node;
+ SGPropertyNode_ptr _sceneryLoaded;
SGPropertyNode_ptr _Instrument;
SGPropertyNode_ptr _radar_mode_control_node;
if (_splash_alpha->getDoubleValue()>0.0)
{
// Fade out the splash screen
- const double fade_time = 0.8;
- const double fade_steps_per_sec = 20;
+ const double fade_time = 0.5;
+ const double fade_steps_per_sec = 10;
double delay_time = SGMiscd::min(fade_time/fade_steps_per_sec,
(SGTimeStamp::now() - _splash_time).toSecs());
_splash_time = SGTimeStamp::now();
void FGTileMgr::reinit()
{
+ // reset flag, stop FDM processing, otherwise aircraft fall through
+ // the ground while reloading scenery
+ fgSetBool("/sim/sceneryloaded",false);
+ fgSetDouble("/sim/startup/splash-alpha", 1.0);
+
// remove all old scenery nodes from scenegraph and clear cache
osg::Group* group = globals->get_scenery()->get_terrain_branch();
group->removeChildren(0, group->getNumChildren());