mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 05:56:00 -04:00
feat(phase-31): worker gate — +12 fns x0 propagated (fleet 95.3%)
This commit is contained in:
@@ -4448,7 +4448,18 @@ void func_8017DAC4(void *arg0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017DBDC);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8013CB84(void);
|
||||
extern void func_8017DC0C(void);
|
||||
extern void func_800D06E8(void);
|
||||
|
||||
void func_8017DBDC(void) {
|
||||
func_8013CB84();
|
||||
func_8017DC0C();
|
||||
func_800D06E8();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: regalloc-order
|
||||
@@ -4952,7 +4963,18 @@ extern void func_80029124(s32 arg0, s32 arg1);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017F138);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017F174);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8014BB0C(void);
|
||||
extern void func_8014BDC8(void);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_8017F174(void) {
|
||||
func_8014BB0C();
|
||||
func_8014BDC8();
|
||||
((s32 (*)(s32, s32))func_8002D4C8)(0x45C, 0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80029514(int);
|
||||
void func_8017F1A8(void) {
|
||||
@@ -5196,7 +5218,25 @@ extern void func_80029124(s32 arg0, s32 arg1);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017FA58);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017FAAC);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80184BD0(u8 a0, u8 a1, u8 a2, u8 a3);
|
||||
extern void func_80184CB8(s32 *a0, s32 a1);
|
||||
extern s16 D_80191570;
|
||||
|
||||
void func_8017FAAC(void *a0) {
|
||||
s32 *v1;
|
||||
s32 result;
|
||||
|
||||
v1 = *(s32 **)((s32)a0 + 0xCC);
|
||||
*(s32 *)((s32)v1 + 0xB0) = 0x2;
|
||||
result = func_80184BD0(0xE, 0xF, 0x17, 0);
|
||||
if (result == 0) {
|
||||
*(s16 *)((s32)a0 + 0x2) = 1;
|
||||
func_80184CB8((s32 *)a0, (s32)&D_80191570);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -5241,7 +5281,41 @@ case1:
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017FBB0);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80185BE0(s32 a0);
|
||||
extern s32 func_80184FA4(s32);
|
||||
extern void func_80184ED4(s32, s32, s32, s32);
|
||||
extern void func_80184CB8(s32*, s32);
|
||||
extern u8 D_801E396C[];
|
||||
extern s16 D_80191570;
|
||||
|
||||
void func_8017FBB0(void *a0) {
|
||||
s32 v0;
|
||||
u16 v1;
|
||||
|
||||
v1 = *(u16 *)((u8 *)a0 + 0x34);
|
||||
switch (v1) {
|
||||
case 0:
|
||||
v0 = ((s32 (*)(void *))func_80184FA4)(a0);
|
||||
if (v0 != 0) {
|
||||
((void (*)(void *, void *, s32, s32))func_80184ED4)(a0, D_801E396C, 1, 0x60);
|
||||
*(u16 *)((u8 *)a0 + 0x34) = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
v0 = func_80185BE0(0x10);
|
||||
if (v0 != 0) {
|
||||
v0 = ((s32 (*)(void *))func_80184FA4)(a0);
|
||||
if (v0 != 0) {
|
||||
*(u16 *)((u8 *)a0 + 0x2) = 2;
|
||||
((void (*)(void *, void *))func_80184CB8)(a0, ((u8 *)&D_80191570));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017FC58);
|
||||
|
||||
@@ -5261,9 +5335,48 @@ void func_8017FCD8(void * arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017FD28);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_801789AC(s32 arg0);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_8012E88C(s32);
|
||||
extern void func_8012A828(s32 *a0, s32 a1);
|
||||
|
||||
extern short D_801B99A8;
|
||||
|
||||
void func_8017FD28(s32 arg0) {
|
||||
s32 s0 = arg0;
|
||||
|
||||
s32 result = func_801789AC(arg0);
|
||||
if (result != 0) {
|
||||
((void (*)(s32))func_80178D18)((s32)s0);
|
||||
*(short *)((char *)s0 + 0x2) = 5;
|
||||
*(short *)((char *)s0 + 0x34) = 1;
|
||||
func_8012E88C((s32)s0);
|
||||
func_8012A828((s32 *)s0, (s32)&D_801B99A8);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_801789AC(s32 arg0);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_8012E88C(s32);
|
||||
extern void func_8012A828(s32 *a0, s32 a1);
|
||||
|
||||
void func_8017FD88(void *arg0) {
|
||||
|
||||
extern short D_801B99A8;
|
||||
if (func_801789AC((s32)arg0) != 0) {
|
||||
((void (*)(s32))func_80178D18)((s32)arg0);
|
||||
*(short *)((char *)arg0 + 0x2) = 0xB;
|
||||
*(short *)((char *)arg0 + 0x34) = 0;
|
||||
func_8012E88C((s32)arg0);
|
||||
func_8012A828((s32 *)arg0, (s32)&D_801B99A8);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017FD88);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8017FDE4);
|
||||
|
||||
@@ -5349,7 +5462,27 @@ void func_8018034C(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_801803BC);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012E88C(s32);
|
||||
extern void func_8012A828(s32 *a0, s32 a1);
|
||||
extern void func_80184C90(s32);
|
||||
extern void func_80184ED4(s32, s32, s32, s32);
|
||||
extern void func_80185FB8(s32, s32, s32);
|
||||
|
||||
extern s32 D_801B9DF8;
|
||||
extern short D_801B65C8;
|
||||
|
||||
void func_801803BC(void *arg0) {
|
||||
s32 s0 = (s32)arg0;
|
||||
*(short *)((char *)s0 + 0x2) = 3;
|
||||
func_8012E88C(s0);
|
||||
func_8012A828((s32 *)s0, (s32)&(*(short *)&D_801B9DF8));
|
||||
func_80184C90(s0);
|
||||
func_80184ED4(s0, (s32)&D_801B65C8, 0, 0x40);
|
||||
func_80185FB8(s0, 0xC, 0x1);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8018042C() /* dedup: shared engine-core @0x8018042C (src/shared) */
|
||||
|
||||
@@ -5827,7 +5960,26 @@ s32 func_80181564(void *a0)
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_801815DC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80181648);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012E8E0(s32, s32);
|
||||
extern void func_8012E88C(s32);
|
||||
extern void func_8012A828(s32*, s32);
|
||||
extern void func_80184C90(s32);
|
||||
extern void func_80181998(void);
|
||||
|
||||
void func_80181648(void *a0) {
|
||||
|
||||
extern s32 D_80191B3C;
|
||||
extern short D_801C0D40;
|
||||
*(short *)((char *)a0 + 0x2) = 3;
|
||||
func_8012E8E0((s32)a0, (s32)&D_80191B3C);
|
||||
func_8012E88C((s32)a0);
|
||||
((void (*)(s32 *, s32))func_8012A828)((s32 *)a0, (s32)&D_801C0D40);
|
||||
func_80184C90((s32)a0);
|
||||
func_80181998();
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_801816A8);
|
||||
|
||||
@@ -5925,7 +6077,7 @@ void func_80181A68(void *arg0) {
|
||||
extern s32 func_80185BE0(s32 a0);
|
||||
extern s32 func_80184FA4(s32);
|
||||
extern void func_80184ED4(s32, s32, s32, s32);
|
||||
extern void func_80181648(void *a0);
|
||||
extern void func_80181648();
|
||||
extern u8 D_801B6638[];
|
||||
|
||||
void func_80181AA8(void *a0) {
|
||||
@@ -6444,7 +6596,31 @@ void func_80182E00(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80182E40);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80185BE0(s32 arg0);
|
||||
extern s32 func_80184FA4(s32 a0);
|
||||
extern void func_80184ED4(s32, s32, s32, s32);
|
||||
extern void func_80182BCC(void *a0);
|
||||
extern void *D_801B670C;
|
||||
|
||||
void func_80182E40(s32 a0) {
|
||||
s32 v0, v1;
|
||||
|
||||
if (*(u16 *)(a0 + 0x34) == 0) {
|
||||
if ((v0 = func_80185BE0(2)) != 0 && (v0 = func_80184FA4(a0)) != 0) {
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
func_80184ED4(a0, (s32)&D_801B670C, 0, 0x60);
|
||||
v1 = *(s32 *)(a0 + 0xCC);
|
||||
*(s32 *)(v1 + 0xB0) = 2;
|
||||
}
|
||||
} else {
|
||||
if ((v0 = func_80184FA4(a0)) != 0) {
|
||||
func_80182BCC(a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* func_80182ED8 — guarded dispatch: ask func_80184BAC(7, 0xE); if it answers
|
||||
@@ -6486,7 +6662,31 @@ void func_80182F18(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80182F88);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80185BE0(s32 a0);
|
||||
extern s32 func_80184FA4(s32 a0);
|
||||
extern void func_80184ED4(s32, s32, s32, s32);
|
||||
extern void func_80184CB8(s32*, s32);
|
||||
extern short D_80191F14;
|
||||
extern short D_801B6700;
|
||||
|
||||
void func_80182F88(s32 a0) {
|
||||
if (*(u16*)(a0 + 0x34) == 0) {
|
||||
if (func_80184FA4(a0) != 0) {
|
||||
*(s16*)(a0 + 0x34) = 1;
|
||||
func_80184ED4(a0, (s32)&D_801B6700, 1, 0x60);
|
||||
}
|
||||
} else {
|
||||
if (func_80185BE0(0x2) != 0) {
|
||||
if (func_80184FA4(a0) != 0) {
|
||||
*(s16*)(a0 + 0x2) = 1;
|
||||
func_80184CB8((s32*)a0, (s32)&D_80191F14);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80183024);
|
||||
|
||||
@@ -6591,7 +6791,34 @@ void func_80183538(s32 a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80183578);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80183604);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_8012BD14(s32 a0);
|
||||
extern s32 func_80178BF8();
|
||||
extern void func_80172710(void);
|
||||
|
||||
s32 func_80183604(s32 param_1) {
|
||||
register s32 obj __asm__("$16") = param_1;
|
||||
s32 ptr;
|
||||
s32 ptr2;
|
||||
s32 result;
|
||||
|
||||
ptr = *(s32 *)((char *)obj + 0x64);
|
||||
if (*(u16 *)((char *)ptr + 0x2) != 6) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
result = func_8012BD14(ptr);
|
||||
if (result >= 0x2401) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ptr2 = *(s32 *)((char *)obj + 0x64);
|
||||
*(u16 *)((char *)ptr2 + 0x2) = 0xB;
|
||||
func_80178BF8();
|
||||
return (s32)func_80172710;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6779,7 +7006,20 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80183BC
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80183C28);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80183C78);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80184FA4(s32 a0);
|
||||
extern void func_80184CB8(s32*, s32);
|
||||
extern s32 D_80192150;
|
||||
|
||||
void func_80183C78(s32 a0)
|
||||
{
|
||||
if (func_80184FA4(a0) != 0) {
|
||||
*(s16 *)(a0 + 0x2) = 1;
|
||||
((void (*)(s32 *, s32 *))func_80184CB8)((s32*)a0, &D_80192150);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_80183CBC);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user