From c143d3eb3df1ed9716636fccec661073b24682f5 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 14 Aug 2026 03:58:39 -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_SC06_006/ov_SC06_006_jr_8017BEBC.c | 33 ++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c b/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c index c3632033f..0371b8d03 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c @@ -3429,7 +3429,38 @@ INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_jr_8017BEBC", func_8017F93 INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_jr_8017BEBC", func_8017FA2C); -INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_jr_8017BEBC", func_8017FD4C); +extern s32 D_801269A4; +extern s32 D_801269A8; +extern s32 D_801269AC; +extern void func_80017E68(void *a0, void *a1); +extern void func_800D20C0(void *a0, void *a1, s32 a2); +extern void func_800D23D0(void *a0); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_8017FD4C(s32 param_1, s16 *param_2, s16 *param_3, void *param_4) { + s16 mid[3]; + s16 dir[3]; + s32 pos[3]; + mid[0] = (param_2[0] + param_3[0]) >> 1; + mid[1] = (param_2[1] + param_3[1]) >> 1; + mid[2] = (param_2[2] + param_3[2]) >> 1; + ((void (*)(s32, void *, void *))func_8012F14C)(param_1, mid, mid); + func_800D20C0(mid, dir, 8); + func_80017E68(mid, param_4); + dir[0] = (u16)param_3[0] - (u16)param_2[0]; + dir[1] = (u16)param_3[1] - (u16)param_2[1]; + dir[2] = (u16)param_3[2] - (u16)param_2[2]; + ApplyMatrixSV((void *)param_1, dir, dir); + func_800D23D0(dir); + RotMatrixYXZ(dir, param_4); + pos[0] = D_801269A4 - mid[0]; + pos[1] = D_801269A8 - mid[1]; + pos[2] = D_801269AC - mid[2]; + ApplyTransposeMatrixLV(param_4, pos, pos); + dir[2] = -ratan2(pos[0], pos[1]); + RotMatrixYXZ(dir, param_4); +} + INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_jr_8017BEBC", func_8017FECC);