From 76bdaeafb93d324c15f3fae72c5ae74e33f12d04 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Thu, 13 Aug 2026 04:39: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.1%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c | 41 ++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c b/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c index 172a599462..c2d15ba3b0 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c @@ -4534,7 +4534,46 @@ void func_8017E014(void) { } -INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_jr_8017AE2C", func_8017E038); +extern s32 func_80029178(s32 arg); +extern s32 func_8012BD14(void); +extern s32 func_80178BF8(); +extern void func_80172710(void); + +s32 func_8017E038(void *s0) { + s32 v0; + s32 v1; + s32 a0; + + v0 = func_80029178(0x13C); + v0 &= 0xFF; + if (v0 != 0) { + return 0; + } + + a0 = *(s32 *)((u8 *)s0 + 0x64); + v1 = *(u16 *)(a0 + 0x2); + v0 = 0x2; + if (v1 != v0) { + return 0; + } + + v0 = *(u16 *)(a0 + 0x34); + if (v0 != 0) { + return 0; + } + + v0 = func_8012BD14(); + if (v0 >= 0x4001) { + return 0; + } + + v0 = 0x1; + v1 = *(s32 *)((u8 *)s0 + 0x64); + *(u16 *)(v1 + 0x34) = v0; + ((void (*)(void))func_80178BF8)(); + return (s32)&(*(char *)&func_80172710); +} + INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_jr_8017AE2C", func_8017E0CC);