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

This commit is contained in:
Drew T
2026-08-12 16:17:39 -06:00
parent 836edc5714
commit 528f07eaad
5 changed files with 310 additions and 5 deletions
+62 -1
View File
@@ -3657,7 +3657,68 @@ INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017E27
INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017E304);
INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017E350);
extern s32 func_801812A0(s32 a0, s32 a1);
extern s32 func_8012BDBC(s32 a0, s32 a1);
extern s32 func_8012BCCC(s32 a0);
extern void func_80183FD0(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
void func_8017E350(s32 p)
{
extern u8 D_801B5AC0[];
extern u8 D_801B63D8[];
s32 v0;
s32 s1;
if (func_801812A0(p, 0x64) == 1) {
*(u32 *)(p + 0xE0) |= 0x10;
}
if (*(s32 *)(p + 0x90) == (s32) D_801B5AC0) {
if (*(s32 *)(p + 0x94) == 0xB) {
func_80183FD0(p, 0x8C0);
}
} else {
if (*(s32 *)(p + 0x94) == 8) {
func_80183FD0(p, 0x8C0);
}
}
if (*(u16 *)(p + 0x72) & 0x4000) {
if (func_8012BDBC(p, 0x300) == 0) {
v0 = 6;
goto set_and_return;
}
s1 = func_8012BCCC(p);
if (s1 >= 0x100000) {
v0 = 2;
goto set_and_return;
}
if (s1 < 0x4000) {
func_8012A828(p, D_801B63D8);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else if (s1 < 0x6400) {
if ((*(s32 *)(p + 0xE0) & 0x10) == 0) {
func_8012A828(p, D_801B63D8);
return;
}
func_8012A828(p, D_801B5AC0);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else {
v0 = 4;
goto set_and_return;
}
}
return;
set_and_return:
*(s16 *)(p + 2) = v0;
}
INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017E48C);
+62 -1
View File
@@ -4053,7 +4053,68 @@ INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_801821A
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_80182228);
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_80182274);
extern s32 func_801851C4(s32 a0, s32 a1);
extern s32 func_8012BDBC(s32 a0, s32 a1);
extern s32 func_8012BCCC(s32 a0);
extern void func_80187EF4(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
void func_80182274(s32 p)
{
extern u8 D_801D41E8[];
extern u8 D_801D4B00[];
s32 v0;
s32 s1;
if (func_801851C4(p, 0x64) == 1) {
*(u32 *)(p + 0xE0) |= 0x10;
}
if (*(s32 *)(p + 0x90) == (s32) D_801D41E8) {
if (*(s32 *)(p + 0x94) == 0xB) {
func_80187EF4(p, 0x8C0);
}
} else {
if (*(s32 *)(p + 0x94) == 8) {
func_80187EF4(p, 0x8C0);
}
}
if (*(u16 *)(p + 0x72) & 0x4000) {
if (func_8012BDBC(p, 0x300) == 0) {
v0 = 6;
goto set_and_return;
}
s1 = func_8012BCCC(p);
if (s1 >= 0x100000) {
v0 = 2;
goto set_and_return;
}
if (s1 < 0x4000) {
func_8012A828(p, D_801D4B00);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else if (s1 < 0x6400) {
if ((*(s32 *)(p + 0xE0) & 0x10) == 0) {
func_8012A828(p, D_801D4B00);
return;
}
func_8012A828(p, D_801D41E8);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else {
v0 = 4;
goto set_and_return;
}
}
return;
set_and_return:
*(s16 *)(p + 2) = v0;
}
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_801823B0);
+62 -1
View File
@@ -4687,7 +4687,68 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_8017BEBC", func_8018467
INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_8017BEBC", func_80184700);
INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_8017BEBC", func_8018474C);
extern s32 func_8018769C(s32 a0, s32 a1);
extern s32 func_8012BDBC(s32 a0, s32 a1);
extern s32 func_8012BCCC(s32 a0);
extern void func_8018A3CC(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
void func_8018474C(s32 p)
{
extern u8 D_801D332C[];
extern u8 D_801D3C44[];
s32 v0;
s32 s1;
if (func_8018769C(p, 0x64) == 1) {
*(u32 *)(p + 0xE0) |= 0x10;
}
if (*(s32 *)(p + 0x90) == (s32) D_801D332C) {
if (*(s32 *)(p + 0x94) == 0xB) {
func_8018A3CC(p, 0x8C0);
}
} else {
if (*(s32 *)(p + 0x94) == 8) {
func_8018A3CC(p, 0x8C0);
}
}
if (*(u16 *)(p + 0x72) & 0x4000) {
if (func_8012BDBC(p, 0x300) == 0) {
v0 = 6;
goto set_and_return;
}
s1 = func_8012BCCC(p);
if (s1 >= 0x100000) {
v0 = 2;
goto set_and_return;
}
if (s1 < 0x4000) {
func_8012A828(p, D_801D3C44);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else if (s1 < 0x6400) {
if ((*(s32 *)(p + 0xE0) & 0x10) == 0) {
func_8012A828(p, D_801D3C44);
return;
}
func_8012A828(p, D_801D332C);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else {
v0 = 4;
goto set_and_return;
}
}
return;
set_and_return:
*(s16 *)(p + 2) = v0;
}
INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_8017BEBC", func_80184888);
+62 -1
View File
@@ -4091,7 +4091,68 @@ INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_8017EEB
INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_8017EF38);
INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_8017EF84);
extern s32 func_80181ED4(s32 a0, s32 a1);
extern s32 func_8012BDBC(s32 a0, s32 a1);
extern s32 func_8012BCCC(s32 a0);
extern void func_80184C04(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
void func_8017EF84(s32 p)
{
extern u8 D_801BD720[];
extern u8 D_801BE038[];
s32 v0;
s32 s1;
if (func_80181ED4(p, 0x64) == 1) {
*(u32 *)(p + 0xE0) |= 0x10;
}
if (*(s32 *)(p + 0x90) == (s32) D_801BD720) {
if (*(s32 *)(p + 0x94) == 0xB) {
func_80184C04(p, 0x8C0);
}
} else {
if (*(s32 *)(p + 0x94) == 8) {
func_80184C04(p, 0x8C0);
}
}
if (*(u16 *)(p + 0x72) & 0x4000) {
if (func_8012BDBC(p, 0x300) == 0) {
v0 = 6;
goto set_and_return;
}
s1 = func_8012BCCC(p);
if (s1 >= 0x100000) {
v0 = 2;
goto set_and_return;
}
if (s1 < 0x4000) {
func_8012A828(p, D_801BE038);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else if (s1 < 0x6400) {
if ((*(s32 *)(p + 0xE0) & 0x10) == 0) {
func_8012A828(p, D_801BE038);
return;
}
func_8012A828(p, D_801BD720);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else {
v0 = 4;
goto set_and_return;
}
}
return;
set_and_return:
*(s16 *)(p + 2) = v0;
}
INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_8017F0C0);
+62 -1
View File
@@ -6134,7 +6134,68 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_8017C24C", func_80182B9
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_8017C24C", func_80182C1C);
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_8017C24C", func_80182C68);
extern s32 func_80185BB8(s32 a0, s32 a1);
extern s32 func_8012BDBC(s32 a0, s32 a1);
extern s32 func_8012BCCC(s32 a0);
extern void func_801888E8(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
void func_80182C68(s32 p)
{
extern u8 D_801C6AB4[];
extern u8 D_801C73CC[];
s32 v0;
s32 s1;
if (func_80185BB8(p, 0x64) == 1) {
*(u32 *)(p + 0xE0) |= 0x10;
}
if (*(s32 *)(p + 0x90) == (s32) D_801C6AB4) {
if (*(s32 *)(p + 0x94) == 0xB) {
func_801888E8(p, 0x8C0);
}
} else {
if (*(s32 *)(p + 0x94) == 8) {
func_801888E8(p, 0x8C0);
}
}
if (*(u16 *)(p + 0x72) & 0x4000) {
if (func_8012BDBC(p, 0x300) == 0) {
v0 = 6;
goto set_and_return;
}
s1 = func_8012BCCC(p);
if (s1 >= 0x100000) {
v0 = 2;
goto set_and_return;
}
if (s1 < 0x4000) {
func_8012A828(p, D_801C73CC);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else if (s1 < 0x6400) {
if ((*(s32 *)(p + 0xE0) & 0x10) == 0) {
func_8012A828(p, D_801C73CC);
return;
}
func_8012A828(p, D_801C6AB4);
*(u32 *)(p + 0xE0) &= ~0x10;
return;
} else {
v0 = 4;
goto set_and_return;
}
}
return;
set_and_return:
*(s16 *)(p + 2) = v0;
}
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_8017C24C", func_80182DA4);