From: mfranz Date: Sat, 18 Oct 2008 18:47:28 +0000 (+0000) Subject: - fix regression: classes derived from SGModelData get the props root X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=e1d72f8253fee091b2b34a2a91051393b9c849b2;p=flightgear.git - fix regression: classes derived from SGModelData get the props root via modelLoaded, not a possible Nasal node. - rename SGNasalModelData::_props to ::_root to avoid confusion --- diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx index af589ff3f..97b8f82ef 100644 --- a/src/Scripting/NasalSys.cxx +++ b/src/Scripting/NasalSys.cxx @@ -1092,9 +1092,12 @@ void FGNasalModelData::modelLoaded(const string& path, SGPropertyNode *prop, { if(!prop) return; + SGPropertyNode *nasal = prop->getNode("nasal"); + if(!nasal) + return; - SGPropertyNode *load = prop->getNode("load"); - _unload = prop->getNode("unload"); + SGPropertyNode *load = nasal->getNode("load"); + _unload = nasal->getNode("unload"); if(!load && !_unload) return; @@ -1102,7 +1105,8 @@ void FGNasalModelData::modelLoaded(const string& path, SGPropertyNode *prop, if(_props) _module += ':' + _props->getPath(); const char *s = load ? load->getStringValue() : ""; - nasalSys->createModule(_module.c_str(), _module.c_str(), s, strlen(s), _props); + nasalSys->createModule(_module.c_str(), _module.c_str(), s, strlen(s), _root); + _props = 0; } FGNasalModelData::~FGNasalModelData() @@ -1118,7 +1122,7 @@ FGNasalModelData::~FGNasalModelData() if(_unload) { const char *s = _unload->getStringValue(); - nasalSys->createModule(_module.c_str(), _module.c_str(), s, strlen(s), _props); + nasalSys->createModule(_module.c_str(), _module.c_str(), s, strlen(s), _root); } nasalSys->deleteModule(_module.c_str()); } diff --git a/src/Scripting/NasalSys.hxx b/src/Scripting/NasalSys.hxx index 8c57159c4..e010ba348 100644 --- a/src/Scripting/NasalSys.hxx +++ b/src/Scripting/NasalSys.hxx @@ -161,13 +161,13 @@ private: class FGNasalModelData : public simgear::SGModelData { public: - FGNasalModelData(SGPropertyNode *props = 0) : _props(props), _unload(0) {} + FGNasalModelData(SGPropertyNode *root = 0) : _root(root), _unload(0) {} ~FGNasalModelData(); void modelLoaded(const string& path, SGPropertyNode *prop, osg::Node *); private: string _module; - SGPropertyNode_ptr _props; + SGPropertyNode_ptr _root; SGConstPropertyNode_ptr _unload; };