From fa09b0059f3ffcc7b9e853f330e832ea75d74502 Mon Sep 17 00:00:00 2001 From: Nunuhara Cabbage Date: Tue, 25 Aug 2026 18:48:58 -0700 Subject: [PATCH] Implement PartsEngine.SetSpeedupRateByMessageSkip Speeds up animations while message skipping. --- src/parts/motion.c | 15 ++++++++++++--- src/parts/parts.c | 6 ------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/parts/motion.c b/src/parts/motion.c index 9ef8883..4810aea 100644 --- a/src/parts/motion.c +++ b/src/parts/motion.c @@ -537,12 +537,21 @@ void PE_SeekEndMotion(void) PE_SetMotionTime(motion_end_t - 1); } -void PE_UpdateMotionTime(int time, possibly_unused bool skip) +static int msgskip_speedup_rate = 1; + +void PE_UpdateMotionTime(int time, bool skip) { - // TODO: use skip if (is_motion_paused) return; - PE_SetMotionTime(motion_t + time); + if (skip) + PE_SetMotionTime(motion_t + time * msgskip_speedup_rate); + else + PE_SetMotionTime(motion_t + time); +} + +void PE_SetSpeedupRateByMessageSkip(int parts_no, int rate) +{ + msgskip_speedup_rate = max(1, rate); } bool PE_IsMotion(void) diff --git a/src/parts/parts.c b/src/parts/parts.c index e63cd55..5242edb 100644 --- a/src/parts/parts.c +++ b/src/parts/parts.c @@ -2101,12 +2101,6 @@ bool PE_IsExist(int parts_no) return !!ht_get_int(parts_table, parts_no, NULL); } -void PE_SetSpeedupRateByMessageSkip(int parts_no, int rate) -{ - if (rate != 1) - UNIMPLEMENTED("(%d, %d)"); -} - static void ctrl_stack_init(void) { memset(&ctrl_stack, 0, sizeof(ctrl_stack));