X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fdpdefs%2Fcsprogsdefs.qc;h=324f8082f75bf98f12fa9026a154ed3e91532c55;hp=0d3088f9cfc3acb83e10eae556dea6acd0d748aa;hb=76d3febbda6d7211be82d4535b4c81a96dae55a5;hpb=26ec33d6d19e627b43ac2cb51f83f890b5176293 diff --git a/qcsrc/dpdefs/csprogsdefs.qc b/qcsrc/dpdefs/csprogsdefs.qc index 0d3088f9cf..324f8082f7 100644 --- a/qcsrc/dpdefs/csprogsdefs.qc +++ b/qcsrc/dpdefs/csprogsdefs.qc @@ -335,7 +335,7 @@ void(entity e, vector o) setorigin = #2; void(entity e, string m) setmodel = #3; void(entity e, vector min, vector max) setsize = #4; -void() break = #6; +void() break_to_debugger = #6; float() random = #7; void(entity e, float chan, string samp) sound = #8; vector(vector v) normalize = #9; @@ -447,6 +447,7 @@ 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) strcmp = #228; 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; @@ -910,6 +911,7 @@ const float VF_MINFPS_QUALITY = 401; //1 should lead to an unmodified view //DP_CSQC_V_CALCREFDEF_WIP1 +//DP_CSQC_V_CALCREFDEF_WIP2 //idea: divVerent //darkplaces implementation: divVerent //builtin definitions: @@ -919,9 +921,13 @@ float PMF_DUCKED = 4; float PMF_ONGROUND = 8; float REFDEFFLAG_TELEPORTED = 1; float REFDEFFLAG_JUMPING = 2; +float REFDEFFLAG_DEAD = 4; +float REFDEFFLAG_INTERMISSION = 8; //- use this on the player entity after performing prediction //- pass REFDEFFLAG_TELEPORTED if the player teleported since last frame //- pass REFDEFFLAG_JUMPING if jump button is pressed +//- pass REFDEFFLAG_DEAD if dead (DP_CSQC_V_CALCREFDEF_WIP2) +//- pass REFDEFFLAG_INTERMISSION if in intermission (DP_CSQC_V_CALCREFDEF_WIP2) //- the player entity needs to have origin, velocity, pmove_flags set according // to prediction (the above two PMF_ flags are used in the player's pmove_flags) //- NOTE: to check for this, ALSO OR a check with DP_CSQC_V_CALCREFDEF to also support @@ -1064,13 +1070,14 @@ float SOUNDFLAG_RELIABLE = 1; //- NOTE: to check for this, ALSO OR a check with DP_SND_SOUND7 to also support // the finished extension once done -//DP_MOVETYPEFLYWORLDONLY -//idea: Samual -//darkplaces implementation: Samual -//movetype definitions: -float MOVETYPE_FLY_WORLDONLY = 33; -//description: -//like MOVETYPE_FLY, but does all traces with MOVE_WORLDONLY, and is ignored by MOVETYPE_PUSH. Should only be combined with SOLID_NOT and SOLID_TRIGGER. +//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_TRACE_MOVETYPE_WORLDONLY //idea: LordHavoc @@ -1389,6 +1396,39 @@ void() example_skel_player_delete = // END OF EXAMPLES FOR FTE_CSQC_SKELETONOBJECTS // +//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. + +//DP_QC_ENTITYSTRING +void(string s) loadfromdata = #529; +void(string s) loadfromfile = #530; +void(string s) callfunction = #605; +void(float fh, entity e) writetofile = #606; +float(string s) isfunction = #607; +void(entity e, string s) parseentitydata = #608; + // assorted builtins const float STAT_MOVEVARS_TICRATE = 240; const float STAT_MOVEVARS_TIMESCALE = 241; @@ -1400,8 +1440,19 @@ float PARTICLES_USEALPHA = 1; float particles_alphamin, particles_alphamax; float PARTICLES_USECOLOR = 2; vector particles_colormin, particles_colormax; +float PARTICLES_USEFADE = 4; // fades the COUNT (fade alpha using alphamin/alphamax) +float particles_fade; +float PARTICLES_DRAWASTRAIL = 128; void(float effectindex, entity own, vector org_from, vector org_to, vector dir_from, vector dir_to, float countmultiplier, float flags) boxparticles = #502; float trace_networkentity; const float RF_FULLBRIGHT = 256; const float RF_NOSHADOW = 512; float RF_DYNAMICMODELLIGHT = 8192; + +float gettaginfo_parent; +string gettaginfo_name; +vector gettaginfo_offset; +vector gettaginfo_forward; +vector gettaginfo_right; +vector gettaginfo_up; +float checkpvs(vector viewpos, entity viewee) = #240;