Tweak the system sound to use 0.5 as the default volume, instead of 1.0. This allows...
[voretournament/voretournament.git] / data / qcsrc / menu / mbuiltin.qh
1 //////////////////////////////////////////////////\r
2 // common cmd\r
3 //////////////////////////////////////////////////\r
4 // AK FIXME: Create perhaps a special builtin file for the common cmds\r
5 \r
6 //#define PROFILESTRZONE\r
7 //#define FIXEDFOPEN\r
8 \r
9 float   checkextension(string ext) = #1;\r
10 \r
11 // error cmds\r
12 void    error(string err,...)   = #2;\r
13 void    objerror(string err,...)        = #3;\r
14 \r
15 // print\r
16 \r
17 void    print(string text,...)  = #4;\r
18 void    bprint(string text,...) = #5;\r
19 void    sprint(float clientnum, string text,...) = #6;\r
20 void    centerprint(string text,...) = #7;\r
21 \r
22 // vector stuff\r
23 \r
24 vector  normalize(vector v)     = #8;\r
25 float   vlen(vector v)                  = #9;\r
26 float   vectoyaw(vector v)              = #10;\r
27 vector  vectoangles(vector v)   = #11;\r
28 \r
29 float   random(void)  = #12;\r
30 \r
31 void    cmd(string command, ...) = #13;\r
32 \r
33 // cvar cmds\r
34 \r
35 float   cvar(string name) = #14;\r
36 const string cvar_string(string name) = #71;\r
37 const string cvar_defstring(string name) = #89;\r
38 void    cvar_set(string name, string value) = #15;\r
39 \r
40 void    dprint(string text,...) = #16;\r
41 \r
42 // conversion functions\r
43 \r
44 string  ftos(float f)  = #17;\r
45 float   fabs(float f)   = #18;\r
46 string  vtos(vector v)  = #19;\r
47 string  etos(entity e) = #20;\r
48 \r
49 float   stof(string val,...)  = #21;\r
50 \r
51 entity  spawn(void) = #22;\r
52 void    remove(entity e) = #23;\r
53 \r
54 entity  findstring(entity start, .string _field, string match)  = #24;\r
55 entity  findfloat(entity start, .float _field, float match) = #25;\r
56 entity  findentity(entity start, .entity _field, entity match) = #25;\r
57 \r
58 entity  findchainstring(.string _field, string match) = #26;\r
59 entity  findchainfloat(.float _field, float match) = #27;\r
60 entity  findchainentity(.entity _field, entity match) = #27;\r
61 \r
62 entity  findflags(entity start, .float field, float match) = #87;\r
63 entity  findchainflags(.float field, float match) = #88;\r
64 \r
65 string  precache_file(string file) = #28;\r
66 string  precache_sound(string sample) = #29;\r
67 \r
68 void    crash(void)     = #72;\r
69 void    coredump(void) = #30;\r
70 void    stackdump(void) = #73;\r
71 void    traceon(void) = #31;\r
72 void    traceoff(void) = #32;\r
73 \r
74 void    eprint(entity e)  = #33;\r
75 float   rint(float f) = #34;\r
76 float   floor(float f)  = #35;\r
77 float   ceil(float f)  = #36;\r
78 entity  nextent(entity e)  = #37;\r
79 float   sin(float f)  = #38;\r
80 float   cos(float f)  = #39;\r
81 float   sqrt(float f)  = #40;\r
82 vector  randomvec(void)  = #41;\r
83 \r
84 float   registercvar(string name, string value, float flags)  = #42; // returns 1 if success\r
85 float   min(float f,...)  = #43;\r
86 float (float a, float b, float c) min3 = #43;\r
87 float (float a, float b, float c, float d) min4 = #43;\r
88 float (float a, float b, float c, float d, float e) min5 = #43;\r
89 float (float a, float b, float c, float d, float e, float f) min6 = #43;\r
90 float (float a, float b, float c, float d, float e, float f, float g) min7 = #43;\r
91 float (float a, float b, float c, float d, float e, float f, float g, float h) min8 = #43;\r
92 float   max(float f,...)  = #44;\r
93 float (float a, float b, float c) max3 = #44;\r
94 float (float a, float b, float c, float d) max4 = #44;\r
95 float (float a, float b, float c, float d, float e) max5 = #44;\r
96 float (float a, float b, float c, float d, float e, float f) max6 = #44;\r
97 float (float a, float b, float c, float d, float e, float f, float g) max7 = #44;\r
98 float (float a, float b, float c, float d, float e, float f, float g, float h) max8 = #44;\r
99 float   bound(float min,float value, float max)  = #45;\r
100 float   pow(float a, float b)  = #46;\r
101 void    copyentity(entity src, entity dst)  = #47;\r
102 \r
103 #ifdef FIXEDFOPEN\r
104 float   _fopen( string filename, float mode ) = #48;\r
105 #else\r
106 float   fopen(string filename, float mode)  = #48;\r
107 #endif\r
108 void    fclose(float fhandle)  = #49;\r
109 string  fgets(float fhandle)  = #50;\r
110 void    fputs(float fhandle, string s)  = #51;\r
111 \r
112 float   strlen(string s)  = #52;\r
113 //string        strcat(string s1,string s2,...)  = #53;\r
114 string  strcat(string s1, ...)  = #53;\r
115 string  substring(string s, float start, float length)  = #54;\r
116 \r
117 vector  stov(string s)  = #55;\r
118 \r
119 #ifdef PROFILESTRZONE\r
120 string  _strzone(string s)  = #56;\r
121 void    _strunzone(string s) = #57;\r
122 \r
123 string( string s ) strzone =\r
124 {\r
125         return _strzone( s );\r
126 };\r
127 \r
128 void( string s ) strunzone =\r
129 {\r
130         return _strunzone( s );\r
131 };\r
132 #else\r
133 string  strzone(string s)  = #56;\r
134 void    strunzone(string s) = #57;\r
135 #endif\r
136 \r
137 float   tokenize(string s) = #58;\r
138 float(string s, string separator1, ...) tokenizebyseparator = #479;\r
139 string  argv(float n)  = #59;\r
140 \r
141 float   isserver(void)  = #60;\r
142 float   clientcount(void)  = #61;\r
143 float   clientstate(void)  = #62;\r
144 void    clientcommand(float client, string s)  = #63;\r
145 void    changelevel(string map)  = #64;\r
146 void    localsound(string sample)  = #65;\r
147 vector  getmousepos(void)       = #66;\r
148 float   gettime(void)           = #67;\r
149 void    loadfromdata(string data) = #68;\r
150 void    loadfromfile(string file) = #69;\r
151 \r
152 float   mod(float val, float m) = #70;\r
153 \r
154 float   search_begin(string pattern, float caseinsensitive, float quiet) = #74;\r
155 void    search_end(float handle) = #75;\r
156 float   search_getsize(float handle) = #76;\r
157 string  search_getfilename(float handle, float num) = #77;\r
158 \r
159 string  chr(float ascii) = #78;\r
160 \r
161 float   etof(entity ent) = #79;\r
162 entity  ftoe(float num)  = #80;\r
163 \r
164 float   validstring(string str) = #81;\r
165 \r
166 float   altstr_count(string str) = #82;\r
167 string  altstr_prepare(string str) = #83;\r
168 string  altstr_get(string str, float num) = #84;\r
169 string  altstr_set(string str, float num, string set) = #85;\r
170 string  altstr_ins(string str, float num, string set) = #86;\r
171 \r
172 float   isdemo() = #349;\r
173 \r
174 /////////////////////////////////////////////////\r
175 // Write* Functions\r
176 /////////////////////////////////////////////////\r
177 void    WriteByte(float data, float dest, float desto)  = #401;\r
178 void    WriteChar(float data, float dest, float desto)  = #402;\r
179 void    WriteShort(float data, float dest, float desto) = #403;\r
180 void    WriteLong(float data, float dest, float desto)  = #404;\r
181 void    WriteAngle(float data, float dest, float desto) = #405;\r
182 void    WriteCoord(float data, float dest, float desto) = #406;\r
183 void    WriteString(string data, float dest, float desto)= #407;\r
184 void    WriteEntity(entity data, float dest, float desto) = #408;\r
185 \r
186 //////////////////////////////////////////////////\r
187 // Draw funtions\r
188 //////////////////////////////////////////////////\r
189 \r
190 float   iscachedpic(string name)        = #451;\r
191 string  precache_pic(string name)       = #452;\r
192 void    freepic(string name)            = #453;\r
193 \r
194 float   drawcharacter(vector position, float character, vector scale, vector rgb, float alpha, float flag) = #454;\r
195 \r
196 float   drawstring(vector position, string text, vector scale, vector rgb, float alpha, float flag) = #455;\r
197 float   drawcolorcodedstring(vector position, string text, vector scale, float alpha, float flag) = #467;\r
198 float   stringwidth(string text, float handleColors, vector size) = #468;\r
199 \r
200 float   drawpic(vector position, string pic, vector size, vector rgb, float alpha, float flag) = #456;\r
201 float   drawsubpic(vector position, vector size, string pic, vector srcPosition, vector srcSize, vector rgb, float alpha, float flag) = #469;\r
202 \r
203 float   drawfill(vector position, vector size, vector rgb, float alpha, float flag) = #457;\r
204 \r
205 void    drawsetcliparea(float x, float y, float width, float height) = #458;\r
206 \r
207 void    drawresetcliparea(void) = #459;\r
208 \r
209 vector  drawgetimagesize(string pic) = #460;\r
210 \r
211 float   cin_open(string file, string name)      = #461;\r
212 void    cin_close(string name)                  = #462;\r
213 void    cin_setstate(string name, float type)   = #463;\r
214 float   cin_getstate(string name)               = #464;\r
215 \r
216 ////////////////////////////////////////////////\r
217 // Menu functions\r
218 ////////////////////////////////////////////////\r
219 \r
220 void    setkeydest(float dest)  = #601;\r
221 float   getkeydest(void)        = #602;\r
222 \r
223 void    setmousetarget(float trg) = #603;\r
224 float   getmousetarget(void)      = #604;\r
225 \r
226 float   isfunction(string function_name) = #607;\r
227 void    callfunction(...) = #605;\r
228 void    writetofile(float fhandle, entity ent) = #606;\r
229 vector  getresolution(float number, ...) = #608; // optional argument "isfullscreen"\r
230 string  keynumtostring(float keynum) = #609;\r
231 string  findkeysforcommand(string command) = #610;\r
232 \r
233 float   gethostcachevalue(float type) = #611;\r
234 string  gethostcachestring(float type, float hostnr) = #612;\r
235 \r
236 void    parseentitydata(entity ent, string data) = #613;\r
237 \r
238 float   stringtokeynum(string key) = #614;\r
239 \r
240 void    resethostcachemasks(void) = #615;\r
241 void    sethostcachemaskstring(float mask, float fld, string str, float op) = #616;\r
242 void    sethostcachemasknumber(float mask, float fld, float num, float op) = #617;\r
243 void    resorthostcache(void) = #618;\r
244 void    sethostcachesort(float fld, float descending) = #619;\r
245 void    refreshhostcache(void) = #620;\r
246 float   gethostcachenumber(float fld, float hostnr) = #621;\r
247 float   gethostcacheindexforkey(string key) = #622;\r
248 void    addwantedhostcachekey(string key) = #623;\r
249 string  getextresponse(void) = #624;\r
250 \r
251 // AK the builtin numbers may change - the code might be removed again\r
252 float gecko_create( string name ) = #487;\r
253 void gecko_destroy( string name ) = #488;\r
254 void gecko_navigate( string name, string URI ) = #489;\r
255 float gecko_keyevent( string name, float key, float eventtype ) = #490;\r
256 void gecko_mousemove( string name, float x, float y ) = #491;\r
257 void gecko_resize( string name, float w, float h ) = #492;\r
258 vector gecko_get_texture_extent( string name ) = #493;\r
259 \r
260 //FTE_STRINGS\r
261 //idea: many\r
262 //darkplaces implementation: KrimZon\r
263 //description:\r
264 //various string manipulation functions\r
265 float(string str, string sub, float startpos) strstrofs = #221;\r
266 float(string str, float ofs) str2chr = #222;\r
267 string(float c, ...) chr2str = #223;\r
268 string(float ccase, float calpha, float cnum, string s, ...) strconv = #224;\r
269 string(float chars, string s, ...) strpad = #225;\r
270 string(string info, string key, string value, ...) infoadd = #226;\r
271 string(string info, string key) infoget = #227;\r
272 float(string s1, string s2, float len) strncmp = #228;\r
273 float(string s1, string s2) strcasecmp = #229;\r
274 float(string s1, string s2, float len) strncasecmp = #230;\r
275 \r
276 string(string s) strdecolorize = #477;\r
277 \r
278 //DP_QC_STRINGBUFFERS\r
279 //idea: ??\r
280 //darkplaces implementation: LordHavoc\r
281 //functions to manage string buffer objects - that is, arbitrary length string arrays that are handled by the engine\r
282 float() buf_create = #440;\r
283 void(float bufhandle) buf_del = #441;\r
284 float(float bufhandle) buf_getsize = #442;\r
285 void(float bufhandle_from, float bufhandle_to) buf_copy = #443;\r
286 void(float bufhandle, float sortpower, float backward) buf_sort = #444;\r
287 string(float bufhandle, string glue) buf_implode = #445;\r
288 string(float bufhandle, float string_index) bufstr_get = #446;\r
289 void(float bufhandle, float string_index, string str) bufstr_set = #447;\r
290 float(float bufhandle, string str, float order) bufstr_add = #448;\r
291 void(float bufhandle, float string_index) bufstr_free = #449;\r
292 void(float bufhandle, string pattern, string antipattern) buf_cvarlist = #517;\r
293 string(string name) cvar_description = #518;\r
294 \r
295 //DP_QC_CRC16\r
296 //idea: div0\r
297 //darkplaces implementation: div0\r
298 //Some hash function to build hash tables with. This has to be be the CRC-16-CCITT that is also required for the QuakeWorld download protocol.\r
299 //When caseinsensitive is set, the CRC is calculated of the lower cased string.\r
300 float(float caseinsensitive, string s, ...) crc16 = #494;\r
301 \r
302 //DP_QC_CVAR_TYPE\r
303 float(string name) cvar_type = #495;\r
304 float CVAR_TYPEFLAG_EXISTS = 1;\r
305 float CVAR_TYPEFLAG_SAVED = 2;\r
306 float CVAR_TYPEFLAG_PRIVATE = 4;\r
307 float CVAR_TYPEFLAG_ENGINE = 8;\r
308 float CVAR_TYPEFLAG_HASDESCRIPTION = 16;\r
309 float CVAR_TYPEFLAG_READONLY = 32;\r
310 \r
311 //DP_QC_URI_ESCAPE\r
312 //idea: div0\r
313 //darkplaces implementation: div0\r
314 //URI::Escape's functionality\r
315 string(string in) uri_escape = #510;\r
316 string(string in) uri_unescape = #511;\r
317 \r
318 string(string, float) netaddress_resolve = #625;\r
319 string(string search, string replace, string subject) strreplace = #484;\r
320 \r
321 string(float uselocaltime, string format, ...) strftime = #478;\r
322 \r
323 #ifdef FIXEDFOPEN\r
324 float   fopen( string filename, float mode ) =\r
325 {\r
326         local float handle;\r
327         if( mode == FILE_READ ) {\r
328                 return _fopen( filename, mode );\r
329         }\r
330 \r
331         // check for data/\r
332         filename = strzone( filename );\r
333         if( substring( filename, 0, 5 ) != "data/" ) {\r
334                 print( "menu: fopen: all output must go into data/!\n" );\r
335                 return -1;\r
336         }\r
337         handle = _fopen( substring( filename, 5, 10000 ), mode );\r
338         strunzone( filename );\r
339         return handle;\r
340 };\r
341 #endif\r
342 \r
343 float(string s) tokenize_console = #514;\r
344 float(float i) argv_start_index = #515;\r
345 float(float i) argv_end_index = #516;\r
346 \r
347 string(float, float) getgamedirinfo = #626;\r
348 #define GETGAMEDIRINFO_NAME 0\r
349 #define GETGAMEDIRINFO_DESCRIPTION 1\r
350 float log(float f) = #532;\r