From 93a7c7fc2a6ec2b98e8bc634948abd3ead64c6b2 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Sat, 15 Aug 2026 00:00:12 -0600 Subject: [PATCH] =?UTF-8?q?feat(phase-31):=20worker=20gate=20=E2=80=94=20+?= =?UTF-8?q?2=20fns=20x0=20propagated=20(fleet=2095.3%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ov_SC02_000/ov_SC02_000_jr_8018173C.c | 35 +++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c b/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c index e763959a9..1d6f5df66 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c @@ -2940,7 +2940,27 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8018173C", func_8018259 INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8018173C", func_801825E0); -INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8018173C", func_80182630); +#include "common.h" + +extern s32 func_801399F0(s32); +extern void func_80139914(s32 a0); + +void func_80182630(s32 a0) +{ + u8 *s0 = (u8 *)a0; + register s32 v0 asm("v0"); + register s32 v1 asm("v1"); + + v0 = func_801399F0(*(s32 *)(s0 + 0x198)); + if (v0 != 0) { + func_80139914(*(s32 *)(s0 + 0x198)); + v0 = s0[0x4D]; + v1 = s0[0x214]; + s0[0x4D] = v0 - 1; + s0[0x214] = v1 + 1; + } +} + // @class: plumbing @@ -4167,7 +4187,18 @@ extern s16 D_800B9A0E; } -INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8018173C", func_80189898); +#include "common.h" + +extern s32 func_8012E544(s32 a0); +extern s32 func_8012AD50(void *a0); + +void func_80189898(void) { + s32 result = func_8012E544(0x338); + if (result != 0) { + func_8012AD50((void *)result); + } +} + extern void (*D_8018F724[])(void);