]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/util.qc
Merge remote-tracking branch 'origin/mrbougo/clonefixes'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / util.qc
index 33d7074ecf79a8914ceed5f392858f9df43310e4..db6f04c62e2eaacc803b2998572c3c2161359f90 100644 (file)
@@ -346,14 +346,14 @@ void db_close(float db)
 string db_get(float db, string pKey)
 {
        float h;
-       h = mod(crc16(FALSE, pKey), DB_BUCKETS);
+       h = crc16(FALSE, pKey) % DB_BUCKETS;
        return uri_unescape(infoget(bufstr_get(db, h), pKey));
 }
 
 void db_put(float db, string pKey, string pValue)
 {
        float h;
-       h = mod(crc16(FALSE, pKey), DB_BUCKETS);
+       h = crc16(FALSE, pKey) % DB_BUCKETS;
        bufstr_set(db, h, infoadd(bufstr_get(db, h), pKey, uri_escape(pValue)));
 }
 
@@ -1719,19 +1719,6 @@ vector get_shotvelocity(vector myvel, vector mydir, float spd, float newton_styl
        return myvel + spd * mydir;
 }
 
-void check_unacceptable_compiler_bugs()
-{
-       if(cvar("_allow_unacceptable_compiler_bugs"))
-               return;
-       tokenize_console("foo bar");
-       if(strcat(argv(0), substring("foo bar", 4, 7 - argv_start_index(1))) == "barbar")
-               error("fteqcc bug introduced with revision 3178 detected. Please upgrade fteqcc to a later revision, downgrade fteqcc to revision 3177, or pester Spike until he fixes it. You can set _allow_unacceptable_compiler_bugs 1 to skip this check, but expect stuff to be horribly broken then.");
-
-       string s = "";
-       if (!s)
-               error("The empty string counts as false. We do not want that!");
-}
-
 float compressShotOrigin(vector v)
 {
        float x, y, z;
@@ -2274,10 +2261,10 @@ const string XENCODE_22 = "0123456789abcdefABCDEF";
 string xencode(float f)
 {
        float a, b, c, d;
-       d = mod(f, 22); f = floor(f / 22);
-       c = mod(f, 22); f = floor(f / 22);
-       b = mod(f, 22); f = floor(f / 22);
-       a = mod(f,  2); // f = floor(f /  2);
+       d = f % 22; f = floor(f / 22);
+       c = f % 22; f = floor(f / 22);
+       b = f % 22; f = floor(f / 22);
+       a = f %  2; // f = floor(f /  2);
        return strcat(
                "^",
                substring(XENCODE_2,  a, 1),
@@ -2576,6 +2563,30 @@ void FindConnectedComponent(entity e, .entity fld, findNextEntityNearFunction_t
                queue_start.FindConnectedComponent_processing = 0;
 }
 
+#ifdef SVQC
+vector combine_to_vector(float x, float y, float z)
+{
+       vector result; result_x = x; result_y = y; result_z = z;
+       return result;
+}
+
+vector get_corner_position(entity box, float corner)
+{
+       switch(corner)
+       {
+               case 1: return combine_to_vector(box.absmin_x, box.absmin_y, box.absmin_z);
+               case 2: return combine_to_vector(box.absmax_x, box.absmin_y, box.absmin_z);
+               case 3: return combine_to_vector(box.absmin_x, box.absmax_y, box.absmin_z);
+               case 4: return combine_to_vector(box.absmin_x, box.absmin_y, box.absmax_z);
+               case 5: return combine_to_vector(box.absmax_x, box.absmax_y, box.absmin_z);
+               case 6: return combine_to_vector(box.absmin_x, box.absmax_y, box.absmax_z);
+               case 7: return combine_to_vector(box.absmax_x, box.absmin_y, box.absmax_z);
+               case 8: return combine_to_vector(box.absmax_x, box.absmax_y, box.absmax_z);
+               default: return '0 0 0';
+       }
+}
+#endif
+
 // todo: this sucks, lets find a better way to do backtraces?
 void backtrace(string msg)
 {