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

This commit is contained in:
Drew T
2026-08-12 18:24:23 -06:00
parent 9dc9d6e07b
commit 3d627b97a9
6 changed files with 198 additions and 6 deletions
+33 -1
View File
@@ -5423,7 +5423,39 @@ void func_8017EB3C(void *a0) {
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8017ECB0);
extern void func_80146E90(s32 *a0, s32 a1);
extern void func_8017FA94(void *a0, s32 a1, s32 a2);
void func_8017ECB0(void *a0) {
s32 *a2 = *(s32 **)((s32)a0 + 0x20);
s16 sum;
s32 pad[2];
if (*(s32 *)((s32)a0 + 0x1C) & 1) {
a2[1] |= 0x80000000;
} else {
a2[1] &= 0x7FFFFFFF;
}
*(s32 *)((s32)a0 + 0x1C) = *(s32 *)((s32)a0 + 0x1C) + 1;
*(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x10) + 0x6C000;
sum = *(u16 *)((s32)a2 + 0x1A) + *(u16 *)((s32)a0 + 0x12);
*(u16 *)((s32)a2 + 0x1A) = sum;
*(u16 *)((s32)a2 + 0x18) = sum;
if (sum >= 0x1001) {
*(u16 *)((s32)a2 + 0x1A) = 0x1000;
*(u16 *)((s32)a2 + 0x18) = 0x1000;
func_80146E90((s32 *)a0, 0);
func_8017FA94(a0, *(s32 *)((s32)a0 + 0x2C), 0);
func_80146E90((s32 *)a0, 0);
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
}
}
extern void func_8017F2AC(void *a0, s32 a1, s32 a2);
+33 -1
View File
@@ -3668,7 +3668,39 @@ void func_8017C6A0(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_8017AE2C", func_8017C814);
extern void func_80146E90(s32 *a0, s32 a1);
extern void func_8017D5F8(void *a0, s32 a1, s32 a2);
void func_8017C814(void *a0) {
s32 *a2 = *(s32 **)((s32)a0 + 0x20);
s16 sum;
s32 pad[2];
if (*(s32 *)((s32)a0 + 0x1C) & 1) {
a2[1] |= 0x80000000;
} else {
a2[1] &= 0x7FFFFFFF;
}
*(s32 *)((s32)a0 + 0x1C) = *(s32 *)((s32)a0 + 0x1C) + 1;
*(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x10) + 0x6C000;
sum = *(u16 *)((s32)a2 + 0x1A) + *(u16 *)((s32)a0 + 0x12);
*(u16 *)((s32)a2 + 0x1A) = sum;
*(u16 *)((s32)a2 + 0x18) = sum;
if (sum >= 0x1001) {
*(u16 *)((s32)a2 + 0x1A) = 0x1000;
*(u16 *)((s32)a2 + 0x18) = 0x1000;
func_80146E90((s32 *)a0, 0);
func_8017D5F8(a0, *(s32 *)((s32)a0 + 0x2C), 0);
func_80146E90((s32 *)a0, 0);
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
}
}
extern void func_8017CE10(void *a0, s32 a1, s32 a2);
+33 -1
View File
@@ -3666,7 +3666,39 @@ void func_8017C6A0(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017AE2C", func_8017C814);
extern void func_80146E90(s32 *a0, s32 a1);
extern void func_8017D5F8(void *a0, s32 a1, s32 a2);
void func_8017C814(void *a0) {
s32 *a2 = *(s32 **)((s32)a0 + 0x20);
s16 sum;
s32 pad[2];
if (*(s32 *)((s32)a0 + 0x1C) & 1) {
a2[1] |= 0x80000000;
} else {
a2[1] &= 0x7FFFFFFF;
}
*(s32 *)((s32)a0 + 0x1C) = *(s32 *)((s32)a0 + 0x1C) + 1;
*(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x10) + 0x6C000;
sum = *(u16 *)((s32)a2 + 0x1A) + *(u16 *)((s32)a0 + 0x12);
*(u16 *)((s32)a2 + 0x1A) = sum;
*(u16 *)((s32)a2 + 0x18) = sum;
if (sum >= 0x1001) {
*(u16 *)((s32)a2 + 0x1A) = 0x1000;
*(u16 *)((s32)a2 + 0x18) = 0x1000;
func_80146E90((s32 *)a0, 0);
func_8017D5F8(a0, *(s32 *)((s32)a0 + 0x2C), 0);
func_80146E90((s32 *)a0, 0);
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
}
}
extern void func_8017CE10(void *a0, s32 a1, s32 a2);
+33 -1
View File
@@ -3632,7 +3632,39 @@ void func_8017C6A0(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8017AE2C", func_8017C814);
extern void func_80146E90(s32 *a0, s32 a1);
extern void func_8017D5F8(void *a0, s32 a1, s32 a2);
void func_8017C814(void *a0) {
s32 *a2 = *(s32 **)((s32)a0 + 0x20);
s16 sum;
s32 pad[2];
if (*(s32 *)((s32)a0 + 0x1C) & 1) {
a2[1] |= 0x80000000;
} else {
a2[1] &= 0x7FFFFFFF;
}
*(s32 *)((s32)a0 + 0x1C) = *(s32 *)((s32)a0 + 0x1C) + 1;
*(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x10) + 0x6C000;
sum = *(u16 *)((s32)a2 + 0x1A) + *(u16 *)((s32)a0 + 0x12);
*(u16 *)((s32)a2 + 0x1A) = sum;
*(u16 *)((s32)a2 + 0x18) = sum;
if (sum >= 0x1001) {
*(u16 *)((s32)a2 + 0x1A) = 0x1000;
*(u16 *)((s32)a2 + 0x18) = 0x1000;
func_80146E90((s32 *)a0, 0);
func_8017D5F8(a0, *(s32 *)((s32)a0 + 0x2C), 0);
func_80146E90((s32 *)a0, 0);
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
}
}
extern void func_8017CE10(void *a0, s32 a1, s32 a2);
+33 -1
View File
@@ -3626,7 +3626,39 @@ void func_8017C6A0(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_8017AE2C", func_8017C814);
extern void func_80146E90(s32 *a0, s32 a1);
extern void func_8017D5F8(void *a0, s32 a1, s32 a2);
void func_8017C814(void *a0) {
s32 *a2 = *(s32 **)((s32)a0 + 0x20);
s16 sum;
s32 pad[2];
if (*(s32 *)((s32)a0 + 0x1C) & 1) {
a2[1] |= 0x80000000;
} else {
a2[1] &= 0x7FFFFFFF;
}
*(s32 *)((s32)a0 + 0x1C) = *(s32 *)((s32)a0 + 0x1C) + 1;
*(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x10) + 0x6C000;
sum = *(u16 *)((s32)a2 + 0x1A) + *(u16 *)((s32)a0 + 0x12);
*(u16 *)((s32)a2 + 0x1A) = sum;
*(u16 *)((s32)a2 + 0x18) = sum;
if (sum >= 0x1001) {
*(u16 *)((s32)a2 + 0x1A) = 0x1000;
*(u16 *)((s32)a2 + 0x18) = 0x1000;
func_80146E90((s32 *)a0, 0);
func_8017D5F8(a0, *(s32 *)((s32)a0 + 0x2C), 0);
func_80146E90((s32 *)a0, 0);
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
}
}
extern void func_8017CE10(void *a0, s32 a1, s32 a2);
+33 -1
View File
@@ -3638,7 +3638,39 @@ void func_8017C6A0(void *a0) {
}
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8017C814);
extern void func_80146E90(s32 *a0, s32 a1);
extern void func_8017D5F8(void *a0, s32 a1, s32 a2);
void func_8017C814(void *a0) {
s32 *a2 = *(s32 **)((s32)a0 + 0x20);
s16 sum;
s32 pad[2];
if (*(s32 *)((s32)a0 + 0x1C) & 1) {
a2[1] |= 0x80000000;
} else {
a2[1] &= 0x7FFFFFFF;
}
*(s32 *)((s32)a0 + 0x1C) = *(s32 *)((s32)a0 + 0x1C) + 1;
*(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x10) + 0x6C000;
sum = *(u16 *)((s32)a2 + 0x1A) + *(u16 *)((s32)a0 + 0x12);
*(u16 *)((s32)a2 + 0x1A) = sum;
*(u16 *)((s32)a2 + 0x18) = sum;
if (sum >= 0x1001) {
*(u16 *)((s32)a2 + 0x1A) = 0x1000;
*(u16 *)((s32)a2 + 0x18) = 0x1000;
func_80146E90((s32 *)a0, 0);
func_8017D5F8(a0, *(s32 *)((s32)a0 + 0x2C), 0);
func_80146E90((s32 *)a0, 0);
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
}
}
extern void func_8017CE10(void *a0, s32 a1, s32 a2);