]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cl_player.qc
Merge remote-tracking branch 'origin/terencehill/arena_stuff'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cl_player.qc
index 6d0ccb31aec266e0cc29ca555a05567a21ff8097..e5e2d377cf4981f7d9527d1a4ca7f927caf87bec 100644 (file)
@@ -13,19 +13,26 @@ void WeaponStats_Init()
 
 #define WEAPONSTATS_GETINDEX(awep,abot,vwep,vbot) (((vwep) + (awep) * (WEP_LAST - WEP_FIRST + 1) - (WEP_FIRST + WEP_FIRST * (WEP_LAST - WEP_FIRST + 1))) * 4 + (abot) * 2 + (vbot))
 
-string WeaponStats_prefix;
 void WeaponStats_ready(entity fh, entity pass, float status)
 {
-       float i, j, ibot, jbot, idx;
+       float i, j, n, ibot, jbot, idx;
        vector v;
-       string prefix;
+       string prefix, s;
        switch(status)
        {
                case URL_READY_CANWRITE:
+                       // url_fopen returned, we can write
                        prefix = strcat(autocvar_hostname, "\t", GetGametype(), "_", GetMapname(), "\t");
                        url_fputs(fh, "#begin statsfile\n");
                        url_fputs(fh, strcat("#date ", strftime(TRUE, "%a %b %e %H:%M:%S %Z %Y"), "\n"));
-                       url_fputs(fh, strcat("#config ", ftos(crc16(FALSE, cvar_changes)), "\n"));
+#ifdef WATERMARK
+                       url_fputs(fh, strcat("#version ", WATERMARK(), "\n"));
+#endif
+                       url_fputs(fh, strcat("#config ", ftos(crc16(FALSE, cvar_purechanges)), "\n"));
+                       url_fputs(fh, strcat("#cvar_purechanges ", ftos(cvar_purechanges_count), "\n"));
+                       n = tokenizebyseparator(cvar_purechanges, "\n");
+                       for(i = 0; i < n; ++i)
+                               url_fputs(fh, strcat("#cvar_purechange ", argv(i), "\n"));
                        for(i = WEP_FIRST; i <= WEP_LAST; ++i) for(ibot = 0; ibot <= 1; ++ibot)
                                for(j = WEP_FIRST; j <= WEP_LAST; ++j) for(jbot = 0; jbot <= 1; ++jbot)
                                {
@@ -44,10 +51,16 @@ void WeaponStats_ready(entity fh, entity pass, float status)
                        weaponstats_buffer = -1;
                        break;
                case URL_READY_CANREAD:
-                       print("Got response from weapon stats server\n");
+                       // url_fclose is processing, we got a response for writing the data
+                       // this must come from HTTP
+                       print("Got response from weapon stats server:\n");
+                       while((s = url_fgets(fh)))
+                               print("  ", s, "\n");
+                       print("End of response.\n");
                        url_fclose(fh, WeaponStats_ready, world);
                        break;
                case URL_READY_CLOSED:
+                       // url_fclose has finished
                        print("Weapon stats written\n");
                        break;
                case URL_READY_ERROR:
@@ -408,7 +421,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
        float valid_damage_for_weaponstats;
        float excess;
 
-       if((g_arena && numspawned < 2) || (g_ca && ca_players < required_ca_players) && !inWarmupStage)
+       if((g_arena && numspawned < 2) || (g_ca && !ca_teams_ok) && !inWarmupStage)
                return;
 
        dh = max(self.health, 0);