From c8650a4a500968894f037c83d33fc7547830a165 Mon Sep 17 00:00:00 2001 From: z411 Date: Tue, 8 Mar 2022 00:19:36 -0300 Subject: [PATCH] centerprint: Simplified fade in/out code --- qcsrc/client/hud/panel/centerprint.qc | 36 +++++++++++++-------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/qcsrc/client/hud/panel/centerprint.qc b/qcsrc/client/hud/panel/centerprint.qc index 07a752a8e..6e8667d2f 100644 --- a/qcsrc/client/hud/panel/centerprint.qc +++ b/qcsrc/client/hud/panel/centerprint.qc @@ -39,6 +39,7 @@ string centerprint_messages[CENTERPRINT_MAX_MSGS]; int centerprint_msgID[CENTERPRINT_MAX_MSGS]; bool centerprint_bold[CENTERPRINT_MAX_MSGS]; float centerprint_time[CENTERPRINT_MAX_MSGS]; +float centerprint_start_time[CENTERPRINT_MAX_MSGS]; float centerprint_expire_time[CENTERPRINT_MAX_MSGS]; int centerprint_countdown_num[CENTERPRINT_MAX_MSGS]; bool centerprint_showing; @@ -46,7 +47,7 @@ bool centerprint_showing; void centerprint_Add(int new_id, string strMessage, float duration, int countdown_num) { TC(int, new_id); TC(int, countdown_num); - //LOG_INFOF("centerprint_Add: ^2id: %d ^3dur: %d ^5countdown: %d\n'%s'", new_id, duration, countdown_num, strreplace("\n", "^7\\n^7", strMessage)); + LOG_INFOF("centerprint_Add: ^2id: %d ^3dur: %d ^5countdown: %d\n'%s'", new_id, duration, countdown_num, strreplace("\n", "^7\\n^7", strMessage)); int i, j; if(strMessage == "" && new_id == 0) @@ -106,6 +107,7 @@ void centerprint_Add(int new_id, string strMessage, float duration, int countdow j = cpm_index; } strcpy(centerprint_messages[j], strMessage); + centerprint_start_time[j] = time; centerprint_bold[j] = is_bold; centerprint_msgID[j] = new_id; if (duration < 0) @@ -239,17 +241,10 @@ void HUD_CenterPrint() if (autocvar_hud_panel_centerprint_flip) pos.y += panel_size.y; align = bound(0, autocvar_hud_panel_centerprint_align, 1); + bool is_bold = true; for (g=0, i=0, j=cpm_index; i time) // Regularily printed. Not fading out yet. - a = (time - (centerprint_expire_time[j] - centerprint_time[j])) / max(0.0001, fade_in_time); - else // Expiring soon, so fade it out. - a = (centerprint_expire_time[j] - time) / max(0.0001, autocvar_hud_panel_centerprint_fade_out); + a = 1; + if(fade_in_time && centerprint_start_time[j] && time < centerprint_start_time[j] + fade_in_time) // Fade in + a = (time - centerprint_start_time[j]) / fade_in_time; + else if(time < centerprint_expire_time[j] - fade_out_time || centerprint_time[j] < 0) // Regularily printed or forced + a = 1; + else if(fade_out_time) // Expiring soon, so fade it out. + a = (centerprint_expire_time[j] - time) / fade_out_time; if(centerprint_msgID[j] == ORDINAL(CPID_TIMEIN)) a = 1; @@ -292,8 +292,6 @@ void HUD_CenterPrint() // while counting down show it anyway in order to hold the current message position if (a <= 0.5/255.0 && centerprint_countdown_num[j] == 0) // Guaranteed invisible - don't show. continue; - if (a > 1) - a = 1; // set the size from fading in/out before subsequent fading sz = autocvar_hud_panel_centerprint_fade_minfontsize + a * (1 - autocvar_hud_panel_centerprint_fade_minfontsize); -- 2.39.2