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

This commit is contained in:
Drew T
2026-08-12 16:17:10 -06:00
parent 7625155a09
commit ac855eb9fc
5 changed files with 265 additions and 10 deletions
+53 -2
View File
@@ -607,7 +607,6 @@ extern s32 func_8014E83C(s32 arg0, s16 * arg1, s16 * arg2);
extern void func_8014E934(s32 _arg0);
extern s32 func_8014EA4C(void *a0, void *a1, void *a2, s32 a3);
extern s32 func_8014E98C(void *a0);
extern u16 D_800B99DA;
extern s32 D_801150D8;
extern s16 D_801152AA;
extern u8 D_80126720[];
@@ -5280,7 +5279,59 @@ void func_8017FBC4(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_8017AE2C", func_8017FC00);
extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0);
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_8017FC00(void)
{
extern u16 D_800B99DA;
extern s32 D_80126B58;
extern u8 D_800AF648;
extern s32 D_80191968;
extern s32 func_80013450(s32);
s32 *p = &D_80126B58;
s32 sxy, pv, flag;
s16 x;
s32 pan;
s32 dist;
s32 vol;
if (!(D_800B99DA & 1)) {
func_8004914C(&D_800AF648);
func_800491AC(&D_800AF648);
if (RotTransPers((s32)&D_80191968, (s32)&sxy, &pv, &flag) <= 0 || flag < 0) {
func_8002D4C8(4, 0x7E6);
} else {
x = *(u16 *)&sxy + 0xA0;
*(s16 *)&sxy = x;
if (x < 0) {
x = 0;
*(s16 *)&sxy = x;
} else if (x >= 0x141) {
x = 0x140;
*(s16 *)&sxy = x;
}
x = *(s16 *)&sxy;
pan = (x * 15) / 320;
dist = ((s32 (*)(s32, s32))func_80013450)((s32)(p + 1), (s32)&D_80191968);
if (dist >= 0x240) {
dist = 0x23F;
}
{
s32 panpart;
vol = ((0x23F - dist) * 127) / 576;
panpart = ((pan << 8) & 0xF00) | 0x3000;
func_8002D4C8(0x7E6, panpart | (vol & 0x7F));
}
}
}
}
extern s32 D_801915FC;
extern s32 D_801EEAE8;
+53 -2
View File
@@ -605,7 +605,6 @@ extern s32 func_8014E83C(s32 arg0, s16 * arg1, s16 * arg2);
extern void func_8014E934(s32 _arg0);
extern s32 func_8014EA4C(void *a0, void *a1, void *a2, s32 a3);
extern s32 func_8014E98C(void *a0);
extern u16 D_800B99DA;
extern s32 D_801150D8;
extern s16 D_801152AA;
extern u8 D_80126720[];
@@ -5696,7 +5695,59 @@ void func_80182DF4(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_80182E30);
extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0);
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_80182E30(void)
{
extern u16 D_800B99DA;
extern s32 D_80126B58;
extern u8 D_800AF648;
extern s32 D_801906E8;
extern s32 func_80013450(s32);
s32 *p = &D_80126B58;
s32 sxy, pv, flag;
s16 x;
s32 pan;
s32 dist;
s32 vol;
if (!(D_800B99DA & 1)) {
func_8004914C(&D_800AF648);
func_800491AC(&D_800AF648);
if (RotTransPers((s32)&D_801906E8, (s32)&sxy, &pv, &flag) <= 0 || flag < 0) {
func_8002D4C8(4, 0x7E6);
} else {
x = *(u16 *)&sxy + 0xA0;
*(s16 *)&sxy = x;
if (x < 0) {
x = 0;
*(s16 *)&sxy = x;
} else if (x >= 0x141) {
x = 0x140;
*(s16 *)&sxy = x;
}
x = *(s16 *)&sxy;
pan = (x * 15) / 320;
dist = ((s32 (*)(s32, s32))func_80013450)((s32)(p + 1), (s32)&D_801906E8);
if (dist >= 0x240) {
dist = 0x23F;
}
{
s32 panpart;
vol = ((0x23F - dist) * 127) / 576;
panpart = ((pan << 8) & 0xF00) | 0x3000;
func_8002D4C8(0x7E6, panpart | (vol & 0x7F));
}
}
}
}
extern s32 D_8019037C;
extern void *D_801E1BC8;
+53 -2
View File
@@ -600,7 +600,6 @@ extern s32 func_8014E83C(s32 arg0, s16 * arg1, s16 * arg2);
extern void func_8014E934(s32 _arg0);
extern s32 func_8014EA4C(void *a0, void *a1, void *a2, s32 a3);
extern s32 func_8014E98C(void *a0);
extern u16 D_800B99DA;
extern s32 D_801150D8;
extern s16 D_801152AA;
extern u8 D_80126720[];
@@ -3862,7 +3861,59 @@ void func_80183788(void *a0) {
}
INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_jr_801820DC", func_801837C4);
extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0);
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_801837C4(void)
{
extern u16 D_800B99DA;
extern s32 D_80126B58;
extern u8 D_800AF648;
extern s32 D_801C44EC;
extern s32 func_80013450(s32);
s32 *p = &D_80126B58;
s32 sxy, pv, flag;
s16 x;
s32 pan;
s32 dist;
s32 vol;
if (!(D_800B99DA & 1)) {
func_8004914C(&D_800AF648);
func_800491AC(&D_800AF648);
if (RotTransPers((s32)&D_801C44EC, (s32)&sxy, &pv, &flag) <= 0 || flag < 0) {
func_8002D4C8(4, 0x7E6);
} else {
x = *(u16 *)&sxy + 0xA0;
*(s16 *)&sxy = x;
if (x < 0) {
x = 0;
*(s16 *)&sxy = x;
} else if (x >= 0x141) {
x = 0x140;
*(s16 *)&sxy = x;
}
x = *(s16 *)&sxy;
pan = (x * 15) / 320;
dist = ((s32 (*)(s32, s32))func_80013450)((s32)(p + 1), (s32)&D_801C44EC);
if (dist >= 0x240) {
dist = 0x23F;
}
{
s32 panpart;
vol = ((0x23F - dist) * 127) / 576;
panpart = ((pan << 8) & 0xF00) | 0x3000;
func_8002D4C8(0x7E6, panpart | (vol & 0x7F));
}
}
}
}
extern s32 D_801C4180;
+53 -2
View File
@@ -600,7 +600,6 @@ extern s32 func_8014E83C(s32 arg0, s16 * arg1, s16 * arg2);
extern void func_8014E934(s32 _arg0);
extern s32 func_8014EA4C(void *a0, void *a1, void *a2, s32 a3);
extern s32 func_8014E98C(void *a0);
extern u16 D_800B99DA;
extern s32 D_801150D8;
extern s16 D_801152AA;
extern u8 D_80126720[];
@@ -3654,7 +3653,59 @@ tail:
DEFINE_func_8018AB3C() /* dedup: shared engine-core @0x8018AB3C (src/shared) */
INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_jr_80188E1C", func_8018AB78);
extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0);
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_8018AB78(void)
{
extern u16 D_800B99DA;
extern s32 D_80126B58;
extern u8 D_800AF648;
extern s32 D_801E055C;
extern s32 func_80013450(s32);
s32 *p = &D_80126B58;
s32 sxy, pv, flag;
s16 x;
s32 pan;
s32 dist;
s32 vol;
if (!(D_800B99DA & 1)) {
func_8004914C(&D_800AF648);
func_800491AC(&D_800AF648);
if (RotTransPers((s32)&D_801E055C, (s32)&sxy, &pv, &flag) <= 0 || flag < 0) {
func_8002D4C8(4, 0x7E6);
} else {
x = *(u16 *)&sxy + 0xA0;
*(s16 *)&sxy = x;
if (x < 0) {
x = 0;
*(s16 *)&sxy = x;
} else if (x >= 0x141) {
x = 0x140;
*(s16 *)&sxy = x;
}
x = *(s16 *)&sxy;
pan = (x * 15) / 320;
dist = ((s32 (*)(s32, s32))func_80013450)((s32)(p + 1), (s32)&D_801E055C);
if (dist >= 0x240) {
dist = 0x23F;
}
{
s32 panpart;
vol = ((0x23F - dist) * 127) / 576;
panpart = ((pan << 8) & 0xF00) | 0x3000;
func_8002D4C8(0x7E6, panpart | (vol & 0x7F));
}
}
}
}
extern s32 D_801E01F0;
+53 -2
View File
@@ -600,7 +600,6 @@ extern s32 func_8014E83C(s32 arg0, s16 * arg1, s16 * arg2);
extern void func_8014E934(s32 _arg0);
extern s32 func_8014EA4C(void *a0, void *a1, void *a2, s32 a3);
extern s32 func_8014E98C(void *a0);
extern u16 D_800B99DA;
extern s32 D_801150D8;
extern s16 D_801152AA;
extern u8 D_80126720[];
@@ -3636,7 +3635,59 @@ void func_8018A83C(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_80188B1C", func_8018A878);
extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0);
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_8018A878(void)
{
extern u16 D_800B99DA;
extern s32 D_80126B58;
extern u8 D_800AF648;
extern s32 D_801E681C;
extern s32 func_80013450(s32);
s32 *p = &D_80126B58;
s32 sxy, pv, flag;
s16 x;
s32 pan;
s32 dist;
s32 vol;
if (!(D_800B99DA & 1)) {
func_8004914C(&D_800AF648);
func_800491AC(&D_800AF648);
if (RotTransPers((s32)&D_801E681C, (s32)&sxy, &pv, &flag) <= 0 || flag < 0) {
func_8002D4C8(4, 0x7E6);
} else {
x = *(u16 *)&sxy + 0xA0;
*(s16 *)&sxy = x;
if (x < 0) {
x = 0;
*(s16 *)&sxy = x;
} else if (x >= 0x141) {
x = 0x140;
*(s16 *)&sxy = x;
}
x = *(s16 *)&sxy;
pan = (x * 15) / 320;
dist = ((s32 (*)(s32, s32))func_80013450)((s32)(p + 1), (s32)&D_801E681C);
if (dist >= 0x240) {
dist = 0x23F;
}
{
s32 panpart;
vol = ((0x23F - dist) * 127) / 576;
panpart = ((pan << 8) & 0xF00) | 0x3000;
func_8002D4C8(0x7E6, panpart | (vol & 0x7F));
}
}
}
}
extern s32 D_801E64B0;
extern s32 D_801ED7E0;