Line | |
---|
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[], int* dontuse1, int* 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.