[nexuiz-commits] r8120 - in trunk/data/qcsrc: client common server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Oct 13 14:43:02 EDT 2009
Author: fruitiex
Date: 2009-10-13 14:43:02 -0400 (Tue, 13 Oct 2009)
New Revision: 8120
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
Log:
speed awards for CTS!
Modified: trunk/data/qcsrc/client/Defs.qc
===================================================================
--- trunk/data/qcsrc/client/Defs.qc 2009-10-13 18:41:37 UTC (rev 8119)
+++ trunk/data/qcsrc/client/Defs.qc 2009-10-13 18:43:02 UTC (rev 8120)
@@ -193,6 +193,8 @@
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;
// RACE
float race_mycheckpoint;
Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc 2009-10-13 18:41:37 UTC (rev 8119)
+++ trunk/data/qcsrc/client/Main.qc 2009-10-13 18:43:02 UTC (rev 8120)
@@ -1031,6 +1031,10 @@
case RACE_NET_SERVER_RECORD:
race_server_record = ReadInt24_t();
break;
+ case RACE_NET_SPEED_AWARD:
+ race_speed_award = ReadShort();
+ race_speed_award_holder = strzone(ReadString());
+ break;
}
}
Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc 2009-10-13 18:41:37 UTC (rev 8119)
+++ trunk/data/qcsrc/client/sbar.qc 2009-10-13 18:43:02 UTC (rev 8120)
@@ -1210,9 +1210,14 @@
}
}
+ 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;
+ }
+
tmp = pos + '0 1.5 0' * sbar_fontsize_y;
pos_y += 3 * sbar_fontsize_y;
-
+
// List spectators
float specs;
specs = 0;
Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh 2009-10-13 18:41:37 UTC (rev 8119)
+++ trunk/data/qcsrc/common/constants.qh 2009-10-13 18:43:02 UTC (rev 8120)
@@ -60,6 +60,7 @@
const float RACE_NET_PENALTY_RACE = 6; // byte penaltytime, string reason
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 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-13 18:41:37 UTC (rev 8119)
+++ trunk/data/qcsrc/server/cl_client.qc 2009-10-13 18:43:02 UTC (rev 8120)
@@ -1466,6 +1466,8 @@
t = stof(db_get(ServerProgsDB, strcat(GetMapname(), rr, "time")));
race_send_recordtime(t);
+ if (g_cts)
+ race_send_speedaward();
}
}
Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc 2009-10-13 18:41:37 UTC (rev 8119)
+++ trunk/data/qcsrc/server/cl_physics.qc 2009-10-13 18:43:02 UTC (rev 8120)
@@ -512,6 +512,22 @@
#endif
}
+float speedaward_speed;
+string speedaward_holder;
+void race_send_speedaward()
+{
+ // 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);
+});
+}
+
+float speedaward_lastupdate;
+float speedaward_lastsent;
void SV_PlayerPhysics()
{
local vector wishvel, wishdir, v;
@@ -1157,6 +1173,17 @@
}
}
+ if(g_cts && 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();
+ speedaward_lastsent = speedaward_speed;
+ }
+ }
:end
if(self.flags & FL_ONGROUND)
self.lastground = time;
More information about the nexuiz-commits
mailing list