From: Juhu <5894800-Juhu_@users.noreply.gitlab.com> Date: Sun, 15 Jan 2023 01:05:02 +0000 (+0100) Subject: strafehud: ignore a race_checkpointtime of 0 on the start trigger + small startspeed... X-Git-Tag: xonotic-v0.8.6~136^2~12 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=4df550af2930a42fe07a5317820fabcc2d364880;p=xonotic%2Fxonotic-data.pk3dir.git strafehud: ignore a race_checkpointtime of 0 on the start trigger + small startspeed/jumpheight code adjustments --- diff --git a/qcsrc/client/hud/panel/strafehud.qc b/qcsrc/client/hud/panel/strafehud.qc index 226ad4f62..692096575 100644 --- a/qcsrc/client/hud/panel/strafehud.qc +++ b/qcsrc/client/hud/panel/strafehud.qc @@ -878,20 +878,20 @@ void HUD_StrafeHUD() draw_beginBoldFont(); // show speed when crossing the start trigger - if(autocvar_hud_panel_strafehud_startspeed_fade > 0) + if(autocvar_hud_panel_strafehud_startspeed_fade > 0 && autocvar_hud_panel_strafehud_startspeed_size > 0) { static float startspeed = 0, starttime = 0; // displayed value and timestamp for fade out if((race_nextcheckpoint == 1) || (race_checkpoint == 254 && race_nextcheckpoint == 255)) // check if the start trigger was hit (will also trigger if the finish trigger was hit if those have the same ID) { - if(starttime != race_checkpointtime) + if((race_checkpointtime > 0) && (starttime != race_checkpointtime)) { starttime = race_checkpointtime; startspeed = speed; } } - if((starttime > 0) && ((time - starttime) <= autocvar_hud_panel_strafehud_startspeed_fade) && autocvar_hud_panel_strafehud_startspeed_size > 0) + if((starttime > 0) && ((time - starttime) <= autocvar_hud_panel_strafehud_startspeed_fade)) { float text_alpha = cos(((time - starttime) / autocvar_hud_panel_strafehud_startspeed_fade) * 90 * DEG2RAD); // fade non-linear like the physics panel does vector startspeed_size = panel_size; @@ -915,6 +915,10 @@ void HUD_StrafeHUD() string speed_unit = GetSpeedUnit(autocvar_hud_panel_strafehud_unit); drawstring_aspect(panel_pos + eY * (panel_size.y + text_offset), strcat(ftos_decimals(startspeed * speed_conversion_factor, 2), autocvar_hud_panel_strafehud_unit_show ? speed_unit : ""), startspeed_size, autocvar_hud_panel_strafehud_startspeed_color, text_alpha * panel_fg_alpha, DRAWFLAG_NORMAL); } + else + { + starttime = 0; + } } // show height achieved by a single jump @@ -942,7 +946,7 @@ void HUD_StrafeHUD() } } - if((jumptime > 0) && (time - jumptime) <= autocvar_hud_panel_strafehud_jumpheight_fade) + if((jumptime > 0) && ((time - jumptime) <= autocvar_hud_panel_strafehud_jumpheight_fade)) { float text_alpha = cos(((time - jumptime) / autocvar_hud_panel_strafehud_jumpheight_fade) * 90 * DEG2RAD); // fade non-linear like the physics panel does vector jumpheight_size = panel_size; @@ -966,6 +970,10 @@ void HUD_StrafeHUD() string length_unit = GetLengthUnit(autocvar_hud_panel_strafehud_unit); drawstring_aspect(panel_pos - eY * (jumpheight_size.y + text_offset), strcat(ftos_decimals(jumpheight, length_decimals), autocvar_hud_panel_strafehud_unit_show ? length_unit : ""), jumpheight_size, autocvar_hud_panel_strafehud_jumpheight_color, text_alpha * panel_fg_alpha, DRAWFLAG_NORMAL); } + else + { + jumptime = 0; + } } draw_endBoldFont(); }