Big CMakeLists update.
[supertux.git] / src / scripting / squirrel_util.hpp
index f7cbf65..da61b26 100644 (file)
@@ -35,11 +35,11 @@ namespace Scripting
   void exit_squirrel();
   void update_debugger();
 
-  std::string squirrel2string(HSQUIRRELVM vm, int i);
+  std::string squirrel2string(HSQUIRRELVM vm, SQInteger i);
   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,
@@ -48,7 +48,7 @@ namespace Scripting
                        const std::string& sourcename);
 
   template<typename T>
-  void expose_object(HSQUIRRELVM v, int table_idx, T* object,
+  void expose_object(HSQUIRRELVM v, SQInteger table_idx, T* object,
                      const std::string& name, bool free = false)
   {
     sq_pushstring(v, name.c_str(), -1);
@@ -65,14 +65,14 @@ namespace Scripting
     }
   }
 
-  static inline void unexpose_object(HSQUIRRELVM v, int table_idx,
+  static inline void unexpose_object(HSQUIRRELVM v, SQInteger table_idx,
                                      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