]> git.mxchange.org Git - flightgear.git/blobdiff - src/Scripting/NasalSys.hxx
HTTP: Rename urlretrieve/urlload to save/load.
[flightgear.git] / src / Scripting / NasalSys.hxx
index fc24f9959b9d57fe3e53d73619b8a1a4a0c3753b..b5b3d00d4c65b2827ecb923710d040a55f744931 100644 (file)
@@ -4,6 +4,7 @@
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/structure/subsystem_mgr.hxx>
 #include <simgear/misc/sg_dir.hxx>
+#include <simgear/nasal/cppbind/NasalHash.hxx>
 #include <simgear/nasal/nasal.h>
 #include <simgear/threads/SGQueue.hxx>
 #include <simgear/props/props.hxx>
@@ -108,6 +109,9 @@ public:
   
     naContext context() const
     { return _context; }
+
+    nasal::Hash getGlobals() const
+    { return nasal::Hash(_globals, _context); }
   
     // This mechanism is here to allow naRefs to be passed to
     // locations "outside" the interpreter.  Normally, such a
@@ -130,6 +134,11 @@ private:
     SGLockedQueue<SGSharedPtr<FGNasalModelData> > _loadList;
     SGLockedQueue<SGSharedPtr<FGNasalModelData> > _unloadList;
 
+    // Delay removing items of the _loadList to ensure the are already attached
+    // to the scene graph (eg. enables to retrieve world position in load
+    // callback).
+    bool _delay_load;
+
     //
     // FGTimer subclass for handling Nasal timer callbacks.
     // See the implementation of the settimer() extension function for
@@ -153,7 +162,7 @@ private:
     void loadPropertyScripts(SGPropertyNode* n);
     void loadScriptDirectory(simgear::Dir nasalDir);
     void addModule(std::string moduleName, simgear::PathList scripts);
-    void logError(naContext);
+    static void logError(naContext);
     naRef parse(const char* filename, const char* buf, int len);
     naRef genPropsModule();
 
@@ -163,10 +172,6 @@ private:
 
     SGPropertyNode_ptr _cmdArg;
 
-    int _nextGCKey;
-    naRef _gcHash;
-    int _callCount;
-
     simgear::BufferedLogCallback* _log;
 public:
     void handleTimer(NasalTimer* t);