From 1f4a253ae3448cbda761f58fd627fd3c39a030b9 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sat, 4 Dec 2010 18:32:09 +0100 Subject: [PATCH] temporary hack: a cvar "popcon" - transmits info to our server about which cvars have been changed from default and which not. Should help with later tuning the menu option choice. --- Makefile | 2 +- defaultXonotic.cfg | 3 +++ qcsrc/menu/xonotic/util.qc | 39 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index c5871ad4e..caab47a80 100644 --- 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 ?= diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 6ec248453..eb67b8492 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -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" "" diff --git a/qcsrc/menu/xonotic/util.qc b/qcsrc/menu/xonotic/util.qc index c6fca21ac..6c43e0696 100644 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@ -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 } } -- 2.39.2