- string timer;
- float timelimit, timeleft, minutesLeft;
-
- timelimit = STAT(TIMELIMIT);
+ string timer_str = string_null;
+ string subtimer_str = string_null;
+ string subtext = string_null;
+ float curtime, timelimit, timeleft;
+ vector timer_size, subtext_size, subtimer_size;
+ vector timer_color = '1 1 1';
+ vector subtimer_color = '1 1 1';
+ bool swap = (autocvar_hud_panel_timer_secondary == 2 && STAT(ROUNDSTARTTIME));
+
+ // Use real or frozen time and get the time limit
+ curtime = (intermission_time ? intermission_time : time);
+ timelimit = (warmup_stage ? STAT(WARMUP_TIMELIMIT) : STAT(TIMELIMIT) * 60);
+
+ // Calculate time left
+ timeleft = HUD_Timer_TimeLeft(curtime, STAT(GAMESTARTTIME), timelimit);
+
+ // Timer color
+ if(!intermission_time && !warmup_stage && timelimit > 0)
+ timer_color = HUD_Timer_Color(timeleft);
+
+ // Timer text
+ if (autocvar_hud_panel_timer_increment || timelimit <= 0)
+ timer = HUD_Timer_TimeElapsed(curtime, STAT(GAMESTARTTIME));
+ else
+ timer = timeleft;