From: z411 Date: Sun, 5 Dec 2021 00:09:50 +0000 (-0300) Subject: Fix countdown centerprint for round-based modes X-Git-Tag: xonotic-v0.8.5~270^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=6a74ac0024cd1a7c6d396cdc7dc491b83fe22259;p=xonotic%2Fxonotic-data.pk3dir.git Fix countdown centerprint for round-based modes --- diff --git a/qcsrc/client/announcer.qc b/qcsrc/client/announcer.qc index a5b3eecb1..a0e9b294c 100644 --- a/qcsrc/client/announcer.qc +++ b/qcsrc/client/announcer.qc @@ -28,12 +28,11 @@ void Announcer_Countdown(entity this) announcer_countdown = NULL; return; } - 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 - float countdown = (starttime - time); + bool inround = (roundstarttime && time >= starttime); + float countdown = (inround ? roundstarttime - time : starttime - time); float countdown_rounded = floor(0.5 + countdown); if(countdown <= 0) // countdown has finished, starttime is now @@ -47,22 +46,22 @@ void Announcer_Countdown(entity this) else // countdown is still going { // if concomitant countdown to round start overrides countdown to game start - if(roundstarttime == starttime) + if(inround) { Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_ROUNDSTART, countdown_rounded); Notification annce_num = Announcer_PickNumber(CNT_ROUNDSTART, countdown_rounded); if(annce_num != NULL) Local_Notification(MSG_ANNCE, annce_num); + this.nextthink = (roundstarttime - (countdown - 1)); } else { Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_GAMESTART, countdown_rounded); Notification annce_num = Announcer_PickNumber(CNT_GAMESTART, countdown_rounded); - if(annce_num != NULL) + if(!roundstarttime && annce_num != NULL) // Don't announce game start in round based modes Local_Notification(MSG_ANNCE, annce_num); + this.nextthink = (starttime - (countdown - 1)); } - - this.nextthink = (starttime - (countdown - 1)); } }