feat(phase-30 S48-T6): propagate func_8018291C to its zero-crack siblings

This commit is contained in:
Drew T
2026-08-12 18:25:28 -06:00
parent ab63aa0411
commit 96fe3198b9
5 changed files with 235 additions and 10 deletions
+47 -2
View File
@@ -629,7 +629,6 @@ extern s32 func_8014F4C0();
extern s32 func_8014F468(void);
extern int func_8014F74C();
extern int func_8014F6F4(void);
extern u8 D_800D3918[];
extern u8 D_801152A8[];
extern s32 D_801152BC;
extern int func_8014F74C(s32 arg0);
@@ -5148,7 +5147,53 @@ INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_8017BEBC", func_8018063
INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_8017BEBC", func_8018071C);
INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_8017BEBC", func_80180770);
extern s32 func_80180B38(s32 a0, s32 a1);
extern void func_801292C8(u8 *a0);
extern void func_80180C10(s32 a0);
extern s32 func_801809E4(s32 a0, s32 a1, s32 a2);
extern s32 func_800132BC(s32 a0, s32 a1);
void func_80180770(s32 a0) {
extern u8 D_800D3918[];
s32 partner;
s32 ret;
if (func_80180B38(a0, -0x18000) == 0) {
func_801292C8((u8 *)a0);
} else {
partner = *(s32 *)(a0 + 0x2C);
*(s32 *)(a0 + 0x14) = 0x18000;
if (*(s32 *)(a0 + 0x1C) >= 0x150) {
*(s32 *)(partner + 0x30) -= 1;
func_801292C8((u8 *)a0);
} else {
SV3_8012CC88 sp10;
SV3_8012CC88 sp18;
s32 pad[4];
func_80180C10(a0);
func_801809E4(a0, (s32)D_800D3918, 0);
sp10.vx = *(u16 *)(a0 + 0x6);
sp10.vy = 0;
sp10.vz = *(u16 *)(a0 + 0xE);
sp18.vx = *(u16 *)(partner + 0x6);
sp18.vy = 0;
sp18.vz = *(u16 *)(partner + 0xE);
ret = func_800132BC((s32)&sp10, (s32)&sp18);
if (ret < 0x41) {
*(s32 *)(partner + 0x30) -= 1;
*(s16 *)(a0 + 0x2) = 5;
}
*(s32 *)(a0 + 0x1C) += 1;
}
}
}
extern void func_801292C8(u8 *a0);
void func_8018087C(s32 *a0) {
+47 -2
View File
@@ -628,7 +628,6 @@ extern s32 func_8014F4C0();
extern s32 func_8014F468(void);
extern int func_8014F74C();
extern int func_8014F6F4(void);
extern u8 D_800D3918[];
extern u8 D_801152A8[];
extern s32 D_801152BC;
extern int func_8014F74C(s32 arg0);
@@ -6873,7 +6872,53 @@ INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_8017CA80", func_80186D4
INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_8017CA80", func_80186E24);
INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_8017CA80", func_80186E78);
extern s32 func_80187240(s32 a0, s32 a1);
extern void func_801292C8(u8 *a0);
extern void func_80187318(s32 a0);
extern s32 func_801870EC(s32 a0, s32 a1, s32 a2);
extern s32 func_800132BC(s32 a0, s32 a1);
void func_80186E78(s32 a0) {
extern u8 D_800D3918[];
s32 partner;
s32 ret;
if (func_80187240(a0, -0x18000) == 0) {
func_801292C8((u8 *)a0);
} else {
partner = *(s32 *)(a0 + 0x2C);
*(s32 *)(a0 + 0x14) = 0x18000;
if (*(s32 *)(a0 + 0x1C) >= 0x150) {
*(s32 *)(partner + 0x30) -= 1;
func_801292C8((u8 *)a0);
} else {
SV3_8012CC88 sp10;
SV3_8012CC88 sp18;
s32 pad[4];
func_80187318(a0);
func_801870EC(a0, (s32)D_800D3918, 0);
sp10.vx = *(u16 *)(a0 + 0x6);
sp10.vy = 0;
sp10.vz = *(u16 *)(a0 + 0xE);
sp18.vx = *(u16 *)(partner + 0x6);
sp18.vy = 0;
sp18.vz = *(u16 *)(partner + 0xE);
ret = func_800132BC((s32)&sp10, (s32)&sp18);
if (ret < 0x41) {
*(s32 *)(partner + 0x30) -= 1;
*(s16 *)(a0 + 0x2) = 5;
}
*(s32 *)(a0 + 0x1C) += 1;
}
}
}
extern void func_801292C8(u8 *a0);
s32 func_80186F84(s32 arg0) {
+47 -2
View File
@@ -622,7 +622,6 @@ extern s32 func_8014F4C0();
extern s32 func_8014F468(void);
extern int func_8014F74C();
extern int func_8014F6F4(void);
extern u8 D_800D3918[];
extern u8 D_801152A8[];
extern s32 D_801152BC;
extern int func_8014F74C(s32 arg0);
@@ -4957,7 +4956,53 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8018326C", func_80187BE
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8018326C", func_80187CCC);
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8018326C", func_80187D20);
extern s32 func_801880E8(s32 a0, s32 a1);
extern void func_801292C8(u8 *a0);
extern void func_801881C0(s32 a0);
extern s32 func_80187F94(s32 a0, s32 a1, s32 a2);
extern s32 func_800132BC(s32 a0, s32 a1);
void func_80187D20(s32 a0) {
extern u8 D_800D3918[];
s32 partner;
s32 ret;
if (func_801880E8(a0, -0x18000) == 0) {
func_801292C8((u8 *)a0);
} else {
partner = *(s32 *)(a0 + 0x2C);
*(s32 *)(a0 + 0x14) = 0x18000;
if (*(s32 *)(a0 + 0x1C) >= 0x150) {
*(s32 *)(partner + 0x30) -= 1;
func_801292C8((u8 *)a0);
} else {
SV3_8012CC88 sp10;
SV3_8012CC88 sp18;
s32 pad[4];
func_801881C0(a0);
func_80187F94(a0, (s32)D_800D3918, 0);
sp10.vx = *(u16 *)(a0 + 0x6);
sp10.vy = 0;
sp10.vz = *(u16 *)(a0 + 0xE);
sp18.vx = *(u16 *)(partner + 0x6);
sp18.vy = 0;
sp18.vz = *(u16 *)(partner + 0xE);
ret = func_800132BC((s32)&sp10, (s32)&sp18);
if (ret < 0x41) {
*(s32 *)(partner + 0x30) -= 1;
*(s16 *)(a0 + 0x2) = 5;
}
*(s32 *)(a0 + 0x1C) += 1;
}
}
}
extern void func_801292C8(u8 *a0);
s32 func_80187E2C(s32 arg0) {
+47 -2
View File
@@ -627,7 +627,6 @@ extern s32 func_8014F4C0();
extern s32 func_8014F468(void);
extern int func_8014F74C();
extern int func_8014F6F4(void);
extern u8 D_800D3918[];
extern u8 D_801152A8[];
extern s32 D_801152BC;
extern int func_8014F74C(s32 arg0);
@@ -5302,7 +5301,53 @@ INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_801819C
INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_80181AA4);
INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_80181AF8);
extern s32 func_80181EC0(s32 a0, s32 a1);
extern void func_801292C8(u8 *a0);
extern void func_80181F98(s32 a0);
extern s32 func_80181D6C(s32 a0, s32 a1, s32 a2);
extern s32 func_800132BC(s32 a0, s32 a1);
void func_80181AF8(s32 a0) {
extern u8 D_800D3918[];
s32 partner;
s32 ret;
if (func_80181EC0(a0, -0x18000) == 0) {
func_801292C8((u8 *)a0);
} else {
partner = *(s32 *)(a0 + 0x2C);
*(s32 *)(a0 + 0x14) = 0x18000;
if (*(s32 *)(a0 + 0x1C) >= 0x150) {
*(s32 *)(partner + 0x30) -= 1;
func_801292C8((u8 *)a0);
} else {
SV3_8012CC88 sp10;
SV3_8012CC88 sp18;
s32 pad[4];
func_80181F98(a0);
func_80181D6C(a0, (s32)D_800D3918, 0);
sp10.vx = *(u16 *)(a0 + 0x6);
sp10.vy = 0;
sp10.vz = *(u16 *)(a0 + 0xE);
sp18.vx = *(u16 *)(partner + 0x6);
sp18.vy = 0;
sp18.vz = *(u16 *)(partner + 0xE);
ret = func_800132BC((s32)&sp10, (s32)&sp18);
if (ret < 0x41) {
*(s32 *)(partner + 0x30) -= 1;
*(s16 *)(a0 + 0x2) = 5;
}
*(s32 *)(a0 + 0x1C) += 1;
}
}
}
extern void func_801292C8(u8 *a0);
+47 -2
View File
@@ -628,7 +628,6 @@ extern s32 func_8014F4C0();
extern s32 func_8014F468(void);
extern int func_8014F74C();
extern int func_8014F6F4(void);
extern u8 D_800D3918[];
extern u8 D_801152A8[];
extern s32 D_801152BC;
extern int func_8014F74C(s32 arg0);
@@ -5237,7 +5236,53 @@ INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_jr_8017D898", func_801821C
INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_jr_8017D898", func_801822AC);
INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_jr_8017D898", func_80182300);
extern s32 func_801826C8(s32 a0, s32 a1);
extern void func_801292C8(u8 *a0);
extern void func_801827A0(s32 a0);
extern s32 func_80182574(s32 a0, s32 a1, s32 a2);
extern s32 func_800132BC(s32 a0, s32 a1);
void func_80182300(s32 a0) {
extern u8 D_800D3918[];
s32 partner;
s32 ret;
if (func_801826C8(a0, -0x18000) == 0) {
func_801292C8((u8 *)a0);
} else {
partner = *(s32 *)(a0 + 0x2C);
*(s32 *)(a0 + 0x14) = 0x18000;
if (*(s32 *)(a0 + 0x1C) >= 0x150) {
*(s32 *)(partner + 0x30) -= 1;
func_801292C8((u8 *)a0);
} else {
SV3_8012CC88 sp10;
SV3_8012CC88 sp18;
s32 pad[4];
func_801827A0(a0);
func_80182574(a0, (s32)D_800D3918, 0);
sp10.vx = *(u16 *)(a0 + 0x6);
sp10.vy = 0;
sp10.vz = *(u16 *)(a0 + 0xE);
sp18.vx = *(u16 *)(partner + 0x6);
sp18.vy = 0;
sp18.vz = *(u16 *)(partner + 0xE);
ret = func_800132BC((s32)&sp10, (s32)&sp18);
if (ret < 0x41) {
*(s32 *)(partner + 0x30) -= 1;
*(s16 *)(a0 + 0x2) = 5;
}
*(s32 *)(a0 + 0x1C) += 1;
}
}
}
extern void func_801292C8(u8 *a0);