From 23a21b9cd815bbb226fb959f9ffb8244fa4e11d8 Mon Sep 17 00:00:00 2001 From: itsgrimetime <990274+itsgrimetime@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:09:51 -0800 Subject: [PATCH] vi1201v1: Match fn_8031FC30 and fn_8031FCBC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fn_8031FC30: CObj animation with frame checks for vi_8031C9B4 and un_8031F9D8 - fn_8031FCBC: Frame counter with GObjPLink cleanup after 30 frames Rebased on upstream/master after other vi functions merged via #2053. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/melee/vi/vi1201v1.c | 28 ++++++++++++++++++++++++++-- src/melee/vi/vi1201v1.h | 6 +++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/melee/vi/vi1201v1.c b/src/melee/vi/vi1201v1.c index 0188f97fce..0f373c5a68 100644 --- a/src/melee/vi/vi1201v1.c +++ b/src/melee/vi/vi1201v1.c @@ -1,6 +1,9 @@ #include "vi/vi1201v1.static.h" +#include +#include #include +#include #include #include @@ -49,9 +52,30 @@ void fn_8031FB90(HSD_GObj* gobj) } } -/// #fn_8031FC30 +void fn_8031FC30(HSD_GObj* gobj) +{ + HSD_CObj* cobj = GET_COBJ(gobj); + HSD_CObjAnim(cobj); + if (cobj->aobj->curr_frame == 1.0F) { + vi_8031C9B4(0xD, 0); + } + if (cobj->aobj->curr_frame == 30.0F) { + un_8031F9D8(un_804D6FFC, un_804D6FFD); + } + if (cobj->aobj->curr_frame == cobj->aobj->end_frame) { + lb_800145F4(); + gm_801A4B60(); + } +} -/// #fn_8031FCBC +void fn_8031FCBC(HSD_GObj* gobj) +{ + if ((f32) un_804D6FF8 >= 30.0F) { + HSD_GObjPLink_80390228(gobj); + } else { + un_804D6FF8 = un_804D6FF8 + 1; + } +} /// #un_8031FD18_OnEnter diff --git a/src/melee/vi/vi1201v1.h b/src/melee/vi/vi1201v1.h index 4ffa20cf38..bddf23c77c 100644 --- a/src/melee/vi/vi1201v1.h +++ b/src/melee/vi/vi1201v1.h @@ -7,11 +7,11 @@ /* 31F990 */ void un_8031F990(HSD_GObj*); /* 31F9B4 */ void un_8031F9B4(HSD_GObj*); -/* 31F9D8 */ UNK_RET un_8031F9D8(UNK_PARAMS); +/* 31F9D8 */ void un_8031F9D8(u8, u8); /* 31FAA8 */ UNK_RET fn_8031FAA8(UNK_PARAMS); /* 31FB90 */ void fn_8031FB90(HSD_GObj*); -/* 31FC30 */ UNK_RET fn_8031FC30(UNK_PARAMS); -/* 31FCBC */ UNK_RET fn_8031FCBC(UNK_PARAMS); +/* 31FC30 */ void fn_8031FC30(HSD_GObj*); +/* 31FCBC */ void fn_8031FCBC(HSD_GObj*); /* 31FD18 */ void un_8031FD18_OnEnter(UNK_T); /* 320490 */ void un_80320490_OnFrame(void); /* 3204B0 */ void un_803204B0(int, int);