float _Nex_ExtResponseSystem_Queried;
string _Nex_ExtResponseSystem_UpdateTo;
string _Nex_ExtResponseSystem_UpdateToURL;
+string _Nex_ExtResponseSystem_Packs;
+float _Nex_ExtResponseSystem_PacksStep;
void URI_Get_Callback(float id, float status, string data)
{
}
else
{
- print(sprintf(_("Received HTTP request data for an invalid id %d.\n"), id));
+ print(sprintf("Received HTTP request data for an invalid id %d.\n", id));
}
}
_Nex_ExtResponseSystem_BannedServers = strzone(argv(3));
_Nex_ExtResponseSystem_BannedServersNeedsRefresh = 1;
}
+
+ if(n >= 5)
+ {
+ if(cvar("menu_updatecheck_getpacks"))
+ {
+ _Nex_ExtResponseSystem_Packs = strzone(argv(4));
+ _Nex_ExtResponseSystem_PacksStep = 1;
+ }
+ }
}
}
// END OF URI SYSTEM ////////////////////////////////////////////////////////
+void updateCheck()
+{
+ if(cvar("menu_updatecheck"))
+ {
+ if(!_Nex_ExtResponseSystem_Queried)
+ {
+ _Nex_ExtResponseSystem_Queried = 1;
+ 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-form-urlencoded",
+ "&",
+ popcon_handle
+ );
+ buf_del(popcon_handle);
+#else
+ uri_get(uri, URI_GET_UPDATENOTIFICATION);
+#endif
+ }
+ }
+
+ if(_Nex_ExtResponseSystem_PacksStep > 0)
+ {
+ float n, i;
+ float allgood;
+ n = tokenize_console(_Nex_ExtResponseSystem_Packs);
+ allgood = TRUE;
+ for(i = 0; i+1 < n; i += 2)
+ {
+ if(fexists(argv(i+1)))
+ continue;
+ allgood = FALSE;
+ if(_Nex_ExtResponseSystem_PacksStep == 1) // first run
+ localcmd("\ncurl --pak \"", argv(i), "\"\n");
+ }
+ if(allgood)
+ {
+ if(_Nex_ExtResponseSystem_PacksStep == 2)
+ {
+ if(!Menu_Active)
+ cvar_set("_menu_initialized", "0");
+ // HACK: cause m_hide call on next start
+ localcmd("\nmenu_restart\n");
+ }
+ _Nex_ExtResponseSystem_PacksStep = 0;
+ }
+ else
+ _Nex_ExtResponseSystem_PacksStep = 2;
+ }
+
+}
+
float preMenuInit()
{
vector sz;
vector boxA, boxB;
+ updateCheck();
+
MapInfo_Cache_Create();
MapInfo_Enumerate();
if(!MapInfo_FilterGametype(MAPINFO_TYPE_ALL, 0, 0, 0, 1))
string campaign_name_previous;
float campaign_won_previous;
#ifdef WATERMARK
-var string autocvar_menu_watermark = WATERMARK();
+var string autocvar_menu_watermark = WATERMARK;
#else
var string autocvar_menu_watermark = "";
#endif
{
if(autocvar_menu_watermark != "")
{
- vector fs = '48 48 0';
draw_CenterText('0.5 0.1 0', sprintf(_("^1%s TEST BUILD"), autocvar_menu_watermark), globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1);
}
}
void preMenuDraw()
{
- vector fs, sz, line, mid;
+ vector fs, sz = '0 0 0', line, mid;
- if(cvar("menu_updatecheck"))
- {
- if(!_Nex_ExtResponseSystem_Queried)
- {
- _Nex_ExtResponseSystem_Queried = 1;
- 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-form-urlencoded",
- "&",
- popcon_handle
- );
- buf_del(popcon_handle);
-#else
- uri_get(uri, URI_GET_UPDATENOTIFICATION);
-#endif
- }
- }
+ updateCheck();
if(_Nex_ExtResponseSystem_UpdateTo != "")
{
GAMETYPE(MAPINFO_TYPE_ONSLAUGHT) \
GAMETYPE(MAPINFO_TYPE_RACE) \
GAMETYPE(MAPINFO_TYPE_CTS) \
- GAMETYPE(MAPINFO_TYPE_RUNEMATCH) \
GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH) \
/* nothing */
#define GAMETYPE(id) if(i++ == cnt) return id;
GAMETYPES
#undef GAMETYPE
+
+ unused_float = i;
return 0;
}