temporary hack: a cvar "popcon" - transmits info to our server about which cvars...
authorRudolf Polzer <divverent@alientrap.org>
Sat, 4 Dec 2010 17:32:09 +0000 (18:32 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Sat, 4 Dec 2010 17:32:09 +0000 (18:32 +0100)
Makefile
defaultXonotic.cfg
qcsrc/menu/xonotic/util.qc

index c5871ad..caab47a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ ZIP ?= 7za a -tzip -mx=9
 ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc
 DIFF ?= diff
 
-FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"^1$(shell git describe) TEST BUILD"'
+FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"^1$(shell git describe) TEST BUILD"' -DCVAR_POPCON
 FTEQCCFLAGS ?= -Werror -Wno-Q302 -O3 -Ono-c -Ono-cs $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
 FTEQCCFLAGS_PROGS ?=
 FTEQCCFLAGS_MENU ?=
index 6ec2484..eb67b84 100644 (file)
@@ -25,6 +25,9 @@ gameversion_max 65535 // git builds see all versions
 // server about changes)
 alias setreport "set \"$1\" \"$2\" ; sendcvar \"$1\""
 
+seta cl_firststart "" "how many times the client has been run"
+seta cl_startcount 0 "how many times the client has been run"
+
 // detect dedicated server or client
 alias "_detect_dedicated_$qport" "${* asis}"
 alias "_detect_dedicated_0" ""
index c6fca21..6c43e06 100644 (file)
@@ -359,8 +359,43 @@ void preMenuDraw()
                if(!_Nex_ExtResponseSystem_Queried)
                {
                        _Nex_ExtResponseSystem_Queried = 1;
-                       uri_get(sprintf("http://www.xonotic.org/dl/checkupdate.txt?version=%s", uri_escape(cvar_string("g_xonoticversion"))), URI_GET_UPDATENOTIFICATION);
-                       //crypto_uri_postbuf(sprintf("http://www.xonotic.org/dl/t/checkupdate2.cgi?version=%s", uri_escape(cvar_string("g_xonoticversion"))), URI_GET_UPDATENOTIFICATION, "application/x-www-urlencoded", "hello=world&foo=bar", -1, 0);
+                       float startcnt;
+                       string uri;
+
+                       cvar_set("cl_startcount", ftos(startcnt = cvar("cl_startcount") + 1));
+
+                       // for privacy, munge the start count a little
+                       startcnt = floor((floor(startcnt / 10) + random()) * 10);
+                       uri = sprintf("http://www.xonotic.org/dl/checkupdate.txt?version=%s&cnt=%d", uri_escape(cvar_string("g_xonoticversion")), startcnt);
+
+#ifdef CVAR_POPCON
+                       float cvar_handle, popcon_handle;
+                       float n, i, j;
+                       string k, s;
+                       cvar_handle = buf_create();
+                       buf_cvarlist(cvar_handle, "", "");
+                       n = buf_getsize(cvar_handle);
+                       popcon_handle = buf_create();
+                       for(i= 0, j = 0; i < n; ++i)
+                       {
+                               k = bufstr_get(cvar_handle, i);
+                               if(!(cvar_type(k) & CVAR_TYPEFLAG_SAVED))
+                                       continue;
+                               s = sprintf("%s=%d", uri_escape(k), cvar_string(k) != cvar_defstring(k));
+                               bufstr_set(popcon_handle, j, s);
+                               ++j;
+                       }
+                       buf_del(cvar_handle);
+                       uri_postbuf(
+                               uri, URI_GET_UPDATENOTIFICATION,
+                               "application/x-www-urlencoded",
+                               "&",
+                               popcon_handle
+                       );
+                       buf_del(popcon_handle);
+#else
+                       uri_get(uri, URI_GET_UPDATENOTIFICATION);
+#endif
                }
        }