73c8c1911fa86647867deda41fba111f5d44c138
[divverent/darkplaces.git] / prvm_cmds.h
1 // AK
2 // Basically every vm builtin cmd should be in here.
3 // All 3 builtin and extension lists can be found here
4 // cause large (I think they will) parts are from pr_cmds the same copyright like in pr_cmds
5 // also applies here
6
7
8 /*
9 ============================================================================
10 common cmd list:
11 =================
12
13                 checkextension(string)
14                 error(...[string])
15                 objerror(...[string)
16                 print(...[strings])
17                 bprint(...[string])
18                 sprint(float clientnum,...[string])
19                 centerprint(...[string])
20 vector  normalize(vector)
21 float   vlen(vector)
22 float   vectoyaw(vector)
23 vector  vectoangles(vector)
24 float   random()
25                 cmd(string)
26                 float cvar (string)
27                 cvar_set (string,string)
28                 dprint(...[string])
29 string  ftos(float)
30 float   fabs(float)
31 string  vtos(vector)
32 string  etos(entity)
33 float   stof(...[string])
34 entity  spawn()
35                 remove(entity e)
36 entity  find(entity start, .string field, string match)
37
38 entity  findfloat(entity start, .float field, float match)
39 entity  findentity(entity start, .entity field, entity match)
40
41 entity  findchain(.string field, string match)
42
43 entity  findchainfloat(.string field, float match)
44 entity  findchainentity(.string field, entity match)
45
46 string  precache_file(string)
47 string  precache_sound (string sample)
48                 coredump()
49                 traceon()
50                 traceoff()
51                 eprint(entity e)
52 float   rint(float)
53 float   floor(float)
54 float   ceil(float)
55 entity  nextent(entity)
56 float   sin(float)
57 float   cos(float)
58 float   sqrt(float)
59 vector  randomvec()
60 float   registercvar (string name, string value, float flags)
61 float   min(float a, float b, ...[float])
62 float   max(float a, float b, ...[float])
63 float   bound(float min, float value, float max)
64 float   pow(float a, float b)
65                 copyentity(entity src, entity dst)
66 float   fopen(string filename, float mode)
67                 fclose(float fhandle)
68 string  fgets(float fhandle)
69                 fputs(float fhandle, string s)
70 float   strlen(string s)
71 string  strcat(string,string,...[string])
72 string  substring(string s, float start, float length)
73 vector  stov(string s)
74 string  strzone(string s)
75                 strunzone(string s)
76 float   tokenize(string s)
77 string  argv(float n)
78 float   isserver()
79 float   clientcount()
80 float   clientstate()
81                 clientcommand(float client, string s) (for client and menu)
82                 changelevel(string map)
83                 localsound(string sample)
84 vector  getmousepos()
85 float   gettime()
86                 loadfromdata(string data)
87                 loadfromfile(string file)
88                 parseentitydata(entity ent, string data)
89 float   mod(float val, float m)
90 const string    cvar_string (string)
91                 crash()
92                 stackdump()
93
94 float   search_begin(string pattern, float caseinsensitive, float quiet)
95 void    search_end(float handle)
96 float   search_getsize(float handle)
97 string  search_getfilename(float handle, float num)
98
99 string  chr(float ascii)
100
101 float   itof(intt ent)
102 entity  ftoe(float num)
103
104 -------will be removed soon----------
105 float   altstr_count(string)
106 string  altstr_prepare(string)
107 string  altstr_get(string,float)
108 string  altstr_set(string altstr, float num, string set)
109 string  altstr_ins(string altstr, float num, string set)
110 --------------------------------------
111
112 entity  findflags(entity start, .float field, float match)
113 entity  findchainflags(.float field, float match)
114
115 const string    VM_cvar_defstring (string)
116
117 perhaps only : Menu : WriteMsg
118 ===============================
119
120                 WriteByte(float data, float dest, float desto)
121                 WriteChar(float data, float dest, float desto)
122                 WriteShort(float data, float dest, float desto)
123                 WriteLong(float data, float dest, float desto)
124                 WriteAngle(float data, float dest, float desto)
125                 WriteCoord(float data, float dest, float desto)
126                 WriteString(string data, float dest, float desto)
127                 WriteEntity(entity data, float dest, float desto)
128
129 Client & Menu : draw functions & video functions (& gecko functions)
130 ===================================================
131
132 float   iscachedpic(string pic)
133 string  precache_pic(string pic)
134                 freepic(string s)
135 float   drawcharacter(vector position, float character, vector scale, vector rgb, float alpha, float flag)
136 float   drawstring(vector position, string text, vector scale, vector rgb, float alpha, float flag)
137 float   drawcolorcodedstring(vector position, string text, vector scale, float alpha, float flag)
138 float   stringwidth(string text, float handleColors)
139 float   drawpic(vector position, string pic, vector size, vector rgb, float alpha, float flag)
140 float   drawsubpic(vector position, vector size, string pic, vector srcPos, vector srcSize, vector rgb, float alpha, float flag)
141 float   drawfill(vector position, vector size, vector rgb, float alpha, float flag)
142                 drawsetcliparea(float x, float y, float width, float height)
143                 drawresetcliparea()
144 vector  getimagesize(string pic)
145
146 float   cin_open(string file, string name)
147 void    cin_close(string name)
148 void    cin_setstate(string name, float type)
149 float   cin_getstate(string name)
150 void    cin_restart(string name)
151
152 #ifdef SUPPORT_GECKO
153 float[bool] gecko_create( string name )
154 void gecko_destroy( string name )
155 void gecko_navigate( string name, string URI )
156 float[bool] gecko_keyevent( string name, float key, float eventtype ) 
157 void gecko_mousemove( string name, float x, float y )
158 #endif
159
160 ==============================================================================
161 menu cmd list:
162 ===============
163
164                 setkeydest(float dest)
165 float   getkeydest()
166                 setmousetarget(float target)
167 float   getmousetarget()
168
169                 callfunction(...,string function_name)
170                 writetofile(float fhandle, entity ent)
171 float   isfunction(string function_name)
172 vector  getresolution(float number)
173 string  keynumtostring(float keynum)
174 string  findkeysforcommand(string command)
175 float   getserverliststat(float type)
176 string  getserverliststring(float fld, float hostnr)
177
178 float   stringtokeynum(string key)
179
180                 resetserverlistmasks()
181                 setserverlistmaskstring(float mask, float fld, string str)
182                 setserverlistmasknumber(float mask, float fld, float num, float op)
183                 resortserverlist()
184                 setserverlistsort(float field, float descending)
185                 refreshserverlist()
186 float   getserverlistnumber(float fld, float hostnr)
187 float   getserverlistindexforkey(string key)
188                 addwantedserverlistkey(string key)
189 */
190
191 #include "quakedef.h"
192 #include "progdefs.h"
193 #include "progsvm.h"
194 #include "clprogdefs.h"
195 #include "mprogdefs.h"
196
197 #include "cl_video.h"
198 #ifdef SUPPORT_GECKO
199 #include "cl_gecko.h"
200 #endif
201
202 //============================================================================
203 // nice helper macros
204
205 #ifndef VM_NOPARMCHECK
206 #define VM_SAFEPARMCOUNTRANGE(p1,p2,f)  if(prog->argc < p1 || prog->argc > p2) PRVM_ERROR(#f " wrong parameter count %i (" #p1 " to " #p2 " expected ) !", prog->argc)
207 #define VM_SAFEPARMCOUNT(p,f)   if(prog->argc != p) PRVM_ERROR(#f " wrong parameter count %i (" #p " expected ) !", prog->argc)
208 #else
209 #define VM_SAFEPARMCOUNTRANGE(p1,p2,f)
210 #define VM_SAFEPARMCOUNT(p,f)
211 #endif
212
213 #define VM_RETURN_EDICT(e)              (((int *)prog->globals.generic)[OFS_RETURN] = PRVM_EDICT_TO_PROG(e))
214
215 #define VM_STRINGTEMP_LENGTH MAX_INPUTLINE
216
217 // builtins and other general functions
218
219 void VM_CheckEmptyString (const char *s);
220 void VM_VarString(int first, char *out, int outlength);
221
222 void VM_checkextension (void);
223 void VM_error (void);
224 void VM_objerror (void);
225 void VM_print (void);
226 void VM_bprint (void);
227 void VM_sprint (void);
228 void VM_centerprint (void);
229 void VM_normalize (void);
230 void VM_vlen (void);
231 void VM_vectoyaw (void);
232 void VM_vectoangles (void);
233 void VM_random (void);
234 void VM_localsound(void);
235 void VM_break (void);
236 void VM_localcmd (void);
237 void VM_cvar (void);
238 void VM_cvar_string(void);
239 void VM_cvar_defstring (void);
240 void VM_cvar_set (void);
241 void VM_dprint (void);
242 void VM_ftos (void);
243 void VM_fabs (void);
244 void VM_vtos (void);
245 void VM_etos (void);
246 void VM_stof(void);
247 void VM_itof(void);
248 void VM_ftoe(void);
249 void VM_strftime(void);
250 void VM_spawn (void);
251 void VM_remove (void);
252 void VM_find (void);
253 void VM_findfloat (void);
254 void VM_findchain (void);
255 void VM_findchainfloat (void);
256 void VM_findflags (void);
257 void VM_findchainflags (void);
258 void VM_precache_file (void);
259 void VM_precache_sound (void);
260 void VM_coredump (void);
261
262 void VM_stackdump (void);
263 void VM_crash(void); // REMOVE IT
264 void VM_traceon (void);
265 void VM_traceoff (void);
266 void VM_eprint (void);
267 void VM_rint (void);
268 void VM_floor (void);
269 void VM_ceil (void);
270 void VM_nextent (void);
271
272 void VM_changelevel (void);
273 void VM_sin (void);
274 void VM_cos (void);
275 void VM_sqrt (void);
276 void VM_randomvec (void);
277 void VM_registercvar (void);
278 void VM_min (void);
279 void VM_max (void);
280 void VM_bound (void);
281 void VM_pow (void);
282 void VM_asin (void);
283 void VM_acos (void);
284 void VM_atan (void);
285 void VM_atan2 (void);
286 void VM_tan (void);
287
288 void VM_Files_Init(void);
289 void VM_Files_CloseAll(void);
290
291 void VM_fopen(void);
292 void VM_fclose(void);
293 void VM_fgets(void);
294 void VM_fputs(void);
295 void VM_writetofile(void); // only used by menu
296
297 void VM_strlen(void);
298 void VM_strcat(void);
299 void VM_substring(void);
300 void VM_stov(void);
301 void VM_strzone(void);
302 void VM_strunzone(void);
303
304 // DRESK - String Length (not counting color codes)
305 void VM_strlennocol(void);
306 // DRESK - Decolorized String
307 void VM_strdecolorize(void);
308 // DRESK - String Uppercase and Lowercase Support
309 void VM_strtolower(void);
310 void VM_strtoupper(void);
311
312 void VM_clcommand (void);
313
314 void VM_tokenize (void);
315 void VM_tokenizebyseparator (void);
316 void VM_argv (void);
317
318 void VM_isserver(void);
319 void VM_clientcount(void);
320 void VM_clientstate(void);
321 // not used at the moment -> not included in the common list
322 void VM_getostype(void);
323 void VM_getmousepos(void);
324 void VM_gettime(void);
325 void VM_loadfromdata(void);
326 void VM_parseentitydata(void);
327 void VM_loadfromfile(void);
328 void VM_modulo(void);
329
330 void VM_search_begin(void);
331 void VM_search_end(void);
332 void VM_search_getsize(void);
333 void VM_search_getfilename(void);
334 void VM_chr(void);
335 void VM_iscachedpic(void);
336 void VM_precache_pic(void);
337 void VM_freepic(void);
338 void VM_drawcharacter(void);
339 void VM_drawstring(void);
340 void VM_drawcolorcodedstring(void);
341 void VM_stringwidth(void);
342 void VM_drawpic(void);
343 void VM_drawsubpic(void);
344 void VM_drawfill(void);
345 void VM_drawsetcliparea(void);
346 void VM_drawresetcliparea(void);
347 void VM_getimagesize(void);
348
349 void VM_makevectors (void);
350 void VM_vectorvectors (void);
351
352 void VM_keynumtostring (void);
353 void VM_stringtokeynum (void);
354
355 void VM_cin_open( void );
356 void VM_cin_close( void );
357 void VM_cin_setstate( void );
358 void VM_cin_getstate( void );
359 void VM_cin_restart( void );
360
361 #ifdef SUPPORT_GECKO
362 void VM_gecko_create( void );
363 void VM_gecko_destroy( void );
364 void VM_gecko_navigate( void );
365 void VM_gecko_keyevent( void );
366 void VM_gecko_movemouse( void );
367 void VM_gecko_resize( void );
368 void VM_gecko_get_texture_extent( void );
369 #endif
370
371 void VM_drawline (void);
372
373 void VM_bitshift (void);
374
375 void VM_altstr_count( void );
376 void VM_altstr_prepare( void );
377 void VM_altstr_get( void );
378 void VM_altstr_set( void );
379 void VM_altstr_ins(void);
380
381 void VM_buf_create(void);
382 void VM_buf_del (void);
383 void VM_buf_getsize (void);
384 void VM_buf_copy (void);
385 void VM_buf_sort (void);
386 void VM_buf_implode (void);
387 void VM_bufstr_get (void);
388 void VM_bufstr_set (void);
389 void VM_bufstr_add (void);
390 void VM_bufstr_free (void);
391
392 void VM_changeyaw (void);
393 void VM_changepitch (void);
394
395 void VM_uncolorstring (void);
396
397 void VM_strstrofs (void);
398 void VM_str2chr (void);
399 void VM_chr2str (void);
400 void VM_strconv (void);
401 void VM_strpad (void);
402 void VM_infoadd (void);
403 void VM_infoget (void);
404 void VM_strncmp (void);
405 void VM_strncmp (void);
406 void VM_strncasecmp (void);
407 void VM_registercvar (void);
408 void VM_wasfreed (void);
409
410 void VM_strreplace (void);
411 void VM_strireplace (void);
412
413 void VM_SetTraceGlobals(const trace_t *trace);
414
415 void VM_Cmd_Init(void);
416 void VM_Cmd_Reset(void);