Rev | Line | |
---|
[445] | 1 | #pragma once
|
---|
| 2 | #ifndef BFW_SCRIPTLANG_H
|
---|
| 3 | #define BFW_SCRIPTLANG_H
|
---|
| 4 |
|
---|
| 5 | #include "Daodan.h"
|
---|
| 6 |
|
---|
| 7 | #include <stdint.h>
|
---|
| 8 | #include <stdbool.h>
|
---|
| 9 |
|
---|
| 10 | typedef enum {
|
---|
| 11 | sl_int32,
|
---|
| 12 | sl_str32,
|
---|
| 13 | sl_float,
|
---|
| 14 | sl_bool, /* Actually int32 0 or 1. */
|
---|
| 15 | sl_void,
|
---|
| 16 | } sl_type;
|
---|
| 17 |
|
---|
| 18 | typedef struct {
|
---|
| 19 | sl_type type;
|
---|
| 20 | union {
|
---|
| 21 | void* value;
|
---|
| 22 | int32_t value_int32;
|
---|
| 23 | char* value_str32;
|
---|
| 24 | float value_float;
|
---|
| 25 | bool value_bool;
|
---|
| 26 | };
|
---|
| 27 | } sl_arg;
|
---|
| 28 |
|
---|
| 29 | typedef struct {
|
---|
| 30 | char* name;
|
---|
| 31 | char* calllocation; //maybe
|
---|
| 32 | int linenumber; //perhaps
|
---|
| 33 | } sl_callinfo;
|
---|
| 34 |
|
---|
| 35 | typedef uint16_t (ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], void* dontuse1, void* dontuse2, sl_arg* ret);
|
---|
| 36 |
|
---|
| 37 | uint16_t ONICALL SLrScript_Command_Register_ReturnType(char* name, char* desc, char* argfmt, sl_type type, sl_func callback);
|
---|
| 38 | uint16_t ONICALL SLrScript_Command_Register_Void(char* name, char* desc, char* argfmt, sl_func callback);
|
---|
| 39 | uint16_t ONICALL SLrGlobalVariable_Register_Int32(char* name, char* desc, int32_t* data);
|
---|
| 40 | uint16_t ONICALL SLrGlobalVariable_Register_Float(char* name, char* desc, float* data);
|
---|
| 41 | uint16_t ONICALL SLrGlobalVariable_Register_Bool(char* name, char* desc, uint32_t* data);
|
---|
| 42 | uint16_t ONICALL SLrGlobalVariable_Register_String(char* name, char* desc, char* data);
|
---|
| 43 |
|
---|
| 44 | #endif
|
---|
Note:
See
TracBrowser
for help on using the repository browser.