X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScripting%2FNasalSys.hxx;h=0b10ad0c7f20e191dd5bdeb90587ee0a33c3d5a0;hb=4c5e96f730ebc5c98ae247e7c3e94ebc9efaf136;hp=669b26eea68f82f5de0fbd5ae7a31836d46d02bc;hpb=77de0c8e09f659a4392ce1193e1507cedb496b02;p=flightgear.git diff --git a/src/Scripting/NasalSys.hxx b/src/Scripting/NasalSys.hxx index 669b26eea..0b10ad0c7 100644 --- a/src/Scripting/NasalSys.hxx +++ b/src/Scripting/NasalSys.hxx @@ -4,6 +4,7 @@ #include #include #include +#include #include SG_USING_STD(map); @@ -125,23 +126,10 @@ private: class FGNasalListener : public SGPropertyChangeListener { public: FGNasalListener(SGPropertyNode_ptr node, naRef handler, - FGNasalSys* nasal, int key) - : _node(node), _handler(handler), _gcKey(key), _nas(nasal) {} + FGNasalSys* nasal, int key); - ~FGNasalListener() { - _nas->gcRelease(_gcKey); - } - - void valueChanged(SGPropertyNode* node) { - _nas->_cmdArg = node; - naContext c = naNewContext(); - naModUnlock(); - naCall(c, _handler, 0, 0, naNil(), naNil()); - naModLock(); - if(naGetError(c)) - _nas->logError(c); - naFreeContext(c); - } + ~FGNasalListener(); + void valueChanged(SGPropertyNode* node); private: friend class FGNasalSys; @@ -149,6 +137,19 @@ private: naRef _handler; int _gcKey; FGNasalSys* _nas; + bool _active; +}; + + +class FGNasalModelData : public SGModelData { +public: + FGNasalModelData() : _unload(0) {} + ~FGNasalModelData(); + void modelLoaded(const string& path, SGPropertyNode *prop, ssgBranch *); + +private: + string _module; + SGConstPropertyNode_ptr _unload; }; #endif // __NASALSYS_HXX