]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/dpdefs/menudefs.qh
Optimize vehicle impact code by only calling vlen() if damage would be taken
[xonotic/xonotic-data.pk3dir.git] / qcsrc / dpdefs / menudefs.qh
index 83cb073a3e872e161e1ce4b3badd92e9a7fffe47..036d87ff2fa8e7a213932d69fc66e84e30700a94 100644 (file)
-#ifndef MENUDEFS_H
-#define MENUDEFS_H
+#pragma once
 
 #pragma noref 1
 
-//////////////////////////////////////////////////////////
-// sys globals
+#define true _true
+#define false _false
+#define TRUE _TRUE
+#define FALSE _FALSE
 
-entity self;
+#define spawn _spawn
 
-/////////////////////////////////////////////////////////
-void           end_sys_globals;
-/////////////////////////////////////////////////////////
-// sys fields
+#include "upstream/menudefs.qc"
 
-/////////////////////////////////////////////////////////
-void           end_sys_fields;
-/////////////////////////////////////////////////////////
-// sys functions
+#undef true
+#undef false
+#undef TRUE
+#undef FALSE
 
-void() m_init;
-void(float keynr, float ascii) m_keydown;
-void(float width, float height) m_draw;
-void(float mode) m_toggle;
-void() m_shutdown;
-// optional: float(float) m_gethostcachecategory;
+#undef spawn
 
-/////////////////////////////////////////////////////////
-// sys constants
-///////////////////////////
-// key dest constants
+#define localcmd cmd
 
-float KEY_UNKNOWN      =       -1;
-float KEY_GAME                 =       0;
-float KEY_MENU         =       2;
-float KEY_MENU_GRABBED =       3;
+int(string str, string sub, int startpos) _strstrofs = #221;
+#define strstrofs _strstrofs
+int(string str, int ofs) _str2chr = #222;
+#define str2chr _str2chr
+string(int c, ...) _chr2str = #223;
+#define chr2str _chr2str
 
-///////////////////////////
-// file constants
+int(string s1, string s2) _strcmp = #228;
+#define strcmp _strcmp
+int(string s1, string s2, int len) _strncmp = #228;
+#define strncmp _strncmp
+int(string s1, string s2) _strcasecmp = #229;
+#define strcasecmp _strcasecmp
+int(string s1, string s2, int len) _strncasecmp = #230;
+#define strncasecmp _strncasecmp
 
-float FILE_READ = 0;
-float FILE_APPEND = 1;
-float FILE_WRITE = 2;
+int() _buf_create = #440;
+#define buf_create _buf_create
 
-///////////////////////////
-// msg constants
-
-float MSG_BROADCAST            = 0;            // unreliable to all
-float MSG_ONE                  = 1;            // reliable to one (msg_entity)
-float MSG_ALL                  = 2;            // reliable to all
-float MSG_INIT                 = 3;            // write to the init string
-
-/////////////////////////////
-// mouse target constants
-
-float MT_MENU = 1;
-float MT_CLIENT = 2;
-
-/////////////////////////
-// client state constants
-
-float CS_DEDICATED             = 0;
-float CS_DISCONNECTED  = 1;
-float CS_CONNECTED             = 2;
-
-///////////////////////////
-// blend flags
-
-float DRAWFLAG_NORMAL          = 0;
-float DRAWFLAG_ADDITIVE        = 1;
-float DRAWFLAG_MODULATE        = 2;
-float DRAWFLAG_2XMODULATE   = 3;
-
-///////////////////////////
-// null entity (actually it is the same like the world entity)
-
-entity null_entity;
-
-///////////////////////////
-// error constants
-
-// file handling
-float ERR_CANNOTOPEN                   = -1; // fopen
-float ERR_NOTENOUGHFILEHANDLES         = -2; // fopen
-float ERR_INVALIDMODE                  = -3; // fopen
-float ERR_BADFILENAME                  = -4; // fopen
-
-// drawing functions
-
-float ERR_NULLSTRING                   = -1;
-float ERR_BADDRAWFLAG                  = -2;
-float ERR_BADSCALE                             = -3;
-float ERR_BADSIZE                              = -3; // same as ERR_BADSCALE
-float ERR_NOTCACHED                            = -4;
-
-// server list stuff
-float SLIST_HOSTCACHEVIEWCOUNT  = 0;
-float SLIST_HOSTCACHETOTALCOUNT = 1;
-float SLIST_MASTERQUERYCOUNT   = 2;
-float SLIST_MASTERREPLYCOUNT   = 3;
-float SLIST_SERVERQUERYCOUNT   = 4;
-float SLIST_SERVERREPLYCOUNT   = 5;
-float SLIST_SORTFIELD          = 6;
-float SLIST_SORTDESCENDING     = 7;
-float SLIST_LEGACY_LINE1       = 1024;
-float SLIST_LEGACY_LINE2       = 1025;
-float SLIST_TEST_CONTAINS      = 0;
-float SLIST_TEST_NOTCONTAIN    = 1;
-float SLIST_TEST_LESSEQUAL     = 2;
-float SLIST_TEST_LESS          = 3;
-float SLIST_TEST_EQUAL         = 4;
-float SLIST_TEST_GREATER       = 5;
-float SLIST_TEST_GREATEREQUAL  = 6;
-float SLIST_TEST_NOTEQUAL      = 7;
-float SLIST_TEST_STARTSWITH    = 8;
-float SLIST_TEST_NOTSTARTSWITH = 9;
-float SLIST_MASK_AND = 0;
-float SLIST_MASK_OR  = 512;
-
-// font stuff
-float FONT_DEFAULT     = 0;
-float FONT_CONSOLE     = 1;
-float FONT_SBAR        = 2;
-float FONT_NOTIFY      = 3;
-float FONT_CHAT        = 4;
-float FONT_CENTERPRINT = 5;
-float FONT_INFOBAR     = 6;
-float FONT_MENU        = 7;
-float FONT_USER        = 8; // add to this the index, like FONT_USER+3 = user3. At least 8 of them are supported.
-float drawfont;
-
-/* not supported at the moment
-///////////////////////////
-// os constants
-
-float OS_WINDOWS       = 0;
-float OS_LINUX         = 1;
-float OS_MAC           = 2;
-*/
-
-
-
-
-
-
-
-
-
-
-//////////////////////////////////////////////////
-// common cmd
-//////////////////////////////////////////////////
-// AK FIXME: Create perhaps a special builtin file for the common cmds
-
-void   checkextension(string ext)      = #1;
-
-// error cmds
-void   error(string err,...)           = #2;
-void   objerror(string err,...)        = #3;
-
-// print
-
-void   print(string text,...)                   = #4;
-void   bprint(string text,...)                  = #5;
-void   sprint(float clientnum, string text,...) = #6;
-void   centerprint(string text,...)             = #7;
-
-// vector stuff
-
-vector normalize(vector v)             = #8;
-float  vlen(vector v)                  = #9;
-float          vectoyaw(vector v)              = #10;
-vector         vectoangles(vector v)           = #11;
-
-float  random(void)  = #12;
-
-void   cmd(string command, ...) = #13;
-
-// cvar cmds
-
-float  cvar(string name)                       = #14;
-const string str_cvar(string name)             = #71;
-void   cvar_set(string name, string value)     = #15;
-
-void   dprint(string text,...) = #16;
-
-// conversion functions
-
-string ftos(float f)   = #17;
-float  fabs(float f)   = #18;
-string vtos(vector v)  = #19;
-string etos(entity e)  = #20;
-
-float  stof(string val,...)  = #21;
-
-entity spawn(void)             = #22;
-void   remove(entity e)        = #23;
-
-entity find(entity start, .string field, string match)         = #24;
-entity findfloat(entity start, .float field, float match)      = #25;
-entity findentity(entity start, .entity field, entity match)   = #25;
-
-entity findchainstring(.string field, string match)    = #26;
-entity findchainfloat(.float field, float match)       = #27;
-entity findchainentity(.entity field, entity match)    = #27;
-
-string precache_file(string file)      = #28;
-string precache_sound(string sample)   = #29;
-
-void   crash(void)     = #72;
-void   coredump(void)  = #30;
-void   stackdump(void) = #73;
-void   traceon(void)   = #31;
-void   traceoff(void)  = #32;
-
-void   eprint(entity e)        = #33;
-float  rint(float f)           = #34;
-float  floor(float f)          = #35;
-float  ceil(float f)           = #36;
-entity nextent(entity e)       = #37;
-float  sin(float f)            = #38;
-float  cos(float f)            = #39;
-float  sqrt(float f)           = #40;
-vector randomvec(void)         = #41;
-
-float  registercvar(string name, string value, float flags)  = #42; // returns 1 if success
-
-float  min(float f,...)  = #43;
-float  max(float f,...)  = #44;
-
-float  bound(float min,float value, float max)  = #45;
-float  pow(float a, float b)  = #46;
-
-void   copyentity(entity src, entity dst)  = #47;
-
-float  fopen(string filename, float mode)  = #48;
-void   fclose(float fhandle)  = #49;
-string fgets(float fhandle)  = #50;
-void   fputs(float fhandle, string s)  = #51;
-
-float  strlen(string s)  = #52;
-string strcat(string s1,string s2,...)  = #53;
-string substring(string s, float start, float length)  = #54;
-
-vector stov(string s)  = #55;
-
-string strzone(string s)  = #56;
-void   strunzone(string s) = #57;
-
-float  tokenize(string s)  = #58;
-string argv(float n)  = #59;
-
-float  isserver(void)  = #60;
-float  clientcount(void)  = #61;
-float  clientstate(void)  = #62;
-void   clientcommand(float client, string s)  = #63;
-void   changelevel(string map)  = #64;
-void   localsound(string sample)  = #65;
-vector getmousepos(void)       = #66;
-float  gettime(void)           = #67;
-void   loadfromdata(string data) = #68;
-void   loadfromfile(string file) = #69;
-
-float  mod(float val, float m) = #70;
-
-float  search_begin(string pattern, float caseinsensitive, float quiet) = #74;
-void   search_end(float handle) = #75;
-float  search_getsize(float handle) = #76;
-string search_getfilename(float handle, float num) = #77;
-
-string chr(float ascii) = #78;
-
-/////////////////////////////////////////////////
-// Write* Functions
-/////////////////////////////////////////////////
-void   WriteByte(float data, float dest, float desto)  = #401;
-void   WriteChar(float data, float dest, float desto)  = #402;
-void   WriteShort(float data, float dest, float desto) = #403;
-void   WriteLong(float data, float dest, float desto)  = #404;
-void   WriteAngle(float data, float dest, float desto) = #405;
-void   WriteCoord(float data, float dest, float desto) = #406;
-void   WriteString(string data, float dest, float desto)= #407;
-void   WriteEntity(entity data, float dest, float desto) = #408;
-
-//////////////////////////////////////////////////
-// Draw funtions
-//////////////////////////////////////////////////
-
-float  iscachedpic(string name)        = #451;
-string precache_pic(string name, ...)  = #452;
-void   freepic(string name)            = #453;
-
-float  drawcharacter(vector position, float character, vector scale, vector rgb, float alpha, float flag) = #454;
-
-float  drawstring(vector position, string text, vector scale, vector rgb, float alpha, float flag) = #455;
-
-float  drawcolorcodedstring(vector position, string text, vector scale, float alpha, float flag) = #467;
-
-vector drawcolorcodedstring2(vector position, string text, vector scale, vector rgb, float alpha, float flag) = #467;
-
-float  drawpic(vector position, string pic, vector size, vector rgb, float alpha, float flag) = #456;
-
-float  drawfill(vector position, vector size, vector rgb, float alpha, float flag) = #457;
-
-void   drawsetcliparea(float x, float y, float width, float height) = #458;
-
-void   drawresetcliparea(void) = #459;
-
-vector  drawgetimagesize(string pic) = #460;
-
-////////////////////////////////////////////////
-// Menu functions
-////////////////////////////////////////////////
-
-void   setkeydest(float dest)  = #601;
-float  getkeydest(void)        = #602;
-
-void   setmousetarget(float trg) = #603;
-float  getmousetarget(void)      = #604;
-
-float  isfunction(string function_name) = #607;
-void   callfunction(...) = #605;
-void   writetofile(float fhandle, entity ent) = #606;
-vector getresolution(float number) = #608;
-string keynumtostring(float keynum) = #609;
-
-float  gethostcachevalue(float type) = #611;
-string gethostcachestring(float type, float hostnr) = #612;
-
-//DP_CSQC_BINDMAPS
-//idea: daemon, motorsep
-//darkplaces implementation: divVerent
-//builtin definitions:
-string(float key, float bindmap) getkeybind_bindmap = #342;
-float(float key, string bind, float bindmap) setkeybind_bindmap = #630;
-vector(void) getbindmaps = #631;
-float(vector bm) setbindmaps = #632;
-string(string command, float bindmap) findkeysforcommand = #610;
-float(string key) stringtokeynum = #341;
-//<also allowed builtin number to match EXT_CSQC> string(float keynum) keynumtostring = #340;
-//description: key bind setting/getting including support for switchable
-//bindmaps.
-
-//DP_CRYPTO
-//idea: divVerent
-//darkplaces implementation: divVerent
-//field definitions: (MENUQC)
-string(string serveraddress) crypto_getkeyfp = #633; // retrieves the cached host key's CA fingerprint of a server given by IP address
-string(string serveraddress) crypto_getidfp = #634; // retrieves the cached host key fingerprint of a server given by IP address
-string(string serveraddress) crypto_getencryptlevel = #635; // 0 if never encrypting, 1 supported, 2 requested, 3 required, appended by list of allowed methods in order of preference ("AES128"), preceded by a space each
-string(float i) crypto_getmykeyfp = #636; // retrieves the CA key fingerprint of a given CA slot, or "" if slot is unused but more to come, or string_null if end of list
-string(float i) crypto_getmyidfp = #637; // retrieves the ID fingerprint of a given CA slot, or "" if slot is unused but more to come, or string_null if end of list
-float CRYPTO_IDSTATUS_OUTOFRANGE = -1;
-float CRYPTO_IDSTATUS_EMPTY = 0;
-float CRYPTO_IDSTATUS_UNSIGNED = 1;
-float CRYPTO_IDSTATUS_SIGNED = 2;
-float(float i) crypto_getmyidstatus = #641; // retrieves the ID's status of a given CA slot, or 0 if slot is unused but more to come, or -1 if end of list
-float(string url, float id, string content_type, string delim, float buf, float keyid) crypto_uri_postbuf = #513;
-//description:
-//use -1 as buffer handle to justs end delim as postdata
-
-//DP_GECKO_SUPPORT
-//idea: Res2k, BlackHC
-//darkplaces implementation: Res2k, BlackHC
-//constant definitions:
-float GECKO_BUTTON_DOWN         = 0;
-float GECKO_BUTTON_UP           = 1;
-// either use down and up or just press but not all of them!
-float GECKO_BUTTON_PRESS        = 2;
-// use this for mouse events if needed?
-float GECKO_BUTTON_DOUBLECLICK  = 3;
-//builtin definitions:
-float gecko_create( string name ) = #487;
-void gecko_destroy( string name ) = #488;
-void gecko_navigate( string name, string URI ) = #489;
-float gecko_keyevent( string name, float key, float eventtype ) = #490;
-void gecko_mousemove( string name, float x, float y ) = #491;
-void gecko_resize( string name, float w, float h ) = #492;
-vector gecko_get_texture_extent( string name ) = #493;
-//engine-called QC prototypes:
-//string(string name, string query) Qecko_Query;
-//description:
-//provides an interface to the offscreengecko library and allows for internet browsing in games
-
-//FTE_STRINGS
-//idea: many
-//darkplaces implementation: KrimZon
-//description:
-//various string manipulation functions
-int(string str, string sub, float startpos) strstrofs = #221;
-int(string str, float ofs) str2chr = #222;
-string(int c, ...) chr2str = #223;
-string(float ccase, float calpha, float cnum, string s, ...) strconv = #224;
-string(float chars, string s, ...) strpad = #225;
-string(string info, string key, string value, ...) infoadd = #226;
-string(string info, string key) infoget = #227;
-int(string s1, string s2) strcmp = #228;
-int(string s1, string s2, float len) strncmp = #228;
-int(string s1, string s2) strcasecmp = #229;
-int(string s1, string s2, float len) strncasecmp = #230;
-
-//DP_PRECACHE_PIC_FLAGS
-//idea: divVerent
-//darkplaces implementation: divVerent
-//constant definitions:
-float PRECACHE_PIC_FROMWAD = 1; // this one actually is part of EXT_CSQC
-float PRECACHE_PIC_NOTPERSISTENT = 2; // picture may get deallocated when unused
-float PRECACHE_PIC_MIPMAP = 8; // mipmap the texture for possibly better downscaling at memory expense
-//notes: these constants are given as optional second argument to precache_pic()
-
-//DP_QC_CRC16
-//idea: div0
-//darkplaces implementation: div0
-//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.
-//When caseinsensitive is set, the CRC is calculated of the lower cased string.
-float(float caseinsensitive, string s, ...) crc16 = #494;
-
-//DP_QC_CVAR_TYPE
-float(string name) cvar_type = #495;
-float CVAR_TYPEFLAG_EXISTS = 1;
-float CVAR_TYPEFLAG_SAVED = 2;
-float CVAR_TYPEFLAG_PRIVATE = 4;
-float CVAR_TYPEFLAG_ENGINE = 8;
-float CVAR_TYPEFLAG_HASDESCRIPTION = 16;
-float CVAR_TYPEFLAG_READONLY = 32;
-
-//DP_QC_STRINGBUFFERS
-//idea: ??
-//darkplaces implementation: LordHavoc
-//functions to manage string buffer objects - that is, arbitrary length string arrays that are handled by the engine
-int() buf_create = #440;
-void(float bufhandle) buf_del = #441;
-float(float bufhandle) buf_getsize = #442;
-void(float bufhandle_from, float bufhandle_to) buf_copy = #443;
-void(float bufhandle, float sortpower, float backward) buf_sort = #444;
-string(float bufhandle, string glue) buf_implode = #445;
-string(float bufhandle, float string_index) bufstr_get = #446;
-void(float bufhandle, float string_index, string str) bufstr_set = #447;
-float(float bufhandle, string str, float order) bufstr_add = #448;
-void(float bufhandle, float string_index) bufstr_free = #449;
-void(float bufhandle, string pattern, string antipattern) buf_cvarlist = #517;
-
-//DP_QC_STRING_CASE_FUNCTIONS
-//idea: Dresk
-//darkplaces implementation: LordHavoc / Dresk
-//builtin definitions:
-string(string s) strtolower = #480; // returns the passed in string in pure lowercase form
-string(string s) strtoupper = #481; // returns the passed in string in pure uppercase form
-//description:
-//provides simple string uppercase and lowercase functions
-
-//DP_QC_CVAR_DESCRIPTION
-//idea: divVerent
-//DarkPlaces implementation: divVerent
-//builtin definitions:
-string(string name) cvar_description = #518;
-//description:
-//returns the description of a cvar
-
-//DP_QC_DIGEST
-//idea: motorsep, Spike
-//DarkPlaces implementation: divVerent
-//builtin definitions:
-string(string digest, string data, ...) digest_hex = #639;
-//description:
-//returns a given hex digest of given data
-//the returned digest is always encoded in hexadecimal
-//only the "MD4" digest is always supported!
-//if the given digest is not supported, string_null is returned
-//the digest string is matched case sensitively, use "MD4", not "md4"!
-
-//DP_QC_URI_ESCAPE
-//idea: div0
-//darkplaces implementation: div0
-//URI::Escape's functionality
-string(string in) uri_escape = #510;
-string(string in) uri_unescape = #511;
-
-//DP_QC_URI_GET
-//idea: divVerent
-//darkplaces implementation: divVerent
-//loads text from an URL into a string
-//returns 1 on success of initiation, 0 if there are too many concurrent
-//connections already or if the URL is invalid
-//the following callback will receive the data and MUST exist!
-//  void(float id, float status, string data) URI_Get_Callback;
-//status is either
-//  negative for an internal error,
-//  0 for success, or
-//  the HTTP response code on server error (e.g. 404)
-//if 1 is returned by uri_get, the callback will be called in the future
-float(string url, float id) uri_get = #513;
-//DP_QC_URI_POST
-//idea: divVerent
-//darkplaces implementation: divVerent
-//loads text from an URL into a string after POSTing via HTTP
-//works like uri_get, but uri_post sends data with Content-Type: content_type to the server
-//and uri_post sends the string buffer buf, joined using the delimiter delim
-float(string url, float id, string content_type, string data) uri_post = #513;
-float(string url, float id, string content_type, string delim, float buf) uri_postbuf = #513;
-
-//DP_QC_ENTITYDATA
-//idea: KrimZon
-//darkplaces implementation: KrimZon
-//builtin definitions:
-float() numentityfields = #496;
-string(float fieldnum) entityfieldname = #497;
-float(float fieldnum) entityfieldtype = #498;
-string(float fieldnum, entity ent) getentityfieldstring = #499;
-float(float fieldnum, entity ent, string s) putentityfieldstring = #500;
-//constants:
-//Returned by entityfieldtype
-float FIELD_STRING   = 1;
-float FIELD_FLOAT    = 2;
-float FIELD_VECTOR   = 3;
-float FIELD_ENTITY   = 4;
-float FIELD_FUNCTION = 6;
-//description:
-//Versatile functions intended for storing data from specific entities between level changes, but can be customized for some kind of partial savegame.
-//WARNING: .entity fields cannot be saved and restored between map loads as they will leave dangling pointers.
-//numentityfields returns the number of entity fields. NOT offsets. Vectors comprise 4 fields: v, v_x, v_y and v_z.
-//entityfieldname returns the name as a string, eg. "origin" or "classname" or whatever.
-//entityfieldtype returns a value that the constants represent, but the field may be of another type in more exotic progs.dat formats or compilers.
-//getentityfieldstring returns data as would be written to a savegame, eg... "0.05" (float), "0 0 1" (vector), or "Hello World!" (string). Function names can also be returned.
-//putentityfieldstring puts the data returned by getentityfieldstring back into the entity.
-
-// assorted undocumented extensions
-string(string, float) netaddress_resolve = #625;
-string(string search, string replace, string subject) strreplace = #484;
-string(float uselocaltime, string format, ...) strftime = #478;
-float(string s) tokenize_console = #514;
-float(float i) argv_start_index = #515;
-float(float i) argv_end_index = #516;
-string(float, float) getgamedirinfo = #626;
-const float GETGAMEDIRINFO_NAME = 0;
-const float GETGAMEDIRINFO_DESCRIPTION = 1;
-float log(float f) = #532;
-string(string format, ...) sprintf = #627;
-string(string s) strdecolorize = #477;
-entity findflags(entity start, .float field, float match) = #87;
-entity findchainflags(.float field, float match) = #88;
-float(string s, string separator1, ...) tokenizebyseparator = #479;
-float  etof(entity ent) = #79;
-entity         ftoe(float num)  = #80;
-float   validstring(string str) = #81;
-float  altstr_count(string str) = #82;
-string  altstr_prepare(string str) = #83;
-string  altstr_get(string str, float num) = #84;
-string  altstr_set(string str, float num, string set) = #85;
-string         altstr_ins(string str, float num, string set) = #86;
-float  isdemo() = #349;
-float  drawsubpic(vector position, vector size, string pic, vector srcPosition, vector srcSize, vector rgb, float alpha, float flag) = #469;
-//vector       getresolution(float number, ...) = #608; // optional argument "isfullscreen"
-void   parseentitydata(entity ent, string data) = #613;
-void   resethostcachemasks(void) = #615;
-void   sethostcachemaskstring(float mask, float fld, string str, float op) = #616;
-void   sethostcachemasknumber(float mask, float fld, float num, float op) = #617;
-void   resorthostcache(void) = #618;
-float SLSF_DESCENDING = 1;
-float SLSF_FAVORITES = 2;
-float SLSF_CATEGORIES = 4;
-void   sethostcachesort(float fld, float slsf) = #619;
-void   refreshhostcache(...) = #620;  // optional boolean argument "clear_list"
-float  gethostcachenumber(float fld, float hostnr) = #621;
-float  gethostcacheindexforkey(string key) = #622;
-void   addwantedhostcachekey(string key) = #623;
-string getextresponse(void) = #624;
-const string cvar_string(string name) = #71;
-const string cvar_defstring(string name) = #89;
-float  stringwidth(string text, float handleColors, vector size) = #468;
+bool(entity ent) wasfreed = #353;
 
 #pragma noref 0
-
-#endif