From 491bfc4e9805b69ddafedbcec4e9a9bad084f826 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 14 Aug 2026 01:56:27 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20worker=20gate=20=E2=80=94=20+1?= =?UTF-8?q?=20fns=20x0=20propagated=20(fleet=2095.2%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/md_SC04_028/md_SC04_028.c | 44 ++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/md_SC04_028/md_SC04_028.c b/src/md_SC04_028/md_SC04_028.c index 88ab25ecf..573d4d6cc 100644 --- a/src/md_SC04_028/md_SC04_028.c +++ b/src/md_SC04_028/md_SC04_028.c @@ -240,4 +240,46 @@ INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8600); INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8630); -INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E868C); +extern s32 D_801BA448; +extern s32 D_801E87E8; +extern s32 D_801E8818; +extern s32 D_801EFADC; +extern s32 D_801EFB0C; +extern s32 D_801EFB10; +extern s32 func_80029504(void); +extern s32 func_8012C1B8(void); +extern void func_8001C214(s32, s32); +extern void func_8012A828(s32, s32); +extern void func_8012CAE4(void *); +extern void func_8012E8E0(s32, s32); +extern void func_80178B18(s32, s32); + +void func_801E868C(void *a0) { + extern s32 D_801EFADC; + extern s32 D_801BA448; + extern s32 D_801E87E8; + extern s32 D_801E8818; + extern s32 D_801EFB10; + extern s32 D_801EFB0C; + s32 v0; + s32 ptr; + + v0 = func_8012C1B8(); + *(s32 *)((s32)a0 + 0x20) = v0; + if (v0 == 0) { + func_8012CAE4(a0); + } else { + func_8001C214(v0, (s32)&D_801EFADC); + ptr = *(s32 *)((s32)a0 + 0x68); + *(s32 *)&D_801EFB10 = 0; + *(s16 *)(ptr + 0xC) = 0x7FFF; + *(s16 *)((s32)a0 + 0x2) = 1; + func_8012A828((s32)a0, (s32)&D_801BA448); + func_8012E8E0((s32)a0, (s32)&D_801E87E8); + *(s16 *)((s32)a0 + 0x34) = 0; + func_80178B18((s32)a0, (s32)&D_801E8818); + v0 = func_80029504(); + *(s32 *)&D_801EFB0C = v0; + } +} +