float previous_game_starttime;
string previous_announcement;
-//remaining maptime announcer sounds, true when sound was already played
+// remaining maptime announcer sounds, true when sound was already played
float announcer_1min;
float announcer_5min;
{
sound(world, CH_INFO, strcat("announcer/", autocvar_cl_announcer, "/", announcement, ".wav"), VOL_BASEVOICE, ATTN_NONE);
- previous_announcement = announcement;
+ if(previous_announcement) { strunzone(previous_announcement); }
+
+ previous_announcement = strzone(announcement);
previous_announcement_time = time;
}
}
previous_game_starttime = startTime;
}
-/**
- * Plays the 1minute or 5 minutes (of maptime) remaining sound, if client wants it
- */
+
+// Plays the 1 minute or 5 minutes (of maptime) remaining sound, if client wants it
void Announcer_Time()
{
float timelimit = getstatf(STAT_TIMELIMIT);
float timeleft = max(0, timelimit * 60 + getstatf(STAT_GAMESTARTTIME) - time);
- float warmup_timeleft;
+ float warmup_timeleft = 0;
if(warmup_stage)
if(autocvar_g_warmup_limit > 0)
{
if (announcer_1min)
{
- if(((!warmup_stage || autocvar_g_warmup_limit == 0) && timeleft > 60) || (warmup_stage && autocvar_g_warmup_limit > 0 && warmup_timeleft > 60))
- announcer_1min = FALSE;
+ if(((!warmup_stage || autocvar_g_warmup_limit == 0) && timeleft > 60)
+ || (warmup_stage && autocvar_g_warmup_limit > 0 && warmup_timeleft > 60))
+ 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))
+ 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 we're in warmup mode, check whether there's a warmup timelimit
if not(autocvar_g_warmup_limit == -1 && warmup_stage)
{
announcer_1min = TRUE;
}
}
-/**
- * Announce carried items (e.g. flags in CTF).
- */
-float redflag_prev;
-float blueflag_prev;
-void carrierAnnouncer() {
- float stat_items, redflag, blueflag;
- float pickup;
- string item;
-
- if not(autocvar_cl_notify_carried_items)
- return;
-
- stat_items = getstati(STAT_ITEMS);
-
- redflag = (stat_items/IT_RED_FLAG_TAKEN) & 3;
- blueflag = (stat_items/IT_BLUE_FLAG_TAKEN) & 3;
-
- if (redflag == 3 && redflag != redflag_prev) {
- item = _("^1RED^7 flag");
- pickup = (redflag_prev == 2);
- }
-
- if (blueflag == 3 && blueflag != blueflag_prev) {
- item = _("^4BLUE^7 flag");
- pickup = (blueflag_prev == 2);
- }
-
- if (item)
- {
- if (pickup) {
- if (autocvar_cl_notify_carried_items & 2)
- centerprint(sprintf(_("You picked up the %s!"), item));
- }
- else {
- if (autocvar_cl_notify_carried_items & 1)
- centerprint(sprintf(_("You got the %s!"), item));
- }
- }
-
- blueflag_prev = blueflag;
- redflag_prev = redflag;
-}
-
void Announcer()
{
Announcer_Gamestart();
Announcer_Time();
- carrierAnnouncer();
}
-/**
- * Add all future announcer sounds precaches here.
- * TODO: announcer queues
- */
-void Announcer_Precache () {
+void Announcer_Precache ()
+{
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/1minuteremains.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/5minutesremain.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/voteaccept.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/votecall.wav"));
precache_sound (strcat("announcer/", autocvar_cl_announcer, "/votefail.wav"));
-}
\ No newline at end of file
+}