feat(decomp): parallel gate — 1 fns across 1 binaries (16 workers)

ov_SC03_029    func_801847FC
This commit is contained in:
Drew T
2026-09-01 00:01:54 -06:00
parent ef504ffc32
commit b2d73108e2
+62 -1
View File
@@ -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"