From: terencehill <piuntn@gmail.com>
Date: Wed, 23 Mar 2016 18:31:46 +0000 (+0100)
Subject: Compact Announcer_Time code
X-Git-Tag: xonotic-v0.8.2~1036^2
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=9bcb00fcb8d81e85616b55ebbbb326ff5c9bdbe7;p=xonotic%2Fxonotic-data.pk3dir.git

Compact Announcer_Time code
---

diff --git a/qcsrc/client/announcer.qc b/qcsrc/client/announcer.qc
index 4287b7e0a..a7b0e4749 100644
--- a/qcsrc/client/announcer.qc
+++ b/qcsrc/client/announcer.qc
@@ -116,13 +116,21 @@ void Announcer_Gamestart()
 	previous_game_starttime = startTime;
 }
 
+#define ANNOUNCER_CHECKMINUTE(minute) MACRO_BEGIN { \
+	if(announcer_##minute##min) { \
+		if(timeleft > minute * 60) \
+			announcer_##minute##min = false; \
+	} else { \
+		if(timeleft < minute * 60 && timeleft > minute * 60 - 1) { \
+			announcer_##minute##min = true; \
+			Local_Notification(MSG_ANNCE, ANNCE_REMAINING_MIN_##minute); \
+		} \
+	} \
+} MACRO_END
 
-// Plays the 1 minute or 5 minutes (of maptime) remaining sound, if client wants it
 void Announcer_Time()
 {
-	float timelimit = STAT(TIMELIMIT);
-	float timeleft = max(0, timelimit * 60 + STAT(GAMESTARTTIME) - time);
-
+	float timeleft;
 	if(warmup_stage)
 	{
 		float warmup_timelimit = STAT(WARMUP_TIMELIMIT);
@@ -131,43 +139,14 @@ void Announcer_Time()
 		else
 			timeleft = 0;
 	}
+	else
+		timeleft = max(0, STAT(TIMELIMIT) * 60 + STAT(GAMESTARTTIME) - time);
 
-	// 5 minute check
 	if(autocvar_cl_announcer_maptime >= 2)
-	{
-		// make sure that after connect (and e.g. 4 minutes left) we will not get a wrong sound
-		if(announcer_5min)
-		{
-			if(timeleft > 300)
-				announcer_5min = false;
-		}
-		else
-		{
-			if(timeleft < 300 && timeleft > 299)
-			{
-				announcer_5min = true;
-				Local_Notification(MSG_ANNCE, ANNCE_REMAINING_MIN_5);
-			}
-		}
-	}
+		ANNOUNCER_CHECKMINUTE(5);
 
-	// 1 minute check
 	if((autocvar_cl_announcer_maptime == 1) || (autocvar_cl_announcer_maptime == 3))
-	{
-		if(announcer_1min)
-		{
-			if(timeleft > 60)
-				announcer_1min = false;
-		}
-		else
-		{
-			if(timeleft < 60 && timeleft > 59)
-			{
-				announcer_1min = true;
-				Local_Notification(MSG_ANNCE, ANNCE_REMAINING_MIN_1);
-			}
-		}
-	}
+		ANNOUNCER_CHECKMINUTE(1);
 }
 
 void Announcer()