]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/util.qc
Move fexists from server/miscfunctions.qc to common/util.qc so that it's available...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / util.qc
index 5990f1c9d63cbfab22bd097bca7bfa140801f7ce..05152d4bb595b27e7137e1976edb4a681aad6363 100644 (file)
@@ -236,6 +236,16 @@ string fstrunzone(string s)
        return sc;
 }
 
+float fexists(string f)
+{
+    float fh;
+    fh = fopen(f, FILE_READ);
+    if (fh < 0)
+        return FALSE;
+    fclose(fh);
+    return TRUE;
+}
+
 // Databases (hash tables)
 #define DB_BUCKETS 8192
 void db_save(float db, string pFilename)
@@ -1367,18 +1377,22 @@ string textShortenToLength(string theText, float maxWidth, textLengthUpToLength_
                return strcat(substring(theText, 0, textLengthUpToLength(theText, maxWidth - tw("..."), tw)), "...");
 }
 
-float isGametypeInFilter(float gt, float tp, string pattern)
+float isGametypeInFilter(float gt, float tp, float ts, string pattern)
 {
-       string subpattern, subpattern2, subpattern3;
+       string subpattern, subpattern2, subpattern3, subpattern4;
        subpattern = strcat(",", GametypeNameFromType(gt), ",");
        if(tp)
                subpattern2 = ",teams,";
        else
                subpattern2 = ",noteams,";
+       if(ts)
+               subpattern3 = ",teamspawns,";
+       else
+               subpattern3 = ",noteamspawns,";
        if(gt == GAME_RACE || gt == GAME_CTS)
-               subpattern3 = ",race,";
+               subpattern4 = ",race,";
        else
-               subpattern3 = string_null;
+               subpattern4 = string_null;
 
        if(substring(pattern, 0, 1) == "-")
        {
@@ -1387,7 +1401,9 @@ float isGametypeInFilter(float gt, float tp, string pattern)
                        return 0;
                if(strstrofs(strcat(",", pattern, ","), subpattern2, 0) >= 0)
                        return 0;
-               if(subpattern3 && strstrofs(strcat(",", pattern, ","), subpattern3, 0) >= 0)
+               if(strstrofs(strcat(",", pattern, ","), subpattern3, 0) >= 0)
+                       return 0;
+               if(subpattern4 && strstrofs(strcat(",", pattern, ","), subpattern4, 0) >= 0)
                        return 0;
        }
        else
@@ -1396,7 +1412,8 @@ float isGametypeInFilter(float gt, float tp, string pattern)
                        pattern = substring(pattern, 1, strlen(pattern) - 1);
                if(strstrofs(strcat(",", pattern, ","), subpattern, 0) < 0)
                if(strstrofs(strcat(",", pattern, ","), subpattern2, 0) < 0)
-               if((!subpattern3) || strstrofs(strcat(",", pattern, ","), subpattern3, 0) < 0)
+               if(strstrofs(strcat(",", pattern, ","), subpattern3, 0) < 0)
+               if((!subpattern4) || strstrofs(strcat(",", pattern, ","), subpattern4, 0) < 0)
                        return 0;
        }
        return 1;