[nexuiz-commits] r8128 - in trunk/data/qcsrc: client common server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Oct 14 06:40:09 EDT 2009


Author: fruitiex
Date: 2009-10-14 06:40:08 -0400 (Wed, 14 Oct 2009)
New Revision: 8128

Modified:
   trunk/data/qcsrc/client/Defs.qc
   trunk/data/qcsrc/client/Main.qc
   trunk/data/qcsrc/client/sbar.qc
   trunk/data/qcsrc/common/constants.qh
   trunk/data/qcsrc/server/cl_client.qc
   trunk/data/qcsrc/server/cl_physics.qc
   trunk/data/qcsrc/server/constants.qh
   trunk/data/qcsrc/server/race.qc
Log:
Fix the race server best and speed award by sending to all clients when neccessary, and add a all time fastest speed award


Modified: trunk/data/qcsrc/client/Defs.qc
===================================================================
--- trunk/data/qcsrc/client/Defs.qc	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/client/Defs.qc	2009-10-14 10:40:08 UTC (rev 8128)
@@ -193,8 +193,10 @@
 float race_penaltytime; // duration of penalty time, in tenths
 string race_penaltyreason; // reason for penalty
 float race_server_record; // server record
-float race_speed_award;
-string race_speed_award_holder;
+float race_speedaward;
+string race_speedaward_holder;
+float race_speedaward_alltimebest;
+string race_speedaward_alltimebest_holder;
 
 // RACE
 float race_mycheckpoint;

Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/client/Main.qc	2009-10-14 10:40:08 UTC (rev 8128)
@@ -1032,9 +1032,13 @@
 			race_server_record = ReadInt24_t();
 			break;
 		case RACE_NET_SPEED_AWARD:
-			race_speed_award = ReadShort();
-			race_speed_award_holder = strzone(ReadString());
+			race_speedaward = ReadShort();
+			race_speedaward_holder = strzone(ReadString());
 			break;
+		case RACE_NET_SPEED_AWARD_BEST:
+			race_speedaward_alltimebest = ReadShort();
+			race_speedaward_alltimebest_holder = strzone(ReadString());
+			break;
 	}
 }
 

Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/client/sbar.qc	2009-10-14 10:40:08 UTC (rev 8128)
@@ -1211,9 +1211,15 @@
 		}
 	}
 
-	if(gametype == GAME_CTS && race_speed_award) {
-		drawcolorcodedstring(pos, strcat("Speed award: ", ftos(race_speed_award), " (", race_speed_award_holder, ")"), sbar_fontsize, sbar_scoreboard_alpha_fg, DRAWFLAG_NORMAL);
-		pos_y += 1.25 * sbar_fontsize_y;	
+	if(gametype == GAME_CTS || gametype == GAME_RACE) {
+		if(race_speedaward) {
+			drawcolorcodedstring(pos, strcat("Speed award: ", ftos(race_speedaward), " (", race_speedaward_holder, ")"), sbar_fontsize, sbar_scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+			pos_y += 1.25 * sbar_fontsize_y;
+		}
+		if(race_speedaward_alltimebest) {
+			drawcolorcodedstring(pos, strcat("All-time fastest: ", ftos(race_speedaward_alltimebest), " (", race_speedaward_alltimebest_holder, ")"), sbar_fontsize, sbar_scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+			pos_y += 1.25 * sbar_fontsize_y;
+		}
 	}
 
 	tmp = pos + '0 1.5 0' * sbar_fontsize_y;

Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/common/constants.qh	2009-10-14 10:40:08 UTC (rev 8128)
@@ -61,6 +61,7 @@
 const float RACE_NET_PENALTY_QUALIFYING = 7; // byte penaltytime, string reason
 const float RACE_NET_SERVER_RECORD = 8; // server record, sent to client
 const float RACE_NET_SPEED_AWARD = 9; // speed award, sent to client
+const float RACE_NET_SPEED_AWARD_BEST = 10; // all time best speed award, sent to client
 
 const float ENT_CLIENT = 0;
 const float ENT_CLIENT_DEAD = 1;

Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/cl_client.qc	2009-10-14 10:40:08 UTC (rev 8128)
@@ -1,4 +1,4 @@
-void race_send_recordtime(float t);
+void race_send_recordtime(float t, float msg);
 
 float ClientData_Send(entity to, float sf)
 {
@@ -1465,9 +1465,12 @@
 			rr = RACE_RECORD;
 		t = stof(db_get(ServerProgsDB, strcat(GetMapname(), rr, "time")));
 
-		race_send_recordtime(t);
-		if (g_cts)
-			race_send_speedaward();
+		race_send_recordtime(t, MSG_ONE);
+		race_send_speedaward(MSG_ONE);
+
+		speedaward_alltimebest = stof(db_get(ServerProgsDB, strcat(GetMapname(), "bestspeed")));
+		speedaward_alltimebest_holder = db_get(ServerProgsDB, strcat(GetMapname(), "bestspeed_holder"));
+		race_send_speedaward_alltimebest(MSG_ONE);
 	}
 }
 

Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/cl_physics.qc	2009-10-14 10:40:08 UTC (rev 8128)
@@ -514,18 +514,29 @@
 
 float speedaward_speed;
 string speedaward_holder;
-void race_send_speedaward()
+void race_send_speedaward(float msg)
 {
 	// send the best speed of the round
-	WRITESPECTATABLE_MSG_ONE({
-	WriteByte(MSG_ONE, SVC_TEMPENTITY);
-	WriteByte(MSG_ONE, TE_CSQC_RACE);
-	WriteByte(MSG_ONE, RACE_NET_SPEED_AWARD);
-	WriteShort(MSG_ONE, floor(speedaward_speed+0.5));
-	WriteString(MSG_ONE, speedaward_holder);
-});
+	WriteByte(msg, SVC_TEMPENTITY);
+	WriteByte(msg, TE_CSQC_RACE);
+	WriteByte(msg, RACE_NET_SPEED_AWARD);
+	WriteShort(msg, floor(speedaward_speed+0.5));
+	WriteString(msg, speedaward_holder);
 }
 
+float speedaward_alltimebest;
+string speedaward_alltimebest_holder;
+void race_send_speedaward_alltimebest(float msg)
+{
+	// send the best speed
+	WriteByte(msg, SVC_TEMPENTITY);
+	WriteByte(msg, TE_CSQC_RACE);
+	WriteByte(msg, RACE_NET_SPEED_AWARD_BEST);
+	WriteShort(msg, floor(speedaward_alltimebest+0.5));
+	WriteString(msg, speedaward_alltimebest_holder);
+}
+
+string GetMapname(void);
 float speedaward_lastupdate;
 float speedaward_lastsent;
 void SV_PlayerPhysics()
@@ -1173,15 +1184,22 @@
 		}
 	}
 
-	if(g_cts && self.classname != "observer") {
+	if((g_cts || g_race) && self.classname != "observer") {
 		if(vlen(self.velocity - self.velocity_z * '0 0 1') > speedaward_speed) {
 			speedaward_speed = vlen(self.velocity - self.velocity_z * '0 0 1');
 			speedaward_holder = self.netname;
 			speedaward_lastupdate = time;
 		}
 		if(speedaward_speed > speedaward_lastsent && time - speedaward_lastupdate > 1) {
-			race_send_speedaward();
+			race_send_speedaward(MSG_ALL);
 			speedaward_lastsent = speedaward_speed;
+			if (speedaward_speed > speedaward_alltimebest) {
+				speedaward_alltimebest = speedaward_speed;
+				speedaward_alltimebest_holder = speedaward_holder;
+				db_put(ServerProgsDB, strcat(GetMapname(), "bestspeed"), ftos(speedaward_alltimebest));
+				db_put(ServerProgsDB, strcat(GetMapname(), "bestspeed_holder"), speedaward_alltimebest_holder);
+				race_send_speedaward_alltimebest(MSG_ALL);
+			}
 		}
 	}
 :end

Modified: trunk/data/qcsrc/server/constants.qh
===================================================================
--- trunk/data/qcsrc/server/constants.qh	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/constants.qh	2009-10-14 10:40:08 UTC (rev 8128)
@@ -1,5 +1,5 @@
-string CVAR_CHECK_DEFAULT = "5d48426c72cdfbf78480870c75601f89";
-string CVAR_CHECK_BALANCE = "7f0cddd65617fa39bd3efb7942dceea9";
+string CVAR_CHECK_DEFAULT = "37cc3aae4b042acd9cf2b71135034bcf";
+string CVAR_CHECK_BALANCE = "1e423b95c67bac7998289473abe8feb1";
 
 float	FALSE					= 0;
 float	TRUE					= 1;

Modified: trunk/data/qcsrc/server/race.qc
===================================================================
--- trunk/data/qcsrc/server/race.qc	2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/race.qc	2009-10-14 10:40:08 UTC (rev 8128)
@@ -93,15 +93,13 @@
 			race_SendNextCheckpoint(msg_entity.enemy, 1);
 }
 
-void race_send_recordtime(float t)
+void race_send_recordtime(float t, float msg)
 {
 	// send the server best time
-	WRITESPECTATABLE_MSG_ONE({
-	WriteByte(MSG_ONE, SVC_TEMPENTITY);
-	WriteByte(MSG_ONE, TE_CSQC_RACE);
-	WriteByte(MSG_ONE, RACE_NET_SERVER_RECORD);
-	WriteInt24_t(MSG_ONE, t);
-	});
+	WriteByte(msg, SVC_TEMPENTITY);
+	WriteByte(msg, TE_CSQC_RACE);
+	WriteByte(msg, RACE_NET_SERVER_RECORD);
+	WriteInt24_t(msg, t);
 }
 
 void race_SendTime(entity e, float cp, float t, float tvalid)
@@ -184,7 +182,7 @@
 						db_put(ServerProgsDB, strcat(GetMapname(), rr, "time"), ftos(t));
 						db_put(ServerProgsDB, strcat(GetMapname(), rr, "netname"), e.netname);
 						write_recordmarker(e, time - TIME_DECODE(t), TIME_DECODE(t));
-						race_send_recordtime(t);
+						race_send_recordtime(t, MSG_ALL);
 					}
 					else if(t < grecordtime)
 					{
@@ -196,7 +194,7 @@
 						db_put(ServerProgsDB, strcat(GetMapname(), rr, "time"), ftos(t));
 						db_put(ServerProgsDB, strcat(GetMapname(), rr, "netname"), e.netname);
 						write_recordmarker(e, time - TIME_DECODE(t), TIME_DECODE(t));
-						race_send_recordtime(t);
+						race_send_recordtime(t, MSG_ALL);
 					}
 					else
 					{



More information about the nexuiz-commits mailing list