X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Futil.qh;h=2afe65f3735b128b128d99afd2d6070688cc5aa8;hb=73b5db7874a1916b8d2fff36ab49607314a925dc;hp=503aa2d2a0f9452fa81232493caa94e95383477b;hpb=3183071eda8d27f485ed9d2395d353b3b58fbad1;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/util.qh b/qcsrc/common/util.qh index 503aa2d2a..2afe65f37 100644 --- a/qcsrc/common/util.qh +++ b/qcsrc/common/util.qh @@ -1,8 +1,3 @@ -#define WANT_CONST -// commonly used, but better make them macros -#define TRUE 1 -#define FALSE 0 - // a dummy macro that prevents the "hanging ;" warning #define ENDS_WITH_CURLY_BRACE @@ -87,29 +82,25 @@ vector colormapPaletteColor(float c, float isPants); string fstrunzone(string s); // database (NOTE: keys are case sensitive) -void db_save(float db, string filename); -void db_dump(float db, string pFilename); -float db_create(); -float db_load(string filename); -void db_close(float db); -string db_get(float db, string key); -void db_put(float db, string key, string value); +void db_save(int db, string filename); +void db_dump(int db, string pFilename); +int db_create(); +int db_load(string filename); +void db_close(int db); +string db_get(int db, string key); +void db_put(int db, string key, string value); // stringbuffer loading/saving -float buf_load(string filename); -void buf_save(float buf, string filename); - -// modulo function -#ifndef MENUQC -float mod(float a, float b) { return a - (floor(a / b) * b); } -#endif +int buf_load(string filename); +void buf_save(int buf, string filename); #define TIME_TO_NTHS(t,n) floor((t) * (n) + 0.4) +string format_time(float seconds); string mmsss(float t); string mmssss(float t); -#define TIME_DECIMALS 2 -#define TIME_FACTOR 100 +const float TIME_DECIMALS = 2; +const float TIME_FACTOR = 100; #define TIME_ENCODED_TOSTRING(n) mmssss(n) #define RACE_RECORD "/race100record/" #define CTS_RECORD "/cts100record/" @@ -209,8 +200,6 @@ vector solve_quadratic(float a, float b, float c); vector solve_shotdirection(vector myorg, vector myvel, vector eorg, vector evel, float spd, float newton_style); vector get_shotvelocity(vector myvel, vector mydir, float spd, float newton_style, float mi, float ma); -void check_unacceptable_compiler_bugs(); - float compressShotOrigin(vector v); vector decompressShotOrigin(float f); @@ -273,9 +262,10 @@ 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 +const float MAX_AIM_BONES = 4; string get_model_parameters_bone_aim[MAX_AIM_BONES]; float get_model_parameters_bone_aimweight[MAX_AIM_BONES]; float get_model_parameters_fixbone; @@ -305,9 +295,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 +354,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 +368,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 @@ -428,12 +423,12 @@ void dedicated_print(string input); #endif #ifndef MENUQC -#define CNT_NORMAL 1 -#define CNT_GAMESTART 2 -#define CNT_IDLE 3 -#define CNT_KILL 4 -#define CNT_RESPAWN 5 -#define CNT_ROUNDSTART 6 +const float CNT_NORMAL = 1; +const float CNT_GAMESTART = 2; +const float CNT_IDLE = 3; +const float CNT_KILL = 4; +const float CNT_RESPAWN = 5; +const float CNT_ROUNDSTART = 6; float Announcer_PickNumber(float type, float num); #endif @@ -445,3 +440,8 @@ float Mod_Q1BSP_NativeContentsFromSuperContents(float supercontents); // 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))) + +// Returns the correct difference between two always increasing numbers +#define COMPARE_INCREASING(to,from) (to < from ? from + to + 2 : to - from) \ No newline at end of file