k_menu: move easing helper functions to k_menu.h

This commit is contained in:
James R 2023-12-29 08:22:43 -08:00
parent 3faf0d02ba
commit 95378ade8f
2 changed files with 13 additions and 9 deletions

View file

@ -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

View file

@ -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