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