-CVS: ----------------------------------------------------------------------
[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 intt    ftoi(float num)
103
104 float   altstr_count(string)
105 string  altstr_prepare(string)
106 string  altstr_get(string,float)
107 string  altstr_set(string altstr, float num, string set)
108 string  altstr_ins(string altstr, float num, string set)
109
110 perhaps only : Menu : WriteMsg
111 ===============================
112
113                 WriteByte(float data, float dest, float desto)
114                 WriteChar(float data, float dest, float desto)
115                 WriteShort(float data, float dest, float desto)
116                 WriteLong(float data, float dest, float desto)
117                 WriteAngle(float data, float dest, float desto)
118                 WriteCoord(float data, float dest, float desto)
119                 WriteString(string data, float dest, float desto)
120                 WriteEntity(entity data, float dest, float desto)
121
122 Client & Menu : draw functions & video functions
123 ===================================================
124
125 float   iscachedpic(string pic)
126 string  precache_pic(string pic)
127                 freepic(string s)
128 float   drawcharacter(vector position, float character, vector scale, vector rgb, float alpha, float flag)
129 float   drawstring(vector position, string text, vector scale, vector rgb, float alpha, float flag)
130 float   drawpic(vector position, string pic, vector size, vector rgb, float alpha, float flag)
131 float   drawfill(vector position, vector size, vector rgb, float alpha, float flag)
132                 drawsetcliparea(float x, float y, float width, float height)
133                 drawresetcliparea()
134 vector  getimagesize(string pic)
135
136 float   cin_open(string file, string name)
137 void    cin_close(string name)
138 void    cin_setstate(string name, float type)
139 float   cin_getstate(string name)
140 void    cin_restart(string name)
141
142 ==============================================================================
143 menu cmd list:
144 ===============
145
146                 setkeydest(float dest)
147 float   getkeydest()
148                 setmousetarget(float target)
149 float   getmousetarget()
150
151                 callfunction(...,string function_name)
152                 writetofile(float fhandle, entity ent)
153 float   isfunction(string function_name)
154 vector  getresolution(float number)
155 string  keynumtostring(float keynum)
156 string  findkeysforcommand(string command)
157 float   getserverliststat(float type)
158 string  getserverliststring(float fld, float hostnr)
159
160 float   stringtokeynum(string key)
161
162                 resetserverlistmasks()
163                 setserverlistmaskstring(float mask, float fld, string str)
164                 setserverlistmasknumber(float mask, float fld, float num, float op)
165                 resortserverlist()
166                 setserverlistsort(float field, float descending)
167                 refreshserverlist()
168 float   getserverlistnumber(float fld, float hostnr)
169 float   getserverlistindexforkey(string key)
170                 addwantedserverlistkey(string key)
171 */
172
173 #include "quakedef.h"
174 #include "progdefs.h"
175 #include "progsvm.h"
176 #include "clprogdefs.h"
177 #include "mprogdefs.h"
178
179 #include "cl_video.h"
180
181 //============================================================================
182 // nice helper macros
183
184 #ifndef VM_NOPARMCHECK
185 #define VM_SAFEPARMCOUNT(p,f)   if(prog->argc != p) PRVM_ERROR(#f " wrong parameter count (" #p " expected ) !\n")
186 #else
187 #define VM_SAFEPARMCOUNT(p,f)
188 #endif
189
190 #define VM_RETURN_EDICT(e)              (((int *)prog->globals.generic)[OFS_RETURN] = PRVM_EDICT_TO_PROG(e))
191
192 #define e10 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
193 #define e100 e10,e10,e10,e10,e10,e10,e10,e10,e10,e10
194 #define e1000 e100,e100,e100,e100,e100,e100,e100,e100,e100,e100
195
196 #define VM_STRINGTEMP_BUFFERS 16
197 #define VM_STRINGTEMP_LENGTH 4096
198
199 // builtins and other general functions
200
201 char *VM_GetTempString(void);
202 void VM_CheckEmptyString (const char *s);
203 void VM_VarString(int first, char *out, int outlength);
204
205 void VM_checkextension (void);
206 void VM_error (void);
207 void VM_objerror (void);
208 void VM_print (void);
209 void VM_bprint (void);
210 void VM_sprint (void);
211 void VM_centerprint (void);
212 void VM_normalize (void);
213 void VM_vlen (void);
214 void VM_vectoyaw (void);
215 void VM_vectoangles (void);
216 void VM_random (void);
217 void VM_localsound(void);
218 void VM_break (void);
219 void VM_localcmd (void);
220 void VM_cvar (void);
221 void VM_cvar_string(void);
222 void VM_cvar_set (void);
223 void VM_dprint (void);
224 void VM_ftos (void);
225 void VM_fabs (void);
226 void VM_vtos (void);
227 void VM_etos (void);
228 void VM_stof(void);
229 void VM_itof(void);
230 void VM_ftoi(void);
231 void VM_spawn (void);
232 void VM_remove (void);
233 void VM_find (void);
234 void VM_findfloat (void);
235 void VM_findchain (void);
236 void VM_findchainfloat (void);
237 void VM_precache_file (void);
238 void VM_precache_error (void);
239 void VM_precache_sound (void);
240 void VM_coredump (void);
241
242 void VM_stackdump (void);
243 void VM_crash(void); // REMOVE IT
244 void VM_traceon (void);
245 void VM_traceoff (void);
246 void VM_eprint (void);
247 void VM_rint (void);
248 void VM_floor (void);
249 void VM_ceil (void);
250 void VM_nextent (void);
251
252 // REMOVE THESE
253 sizebuf_t *VM_WriteDest (void);
254 void VM_WriteByte (void);
255 void VM_WriteChar (void);
256 void VM_WriteShort (void);
257 void VM_WriteLong (void);
258 void VM_WriteAngle (void);
259 void VM_WriteCoord (void);
260 void VM_WriteString (void);
261 void VM_WriteEntity (void);
262
263 void VM_changelevel (void);
264 void VM_sin (void);
265 void VM_cos (void);
266 void VM_sqrt (void);
267 void VM_randomvec (void);
268 void VM_registercvar (void);
269 void VM_min (void);
270 void VM_max (void);
271 void VM_bound (void);
272 void VM_pow (void);
273 void VM_copyentity (void);
274
275 void VM_Files_Init(void);
276 void VM_Files_CloseAll(void);
277
278 void VM_fopen(void);
279 void VM_fclose(void);
280 void VM_fgets(void);
281 void VM_fputs(void);
282 // used by M_WriteToFile
283 // should be only called from a builtin
284 qfile_t *VM_GetFileHandle( int index );
285
286 void VM_strlen(void);
287 void VM_strcat(void);
288 void VM_substring(void);
289 void VM_stov(void);
290 void VM_strzone(void);
291 void VM_strunzone(void);
292
293 void VM_clcommand (void);
294
295 void VM_tokenize (void);
296 void VM_argv (void);
297
298 void VM_isserver(void);
299 void VM_clientcount(void);
300 void VM_clientstate(void);
301 // not used at the moment -> not included in the common list
302 void VM_getostype(void);
303 void VM_getmousepos(void);
304 void VM_gettime(void);
305 void VM_loadfromdata(void);
306 void VM_parseentitydata(void);
307 void VM_loadfromfile(void);
308 void VM_modulo(void);
309
310 void VM_search_begin(void);
311 void VM_search_end(void);
312 void VM_search_getsize(void);
313 void VM_search_getfilename(void);
314 void VM_chr(void);
315 void VM_iscachedpic(void);
316 void VM_precache_pic(void);
317 void VM_freepic(void);
318 void VM_drawcharacter(void);
319 void VM_drawstring(void);
320 void VM_drawpic(void);
321 void VM_drawfill(void);
322 void VM_drawsetcliparea(void);
323 void VM_drawresetcliparea(void);
324 void VM_getimagesize(void);
325
326 void VM_cin_open( void );
327 void VM_cin_close( void );
328 void VM_cin_setstate( void );
329 void VM_cin_getstate( void );
330 void VM_cin_restart( void );
331
332 void VM_altstr_count( void );
333 void VM_altstr_prepare( void );
334 void VM_altstr_get( void );
335 void VM_altstr_set( void );
336 void VM_altstr_ins(void);
337
338 void VM_Cmd_Init(void);
339 void VM_Cmd_Reset(void);