X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Futil.qh;h=df7a1546bc825197179bc26780486259b196975d;hb=094f9682a7e8258a383ea9574dc7144eaf7ceecc;hp=e4ce0230903c820f7d81568fcb06d7cdde2cc76a;hpb=267b14d636d605b1e52aa5482dff6f6827b5db94;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/util.qh b/qcsrc/common/util.qh index e4ce02309..df7a1546b 100644 --- a/qcsrc/common/util.qh +++ b/qcsrc/common/util.qh @@ -1,4 +1,3 @@ -#define WANT_CONST // commonly used, but better make them macros #define TRUE 1 #define FALSE 0 @@ -105,6 +104,7 @@ float mod(float a, float b) { return a - (floor(a / b) * b); } #endif #define TIME_TO_NTHS(t,n) floor((t) * (n) + 0.4) +string format_time(float seconds); string mmsss(float t); string mmssss(float t); @@ -215,7 +215,7 @@ float compressShotOrigin(vector v); vector decompressShotOrigin(float f); #ifdef SVQC -string rankings_reply, ladder_reply, lsmaps_reply, maplist_reply; // cached replies +string rankings_reply, ladder_reply, lsmaps_reply, maplist_reply, monsterlist_reply; // cached replies string records_reply[10]; #endif @@ -273,6 +273,7 @@ float get_model_parameters_species; string get_model_parameters_sex; float get_model_parameters_weight; float get_model_parameters_age; +string get_model_parameters_description; string get_model_parameters_bone_upperbody; string get_model_parameters_bone_weapon; #define MAX_AIM_BONES 4 @@ -305,9 +306,9 @@ const float XENCODE_LEN = 5; string xencode(float f); float xdecode(string s); -#ifndef COMPAT_XON010_CHANNELS +// Play all sounds via sound7, for access to the extra channels. +// Otherwise, channels 8 to 15 would be blocked for a weird QW feature. #define sound(e,c,s,v,a) sound7(e,c,s,v,a,0,0) -#endif float lowestbit(float f); @@ -364,6 +365,11 @@ typedef entity(entity cur, entity near, entity pass) findNextEntityNearFunction_ typedef float(entity a, entity b, entity pass) isConnectedFunction_t; void FindConnectedComponent(entity e, .entity fld, findNextEntityNearFunction_t nxt, isConnectedFunction_t iscon, entity pass); +#ifdef SVQC +vector combine_to_vector(float x, float y, float z); +vector get_corner_position(entity box, float corner); +#endif + // expand multiple arguments into one argument by stripping parenthesis #define XPD(...) __VA_ARGS__ @@ -373,9 +379,9 @@ void FindConnectedComponent(entity e, .entity fld, findNextEntityNearFunction_t #define fprintf(file, ...) fputs(file, sprintf(__VA_ARGS__)) #define bprintf(...) bprint(sprintf(__VA_ARGS__)) -#ifndef MENUQC +//#ifndef MENUQC void backtrace(string msg); -#endif +//#endif // color code replace, place inside of sprintf and parse the string... defaults described as constants // foreground/normal colors @@ -436,3 +442,14 @@ void dedicated_print(string input); #define CNT_ROUNDSTART 6 float Announcer_PickNumber(float type, float num); #endif + +#ifndef MENUQC +float Mod_Q1BSP_SuperContentsFromNativeContents(float nativecontents); +float Mod_Q1BSP_NativeContentsFromSuperContents(float supercontents); +#endif + +// Quadratic splines (bezier) +vector bezier_quadratic_getpoint(vector a, vector p, vector b, float t); +vector bezier_quadratic_getderivative(vector a, vector p, vector b, float t); + +#define APPEND_TO_STRING(list,sep,add) ((list) = (((list) != "") ? strcat(list, sep, add) : (add)))