#include "announcer.qh"
-#include "_all.qh"
+
+#include "mutators/events.qh"
#include "../common/notifications.qh"
#include "../common/stats.qh"
-#include "../common/util.qh"
bool announcer_1min;
bool announcer_5min;
+string AnnouncerOption()
+{
+ if(MUTATOR_CALLHOOK(AnnouncerOption, ret_string))
+ return ret_string;
+
+ return autocvar_cl_announcer;
+}
+
void Announcer_Countdown()
-{SELFPARAM();
+{
+ SELFPARAM();
float starttime = getstatf(STAT_GAMESTARTTIME);
float roundstarttime = getstatf(STAT_ROUNDSTARTTIME);
if(roundstarttime == -1)
{
Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_ROUNDSTOP);
- remove(self);
+ remove(this);
return;
}
if(roundstarttime >= starttime)
{
Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_BEGIN);
Local_Notification(MSG_MULTI, MULTI_COUNTDOWN_BEGIN);
- remove(self);
+ remove(this);
return;
}
else // countdown is still going
Local_Notification(MSG_ANNCE, Announcer_PickNumber(CNT_GAMESTART, countdown_rounded));
}
- self.nextthink = (starttime - (countdown - 1));
+ this.nextthink = (starttime - (countdown - 1));
}
}
{
if(time < startTime)
{
- entity e = find(world, classname, "announcer_countdown");
- if (!e)
+ static entity announcer_countdown;
+ if (!announcer_countdown)
{
- e = spawn();
- e.classname = "announcer_countdown";
- e.think = Announcer_Countdown;
+ announcer_countdown = new(announcer_countdown);
+ announcer_countdown.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
+ if(time > announcer_countdown.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
+ announcer_countdown.nextthink = startTime - floor(startTime - time); //synchronize nextthink to startTime
}
}