X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fpanel%2Ftimer.qc;h=e49c777db2491eeb25e0fa81bfa4d88ef001e1aa;hp=5a7194a45849ee7967f97e2a9694fccaf3b97c0c;hb=7069dc3f41678554d089db582ccf16da1f8874a5;hpb=cff3504ad5e8ace014ea44de7ad04ad6e246a277 diff --git a/qcsrc/client/hud/panel/timer.qc b/qcsrc/client/hud/panel/timer.qc index 5a7194a458..e49c777db2 100644 --- a/qcsrc/client/hud/panel/timer.qc +++ b/qcsrc/client/hud/panel/timer.qc @@ -1,4 +1,16 @@ #include "timer.qh" + +#include +#include +#include + +// Timer (#5) + +void HUD_Timer_Export(int fh) +{ + // allow saving cvars that aesthetically change the panel into hud skin files +} + void HUD_Timer() { if(!autocvar__hud_configure) @@ -6,7 +18,7 @@ void HUD_Timer() if(!autocvar_hud_panel_timer) return; } - HUD_Panel_UpdateCvars(); + HUD_Panel_LoadCvars(); draw_beginBoldFont(); @@ -18,7 +30,7 @@ void HUD_Timer() HUD_Scale_Enable(); else HUD_Scale_Disable(); - HUD_Panel_DrawBg(1); + HUD_Panel_DrawBg(); if(panel_bg_padding) { pos += '1 1 0' * panel_bg_padding; @@ -26,7 +38,7 @@ void HUD_Timer() } string timer; - float timelimit, elapsedTime, timeleft, minutesLeft; + float timelimit, timeleft, minutesLeft; timelimit = STAT(TIMELIMIT); @@ -47,21 +59,22 @@ void HUD_Timer() } vector timer_color; - if(minutesLeft >= 5 || warmup_stage || timelimit == 0) //don't use red or yellow in warmup or when there is no timelimit + if(intermission_time || minutesLeft >= 5 || warmup_stage || timelimit == 0) timer_color = '1 1 1'; //white else if(minutesLeft >= 1) timer_color = '1 1 0'; //yellow else timer_color = '1 0 0'; //red - if (autocvar_hud_panel_timer_increment || (!warmup_stage && timelimit == 0) || (warmup_stage && warmup_timeleft <= 0)) { - if (time < STAT(GAMESTARTTIME)) { - //while restart is still active, show 00:00 - timer = seconds_tostring(0); - } else { - elapsedTime = floor(time - STAT(GAMESTARTTIME)); - timer = seconds_tostring(elapsedTime); - } + if (intermission_time) { + timer = seconds_tostring(max(0, floor(intermission_time - STAT(GAMESTARTTIME)))); + } else if (warmup_stage && warmup_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 + else + timer = seconds_tostring(floor(time - STAT(GAMESTARTTIME))); } else { if(warmup_stage) timer = seconds_tostring(warmup_timeleft);