2 * OpenBOR - http://www.LavaLit.com
3 * -----------------------------------------------------------------------
4 * Licensed under the BSD license, see LICENSE in OpenBOR root for details.
6 * Copyright (c) 2004 - 2011 OpenBOR Team
9 #ifndef OPENBORSCRIPT_H
10 #define OPENBORSCRIPT_H
12 #include "Interpreter.h"
13 #include "pp_parser.h"
15 #define MAX_GLOBAL_VAR 2048
16 #define MAX_KEY_LEN 24
20 char key
[MAX_KEY_LEN
];
24 typedef struct Script
{
25 Interpreter
*pinterpreter
;
27 int initialized
; //flag
28 int interpreterowner
; //flag
31 extern s_variantnode
**global_var_list
;
32 extern List theFunctionList
;
33 extern ScriptVariant
*indexed_var_list
;
34 extern int max_indexed_vars
;
35 extern int max_entity_vars
;
36 extern int max_script_vars
;
37 extern int max_global_vars
;
38 extern int max_global_var_index
;
39 extern int global_var_count
;
41 //these functions can be used by openbor.c
42 void Script_Global_Init();
43 void Script_Global_Clear();
44 ScriptVariant
*Script_Get_Global_Variant(char *theName
);
45 int Script_Set_Global_Variant(char *theName
, ScriptVariant
* var
);
46 ScriptVariant
*Script_Get_Local_Variant(char *theName
);
47 int Script_Set_Local_Variant(char *theName
, ScriptVariant
* var
);
48 void Script_Init(Script
* pscript
, char *theName
, int first
);
49 Script
*alloc_script();
50 void Script_Copy(Script
* pdest
, Script
* psrc
, int localclear
);
51 int Script_IsInitialized(Script
* pscript
);
52 void Script_Clear(Script
* pscript
, int localclear
);
53 int Script_AppendText(Script
* pscript
, char *text
, char *path
);
54 int Script_Compile(Script
* pscript
);
55 int Script_Execute(Script
* pscript
);
57 void Script_LoadSystemFunctions();
59 #ifndef COMPILED_SCRIPT
60 int Script_Call(Script
* pscript
, char *method
, ScriptVariant
* pretvar
);
63 s32
system_isempty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
64 s32
system_NULL(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
65 s32
system_rand(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
66 s32
system_maxglobalvarindex(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
67 s32
system_getglobalvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
68 s32
system_setglobalvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
69 s32
system_getlocalvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
70 s32
system_setlocalvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
71 s32
system_clearlocalvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
72 s32
system_clearglobalvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
73 s32
system_clearindexedvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
74 s32
system_free(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
75 s32
openbor_systemvariant(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
76 s32
openbor_changesystemvariant(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
77 s32
openbor_drawstring(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
78 s32
openbor_drawstringtoscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
79 s32
openbor_drawsprite(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
80 s32
openbor_drawspritetoscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
81 s32
openbor_log(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
82 s32
openbor_drawbox(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
83 s32
openbor_drawline(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
84 s32
openbor_drawdot(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
85 s32
openbor_drawboxtoscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
86 s32
openbor_drawlinetoscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
87 s32
openbor_drawdottoscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
88 s32
openbor_drawscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
89 s32
openbor_changeplayerproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
90 s32
openbor_changeentityproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
91 s32
openbor_getplayerproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
92 s32
openbor_getentityproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
93 s32
openbor_clearspawnentry(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
94 s32
openbor_setspawnentry(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
95 s32
openbor_spawn(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
96 s32
openbor_projectile(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
97 s32
openbor_transconst(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
98 s32
openbor_tossentity(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
99 s32
openbor_playmusic(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
100 s32
openbor_fademusic(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
101 s32
openbor_setmusicvolume(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
102 s32
openbor_setmusictempo(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
103 s32
openbor_pausemusic(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
104 s32
openbor_playsample(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
105 s32
openbor_loadsample(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
106 s32
openbor_unloadsample(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
107 s32
openbor_fadeout(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
108 s32
openbor_playerkeys(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
109 s32
openbor_changepalette(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
110 s32
openbor_damageentity(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
111 s32
openbor_killentity(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
112 s32
openbor_findtarget(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
113 s32
openbor_checkrange(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
114 s32
openbor_gettextobjproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
115 s32
openbor_changetextobjproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
116 s32
openbor_settextobj(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
117 s32
openbor_cleartextobj(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
118 s32
openbor_getbglayerproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
119 s32
openbor_changebglayerproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
120 s32
openbor_getfglayerproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
121 s32
openbor_changefglayerproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
122 s32
openbor_getlevelproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
123 s32
openbor_changelevelproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
124 s32
openbor_checkhole(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
125 s32
openbor_checkwall(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
126 s32
openbor_checkplatformbelow(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
128 s32
openbor_openfilestream(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
129 s32
openbor_getfilestreamline(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
130 s32
openbor_getfilestreamargument(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
131 s32
openbor_filestreamnextline(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
132 s32
openbor_getfilestreamposition(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
133 s32
openbor_setfilestreamposition(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
135 s32
openbor_filestreamappend(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
136 s32
openbor_createfilestream(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
137 s32
openbor_savefilestream(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
139 s32
openbor_getindexedvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
140 s32
openbor_setindexedvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
141 s32
openbor_getscriptvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
142 s32
openbor_setscriptvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
143 s32
openbor_getentityvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
144 s32
openbor_setentityvar(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
146 s32
openbor_jumptobranch(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
148 s32
openbor_changelight(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
149 s32
openbor_changeshadowcolor(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
150 s32
openbor_bindentity(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
152 s32
openbor_allocscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
153 s32
openbor_clearscreen(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
154 s32
openbor_setdrawmethod(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
155 s32
openbor_updateframe(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
156 s32
openbor_performattack(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
157 s32
openbor_setidle(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
158 s32
openbor_getentity(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
160 s32
openbor_loadmodel(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
161 s32
openbor_loadsprite(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
162 s32
openbor_playgif(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
164 s32
openbor_strinfirst(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
165 s32
openbor_strinlast(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
166 s32
openbor_strleft(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
167 s32
openbor_strlength(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
168 s32
openbor_strright(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
169 s32
openbor_getmodelproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
170 s32
openbor_changemodelproperty(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
171 s32
openbor_rgbcolor(ScriptVariant
** varlist
, ScriptVariant
** pretvar
, int paramCount
);
173 void mapstrings_systemvariant(ScriptVariant
** varlist
, int paramCount
);
174 void mapstrings_changesystemvariant(ScriptVariant
** varlist
, int paramCount
);
175 void mapstrings_getentityproperty(ScriptVariant
** varlist
, int paramCount
);
176 void mapstrings_changeentityproperty(ScriptVariant
** varlist
, int paramCount
);
177 void mapstrings_getplayerproperty(ScriptVariant
** varlist
, int paramCount
);
178 void mapstrings_changeplayerproperty(ScriptVariant
** varlist
, int paramCount
);
179 void mapstrings_setspawnentry(ScriptVariant
** varlist
, int paramCount
);
180 void mapstrings_transconst(ScriptVariant
** varlist
, int paramCount
);
181 void mapstrings_playerkeys(ScriptVariant
** varlist
, int paramCount
);
182 void mapstrings_gettextobjproperty(ScriptVariant
** varlist
, int paramCount
);
183 void mapstrings_changetextobjproperty(ScriptVariant
** varlist
, int paramCount
);
184 void mapstrings_getbglayerproperty(ScriptVariant
** varlist
, int paramCount
);
185 void mapstrings_changebglayerproperty(ScriptVariant
** varlist
, int paramCount
);
186 void mapstrings_getfglayerproperty(ScriptVariant
** varlist
, int paramCount
);
187 void mapstrings_changefglayerproperty(ScriptVariant
** varlist
, int paramCount
);