r1824 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Aug 17 13:46:25 EDT 2006


Author: div0
Date: 2006-08-17 13:46:25 -0400 (Thu, 17 Aug 2006)
New Revision: 1824

Modified:
   trunk/data/qcsrc/server/cl_player.qc
   trunk/data/qcsrc/server/defs.qh
Log:
some adjustments to player name display


Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc	2006-08-17 16:30:39 UTC (rev 1823)
+++ trunk/data/qcsrc/server/cl_player.qc	2006-08-17 17:46:25 UTC (rev 1824)
@@ -290,6 +290,8 @@
 
 		// become fully visible
 		self.alpha = 1;
+		// clear selected player display
+		ClearSelectedPlayer();
 		// throw a weapon
 		SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.switchweapon);
 		// print an obituary message
@@ -358,6 +360,13 @@
 	return max(0, (v - 1.0) / 0.5);
 }
 
+void ClearSelectedPlayer()
+{
+	centermsg_set(CENTERMSG_POINT, "");
+	self.selected_player = world;
+	self.selected_player_display_needs_update = FALSE;
+}
+
 void UpdateSelectedPlayer()
 {
 	entity selected;
@@ -372,7 +381,7 @@
 		return;
 
 	// 1. cursor trace is always right
-	if(0) // self.cursor_trace_ent && self.cursor_trace_ent.classname == "player")
+	if(self.cursor_trace_ent && self.cursor_trace_ent.classname == "player" && !self.cursor_trace_ent.deadflag)
 	{
 		selected = self.cursor_trace_ent;
 	}
@@ -383,19 +392,20 @@
 		// 2. if we don't have a cursor trace, find the player which is least
 		//    mis-aimed at
 		entity p;
+		vector so;
+		so = self.origin + self.view_ofs;
 		for(p = find(world, classname, "player"); p; p = find(p, classname, "player"))
 		{
 			float c;
 			vector d;
-			d = p.origin - self.origin;
+			d = p.origin - so;
 
 			if(p == self)
 				continue;
 
-			// behind?
-			if(d * v_forward < 0)
+			if(p.deadflag)
 				continue;
-			
+
 			// misaimed?
 			if(dist_point_line(d, '0 0 0', v_forward) > 200)
 				continue;
@@ -403,10 +413,13 @@
 			// now find the cos of the angle...
 			c = normalize(d) * v_forward;
 
+			if(c < 0.95) // about 18 degrees
+				continue;
+
 			if(c > selected_score)
 			{
 				// oh right... can we even see him?
-				traceline(self.origin, p.origin, MOVE_NOMONSTERS, self);
+				traceline(so, p.origin, MOVE_NOMONSTERS, self);
 				if(trace_fraction < 1)
 					continue;
 
@@ -423,7 +436,8 @@
 	else
 	{
 		if(time < self.selected_player_display_timeout)
-			selected = self.selected_player;
+			if(!self.selected_player.deadflag)
+				selected = self.selected_player;
 	}
 
 	if(selected)

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2006-08-17 16:30:39 UTC (rev 1823)
+++ trunk/data/qcsrc/server/defs.qh	2006-08-17 17:46:25 UTC (rev 1824)
@@ -287,6 +287,7 @@
 string W_Name(float weaponid);
 
 void UpdateSelectedPlayer();
+void ClearSelectedPlayer();
 .entity selected_player;
 .float selected_player_time; // when this player has been selected
 .float selected_player_count; // how long this player has been directly pointed to




More information about the nexuiz-commits mailing list