From 3ba00c4ff35e47214f5ebf651376b2be6336fcf8 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 14 Aug 2026 03:49:48 -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/ov_SC05_007/ov_SC05_007_jr_8017BEBC.c | 35 ++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/ov_SC05_007/ov_SC05_007_jr_8017BEBC.c b/src/ov_SC05_007/ov_SC05_007_jr_8017BEBC.c index 18cfce629..7634c208d 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_8017BEBC.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_8017BEBC.c @@ -3501,7 +3501,40 @@ void func_8017DFC4(void) { } -INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017DFEC); +extern s32 func_8012C044(s32 a0); +extern u32 D_801928FC[]; +extern void func_8017F568(void*); + +void func_8017DFEC(s32 a0) { + s32 *s0 = (s32 *)a0; + u32 v0; + u32 v1; + u32 (*func_ptr)(void); + + v0 = *(u16 *)((u8 *)s0 + 2); + v0 = v0 * 4; + func_ptr = (u32 (*)(void))D_801928FC[v0 / 4]; + func_ptr(); + + v0 = *(u16 *)s0; + if (v0 == 0) { + return; + } + + v0 = *(u32 *)((u8 *)s0 + 0x20); + v1 = *(u16 *)((u8 *)v0 + 0x2C); + v1 = v1 | 0x10; + *(u16 *)((u8 *)v0 + 0x2C) = v1; + + v0 = func_8012C044(a0); + v1 = 1; + if (v0 != v1) { + return; + } + *(u16 *)((u8 *)s0 + 0x102) = (v0 = 1); + ((void (*)(s32))func_8017F568)(a0); +} + INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017E078);