[nexuiz-commits] r8642 - in trunk/data: . qcsrc/common qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Feb 13 09:31:34 EST 2010


Author: fruitiex
Date: 2010-02-13 09:31:34 -0500 (Sat, 13 Feb 2010)
New Revision: 8642

Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/common/gamecommand.qc
   trunk/data/qcsrc/common/util.qh
   trunk/data/qcsrc/server/clientcommands.qc
   trunk/data/qcsrc/server/g_world.qc
   trunk/data/qcsrc/server/gamecommand.qc
   trunk/data/qcsrc/server/miscfunctions.qc
Log:
Merge branch 'fruitiex/nexrun'

Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2010-02-13 14:08:35 UTC (rev 8641)
+++ trunk/data/defaultNexuiz.cfg	2010-02-13 14:31:34 UTC (rev 8642)
@@ -1057,6 +1057,7 @@
 alias vdoend "vdo endmatch"
 
 alias lsmaps "cmd lsmaps" // lists all maps on server (for vmap, suggestmap, vnextmap)
+alias lsnewmaps "cmd lsnewmaps" // lists all maps on server that do not yet have a record set (race/cts)
 bind F1 vyes
 bind F2 vno
 

Modified: trunk/data/qcsrc/common/gamecommand.qc
===================================================================
--- trunk/data/qcsrc/common/gamecommand.qc	2010-02-13 14:08:35 UTC (rev 8641)
+++ trunk/data/qcsrc/common/gamecommand.qc	2010-02-13 14:31:34 UTC (rev 8642)
@@ -199,6 +199,7 @@
 		print("  maplist cleanup\n");
 		print("  maplist maplist\n");
 		print("  maplist lsmaps\n");
+		print("  maplist lsnewmaps\n");
 		print("  addtolist variable addedvalue\n");
 		print("  records\n");
 		print("  rankings (map argument optional)\n");
@@ -260,6 +261,10 @@
 			print(lsmaps_reply);
 			return TRUE;
 		}
+		else if(argv(1) == "lsnewmaps") {
+			print(lsnewmaps_reply);
+			return TRUE;
+		}
 	}
 	else if(argc >= 3 && argv(0) == "red")
 	{

Modified: trunk/data/qcsrc/common/util.qh
===================================================================
--- trunk/data/qcsrc/common/util.qh	2010-02-13 14:08:35 UTC (rev 8641)
+++ trunk/data/qcsrc/common/util.qh	2010-02-13 14:31:34 UTC (rev 8642)
@@ -174,7 +174,8 @@
 float compressShotOrigin(vector v);
 vector decompressShotOrigin(float f);
 
-string records_reply, rankings_reply, lsmaps_reply, maplist_reply; // cached replies
+string rankings_reply, lsmaps_reply, lsnewmaps_reply, maplist_reply; // cached replies
+string records_reply[10];
 
 float RandomSelection_totalweight;
 float RandomSelection_best_priority;

Modified: trunk/data/qcsrc/server/clientcommands.qc
===================================================================
--- trunk/data/qcsrc/server/clientcommands.qc	2010-02-13 14:08:35 UTC (rev 8641)
+++ trunk/data/qcsrc/server/clientcommands.qc	2010-02-13 14:31:34 UTC (rev 8642)
@@ -123,6 +123,7 @@
 void SV_ParseClientCommand(string s) {
 	string cmd;
 	float tokens;
+	float i;
 	entity e;
 
 	tokens = tokenize_console(s);
@@ -308,8 +309,11 @@
 		sprint(self, maplist_reply);
 	} else if(cmd == "lsmaps") {
 		sprint(self, lsmaps_reply);
+	} else if(cmd == "lsnewmaps") {
+		sprint(self, lsnewmaps_reply);
 	} else if(cmd == "records") {
-		sprint(self, records_reply);
+		for(i = 0; i < 10; ++i)
+			sprint(self, records_reply[i]);
 	} else if(cmd == "rankings") {
 		sprint(self, rankings_reply);
 	} else if(cmd == "voice") {

Modified: trunk/data/qcsrc/server/g_world.qc
===================================================================
--- trunk/data/qcsrc/server/g_world.qc	2010-02-13 14:08:35 UTC (rev 8641)
+++ trunk/data/qcsrc/server/g_world.qc	2010-02-13 14:31:34 UTC (rev 8642)
@@ -638,6 +638,7 @@
 	detect_maptype();
 
 	lsmaps_reply = "^7Maps available: ";
+	lsnewmaps_reply = "^7Maps without a record set: ";
 	for(i = 0, j = 0; i < MapInfo_count; ++i)
 	{
 		if(MapInfo_Get_ByID(i))
@@ -649,9 +650,16 @@
 					col = "^3";
 				++j;
 				lsmaps_reply = strcat(lsmaps_reply, col, MapInfo_Map_bspname, " ");
+				if(g_race && !stof(db_get(ServerProgsDB, strcat(MapInfo_Map_bspname, RACE_RECORD, "time"))))
+					lsnewmaps_reply = strcat(lsnewmaps_reply, col, MapInfo_Map_bspname, " ");
+				else if(g_cts && !stof(db_get(ServerProgsDB, strcat(MapInfo_Map_bspname, CTS_RECORD, "time"))))
+					lsnewmaps_reply = strcat(lsnewmaps_reply, col, MapInfo_Map_bspname, " ");
 			}
 	}
 	lsmaps_reply = strzone(strcat(lsmaps_reply, "\n"));
+	if (!g_race && !g_cts)
+		lsnewmaps_reply = "Need to be playing race or CTS for lsnewmaps to work.";
+	lsnewmaps_reply = strzone(strcat(lsnewmaps_reply, "\n"));
 
 	maplist_reply = "^7Maps in list: ";
 	n = tokenize_console(cvar_string("g_maplist"));
@@ -670,7 +678,11 @@
 	maplist_reply = strzone(strcat(maplist_reply, "\n"));
 	MapInfo_ClearTemps();
 
-	records_reply = strzone(getrecords());
+	for(i = 0; i < 10; ++i)
+	{
+		records_reply[i] = strzone(getrecords(i));
+	}
+
 	rankings_reply = strzone(getrankings());
 
 	ClientInit_Spawn();

Modified: trunk/data/qcsrc/server/gamecommand.qc
===================================================================
--- trunk/data/qcsrc/server/gamecommand.qc	2010-02-13 14:08:35 UTC (rev 8641)
+++ trunk/data/qcsrc/server/gamecommand.qc	2010-02-13 14:31:34 UTC (rev 8642)
@@ -920,9 +920,10 @@
 	}
 	if (argv(0) == "records")
 	{
-		strunzone(records_reply);
-		records_reply = strzone(getrecords());
-		print(records_reply);
+		//strunzone(records_reply);
+		//records_reply = strzone(getrecords()); // these should be cached at worldspawn, right?
+		for (i = 0; i < 10; ++i)
+			print(records_reply[i]);
 		return;
 	}
 	if (argv(0) == "rankings")

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2010-02-13 14:08:35 UTC (rev 8641)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2010-02-13 14:31:34 UTC (rev 8642)
@@ -2113,7 +2113,7 @@
         print(s, "\n");
 }
 
-string getrecords()
+string getrecords(float page) // 50 records per page
 {
     float rec;
     string h;
@@ -2127,7 +2127,7 @@
 
     if (g_ctf)
     {
-        for (i = 0; i < MapInfo_count; ++i)
+        for (i = page * 200; i < MapInfo_count && i < page * 200 + 200; ++i)
         {
             if (MapInfo_Get_ByID(i))
             {
@@ -2143,7 +2143,7 @@
 
     if (g_race)
     {
-        for (i = 0; i < MapInfo_count; ++i)
+        for (i = page * 200; i < MapInfo_count && i < page * 200 + 200; ++i)
         {
             if (MapInfo_Get_ByID(i))
             {
@@ -2159,7 +2159,7 @@
 
     if (g_cts)
     {
-        for (i = 0; i < MapInfo_count; ++i)
+        for (i = page * 200; i < MapInfo_count && i < page * 200 + 200; ++i)
         {
             if (MapInfo_Get_ByID(i))
             {
@@ -2175,10 +2175,10 @@
 
     MapInfo_ClearTemps();
 
-    if (s == "")
+    if (s == "" && page == 0)
         return "No records are available on this server.\n";
     else
-        return strcat("Records on this server:\n", s);
+        return s;
 }
 
 string getrankings()



More information about the nexuiz-commits mailing list