| 1 | 
 #ifndef ONI_H | 
 
 
 
 
 
 | 2 | 
 #error Do not include this file directly, include Oni/Oni.h instead! | 
 
 
 
 
 
 | 3 | 
 #endif | 
 
 
 
 
 
 | 4 | 
  | 
 
 
 
 
 
 | 5 | 
 #ifndef BFW_SCRIPTLANG_H | 
 
 
 
 
 
 | 6 | 
 #define BFW_SCRIPTLANG_H | 
 
 
 
 
 
 | 7 | 
  | 
 
 
 
 
 
 | 8 | 
 typedef enum { | 
 
 
 
 
 
 | 9 | 
         sl_int32, | 
 
 
 
 
 
 | 10 | 
         sl_str32, | 
 
 
 
 
 
 | 11 | 
         sl_float, | 
 
 
 
 
 
 | 12 | 
         sl_bool,  /* Actually int32 0 or 1. */ | 
 
 
 
 
 
 | 13 | 
         sl_void, | 
 
 
 
 
 
 | 14 | 
 } sl_type; | 
 
 
 
 
 
 | 15 | 
  | 
 
 
 
 
 
 | 16 | 
 typedef struct { | 
 
 
 
 
 
 | 17 | 
         sl_type type; | 
 
 
 
 
 
 | 18 | 
         union { | 
 
 
 
 
 
 | 19 | 
                 void*   value; | 
 
 
 
 
 
 | 20 | 
                 int32_t value_int32; | 
 
 
 
 
 
 | 21 | 
                 char*   value_str32; | 
 
 
 
 
 
 | 22 | 
                 float   value_float; | 
 
 
 
 
 
 | 23 | 
                 char    value_bool; | 
 
 
 
 
 
 | 24 | 
         } val; | 
 
 
 
 
 
 | 25 | 
 } sl_arg; | 
 
 
 
 
 
 | 26 | 
  | 
 
 
 
 
 
 | 27 | 
 typedef struct { | 
 
 
 
 
 
 | 28 | 
         char*    name; | 
 
 
 
 
 
 | 29 | 
         char*    calllocation; //maybe | 
 
 
 
 
 
 | 30 | 
         int      linenumber;   //perhaps | 
 
 
 
 
 
 | 31 | 
 } sl_callinfo; | 
 
 
 
 
 
 | 32 | 
  | 
 
 
 
 
 
 | 33 | 
 // Method signature for script (BSL) functions | 
 
 
 
 
 
 | 34 | 
 typedef uint16_t        ( ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret); | 
 
 
 
 
 
 | 35 | 
  | 
 
 
 
 
 
 | 36 | 
  | 
 
 
 
 
 
 | 37 | 
 #endif |