From 6a74ac0024cd1a7c6d396cdc7dc491b83fe22259 Mon Sep 17 00:00:00 2001 From: z411 Date: Sat, 4 Dec 2021 21:09:50 -0300 Subject: [PATCH] Fix countdown centerprint for round-based modes --- qcsrc/client/announcer.qc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) 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)); } } -- 2.39.2