From: terencehill Date: Mon, 28 Nov 2011 15:14:20 +0000 (+0100) Subject: Merge remote-tracking branch 'origin' into terencehill/m_toggle_fix X-Git-Tag: xonotic-v0.6.0~74^2~112^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=63616e9884bee2592d61b70d313b8f269278fe23;p=xonotic%2Fxonotic-data.pk3dir.git Merge remote-tracking branch 'origin' into terencehill/m_toggle_fix Conflicts: qcsrc/menu/msys.qh --- 63616e9884bee2592d61b70d313b8f269278fe23 diff --cc qcsrc/dpdefs/menudefs.qc index 000000000,0a7bd6ae4..4b56257a0 mode 000000,100644..100644 --- a/qcsrc/dpdefs/menudefs.qc +++ b/qcsrc/dpdefs/menudefs.qc @@@ -1,0 -1,524 +1,524 @@@ + ////////////////////////////////////////////////////////// + // sys globals + + entity self; + + ///////////////////////////////////////////////////////// + void end_sys_globals; + ///////////////////////////////////////////////////////// + // sys fields + + ///////////////////////////////////////////////////////// + void end_sys_fields; + ///////////////////////////////////////////////////////// + // sys functions + + void() m_init; + void(float keynr, float ascii) m_keydown; + void() m_draw; -void() m_toggle; ++void(float mode) m_toggle; + void() m_shutdown; + + ///////////////////////////////////////////////////////// + // sys constants + /////////////////////////// + // key dest constants + + float KEY_UNKNOWN = -1; + float KEY_GAME = 0; + float KEY_MENU = 2; + float KEY_MENU_GRABBED = 3; + + /////////////////////////// + // file constants + + float FILE_READ = 0; + float FILE_APPEND = 1; + float FILE_WRITE = 2; + + /////////////////////////// + // logical constants (just for completeness) + + float TRUE = 1; + float FALSE = 0; + + /////////////////////////// + // boolean constants + + float true = 1; + float false = 0; + + /////////////////////////// + // 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 = 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 findstring(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; + // 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(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 + float(string str, string sub, float startpos) strstrofs = #221; + float(string str, float ofs) str2chr = #222; + string(float 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; + float(string s1, string s2, float len) strncmp = #228; + float(string s1, string s2) strcasecmp = #229; + float(string s1, string s2, float len) strncasecmp = #230; + + //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 + float() 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_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; + + // 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; + #define GETGAMEDIRINFO_NAME 0 + #define 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; + void sethostcachesort(float fld, float descending) = #619; + void refreshhostcache(void) = #620; + 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;