From b2d73108e24e7f9ff58f38f2660f289de1d5b8a5 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 1 Sep 2026 00:01:54 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20parallel=20gate=20=E2=80=94=201?= =?UTF-8?q?=20fns=20across=201=20binaries=20(16=20workers)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ov_SC03_029 func_801847FC --- src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c | 63 ++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c b/src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c index d24f0bc5f2..2340bf107a 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c @@ -6166,7 +6166,68 @@ void func_80184764(void *a0) { } -INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017FF7C", func_801847FC); + + +extern s32 D_80126B58; +extern s32 func_8014CAFC(void); +extern s32 func_80184958(void *a0); +extern u8 D_80078E78[]; +extern u8 D_80078EAE; +extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5); + +s32 func_801847FC(arg0) +void *arg0; +{ + + extern u8 D_80078EAE; + u8 *base; + u8 *p; + s32 flag; + s16 diff[3]; + s16 pointA[3]; + s32 v0; + void *ptr; + + base = (u8 *)&D_80126B58; + p = D_80078E78; + flag = 0; + + if (func_8014CAFC() != 0) { + if (D_80078EAE != 0) { + return 0; + } + flag = 1; + } + + if (func_80184958(arg0) == 0) { + return 0; + } + + pointA[0] = *(u16 *)(base + 0x6); + pointA[1] = *(u16 *)(base + 0xA); + pointA[2] = *(u16 *)(base + 0xE); + + diff[0] = pointA[0] - *(u16 *)((u8 *)arg0 + 0x6); + diff[1] = pointA[1] - *(u16 *)((u8 *)arg0 + 0xA); + diff[2] = pointA[2] - *(u16 *)((u8 *)arg0 + 0xE); + + VectorNormalSS(diff, diff); + + pointA[1] -= 0x20; + + if (!flag) { + v0 = p[0x36]; + func_8012F568(1, 0x5001, 0, (v0 ^ 1) * 10, (s32)pointA, (s32)diff); + } else { + func_8012F568(1, 0x4001, 0, 0xA, (s32)pointA, (s32)diff); + } + + ptr = *(void **)((u8 *)arg0 + 0x20); + *(u16 *)(base + 0x42) = *(u16 *)((u8 *)ptr + 0x12); + + return 1; +} + #include "common.h"