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