3 #include <client/draw.qh>
4 #include <client/view.qh>
8 void HUD_Timer_Export(int fh)
10 // allow saving cvars that aesthetically change the panel into hud skin files
15 if(!autocvar__hud_configure)
17 if(!autocvar_hud_panel_timer) return;
20 HUD_Panel_LoadCvars();
28 if (autocvar_hud_panel_timer_dynamichud)
35 pos += '1 1 0' * panel_bg_padding;
36 mySize -= '2 2 0' * panel_bg_padding;
39 string timer_sub = "";
40 float timelimit, timeleft, minutesLeft, overtimes, timeout_last;
42 timelimit = STAT(TIMELIMIT);
43 overtimes = STAT(OVERTIMESADDED);
44 timeout_last = STAT(TIMEOUT_LAST);
46 timeleft = max(0, timelimit * 60 + STAT(GAMESTARTTIME) - time);
47 timeleft = ceil(timeleft);
49 minutesLeft = floor(timeleft / 60);
51 float warmup_timeleft = 0;
54 float warmup_timelimit = STAT(WARMUP_TIMELIMIT);
55 if(warmup_timelimit > 0)
56 warmup_timeleft = max(0, warmup_timelimit - time);
57 else if(warmup_timelimit == 0)
58 warmup_timeleft = timeleft;
59 warmup_timeleft = ceil(warmup_timeleft);
63 if(intermission_time || minutesLeft >= 5 || warmup_stage || timelimit == 0)
64 timer_color = '1 1 1'; //white
65 else if(minutesLeft >= 1)
66 timer_color = '1 1 0'; //yellow
68 timer_color = '1 0 0'; //red
70 if (intermission_time) {
71 timer = max(0, floor(intermission_time - STAT(GAMESTARTTIME)));
72 timer_sub = "Intermission";
73 //} else if (autocvar_hud_panel_timer_increment || (!warmup_stage && timelimit == 0) || (warmup_stage && warmup_timeleft <= 0)) {
74 } else if (timeout_last) {
75 if(autocvar_hud_panel_timer_increment)
76 timer = max(0, floor(timeout_last - STAT(GAMESTARTTIME)));
78 timer = ceil(max(0, timelimit * 60 + STAT(GAMESTARTTIME) - timeout_last));
79 timer_sub = "Timeout";
80 } else if (autocvar_hud_panel_timer_increment || timelimit == 0) {
82 if((warmup_stage && warmup_timeleft <= 0) || time < STAT(GAMESTARTTIME))
85 timer = floor(time - STAT(GAMESTARTTIME));
89 if(warmup_timeleft <= 0)
90 timer = floor(timelimit * 60);
92 timer = warmup_timeleft;
94 if (time < STAT(GAMESTARTTIME))
95 timer = floor(timelimit * 60);
96 //else if (overtimes > 0)
97 // timer = floor(time - STAT(OVERTIMESTARTTIME));
104 timer_sub = "Warmup";
105 else if(overtimes == 1)
106 timer_sub = "Overtime";
107 else if (overtimes > 1)
108 timer_sub = sprintf("Overtime #%d", overtimes);
110 drawstring_aspect(pos, seconds_tostring(timer), mySize, timer_color, panel_fg_alpha, DRAWFLAG_NORMAL);
112 if(timer_sub != "") {
114 mySize.y = mySize.y / 2;
115 drawstring_aspect(pos, timer_sub, mySize, '1 0 0', panel_fg_alpha, DRAWFLAG_NORMAL);