From bad793c73efa6013a8f4febf44aebaf1b42b4579 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Mon, 24 Aug 2026 12:26:58 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20jtbl=20lane=20=E2=80=94=20func?= =?UTF-8?q?=5F801F218C=20banked=20in=20md=5FSC03=5F076=20(88=20ins,=20cove?= =?UTF-8?q?red)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit carve→draft→bank through harvest_verify's gate-time jtbl prep (island split §260); whole-binary SHA green. --- src/md_SC03_076/md_SC03_076_jr_801F218C.c | 62 ++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/src/md_SC03_076/md_SC03_076_jr_801F218C.c b/src/md_SC03_076/md_SC03_076_jr_801F218C.c index 0fb7c913e5..e67375edc8 100644 --- a/src/md_SC03_076/md_SC03_076_jr_801F218C.c +++ b/src/md_SC03_076/md_SC03_076_jr_801F218C.c @@ -80,7 +80,67 @@ extern void func_8012F14C(s32 a0, s32 a1, s32 a2); /* ==== end §8b carried decl layer ==== */ -INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076_jr_801F218C", func_801F218C); + + + + + +extern s32 D_80126B10; +extern u8 D_801F35C4[]; +extern u8 D_801F3630[]; +extern u8 D_801F3648[]; +extern s32 func_801789AC(u8 *a0); +extern void func_80178CBC(u8 *a0, u8 *a1); +extern s16 func_80188F10(void); +extern void func_80188F20(s32 a0); +extern void func_80174438(s32 a0); +extern void func_801EF6E4(void); +extern s16 func_801EF70C(void); + +void func_801F218C(u8 *a0) { + switch (*(u16 *)(a0 + 0x34)) { + case 0: + switch (func_801789AC(a0)) { + case 2: + func_80178CBC(a0, D_801F3630); + *(u16 *)(a0 + 0x34) = 0; + break; + case 1: + *(u16 *)(a0 + 0x34) = 2; + func_80188F20(4); + break; + case 3: + func_80178CBC(a0, D_801F3648); + *(u16 *)(a0 + 0x34) = 3; + break; + } + break; + case 1: + break; + case 2: + if (func_80188F10() != 0) { + func_801EF6E4(); + *(u16 *)(a0 + 0x34) = 4; + } else { + func_80178CBC(a0, D_801F35C4); + *(u16 *)(a0 + 0x34) = 0; + } + break; + case 3: + if (func_801789AC(a0) != 0) { + func_80174438(D_80126B10); + *(u16 *)(a0 + 0x34) = 1; + } + break; + case 4: + if (func_801EF70C() != 0) { + *(u16 *)(a0 + 0x34) = 2; + func_80188F20(4); + } + break; + } +} +