seta hud_panel_healtharmor_hide_ondeath 0 "hide this panel when dead"
seta hud_panel_timer_increment "0" "show elapsed time instead of remaining time"
+seta hud_panel_timer_unbound "0" "show seconds leading up to the start of the match"
seta hud_panel_engineinfo_framecounter_exponentialmovingaverage 1 "use an averaging method for calculating fps instead of counting frametime like engine does"
seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight 0.1 "weight of latest data point"
timelimit = STAT(TIMELIMIT);
- timeleft = bound(0, timelimit * 60 + STAT(GAMESTARTTIME) - time, timelimit * 60);
+ if (autocvar_hud_panel_timer_unbound){
+ timeleft = max(0, timelimit * 60 + STAT(GAMESTARTTIME) - time);
+ } else {
+ timeleft = bound(0, timelimit * 60 + STAT(GAMESTARTTIME) - time, timelimit * 60);
+ }
timeleft = ceil(timeleft);
minutesLeft = floor(timeleft / 60);
timer = _("WARMUP");
} else if (autocvar_hud_panel_timer_increment || (!warmup_stage && timelimit == 0) || (warmup_stage && warmup_timeleft <= 0)) {
if (time < STAT(GAMESTARTTIME))
- timer = seconds_tostring(0); //while restart is still active, show 00:00
+ if (autocvar_hud_panel_timer_unbound){
+ timer = seconds_tostring(-(STAT(GAMESTARTTIME) - time));
+ } else {
+ timer = seconds_tostring(0); //while restart is still active, show 00:00
+ }
else
timer = seconds_tostring(floor(time - STAT(GAMESTARTTIME)));
} else {
bool autocvar_hud_panel_timer;
bool autocvar_hud_panel_timer_dynamichud = true;
bool autocvar_hud_panel_timer_increment;
+bool autocvar_hud_panel_timer_unbound;