From 4daf4e270d896771400b0b30beb7b83c20041b07 Mon Sep 17 00:00:00 2001 From: Garrett Cox Date: Mon, 17 Aug 2026 07:21:37 -0500 Subject: Fix interpolation for archery enemies and bubbles (#1889) --- mm/src/code/z_effect_soft_sprite.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'mm/src/code') diff --git a/mm/src/code/z_effect_soft_sprite.c b/mm/src/code/z_effect_soft_sprite.c index da9ea400c..25f4b2e36 100644 --- a/mm/src/code/z_effect_soft_sprite.c +++ b/mm/src/code/z_effect_soft_sprite.c @@ -22,6 +22,7 @@ void EffectSs_InitInfo(PlayState* play, s32 tableSize) { for (effectSs = &sEffectSsInfo.table[0]; effectSs < &sEffectSsInfo.table[sEffectSsInfo.tableSize]; effectSs++) { EffectSs_Reset(effectSs); + effectSs->epoch = 0; } overlay = &gEffectSsOverlayTable[0]; @@ -161,8 +162,11 @@ void EffectSs_Insert(PlayState* play, EffectSs* effectSs) { if (FrameAdvance_IsEnabled(play) != true) { if (EffectSs_FindSlot(effectSs->priority, &index) == 0) { + u32 epoch = sEffectSsInfo.table[index].epoch + 1; + sEffectSsInfo.searchStartIndex = index + 1; sEffectSsInfo.table[index] = *effectSs; + sEffectSsInfo.table[index].epoch = epoch; } } } @@ -211,6 +215,7 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initData) { sEffectSsInfo.table[index].type = type; sEffectSsInfo.table[index].priority = priority; + sEffectSsInfo.table[index].epoch++; if (profile->init(play, index, &sEffectSsInfo.table[index], initData) == 0) { EffectSs_Reset(&sEffectSsInfo.table[index]); -- cgit v1.2.3