fix link errors on compilers with strict "extern" enforcement
[rofl0r-openbor.git] / openborscript.h
blob28bbb990b4c04df661d955f5a1a697ef3c296a28
1 /*
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
7 */
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
18 typedef struct {
19 ScriptVariant value;
20 char key[MAX_KEY_LEN];
21 struct Script *owner;
22 } s_variantnode;
24 typedef struct Script {
25 Interpreter *pinterpreter;
26 ScriptVariant *vars;
27 int initialized; //flag
28 int interpreterowner; //flag
29 } Script;
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);
61 #endif
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);
189 #endif