source: Daodan/src/BFW_ScriptLang.h@ 536

Last change on this file since 536 was 474, checked in by rossy, 15 years ago

some things

File size: 1.3 KB
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
10typedef 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
18typedef 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
29typedef struct {
30 char* name;
31 char* calllocation; //maybe
32 int linenumber; //perhaps
33} sl_callinfo;
34
35typedef uint16_t (ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret);
36
37uint16_t ONICALL SLrScript_Command_Register_ReturnType(char* name, char* desc, char* argfmt, sl_type type, sl_func callback);
38uint16_t ONICALL SLrScript_Command_Register_Void(char* name, char* desc, char* argfmt, sl_func callback);
39uint16_t ONICALL SLrGlobalVariable_Register_Int32(char* name, char* desc, int32_t* data);
40uint16_t ONICALL SLrGlobalVariable_Register_Float(char* name, char* desc, float* data);
41uint16_t ONICALL SLrGlobalVariable_Register_Bool(char* name, char* desc, uint32_t* data);
42uint16_t ONICALL SLrGlobalVariable_Register_String(char* name, char* desc, char* data);
43
44#endif
Note: See TracBrowser for help on using the repository browser.