mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 23:52:03 -04:00
feat(decomp): parallel gate — 1 fns across 1 binaries (16 workers)
ov_SC03_029 func_801847FC
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user