]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/util.qh
Merge branch 'terencehill/eraseable_functions'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / util.qh
index 81acde950eba2fc63cd450375f0bcebb9c1e7b16..da86bf22ea63eccf1c7a408c815bb2d049e7f6ad 100644 (file)
@@ -1,18 +1,19 @@
 #pragma once
 
-#ifndef MENUQC
+#ifdef GAMEQC
 
 vector real_origin(entity ent);
 #endif
 
+IntrusiveList g_saved_cvars;
+STATIC_INIT(g_saved_cvars) { g_saved_cvars = IL_NEW(); }
+
 // this returns a tempstring containing a copy of s with additional \n newlines added, it also replaces \n in the text with a real newline
 // NOTE: s IS allowed to be a tempstring
 string wordwrap(string s, float l);
-#ifndef MENUQC
-#ifndef CSQC
+#ifdef SVQC
 void wordwrap_sprint(entity to, string s, float l);
 #endif
-#endif
 void wordwrap_cb(string s, float l, void(string) callback);
 
 #ifndef SVQC
@@ -48,6 +49,8 @@ void db_put(int db, string key, string value);
 int buf_load(string filename);
 void buf_save(int buf, string filename);
 
+// adding just 0.4 for race times so it rounds down in the .5 case (matching the timer display)
+// FIXME it doesn't round properly
 #define TIME_TO_NTHS(t,n) floor((t) * (n) + 0.4)
 string format_time(float seconds);
 string mmsss(float t);
@@ -58,6 +61,7 @@ const float TIME_FACTOR = 100;
 #define TIME_ENCODED_TOSTRING(n) mmssss(n)
 #define RACE_RECORD "/race100record/"
 #define CTS_RECORD "/cts100record/"
+#define CTF_RECORD "/ctf100record/"
 #define TIME_ENCODE(t) TIME_TO_NTHS(t, TIME_FACTOR)
 #define TIME_DECODE(n) ((n) / TIME_FACTOR)
 
@@ -66,7 +70,7 @@ string ScoreString(float vflags, float value);
 vector decompressShortVector(float data);
 float compressShortVector(vector vec);
 
-#ifndef MENUQC
+#ifdef GAMEQC
 float CheckWireframeBox(entity forent, vector v0, vector dvx, vector dvy, vector dvz);
 #endif
 
@@ -79,7 +83,7 @@ float cvar_value_issafe(string s);
 float cvar_settemp(string pKey, string pValue);
 float cvar_settemp_restore();
 
-#ifndef MENUQC
+#ifdef GAMEQC
 // modes: 0 = trust q3map2 (_mini images)
 //        1 = trust tracebox (_radar images)
 // in both modes, mapinfo's "size" overrides
@@ -101,15 +105,6 @@ void get_mi_min_max_texcoords(float mode);
 float almost_equals(float a, float b);
 float almost_in_bounds(float a, float b, float c);
 
-float power2of(float e);
-float log2of(float x);
-
-vector rgb_to_hsl(vector rgb);
-vector hsl_to_rgb(vector hsl);
-vector rgb_to_hsv(vector rgb);
-vector hsv_to_rgb(vector hsv);
-string rgb_to_hexcolor(vector rgb);
-
 float boxesoverlap(vector m1, vector m2, vector m3, vector m4);
 float boxinsidebox(vector smins, vector smaxs, vector bmins, vector bmaxs);
 
@@ -148,23 +143,13 @@ string rankings_reply, ladder_reply, lsmaps_reply, maplist_reply, monsterlist_re
 string records_reply[10];
 #endif
 
-#ifndef MENUQC
+#ifdef GAMEQC
 vector healtharmor_maxdamage(float h, float a, float armorblock, int deathtype); // returns vector: maxdamage, armorideal, 1 if fully armored
 vector healtharmor_applydamage(float a, float armorblock, int deathtype, float damage); // returns vector: take, save, 0
 #endif
 
 string getcurrentmod();
 
-#ifndef MENUQC
-#ifdef CSQC
-int ReadInt24_t();
-#else
-void WriteInt24_t(float dest, float val);
-void WriteInt48_t(float dest, vector val);
-void WriteInt72_t(float dest, vector val);
-#endif
-#endif
-
 float float2range11(float f);
 float float2range01(float f);
 
@@ -180,6 +165,7 @@ float get_model_parameters_species;
 string get_model_parameters_sex;
 float get_model_parameters_weight;
 float get_model_parameters_age;
+bool get_model_parameters_hidden;
 string get_model_parameters_description;
 string get_model_parameters_bone_upperbody;
 string get_model_parameters_bone_weapon;
@@ -190,7 +176,7 @@ float get_model_parameters_fixbone;
 string get_model_parameters_desc;
 float get_model_parameters(string mod, float skn); // call with string_null to clear; skin -1 means mod is the filename of the txt file and is to be split
 
-#ifndef MENUQC
+#ifdef GAMEQC
 vector NearestPointOnBox(entity box, vector org);
 #endif
 
@@ -205,7 +191,7 @@ const float XENCODE_LEN = 5;
 string xencode(float f);
 float xdecode(string s);
 
-#ifndef MENUQC
+#ifdef GAMEQC
 string strtolower(string s);
 #endif
 
@@ -214,7 +200,7 @@ string MakeConsoleSafe(string input);
 // generic shutdown handler
 void Shutdown();
 
-#ifndef MENUQC
+#ifdef GAMEQC
 .float skeleton_bones;
 void Skeleton_SetBones(entity e);
 // loops through the tags of model v using counter tagnum
@@ -231,15 +217,12 @@ float ReadApproxPastTime();
 void execute_next_frame();
 void queue_to_execute_next_frame(string s);
 
-// for marking written-to values as unused where it's a good idea to do this
-noref float unused_float;
-
 // a function f with:
 // f(0) = 0
 // f(1) = 1
 // f'(0) = startspeedfactor
 // f'(1) = endspeedfactor
-float cubic_speedfunc(float startspeedfactor, float endspeedfactor, float x);
+float cubic_speedfunc(float startspeedfactor, float endspeedfactor, float spd);
 
 // checks whether f'(x) = 0 anywhere from 0 to 1
 // because if this is the case, the function is not usable for platforms
@@ -257,9 +240,11 @@ void FindConnectedComponent(entity e, .entity fld, findNextEntityNearFunction_t
 #define fprintf(file, ...) fputs(file, sprintf(__VA_ARGS__))
 #define bprintf(...) bprint(sprintf(__VA_ARGS__))
 
+#ifdef GAMEQC
 string CCR(string input);
+#endif
 
-#ifndef MENUQC
+#ifdef GAMEQC
        #ifdef CSQC
                #define GENTLE (autocvar_cl_gentle || autocvar_cl_gentle_messages)
        #else
@@ -268,11 +253,11 @@ string CCR(string input);
        #define normal_or_gentle(normal, gentle) (GENTLE ? ((gentle != "") ? gentle : normal) : normal)
 #endif
 
-#ifndef MENUQC
+#ifdef GAMEQC
 vector animfixfps(entity e, vector a, vector b);
 #endif
 
-#ifndef MENUQC
+#ifdef GAMEQC
 const float CNT_NORMAL = 1;
 const float CNT_GAMESTART = 2;
 const float CNT_IDLE = 3;
@@ -282,7 +267,7 @@ const float CNT_ROUNDSTART = 6;
 entity Announcer_PickNumber(float type, float num);
 #endif
 
-#ifndef MENUQC
+#ifdef GAMEQC
 int Mod_Q1BSP_SuperContentsFromNativeContents(int nativecontents);
 int Mod_Q1BSP_NativeContentsFromSuperContents(int supercontents);
 #endif