[nexuiz-commits] r8079 - trunk/data/qcsrc/client

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Oct 9 09:18:41 EDT 2009


Author: fruitiex
Date: 2009-10-09 09:18:30 -0400 (Fri, 09 Oct 2009)
New Revision: 8079

Modified:
   trunk/data/qcsrc/client/sbar.qc
Log:
fading scoreboard (warning: experimental! please test)


Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc	2009-10-09 08:28:50 UTC (rev 8078)
+++ trunk/data/qcsrc/client/sbar.qc	2009-10-09 13:18:30 UTC (rev 8079)
@@ -1091,10 +1091,51 @@
 	return pos;
 }
 
+float Sbar_WouldDrawScoreboard() {
+	if (sb_showscores)
+		return 1;
+	else if (intermission == 1)
+		return 1;
+	else if (intermission == 2)
+		return 1;
+	else if (getstati(STAT_HEALTH) <= 0 && cvar("cl_deathscoreboard"))
+		return 1;
+	else if(sb_showscores_force)
+		return 1;
+	return 0;
+}
+
 float lastpingstime;
 float scoreboard_bottom;
+float sbar_scoreboard_fade_alpha;
+float sbar_woulddrawscoreboard_prev;
+float sbar_woulddrawscoreboard_change; // "time" at which Sbar_WouldDrawScoreboard() changed
 void Sbar_DrawScoreboard()
 {
+	float sbar_woulddrawscoreboard; 
+	sbar_woulddrawscoreboard = Sbar_WouldDrawScoreboard();
+	if(sbar_woulddrawscoreboard != sbar_woulddrawscoreboard_prev) {
+		sbar_woulddrawscoreboard_change = time;
+		sbar_woulddrawscoreboard_prev = sbar_woulddrawscoreboard;
+	}
+
+	float scoreboard_fadeinspeed = 10;
+	float scoreboard_fadeoutspeed = 5;
+	if(sbar_woulddrawscoreboard)
+		sbar_scoreboard_fade_alpha = bound (0, (time - sbar_woulddrawscoreboard_change) * scoreboard_fadeinspeed, 1);
+	else
+		sbar_scoreboard_fade_alpha = bound (0, (1/scoreboard_fadeoutspeed - (time - sbar_woulddrawscoreboard_change)) * scoreboard_fadeoutspeed, 1);
+
+	if not(sbar_scoreboard_fade_alpha)
+		return;
+	sbar_scoreboard_alpha_bg = cvar("sbar_scoreboard_alpha_bg") * sbar_scoreboard_fade_alpha;
+	sbar_scoreboard_alpha_fg = cvar("sbar_scoreboard_alpha_fg") * sbar_scoreboard_fade_alpha;
+	sbar_scoreboard_highlight = cvar("sbar_scoreboard_highlight");
+	sbar_scoreboard_highlight_alpha = cvar("sbar_scoreboard_highlight_alpha") * sbar_scoreboard_fade_alpha;
+	sbar_scoreboard_highlight_alpha_self = cvar("sbar_scoreboard_highlight_alpha_self") * sbar_scoreboard_fade_alpha;
+	sbar_scoreboard_alpha_name = cvar("sbar_scoreboard_alpha_name") * sbar_scoreboard_fade_alpha;
+	sbar_scoreboard_alpha_name_self = cvar("sbar_scoreboard_alpha_name_self") * sbar_scoreboard_fade_alpha;
+
 	vector rgb, pos, tmp;
 	entity pl, tm;
 
@@ -1620,20 +1661,6 @@
 	Sbar_DrawXNum(topright - '36 0 0' - '3 0 0' + '0 2 0', seconds, -2, 0, 18, timer_color, 0, 0, sbar_alpha_fg, DRAWFLAG_NORMAL);
 }
 
-float Sbar_WouldDrawScoreboard() {
-	if (sb_showscores)
-		return 1;
-	else if (intermission == 1)
-		return 1;
-	else if (intermission == 2)
-		return 1;
-	else if (getstati(STAT_HEALTH) <= 0 && cvar("cl_deathscoreboard"))
-		return 1;
-	else if(sb_showscores_force)
-		return 1;
-	return 0;
-}
-
 void CSQC_Strength_Timer() {
 	vector pos;
 	vector bottom;
@@ -2040,6 +2067,9 @@
 	drawstring(position + '0 9 0' * sbar_fontsize_y, "Damage wasted:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
 }
 
+float sbar_accuracystats_fade_alpha;
+float sbar_woulddrawscoreboard_prev;
+float sbar_woulddrawscoreboard_change; // "time" at which Sbar_WouldDrawScoreboard() changed
 void Sbar_DrawAccuracyStats()
 {
 	float i, count_hitscan, count_splash, row;  // count is the number of 'colums'
@@ -2255,7 +2285,6 @@
 void Sbar_Draw (void)
 {
 	// vectors for top right, bottom right, bottom and bottom left corners
-
 	vector topright;
 	vector bottom;
 	vector bottomright;
@@ -2280,13 +2309,6 @@
 	sbar_alpha_bg = cvar("sbar_alpha_bg") * (1 - cvar("_menu_alpha"));
 	sbar_border_thickness = bound(0, cvar("sbar_border_thickness"), 5);
 	sbar_color_bg_team = cvar("sbar_color_bg_team");
-	sbar_scoreboard_alpha_bg = cvar("sbar_scoreboard_alpha_bg");
-	sbar_scoreboard_alpha_fg = cvar("sbar_scoreboard_alpha_fg");
-	sbar_scoreboard_highlight = cvar("sbar_scoreboard_highlight");
-	sbar_scoreboard_highlight_alpha = cvar("sbar_scoreboard_highlight_alpha");
-	sbar_scoreboard_highlight_alpha_self = cvar("sbar_scoreboard_highlight_alpha_self");
-	sbar_scoreboard_alpha_name = cvar("sbar_scoreboard_alpha_name");
-	sbar_scoreboard_alpha_name_self = cvar("sbar_scoreboard_alpha_name_self");
 
 	float i;
 	float weapon_stats;
@@ -2458,20 +2480,19 @@
 	}
 
 	Sbar_UpdatePlayerTeams();
-
 	if (intermission == 2) // map voting screen
 	{
-		if(sb_showscores) {
-			Sbar_DrawScoreboard();
-			Sbar_Score();
-			Sbar_Timer();
-		}
-		else if(sb_showaccuracy) {
+		if(sb_showaccuracy) {
 			Sbar_DrawAccuracyStats();
 			Sbar_Score();
 			Sbar_Timer();
 		}
-  		else
+		else if(sb_showscores) {
+              		Sbar_DrawScoreboard();
+                        Sbar_Score();
+                        Sbar_Timer();
+                }
+		else
 			Sbar_FinaleOverlay();
 
 		Sbar_Reset();
@@ -2489,11 +2510,10 @@
   	}
 	else
 	{
-		if (sb_showscores)
+		if(sb_showaccuracy)
+			Sbar_DrawAccuracyStats();
+		else
 			Sbar_DrawScoreboard();
-		else if(sb_showaccuracy)
-			Sbar_DrawAccuracyStats();
-
 		float armor, health;
 		armor = getstati(STAT_ARMOR);
 		health = getstati(STAT_HEALTH);



More information about the nexuiz-commits mailing list