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

This commit is contained in:
Drew T
2026-08-12 16:14:50 -06:00
parent 9b7454732d
commit 06552fd7ac
7 changed files with 308 additions and 7 deletions
+44 -1
View File
@@ -4754,7 +4754,50 @@ INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_80185E50", func_801885A
INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_80185E50", func_80188664);
INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_80185E50", func_801886B4);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80029124(s32, s32);
extern void func_80188428(void *a0);
extern void func_801884B8(void *a0);
extern s32 func_801885A4(void *a0, s32 a1);
void func_801886B4(void *a0)
{
s32 s1;
s16 flags;
s16 v0;
flags = *(s16 *)((s32)a0 + 0x70);
s1 = *(s32 *)((s32)a0 + 0x20);
if ((flags & 0x8000) != 0) {
return;
}
if ((flags & 0x2000) != 0) {
if ((flags & 0x1000) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x70) = flags & 0xDFFF;
func_8002D4C8(0x701, 0);
}
v0 = *(s16 *)(s1 + 0x18);
if (v0 < 0x800) {
*(s16 *)(s1 + 0x18) = v0 + 0x40;
*(u16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x40;
} else if ((*(u16 *)((s32)a0 + 0x70) & 1) == 0) {
if (func_801885A4(a0, 0x30) != 0) {
func_80188428(a0);
func_80029124(0xAE, 0);
func_80029124(0xAF, 0);
func_80029124(0xB0, 0);
}
}
func_801884B8(a0);
}
INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_80185E50", func_8018879C);
+44 -1
View File
@@ -4783,7 +4783,50 @@ INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_80188274", func_8018A9C
INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_80188274", func_8018AA88);
INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_80188274", func_8018AAD8);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80029124(s32, s32);
extern void func_8018A84C(void *a0);
extern void func_8018A8DC(void *a0);
extern s32 func_8018A9C8(void *a0, s32 a1);
void func_8018AAD8(void *a0)
{
s32 s1;
s16 flags;
s16 v0;
flags = *(s16 *)((s32)a0 + 0x70);
s1 = *(s32 *)((s32)a0 + 0x20);
if ((flags & 0x8000) != 0) {
return;
}
if ((flags & 0x2000) != 0) {
if ((flags & 0x1000) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x70) = flags & 0xDFFF;
func_8002D4C8(0x701, 0);
}
v0 = *(s16 *)(s1 + 0x18);
if (v0 < 0x800) {
*(s16 *)(s1 + 0x18) = v0 + 0x40;
*(u16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x40;
} else if ((*(u16 *)((s32)a0 + 0x70) & 1) == 0) {
if (func_8018A9C8(a0, 0x30) != 0) {
func_8018A84C(a0);
func_80029124(0xAE, 0);
func_80029124(0xAF, 0);
func_80029124(0xB0, 0);
}
}
func_8018A8DC(a0);
}
INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_80188274", func_8018ABC0);
+44 -1
View File
@@ -4747,7 +4747,50 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8018911C", func_8018B87
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8018911C", func_8018B930);
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8018911C", func_8018B980);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80029124(s32, s32);
extern void func_8018B6F4(void *a0);
extern void func_8018B784(void *a0);
extern s32 func_8018B870(void *a0, s32 a1);
void func_8018B980(void *a0)
{
s32 s1;
s16 flags;
s16 v0;
flags = *(s16 *)((s32)a0 + 0x70);
s1 = *(s32 *)((s32)a0 + 0x20);
if ((flags & 0x8000) != 0) {
return;
}
if ((flags & 0x2000) != 0) {
if ((flags & 0x1000) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x70) = flags & 0xDFFF;
func_8002D4C8(0x701, 0);
}
v0 = *(s16 *)(s1 + 0x18);
if (v0 < 0x800) {
*(s16 *)(s1 + 0x18) = v0 + 0x40;
*(u16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x40;
} else if ((*(u16 *)((s32)a0 + 0x70) & 1) == 0) {
if (func_8018B870(a0, 0x30) != 0) {
func_8018B6F4(a0);
func_80029124(0xAE, 0);
func_80029124(0xAF, 0);
func_80029124(0xB0, 0);
}
}
func_8018B784(a0);
}
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8018911C", func_8018BA68);
+44 -1
View File
@@ -4552,7 +4552,50 @@ INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_80181694", func_8018412
INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_80181694", func_801841EC);
INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_80181694", func_8018423C);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80029124(s32, s32);
extern void func_80183FB0(void *a0);
extern void func_80184040(void *a0);
extern s32 func_8018412C(void *a0, s32 a1);
void func_8018423C(void *a0)
{
s32 s1;
s16 flags;
s16 v0;
flags = *(s16 *)((s32)a0 + 0x70);
s1 = *(s32 *)((s32)a0 + 0x20);
if ((flags & 0x8000) != 0) {
return;
}
if ((flags & 0x2000) != 0) {
if ((flags & 0x1000) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x70) = flags & 0xDFFF;
func_8002D4C8(0x701, 0);
}
v0 = *(s16 *)(s1 + 0x18);
if (v0 < 0x800) {
*(s16 *)(s1 + 0x18) = v0 + 0x40;
*(u16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x40;
} else if ((*(u16 *)((s32)a0 + 0x70) & 1) == 0) {
if (func_8018412C(a0, 0x30) != 0) {
func_80183FB0(a0);
func_80029124(0xAE, 0);
func_80029124(0xAF, 0);
func_80029124(0xB0, 0);
}
}
func_80184040(a0);
}
INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_80181694", func_80184324);
+44 -1
View File
@@ -3998,7 +3998,50 @@ INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8017D898", func_80180D5
INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8017D898", func_80180E14);
INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8017D898", func_80180E64);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80029124(s32, s32);
extern void func_80180BD8(void *a0);
extern void func_80180C68(void *a0);
extern s32 func_80180D54(void *a0, s32 a1);
void func_80180E64(void *a0)
{
s32 s1;
s16 flags;
s16 v0;
flags = *(s16 *)((s32)a0 + 0x70);
s1 = *(s32 *)((s32)a0 + 0x20);
if ((flags & 0x8000) != 0) {
return;
}
if ((flags & 0x2000) != 0) {
if ((flags & 0x1000) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x70) = flags & 0xDFFF;
func_8002D4C8(0x701, 0);
}
v0 = *(s16 *)(s1 + 0x18);
if (v0 < 0x800) {
*(s16 *)(s1 + 0x18) = v0 + 0x40;
*(u16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x40;
} else if ((*(u16 *)((s32)a0 + 0x70) & 1) == 0) {
if (func_80180D54(a0, 0x30) != 0) {
func_80180BD8(a0);
func_80029124(0xAE, 0);
func_80029124(0xAF, 0);
func_80029124(0xB0, 0);
}
}
func_80180C68(a0);
}
INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8017D898", func_80180F4C);
+44 -1
View File
@@ -4819,7 +4819,50 @@ INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_8017CA80", func_801812B
INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_8017CA80", func_80181374);
INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_8017CA80", func_801813C4);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80029124(s32, s32);
extern void func_80181138(void *a0);
extern void func_801811C8(void *a0);
extern s32 func_801812B4(void *a0, s32 a1);
void func_801813C4(void *a0)
{
s32 s1;
s16 flags;
s16 v0;
flags = *(s16 *)((s32)a0 + 0x70);
s1 = *(s32 *)((s32)a0 + 0x20);
if ((flags & 0x8000) != 0) {
return;
}
if ((flags & 0x2000) != 0) {
if ((flags & 0x1000) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x70) = flags & 0xDFFF;
func_8002D4C8(0x701, 0);
}
v0 = *(s16 *)(s1 + 0x18);
if (v0 < 0x800) {
*(s16 *)(s1 + 0x18) = v0 + 0x40;
*(u16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x40;
} else if ((*(u16 *)((s32)a0 + 0x70) & 1) == 0) {
if (func_801812B4(a0, 0x30) != 0) {
func_80181138(a0);
func_80029124(0xAE, 0);
func_80029124(0xAF, 0);
func_80029124(0xB0, 0);
}
}
func_801811C8(a0);
}
INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_8017CA80", func_801814AC);
+44 -1
View File
@@ -3564,7 +3564,50 @@ INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_jr_80182038", func_801846F
INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_jr_80182038", func_801847B0);
INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_jr_80182038", func_80184800);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80029124(s32, s32);
extern void func_80184574(void *a0);
extern void func_80184604(void *a0);
extern s32 func_801846F0(void *a0, s32 a1);
void func_80184800(void *a0)
{
s32 s1;
s16 flags;
s16 v0;
flags = *(s16 *)((s32)a0 + 0x70);
s1 = *(s32 *)((s32)a0 + 0x20);
if ((flags & 0x8000) != 0) {
return;
}
if ((flags & 0x2000) != 0) {
if ((flags & 0x1000) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x70) = flags & 0xDFFF;
func_8002D4C8(0x701, 0);
}
v0 = *(s16 *)(s1 + 0x18);
if (v0 < 0x800) {
*(s16 *)(s1 + 0x18) = v0 + 0x40;
*(u16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x40;
} else if ((*(u16 *)((s32)a0 + 0x70) & 1) == 0) {
if (func_801846F0(a0, 0x30) != 0) {
func_80184574(a0);
func_80029124(0xAE, 0);
func_80029124(0xAF, 0);
func_80029124(0xB0, 0);
}
}
func_80184604(a0);
}
INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_jr_80182038", func_801848E8);