-float announcer_1min;
-float announcer_5min;
+#include "announcer.qh"
+#include "_.qh"
+
+#include "../common/notifications.qh"
+#include "../common/stats.qh"
+#include "../common/util.qh"
+
+bool announcer_1min;
+bool announcer_5min;
void Announcer_Countdown()
{
float starttime = getstatf(STAT_GAMESTARTTIME);
if(roundstarttime >= starttime)
starttime = roundstarttime;
if(starttime <= time && roundstarttime != starttime) // game start time has passed
- announcer_5min = announcer_1min = FALSE; // reset maptime announcers now as well
+ announcer_5min = announcer_1min = false; // reset maptime announcers now as well
float countdown = (starttime - time);
float countdown_rounded = floor(0.5 + countdown);
}
else // countdown is still going
{
+ // if concomitant countdown to round start overrides countdown to game start
if(roundstarttime == starttime)
{
Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_ROUNDSTART, countdown_rounded);
if(previous_game_starttime != startTime)
{
- if((time + 5.0) < startTime) // if connecting to server while restart was active don't always play prepareforbattle
- Local_Notification(MSG_ANNCE, ANNCE_PREPARE);
-
if(time < startTime)
{
entity e = find(world, classname, "announcer_countdown");
e.classname = "announcer_countdown";
e.think = Announcer_Countdown;
}
+
+ if(time + 5.0 < startTime) // if connecting to server while restart was active don't always play prepareforbattle
+ if(time > e.nextthink) // don't play it again if countdown was already going
+ Local_Notification(MSG_ANNCE, ANNCE_PREPARE);
+
e.nextthink = startTime - floor(startTime - time); //synchronize nextthink to startTime
}
}
{
if(((!warmup_stage || autocvar_g_warmup_limit == 0) && timeleft > 300)
|| (warmup_stage && autocvar_g_warmup_limit > 0 && warmup_timeleft > 300))
- announcer_5min = FALSE;
+ announcer_5min = false;
}
else
{
//if we're in warmup mode, check whether there's a warmup timelimit
if(!(autocvar_g_warmup_limit == -1 && warmup_stage))
{
- announcer_5min = TRUE;
+ announcer_5min = true;
Local_Notification(MSG_ANNCE, ANNCE_REMAINING_MIN_5);
}
}
{
if(((!warmup_stage || autocvar_g_warmup_limit == 0) && timeleft > 60)
|| (warmup_stage && autocvar_g_warmup_limit > 0 && warmup_timeleft > 60))
- announcer_1min = FALSE;
+ announcer_1min = false;
}
else if(((!warmup_stage || autocvar_g_warmup_limit == 0) && timelimit > 0 && timeleft < 60)
|| (warmup_stage && autocvar_g_warmup_limit > 0 && warmup_timeleft < 60))
// if we're in warmup mode, check whether there's a warmup timelimit
if(!(autocvar_g_warmup_limit == -1 && warmup_stage))
{
- announcer_1min = TRUE;
+ announcer_1min = true;
Local_Notification(MSG_ANNCE, ANNCE_REMAINING_MIN_1);
}
}