From c8016ad863ff618c062c24b46e54866037d2ecc0 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 14 Aug 2026 03:13:11 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20worker=20gate=20=E2=80=94=20+2?= =?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/ov_SC03_111/ov_SC03_111_jr_8017EC58.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c b/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c index 738df2dc8..708019f31 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c @@ -5069,7 +5069,16 @@ void func_80183844(s32 a0) INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_80183924); -INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_8018398C); + extern s32 func_8012BCCC(s32 a0); + void func_8018398C(s32 a0) { + s16 v = *(s16 *)(a0 + 0xFC); + if (v != 0) { + *(s16 *)(a0 + 0xFC) = v - 1; + } else if (func_8012BCCC(a0) <= 0xFFFFF) { + *(s16 *)(a0 + 0x2) = 0x9; + } + } + INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_801839EC); @@ -5301,7 +5310,17 @@ void func_80183FAC(void *a0) { } -INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_80184060); + void func_80184060(void *a0) { + s32 *p = *(s32 **)((s32)a0 + 0x20); + p[1] = p[1] | 0x58000000; + *(s16 *)((s32)p + 0x1E) = 0; + *(s16 *)((s32)p + 0x18) = 0; + *(s16 *)((s32)p + 0x1A) = 0; + *(s16 *)((s32)p + 0x1C) = 0; + *(s32 *)((s32)a0 + 0x2C) = 0x400; + *(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; + } + INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_801840A0);