From b676d5137eab89f6316304d10862e45d3278c692 Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 4 Jan 2024 01:16:41 -0800 Subject: [PATCH] Menus/Challenges: interpolate scrolling --- src/k_menu.h | 1 + src/k_menudraw.c | 2 ++ src/menus/extras-challenges.c | 11 +++++++++++ 3 files changed, 14 insertions(+) diff --git a/src/k_menu.h b/src/k_menu.h index fd47fda6e..bef8ad042 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -1320,6 +1320,7 @@ extern struct challengesmenu_s { tic_t ticker; // How long the menu's been open for INT16 offset; // To make the icons move smoothly when we transition! + menu_anim_t move; UINT16 currentunlock; char *unlockcondition; diff --git a/src/k_menudraw.c b/src/k_menudraw.c index 3c5d97f21..088665c3a 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -6871,6 +6871,8 @@ void M_DrawChallenges(void) x += challengesmenu.offset; + x += Easing_OutQuad(M_DueFrac(challengesmenu.move.start, 4), challengesgridstep * challengesmenu.move.dist, 0); + if (challengegridloops) { if (!challengesmenu.col && challengesmenu.hilix) diff --git a/src/menus/extras-challenges.c b/src/menus/extras-challenges.c index a2d03fffa..72729f17a 100644 --- a/src/menus/extras-challenges.c +++ b/src/menus/extras-challenges.c @@ -1,6 +1,7 @@ /// \file menus/extras-challenges.c /// \brief Challenges. +#include "../i_time.h" #include "../k_menu.h" #include "../m_cond.h" // Condition Sets #include "../m_random.h" // And just some randomness for the exits. @@ -862,6 +863,11 @@ boolean M_ChallengesInputs(INT32 ch) { challengesmenu.focusx--; } + else + { + challengesmenu.move.dist = 1; + challengesmenu.move.start = I_GetTime(); + } // Step the actual column right. if (challengesmenu.col < gamedata->challengegridwidth-1) @@ -899,6 +905,11 @@ boolean M_ChallengesInputs(INT32 ch) { challengesmenu.focusx++; } + else + { + challengesmenu.move.dist = -1; + challengesmenu.move.start = I_GetTime(); + } // Step the actual column left. if (challengesmenu.col > 0)