r5672 - in trunk/data: . qcsrc/client

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Jan 26 15:04:12 EST 2009


Author: div0
Date: 2009-01-26 15:04:11 -0500 (Mon, 26 Jan 2009)
New Revision: 5672

Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/client/sbar.qc
Log:
sbar_increment_maptime


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2009-01-26 20:01:14 UTC (rev 5671)
+++ trunk/data/defaultNexuiz.cfg	2009-01-26 20:04:11 UTC (rev 5672)
@@ -1427,3 +1427,5 @@
 // "Gentle mode": show no blood
 seta sv_gentle 0	"force gentle mode for everyone, also remove references to acts of killing from the messages"
 seta cl_gentle 0	"client side gentle mode (only replaces gibs)"
+
+seta sbar_increment_maptime 0 // set to 1 if you prefer an increasing timer

Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc	2009-01-26 20:01:14 UTC (rev 5671)
+++ trunk/data/qcsrc/client/sbar.qc	2009-01-26 20:04:11 UTC (rev 5672)
@@ -1128,8 +1128,8 @@
 
 void Sbar_Score(float margin)
 {
-	float timelimit, timeleft, minutes, seconds, distribution, myplace, score;
-	vector sbar_save, place;
+	float timelimit, minutes, seconds, timeleft, minutesLeft, secondsLeft, distribution, myplace, score;
+	vector sbar_save, place, timer_color;
 	entity tm, pl, me;
 	sbar_save = sbar;
 	
@@ -1201,32 +1201,52 @@
 			Sbar_DrawXNum('-128 0 0', score, 4, 32, '1 0 0', 1, DRAWFLAG_NORMAL);
 		}
 	}
+	
+	//draw the remaining or elapsed time
 	timelimit = getstatf(STAT_TIMELIMIT);
 	if(timelimit > 0)
 	{
 		timeleft = max(0, timelimit * 60 + getstatf(STAT_GAMESTARTTIME) - time);
 		timeleft = ceil(timeleft);
-		minutes = floor(timeleft / 60);
-		seconds = timeleft - minutes*60;
-		if(minutes >= 5)
-		{
-			Sbar_DrawXNum('-72 32 0', minutes, 3, 12, '1 1 1', 1, DRAWFLAG_NORMAL);
-			drawpic(sbar + '-36 32 0', "gfx/num_colon", '12 12 0', '1 1 1', sbar_alpha_fg, 0);
-			Sbar_DrawXNum('-24 32 0', seconds, -2, 12, '1 1 1', 1, DRAWFLAG_NORMAL);
-		} else if(minutes >= 1)
-		{
-			Sbar_DrawXNum('-72 32 0', minutes, 3, 12, '1 1 0', 1, DRAWFLAG_NORMAL);
-			drawpic(sbar + '-36 32 0', "gfx/num_colon", '12 12 0', '1 1 0', sbar_alpha_fg, 0);
-			Sbar_DrawXNum('-24 32 0', seconds, -2, 12, '1 1 0', 1, DRAWFLAG_NORMAL);
+		minutesLeft = floor(timeleft / 60);
+		secondsLeft = timeleft - minutesLeft*60;
+		
+		if(minutesLeft >= 5) {
+			timer_color = '1 1 1'; //white
+		} else if(minutesLeft >= 1) {
+			timer_color = '1 1 0'; //yellow
 		} else {
-			Sbar_DrawXNum('-24 32 0', seconds, -2, 12, '1 0 0', 1, DRAWFLAG_NORMAL);
+			timer_color = '1 0 0'; //red
 		}
+		
+		if (cvar("sbar_increment_maptime")) {
+			if (time < getstatf(STAT_GAMESTARTTIME)) {
+				//while restart is still active, show negative counter
+				minutes = 0;
+				seconds = ceil(getstatf(STAT_GAMESTARTTIME) - time);
+			} else {
+				float elapsedTime;
+				elapsedTime = floor(time - getstatf(STAT_GAMESTARTTIME)); //127
+				minutes = floor(elapsedTime / 60);
+				seconds = elapsedTime - minutes*60;
+			}
+		} else {
+			minutes = minutesLeft;
+			seconds = secondsLeft;
+		}
+		
+		if(minutesLeft >= 1 || (cvar("sbar_increment_maptime") && minutes >= 1) ) {
+			Sbar_DrawXNum('-72 32 0', minutes, 3, 12, timer_color, 1, DRAWFLAG_NORMAL);
+			drawpic(sbar + '-36 32 0', "gfx/num_colon", '12 12 0', timer_color, sbar_alpha_fg, 0);
+		}
+		Sbar_DrawXNum('-24 32 0', seconds, -2, 12, timer_color, 1, DRAWFLAG_NORMAL);
 	} else {
+		timer_color = '1 1 1'; //white
 		minutes = floor(time / 60);
 		seconds = floor(time - minutes*60);
-		Sbar_DrawXNum('-72 32 0', minutes, 3, 12, '1 1 1', 1, DRAWFLAG_NORMAL);
-		drawpic(sbar + '-36 32 0', "gfx/num_colon", '12 12 0', '1 1 1', sbar_alpha_fg, 0);
-		Sbar_DrawXNum('-24 32 0', seconds, -2, 12, '1 1 1', 1, DRAWFLAG_NORMAL);
+		Sbar_DrawXNum('-72 32 0', minutes, 3, 12, timer_color, 1, DRAWFLAG_NORMAL);
+		drawpic(sbar + '-36 32 0', "gfx/num_colon", '12 12 0', timer_color, sbar_alpha_fg, 0);
+		Sbar_DrawXNum('-24 32 0', seconds, -2, 12, timer_color, 1, DRAWFLAG_NORMAL);
 	}
 
 	if(gametype == GAME_RACE)




More information about the nexuiz-commits mailing list