include branch image, make new branch unisolid
[supertux.git] / tools / miniswig / tree.hpp
index 0edca2e..19ed320 100644 (file)
@@ -84,6 +84,28 @@ public:
     int ref;
 };
 
+class SQIntegerType : public AtomicType {
+public:
+    SQIntegerType()
+    {
+        this->name = "SQInteger";
+        assert(_instance == 0);
+        _instance = this;
+    }
+    virtual ~SQIntegerType()
+    {
+        assert(_instance == this);
+        _instance = NULL;
+    }
+    
+    static SQIntegerType* instance()
+    {
+        return _instance;
+    }
+private:
+    static SQIntegerType* _instance;
+};
+
 class HSQUIRRELVMType : public AtomicType {
 public:
     HSQUIRRELVMType()
@@ -95,7 +117,7 @@ public:
     virtual ~HSQUIRRELVMType()
     {
         assert(_instance == this);
-        _instance = 0;
+        _instance = NULL;
     }
 
     static HSQUIRRELVMType* instance()
@@ -158,6 +180,7 @@ public:
     Function() {
       type = FUNCTION;
       suspend = false;
+      custom = false;
     }
   
     enum FuncType {
@@ -166,7 +189,10 @@ public:
         DESTRUCTOR
     };
     FuncType type;
+    /// function should suspend squirrel VM after execution
     bool suspend;
+    /// a custom wrapper (just pass along HSQUIRRELVM)
+    bool custom;
     std::string docu_comment;
     std::string name;
     Type return_type;