X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FScripting%2FNasalSys.hxx;h=6d64e5097ba66f3ddfd4dd01902178c047bae76d;hb=3209a4db097f3f45836cc1297dcd93964df562b4;hp=8c57159c466baa772c6fd9265693754e5d147007;hpb=667e64e1ebc86a0c53112b92b53475898f315c36;p=flightgear.git diff --git a/src/Scripting/NasalSys.hxx b/src/Scripting/NasalSys.hxx index 8c57159c4..6d64e5097 100644 --- a/src/Scripting/NasalSys.hxx +++ b/src/Scripting/NasalSys.hxx @@ -54,11 +54,13 @@ public: virtual bool handleCommand(const SGPropertyNode* arg); void createModule(const char* moduleName, const char* fileName, - const char* src, int len, const SGPropertyNode* arg=0); + const char* src, int len, const SGPropertyNode* cmdarg=0, + int argc=0, naRef*args=0); void deleteModule(const char* moduleName); naRef call(naRef code, int argc, naRef* args, naRef locals); + naRef propNodeGhost(SGPropertyNode* handle); private: friend class FGNasalScript; @@ -87,7 +89,6 @@ private: void logError(naContext); naRef parse(const char* filename, const char* buf, int len); naRef genPropsModule(); - naRef propNodeGhost(SGPropertyNode* handle); // This mechanism is here to allow naRefs to be passed to // locations "outside" the interpreter. Normally, such a @@ -132,7 +133,7 @@ private: class FGNasalListener : public SGPropertyChangeListener { public: FGNasalListener(SGPropertyNode* node, naRef code, FGNasalSys* nasal, - int key, int id, int type); + int key, int id, int init, int type); virtual ~FGNasalListener(); virtual void valueChanged(SGPropertyNode* node); @@ -149,10 +150,10 @@ private: int _gcKey; int _id; FGNasalSys* _nas; + int _init; int _type; unsigned int _active; bool _dead; - bool _first_call; long _last_int; double _last_float; string _last_string; @@ -161,13 +162,14 @@ 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: + static unsigned int _module_id; string _module; - SGPropertyNode_ptr _props; + SGPropertyNode_ptr _root; SGConstPropertyNode_ptr _unload; };