r2120 - in branches/nexuiz-2.0/data: menu qcsrc/menu qcsrc/menu/custom

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Jan 15 18:24:14 EST 2007


Author: div0
Date: 2007-01-15 18:24:14 -0500 (Mon, 15 Jan 2007)
New Revision: 2120

Added:
   branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qc
   branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qh
Modified:
   branches/nexuiz-2.0/data/menu/main.menu
   branches/nexuiz-2.0/data/qcsrc/menu/mbuiltin.qc
   branches/nexuiz-2.0/data/qcsrc/menu/progs.src
Log:
update info


Modified: branches/nexuiz-2.0/data/menu/main.menu
===================================================================
--- branches/nexuiz-2.0/data/menu/main.menu	2007-01-15 23:19:11 UTC (rev 2119)
+++ branches/nexuiz-2.0/data/menu/main.menu	2007-01-15 23:24:14 UTC (rev 2120)
@@ -88,4 +88,11 @@
 		target	"Demos"
 		init	Nex_Action_SetNormalPanelLink
 	}
+	Item Nex_ExtResponseSystem UpdateMessage
+	{
+		color		'1.0 0.9 0.1'
+		alpha		[DefaultTextAlpha]
+		drawFlag	[DefaultTextDrawFlag]
+		fontSize	'12 18'
+	}
 }

Added: branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qc	                        (rev 0)
+++ branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qc	2007-01-15 23:24:14 UTC (rev 2120)
@@ -0,0 +1,127 @@
+bool _Nex_ExtResponseSystem_RequestsSent;
+bool _Nex_ExtResponseSystem_VersionHandled;
+bool _Nex_ExtResponseSystem_BanlistHandled;
+string _Nex_ExtResponseSystem_UpdateTo;
+float _Nex_ExtResponseSystem_RetryTime;
+float _Nex_ExtResponseSystem_RetryTime_LastDelay;
+bool _Nex_ExtResponseSystem_UpdateStringSet;
+bool _Nex_ExtResponseSystem_Initialized;
+
+void() Item_Nex_ExtResponseSystem_SendQuery =
+{
+	dprint("Sending extended response requests...\n");
+	localcmd(strcat("packet update.alientrap.org:27950 \"getExtResponse checkUpdates nexuiz ", cvar_string("g_nexuizversion"), "\"\n"));
+	localcmd(strcat("packet update.alientrap.org:27950 \"getExtResponse getBanlist nexuiz\"\n"));
+	_Nex_ExtResponseSystem_RequestsSent = TRUE;
+	_Nex_ExtResponseSystem_RetryTime_LastDelay = _Nex_ExtResponseSystem_RetryTime_LastDelay * 2 + 1;
+	_Nex_ExtResponseSystem_RetryTime = Timer_Time + _Nex_ExtResponseSystem_RetryTime_LastDelay;
+}
+
+void(float argc) Item_Nex_ExtResponseSystem_Parse =
+{
+	float i;
+	string banlist;
+	dprint("Received extended response packet from ", argv(0), "\n");
+	if(!_Nex_ExtResponseSystem_RequestsSent)
+	{
+		dprint("  But I haven't sent a request yet! Ignoring.\n");
+		return;
+	}
+	if(argv(1) == "noUpdateAvailable")
+	{
+		if(_Nex_ExtResponseSystem_VersionHandled)
+		{
+			dprint("  duplicated update notice, ignored\n");
+			return;
+		}
+		_Nex_ExtResponseSystem_VersionHandled = TRUE;
+	}
+	else if(argv(1) == "updateAvailable")
+	{
+		if(_Nex_ExtResponseSystem_VersionHandled)
+		{
+			dprint("  duplicated update notice, ignored\n");
+			return;
+		}
+		_Nex_ExtResponseSystem_VersionHandled = TRUE;
+		_Nex_ExtResponseSystem_UpdateTo = strzone(argv(2)); // note: only one packet can be handled, so this can't be a leak
+		//Nex_MessageBox("Update available!", strcat("We recommend you to download Nexuiz ", _Nex_ExtResponseSystem_UpdateTo, " from http://www.nexuiz.com/"), "Ok", "Download in background", Util_NullFunction, Util_NullFunction);
+	}
+	else if(argv(1) == "banlist")
+	{
+		if(_Nex_ExtResponseSystem_BanlistHandled)
+		{
+			dprint("  duplicated banlist notice\n");
+			return;
+		}
+		_Nex_ExtResponseSystem_BanlistHandled = TRUE;
+		dprint("  BANLIST RECEIVED:");
+
+		if(cvar_string("net_banlist") == cvar_string("_alientrap_net_banlist"))
+		{
+			banlist = ""; // IP of www.alientrap.org
+			for(i = 0; i < argc - 2; ++i)
+			{
+				banlist = strcat(banlist, argv(i + 2), " ");
+				dprint(" ", argv(i + 2));
+			}
+			dprint(" (", ftos(i), " items)\n");
+			cvar_set("net_banlist", banlist);
+			cvar_set("_alientrap_net_banlist", banlist);
+		}
+		else
+		{
+			for(i = 0; i < argc - 2; ++i)
+				dprint(" ", argv(i + 2));
+			dprint(" (", ftos(i), " items; overridden by user setting)\n");
+		}
+	}
+	else
+		dprint("  UNKNOWN RESPONSE TYPE: ", argv(1), "\n");
+}
+
+void() Item_Nex_ExtResponseSystem_CheckForResponse =
+{
+	local string s;
+	local float argc;
+	while(strlen((s = getextresponse())))
+	{
+		argc = tokenize(s);
+		Item_Nex_ExtResponseSystem_Parse(argc);
+	}
+}
+
+void() Item_Nex_ExtResponseSystem_Update =
+{
+	Item_Nex_ExtResponseSystem_CheckForResponse();
+
+	if(!_Nex_ExtResponseSystem_VersionHandled)
+		if(Timer_Time > _Nex_ExtResponseSystem_RetryTime)
+			Item_Nex_ExtResponseSystem_SendQuery();
+
+	if(_Nex_ExtResponseSystem_UpdateTo)
+		if(!_Nex_ExtResponseSystem_UpdateStringSet)
+		{
+			local string filler;
+			local float count;
+
+			filler = "";
+			for(count = strlen(_Nex_ExtResponseSystem_UpdateTo); count < 5; ++count)
+				filler = strcat(filler, " ");
+
+			String_EntitySet(self, text, strcat(filler, "Update to Nexuiz ", _Nex_ExtResponseSystem_UpdateTo, " on:"));
+			self.size = '0 0 0';
+			_Nex_ExtResponseSystem_UpdateStringSet = TRUE;
+		}
+
+	Item_Label_Update();
+}
+
+void() Item_Nex_ExtResponseSystem_Spawn =
+{
+	if(_Nex_ExtResponseSystem_Initialized)
+		objerror("Item_Nex_ExtResponseSystem is a singleton!");
+	_Nex_ExtResponseSystem_Initialized = TRUE;
+	Item_Label_Spawn();
+	self._update = Item_Nex_ExtResponseSystem_Update;
+}

Added: branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qh	                        (rev 0)
+++ branches/nexuiz-2.0/data/qcsrc/menu/custom/extresponse.qh	2007-01-15 23:24:14 UTC (rev 2120)
@@ -0,0 +1,7 @@
+// Property of Alientrap
+// custom/extresponse.qh
+
+// Item_Nex_ExtResponseSystem (singleton) Item_Label
+
+void() Item_Nex_ExtResponseSystem_Update;
+void() Item_Nex_ExtResponseSystem_Spawn;

Modified: branches/nexuiz-2.0/data/qcsrc/menu/mbuiltin.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/mbuiltin.qc	2007-01-15 23:19:11 UTC (rev 2119)
+++ branches/nexuiz-2.0/data/qcsrc/menu/mbuiltin.qc	2007-01-15 23:24:14 UTC (rev 2120)
@@ -228,6 +228,7 @@
 float	gethostcachenumber(float fld, float hostnr) = #621;
 float	gethostcacheindexforkey(string key) = #622;
 void	addwantedhostcachekey(string key) = #623;
+string	getextresponse(void) = #624;
 
 #ifdef FIXEDFOPEN
 float 	fopen( string filename, float mode ) =

Modified: branches/nexuiz-2.0/data/qcsrc/menu/progs.src
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/progs.src	2007-01-15 23:19:11 UTC (rev 2119)
+++ branches/nexuiz-2.0/data/qcsrc/menu/progs.src	2007-01-15 23:24:14 UTC (rev 2120)
@@ -66,6 +66,7 @@
 custom/video.qh
 custom/credits.qh
 custom/messagebox.qh
+custom/extresponse.qh
 
 // Singleplayer campaign
 custom/campaign.qh
@@ -103,6 +104,7 @@
 custom/joingame.qc
 custom/credits.qc
 custom/messagebox.qc
+custom/extresponse.qc
 
 // controls
 control/automation/automation.qc




More information about the nexuiz-commits mailing list