ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/src/BFW_ScriptingLanguage.h
Revision: 444
Committed: Sat Jul 18 09:38:22 2009 UTC (16 years, 2 months ago) by rossy
Content type: text/x-chdr
File size: 1289 byte(s)
Log Message:

File Contents

# Content
1 #pragma once
2 #ifndef BFW_UTILITY_H
3 #define BFW_UTILITY_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, /* it's fixed length, 32 bytes. */
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 } sl_callinfo;
33
34 typedef uint16_t (ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], void* dontuse1, void* dontuse2, sl_arg* ret);
35
36 uint16_t ONICALL SLrScript_Command_Register_ReturnType(char* name, char* desc, char* argfmt, sl_type type, sl_func callback);
37 uint16_t ONICALL SLrScript_Command_Register_Void(char* name, char* desc, char* argfmt, sl_func callback);
38 uint16_t ONICALL SLrGlobalVariable_Register_Int32(char* name, char* desc, int32_t* data);
39 uint16_t ONICALL SLrGlobalVariable_Register_Float(char* name, char* desc, float* data);
40 uint16_t ONICALL SLrGlobalVariable_Register_Bool(char* name, char* desc, uint32_t* data);
41 uint16_t ONICALL SLrGlobalVariable_Register_String(char* name, char* desc, char* data);
42
43 #endif