From 95378ade8f9f9947233f45e746fa62a0bcfde4bf Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 29 Dec 2023 08:22:43 -0800 Subject: [PATCH] k_menu: move easing helper functions to k_menu.h --- src/k_menu.h | 10 ++++++++++ src/k_menudraw.c | 12 +++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/k_menu.h b/src/k_menu.h index 0047748a8..a4da4fb52 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -184,6 +184,16 @@ struct menu_anim_t INT16 dist; }; +fixed_t M_TimeFrac(tic_t tics, tic_t duration); +fixed_t M_ReverseTimeFrac(tic_t tics, tic_t duration); +fixed_t M_DueFrac(tic_t start, tic_t duration); + +// FIXME: C++ template +#define M_EaseWithTransition(EasingFunc, N) \ + (menutransition.tics != menutransition.dest ? EasingFunc(menutransition.in ?\ + M_ReverseTimeFrac(menutransition.tics, menutransition.endmenu->transitionTics) :\ + M_TimeFrac(menutransition.tics, menutransition.startmenu->transitionTics), 0, N) : 0) + typedef enum { MM_NOTHING = 0, // is just displayed until the user do someting diff --git a/src/k_menudraw.c b/src/k_menudraw.c index 1073975d2..6da7b0180 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -80,29 +80,23 @@ int snprintf(char *str, size_t n, const char *fmt, ...); #include "discord.h" #endif -static ATTRUNUSED fixed_t M_TimeFrac(tic_t tics, tic_t duration) +fixed_t M_TimeFrac(tic_t tics, tic_t duration) { return tics < duration ? (tics * FRACUNIT + rendertimefrac) / duration : FRACUNIT; } -static ATTRUNUSED fixed_t M_ReverseTimeFrac(tic_t tics, tic_t duration) +fixed_t M_ReverseTimeFrac(tic_t tics, tic_t duration) { return FRACUNIT - M_TimeFrac(duration - tics, duration); } -static ATTRUNUSED fixed_t M_DueFrac(tic_t start, tic_t duration) +fixed_t M_DueFrac(tic_t start, tic_t duration) { tic_t t = I_GetTime(); tic_t n = t - start; return M_TimeFrac(min(n, duration), duration); } -// FIXME: C++ template -#define M_EaseWithTransition(EasingFunc, N) \ - (menutransition.tics != menutransition.dest ? EasingFunc(menutransition.in ?\ - M_ReverseTimeFrac(menutransition.tics, menutransition.endmenu->transitionTics) :\ - M_TimeFrac(menutransition.tics, menutransition.startmenu->transitionTics), 0, N) : 0) - #define SKULLXOFF -32 #define LINEHEIGHT 16 #define STRINGHEIGHT 8