]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/announcer.qc
Merge branch 'master' into z411/new_centerprint
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / announcer.qc
index 58c2727f7705a34bdb4a6ae3510804c970b25671..64606a6846f413d771bcd79fba52645156660d1d 100644 (file)
@@ -30,8 +30,6 @@ void Announcer_Countdown(entity this)
                centerprint_ClearTitle();
                return;
        }
-       if(starttime <= time && roundstarttime != starttime) // game start time has passed
-               announcer_5min = announcer_1min = false; // reset maptime announcers now as well
 
        bool inround = (roundstarttime && time >= starttime);
        float countdown = (inround ? roundstarttime - time : starttime - time);
@@ -135,9 +133,25 @@ MACRO_END
 
 void Announcer_Time()
 {
+       static bool warmup_stage_prev;
+
        if(intermission)
                return;
 
+       if (warmup_stage != warmup_stage_prev)
+       {
+               announcer_5min = announcer_1min = false;
+               warmup_stage_prev = warmup_stage;
+               return;
+       }
+
+       float starttime = STAT(GAMESTARTTIME);
+       if(time < starttime)
+       {
+               announcer_5min = announcer_1min = false;
+               return;
+       }
+
        float timeleft;
        if(warmup_stage)
        {
@@ -148,7 +162,7 @@ void Announcer_Time()
                        timeleft = 0;
        }
        else
-               timeleft = max(0, STAT(TIMELIMIT) * 60 + STAT(GAMESTARTTIME) - time);
+               timeleft = max(0, STAT(TIMELIMIT) * 60 + starttime - time);
 
        if(autocvar_cl_announcer_maptime >= 2)
                ANNOUNCER_CHECKMINUTE(5);