fixed bug where toggling r_shadow_realtime_world_compile would alter the culling...
[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
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   drawpic(vector position, string pic, vector size, vector rgb, float alpha, float flag)
138 float   drawfill(vector position, vector size, vector rgb, float alpha, float flag)
139                 drawsetcliparea(float x, float y, float width, float height)
140                 drawresetcliparea()
141 vector  getimagesize(string pic)
142
143 float   cin_open(string file, string name)
144 void    cin_close(string name)
145 void    cin_setstate(string name, float type)
146 float   cin_getstate(string name)
147 void    cin_restart(string name)
148
149 ==============================================================================
150 menu cmd list:
151 ===============
152
153                 setkeydest(float dest)
154 float   getkeydest()
155                 setmousetarget(float target)
156 float   getmousetarget()
157
158                 callfunction(...,string function_name)
159                 writetofile(float fhandle, entity ent)
160 float   isfunction(string function_name)
161 vector  getresolution(float number)
162 string  keynumtostring(float keynum)
163 string  findkeysforcommand(string command)
164 float   getserverliststat(float type)
165 string  getserverliststring(float fld, float hostnr)
166
167 float   stringtokeynum(string key)
168
169                 resetserverlistmasks()
170                 setserverlistmaskstring(float mask, float fld, string str)
171                 setserverlistmasknumber(float mask, float fld, float num, float op)
172                 resortserverlist()
173                 setserverlistsort(float field, float descending)
174                 refreshserverlist()
175 float   getserverlistnumber(float fld, float hostnr)
176 float   getserverlistindexforkey(string key)
177                 addwantedserverlistkey(string key)
178 */
179
180 #include "quakedef.h"
181 #include "progdefs.h"
182 #include "progsvm.h"
183 #include "clprogdefs.h"
184 #include "mprogdefs.h"
185
186 #include "cl_video.h"
187
188 //============================================================================
189 // nice helper macros
190
191 #ifndef VM_NOPARMCHECK
192 #define VM_SAFEPARMCOUNT(p,f)   if(prog->argc != p) PRVM_ERROR(#f " wrong parameter count (" #p " expected ) !")
193 #else
194 #define VM_SAFEPARMCOUNT(p,f)
195 #endif
196
197 #define VM_RETURN_EDICT(e)              (((int *)prog->globals.generic)[OFS_RETURN] = PRVM_EDICT_TO_PROG(e))
198
199 #define e10 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
200 #define e100 e10,e10,e10,e10,e10,e10,e10,e10,e10,e10
201 #define e1000 e100,e100,e100,e100,e100,e100,e100,e100,e100,e100
202
203 #define VM_STRINGTEMP_BUFFERS 16
204 #define VM_STRINGTEMP_LENGTH MAX_INPUTLINE
205
206 // builtins and other general functions
207
208 void VM_CheckEmptyString (const char *s);
209 void VM_VarString(int first, char *out, int outlength);
210
211 void VM_checkextension (void);
212 void VM_error (void);
213 void VM_objerror (void);
214 void VM_print (void);
215 void VM_bprint (void);
216 void VM_sprint (void);
217 void VM_centerprint (void);
218 void VM_normalize (void);
219 void VM_vlen (void);
220 void VM_vectoyaw (void);
221 void VM_vectoangles (void);
222 void VM_random (void);
223 void VM_localsound(void);
224 void VM_break (void);
225 void VM_localcmd (void);
226 void VM_cvar (void);
227 void VM_cvar_string(void);
228 void VM_cvar_defstring (void);
229 void VM_cvar_set (void);
230 void VM_dprint (void);
231 void VM_ftos (void);
232 void VM_fabs (void);
233 void VM_vtos (void);
234 void VM_etos (void);
235 void VM_stof(void);
236 void VM_itof(void);
237 void VM_ftoe(void);
238 void VM_spawn (void);
239 void VM_remove (void);
240 void VM_find (void);
241 void VM_findfloat (void);
242 void VM_findchain (void);
243 void VM_findchainfloat (void);
244 void VM_findflags (void);
245 void VM_findchainflags (void);
246 void VM_precache_file (void);
247 void VM_precache_error (void);
248 void VM_precache_sound (void);
249 void VM_coredump (void);
250
251 void VM_stackdump (void);
252 void VM_crash(void); // REMOVE IT
253 void VM_traceon (void);
254 void VM_traceoff (void);
255 void VM_eprint (void);
256 void VM_rint (void);
257 void VM_floor (void);
258 void VM_ceil (void);
259 void VM_nextent (void);
260
261 void VM_changelevel (void);
262 void VM_sin (void);
263 void VM_cos (void);
264 void VM_sqrt (void);
265 void VM_randomvec (void);
266 void VM_registercvar (void);
267 void VM_min (void);
268 void VM_max (void);
269 void VM_bound (void);
270 void VM_pow (void);
271 void VM_copyentity (void);
272 void VM_asin (void);
273 void VM_acos (void);
274 void VM_atan (void);
275 void VM_atan2 (void);
276 void VM_tan (void);
277
278 void VM_Files_Init(void);
279 void VM_Files_CloseAll(void);
280
281 void VM_fopen(void);
282 void VM_fclose(void);
283 void VM_fgets(void);
284 void VM_fputs(void);
285 // used by M_WriteToFile
286 // should be only called from a builtin
287 qfile_t *VM_GetFileHandle( int index );
288
289 void VM_strlen(void);
290 void VM_strcat(void);
291 void VM_substring(void);
292 void VM_stov(void);
293 void VM_strzone(void);
294 void VM_strunzone(void);
295
296 // DRESK - String Length (not counting color codes)
297 void VM_strlennocol(void);
298 // DRESK - Decolorized String
299 void VM_strdecolorize(void);
300
301 void VM_clcommand (void);
302
303 void VM_tokenize (void);
304 void VM_argv (void);
305
306 void VM_isserver(void);
307 void VM_clientcount(void);
308 void VM_clientstate(void);
309 // not used at the moment -> not included in the common list
310 void VM_getostype(void);
311 void VM_getmousepos(void);
312 void VM_gettime(void);
313 void VM_loadfromdata(void);
314 void VM_parseentitydata(void);
315 void VM_loadfromfile(void);
316 void VM_modulo(void);
317
318 void VM_search_begin(void);
319 void VM_search_end(void);
320 void VM_search_getsize(void);
321 void VM_search_getfilename(void);
322 void VM_chr(void);
323 void VM_iscachedpic(void);
324 void VM_precache_pic(void);
325 void VM_freepic(void);
326 void VM_drawcharacter(void);
327 void VM_drawstring(void);
328 void VM_drawpic(void);
329 void VM_drawfill(void);
330 void VM_drawsetcliparea(void);
331 void VM_drawresetcliparea(void);
332 void VM_getimagesize(void);
333
334 void VM_vectorvectors (void);
335
336 void VM_keynumtostring (void);
337 void VM_stringtokeynum (void);
338
339 void VM_cin_open( void );
340 void VM_cin_close( void );
341 void VM_cin_setstate( void );
342 void VM_cin_getstate( void );
343 void VM_cin_restart( void );
344
345 void VM_drawline (void);
346 void VM_R_PolygonBegin (void);
347 void VM_R_PolygonVertex (void);
348 void VM_R_PolygonEnd (void);
349
350 void VM_bitshift (void);
351
352 void VM_altstr_count( void );
353 void VM_altstr_prepare( void );
354 void VM_altstr_get( void );
355 void VM_altstr_set( void );
356 void VM_altstr_ins(void);
357
358 void VM_buf_create(void);
359 void VM_buf_del (void);
360 void VM_buf_getsize (void);
361 void VM_buf_copy (void);
362 void VM_buf_sort (void);
363 void VM_buf_implode (void);
364 void VM_bufstr_get (void);
365 void VM_bufstr_set (void);
366 void VM_bufstr_add (void);
367 void VM_bufstr_free (void);
368
369 void VM_Cmd_Init(void);
370 void VM_Cmd_Reset(void);