diff --git a/src/Sound/fg_fx.cxx b/src/Sound/fg_fx.cxx index 2df20387d..390609567 100644 --- a/src/Sound/fg_fx.cxx +++ b/src/Sound/fg_fx.cxx @@ -43,10 +43,12 @@ FGFX::FGFX ( SGSoundMgr *smgr, const string &refname, SGPropertyNode *props ) : _props( props ) { if (!props) { + _is_aimodel = false; _props = globals->get_props(); _enabled = fgGetNode("/sim/sound/effects/enabled", true); _volume = fgGetNode("/sim/sound/effects/volume", true); } else { + _is_aimodel = true; _enabled = _props->getNode("/sim/sound/aimodels/enabled", true); _enabled->setBoolValue(fgGetBool("/sim/sound/effects/enabled")); _volume = _props->getNode("/sim/sound/aimodels/volume", true); @@ -105,18 +107,17 @@ FGFX::init() } node = root.getNode("fx"); - if(node) { + if(node && !_is_aimodel) { for (int i = 0; i < node->nChildren(); ++i) { - SGXmlSound *sound = new SGXmlSound(); + SGXmlSound *soundfx = new SGXmlSound(); try { -// sound->init(globals->get_props(), node->getChild(i), this, - sound->init(_props, node->getChild(i), this, - _avionics, path.dir()); - _sound.push_back(sound); + soundfx->init( _props, node->getChild(i), this, _avionics, + path.dir() ); + _sound.push_back( soundfx ); } catch ( sg_exception &e ) { SG_LOG(SG_SOUND, SG_ALERT, e.getFormattedMessage()); - delete sound; + delete soundfx; } } } diff --git a/src/Sound/fg_fx.hxx b/src/Sound/fg_fx.hxx index a46d8583c..3803f5bc6 100644 --- a/src/Sound/fg_fx.hxx +++ b/src/Sound/fg_fx.hxx @@ -58,6 +58,7 @@ public: private: + bool _is_aimodel; SGSharedPtr _avionics; std::vector _sound;