text object supports anchor points now
[supertux.git] / src / scripting / squirrel_util.hpp
index 874bb8e..da61b26 100644 (file)
@@ -39,7 +39,7 @@ namespace Scripting
   void print_squirrel_stack(HSQUIRRELVM vm);
 
   HSQOBJECT create_thread(HSQUIRRELVM vm);
-  SQObject vm_to_object(HSQUIRRELVM vm); 
+  SQObject vm_to_object(HSQUIRRELVM vm);
   HSQUIRRELVM object_to_vm(HSQOBJECT object);
 
   void compile_script(HSQUIRRELVM vm, std::istream& in,
@@ -69,10 +69,10 @@ namespace Scripting
                                      const std::string& name)
   {
     sq_pushstring(v, name.c_str(), name.length());
-    
+
     if(table_idx < 0)
       table_idx -= 1;
-    
+
     if(SQ_FAILED(sq_deleteslot(v, table_idx, SQFalse))) {
       std::ostringstream msg;
       msg << "Couldn't unregister object '" << name << "' in squirrel root table";
@@ -80,6 +80,28 @@ namespace Scripting
     }
   }
 
+  // begin serialization functions
+  void store_float(HSQUIRRELVM vm, const char* name, float val);
+  void store_int(HSQUIRRELVM vm, const char* name, int val);
+  void store_string(HSQUIRRELVM vm, const char* name, const std::string& val);
+  void store_bool(HSQUIRRELVM vm, const char* name, bool val);
+
+  bool has_float(HSQUIRRELVM vm, const char* name);
+  bool has_int(HSQUIRRELVM vm, const char* name);
+  bool has_string(HSQUIRRELVM vm, const char* name);
+  bool has_bool(HSQUIRRELVM vm, const char* name);
+
+  bool get_float(HSQUIRRELVM vm, const char* name, float& val);
+  bool get_int(HSQUIRRELVM vm, const char* name, int& val);
+  bool get_string(HSQUIRRELVM vm, const char* name, std::string& val);
+  bool get_bool(HSQUIRRELVM vm, const char* name, bool& val);
+
+  float read_float(HSQUIRRELVM vm, const char* name);
+  int read_int(HSQUIRRELVM vm, const char* name);
+  std::string read_string(HSQUIRRELVM vm, const char* name);
+  bool read_bool(HSQUIRRELVM vm, const char* name);
+  // end serialization functions
+
 }
 
 #endif