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

This commit is contained in:
Drew T
2026-08-12 16:15:19 -06:00
parent 6b1c720035
commit 18ef92c482
7 changed files with 322 additions and 7 deletions
+46 -1
View File
@@ -7550,7 +7550,52 @@ void func_801801E4(s32 a0)
INCLUDE_ASM("asm/ov_SC03_107/nonmatchings/ov_SC03_107_jr_801789AC", func_80180428);
INCLUDE_ASM("asm/ov_SC03_107/nonmatchings/ov_SC03_107_jr_801789AC", func_801804D8);
extern u8 *func_8012913C(s32 a0);
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
extern void func_801292C8(u8 *a0);
typedef struct {
u16 x, y, z;
u8 flag;
} V8_80187968_801804D8;
void func_801804D8(s32 a0) {
u32 v0;
u8 *s1;
v0 = *(u16 *)(a0 + 0x10A) + 1;
*(u16 *)(a0 + 0x10A) = v0;
if ((v0 & 7) == 0) {
s1 = func_8012913C(0x7B);
if (s1 != 0) {
V8_80187968_801804D8 p1;
V8_80187968_801804D8 q;
v0 = *(u16 *)(a0 + 0x10A);
*(s32 *)(s1 + 0x2C) = (v0 & 0x18) >> 3;
p1.x = *(u16 *)(a0 + 0x6);
p1.y = *(u16 *)(a0 + 0xA);
p1.z = *(u16 *)(a0 + 0xE);
q.x = p1.x;
q.y = p1.y + 0x80;
q.z = p1.z;
func_80133784(1, &p1, (s32)&q);
if (q.flag) {
*(u16 *)(s1 + 0x6) = *(u16 *)(a0 + 0x6);
*(u16 *)(s1 + 0xA) = q.y;
*(u16 *)(s1 + 0xE) = *(u16 *)(a0 + 0xE);
} else {
func_801292C8(s1);
}
}
}
}
+46 -1
View File
@@ -4857,7 +4857,52 @@ void func_80182F8C(s32 a0)
INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_801831D0);
INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_80183280);
extern u8 *func_8012913C(s32 a0);
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
extern void func_801292C8(u8 *a0);
typedef struct {
u16 x, y, z;
u8 flag;
} V8_80187968_80183280;
void func_80183280(s32 a0) {
u32 v0;
u8 *s1;
v0 = *(u16 *)(a0 + 0x10A) + 1;
*(u16 *)(a0 + 0x10A) = v0;
if ((v0 & 7) == 0) {
s1 = func_8012913C(0x7B);
if (s1 != 0) {
V8_80187968_80183280 p1;
V8_80187968_80183280 q;
v0 = *(u16 *)(a0 + 0x10A);
*(s32 *)(s1 + 0x2C) = (v0 & 0x18) >> 3;
p1.x = *(u16 *)(a0 + 0x6);
p1.y = *(u16 *)(a0 + 0xA);
p1.z = *(u16 *)(a0 + 0xE);
q.x = p1.x;
q.y = p1.y + 0x80;
q.z = p1.z;
func_80133784(1, &p1, (s32)&q);
if (q.flag) {
*(u16 *)(s1 + 0x6) = *(u16 *)(a0 + 0x6);
*(u16 *)(s1 + 0xA) = q.y;
*(u16 *)(s1 + 0xE) = *(u16 *)(a0 + 0xE);
} else {
func_801292C8(s1);
}
}
}
}
extern void (*D_801B1D18[])(void);
+46 -1
View File
@@ -3053,7 +3053,52 @@ void func_80183EA0(s32 a0)
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_80183AE0", func_801840E4);
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_80183AE0", func_80184194);
extern u8 *func_8012913C(s32 a0);
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
extern void func_801292C8(u8 *a0);
typedef struct {
u16 x, y, z;
u8 flag;
} V8_80187968_80184194;
void func_80184194(s32 a0) {
u32 v0;
u8 *s1;
v0 = *(u16 *)(a0 + 0x10A) + 1;
*(u16 *)(a0 + 0x10A) = v0;
if ((v0 & 7) == 0) {
s1 = func_8012913C(0x7B);
if (s1 != 0) {
V8_80187968_80184194 p1;
V8_80187968_80184194 q;
v0 = *(u16 *)(a0 + 0x10A);
*(s32 *)(s1 + 0x2C) = (v0 & 0x18) >> 3;
p1.x = *(u16 *)(a0 + 0x6);
p1.y = *(u16 *)(a0 + 0xA);
p1.z = *(u16 *)(a0 + 0xE);
q.x = p1.x;
q.y = p1.y + 0x80;
q.z = p1.z;
func_80133784(1, &p1, (s32)&q);
if (q.flag) {
*(u16 *)(s1 + 0x6) = *(u16 *)(a0 + 0x6);
*(u16 *)(s1 + 0xA) = q.y;
*(u16 *)(s1 + 0xE) = *(u16 *)(a0 + 0xE);
} else {
func_801292C8(s1);
}
}
}
}
extern void (*D_801A8BF4[])(void);
+46 -1
View File
@@ -6019,7 +6019,52 @@ void func_80181C24(s32 a0)
INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_8017C294", func_80181E68);
INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_8017C294", func_80181F18);
extern u8 *func_8012913C(s32 a0);
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
extern void func_801292C8(u8 *a0);
typedef struct {
u16 x, y, z;
u8 flag;
} V8_80187968_80181F18;
void func_80181F18(s32 a0) {
u32 v0;
u8 *s1;
v0 = *(u16 *)(a0 + 0x10A) + 1;
*(u16 *)(a0 + 0x10A) = v0;
if ((v0 & 7) == 0) {
s1 = func_8012913C(0x7B);
if (s1 != 0) {
V8_80187968_80181F18 p1;
V8_80187968_80181F18 q;
v0 = *(u16 *)(a0 + 0x10A);
*(s32 *)(s1 + 0x2C) = (v0 & 0x18) >> 3;
p1.x = *(u16 *)(a0 + 0x6);
p1.y = *(u16 *)(a0 + 0xA);
p1.z = *(u16 *)(a0 + 0xE);
q.x = p1.x;
q.y = p1.y + 0x80;
q.z = p1.z;
func_80133784(1, &p1, (s32)&q);
if (q.flag) {
*(u16 *)(s1 + 0x6) = *(u16 *)(a0 + 0x6);
*(u16 *)(s1 + 0xA) = q.y;
*(u16 *)(s1 + 0xE) = *(u16 *)(a0 + 0xE);
} else {
func_801292C8(s1);
}
}
}
}
extern void (*D_8019F340[])(void);
+46 -1
View File
@@ -3640,7 +3640,52 @@ void func_80182F28(s32 a0)
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_80181C80", func_8018316C);
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_80181C80", func_8018321C);
extern u8 *func_8012913C(s32 a0);
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
extern void func_801292C8(u8 *a0);
typedef struct {
u16 x, y, z;
u8 flag;
} V8_80187968_8018321C;
void func_8018321C(s32 a0) {
u32 v0;
u8 *s1;
v0 = *(u16 *)(a0 + 0x10A) + 1;
*(u16 *)(a0 + 0x10A) = v0;
if ((v0 & 7) == 0) {
s1 = func_8012913C(0x7B);
if (s1 != 0) {
V8_80187968_8018321C p1;
V8_80187968_8018321C q;
v0 = *(u16 *)(a0 + 0x10A);
*(s32 *)(s1 + 0x2C) = (v0 & 0x18) >> 3;
p1.x = *(u16 *)(a0 + 0x6);
p1.y = *(u16 *)(a0 + 0xA);
p1.z = *(u16 *)(a0 + 0xE);
q.x = p1.x;
q.y = p1.y + 0x80;
q.z = p1.z;
func_80133784(1, &p1, (s32)&q);
if (q.flag) {
*(u16 *)(s1 + 0x6) = *(u16 *)(a0 + 0x6);
*(u16 *)(s1 + 0xA) = q.y;
*(u16 *)(s1 + 0xE) = *(u16 *)(a0 + 0xE);
} else {
func_801292C8(s1);
}
}
}
}
extern void (*D_801C3740[])(void);
+46 -1
View File
@@ -3672,7 +3672,52 @@ void func_80187674(s32 a0)
INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_801878B8);
INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80187968);
extern u8 *func_8012913C(s32 a0);
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
extern void func_801292C8(u8 *a0);
typedef struct {
u16 x, y, z;
u8 flag;
} V8_80187968_80187968;
void func_80187968(s32 a0) {
u32 v0;
u8 *s1;
v0 = *(u16 *)(a0 + 0x10A) + 1;
*(u16 *)(a0 + 0x10A) = v0;
if ((v0 & 7) == 0) {
s1 = func_8012913C(0x7B);
if (s1 != 0) {
V8_80187968_80187968 p1;
V8_80187968_80187968 q;
v0 = *(u16 *)(a0 + 0x10A);
*(s32 *)(s1 + 0x2C) = (v0 & 0x18) >> 3;
p1.x = *(u16 *)(a0 + 0x6);
p1.y = *(u16 *)(a0 + 0xA);
p1.z = *(u16 *)(a0 + 0xE);
q.x = p1.x;
q.y = p1.y + 0x80;
q.z = p1.z;
func_80133784(1, &p1, (s32)&q);
if (q.flag) {
*(u16 *)(s1 + 0x6) = *(u16 *)(a0 + 0x6);
*(u16 *)(s1 + 0xA) = q.y;
*(u16 *)(s1 + 0xE) = *(u16 *)(a0 + 0xE);
} else {
func_801292C8(s1);
}
}
}
}
extern void (*D_801C705C[])(void);
+46 -1
View File
@@ -3600,7 +3600,52 @@ void func_801804B8(s32 a0)
INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_jr_8017F210", func_801806FC);
INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_jr_8017F210", func_801807AC);
extern u8 *func_8012913C(s32 a0);
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
extern void func_801292C8(u8 *a0);
typedef struct {
u16 x, y, z;
u8 flag;
} V8_80187968_801807AC;
void func_801807AC(s32 a0) {
u32 v0;
u8 *s1;
v0 = *(u16 *)(a0 + 0x10A) + 1;
*(u16 *)(a0 + 0x10A) = v0;
if ((v0 & 7) == 0) {
s1 = func_8012913C(0x7B);
if (s1 != 0) {
V8_80187968_801807AC p1;
V8_80187968_801807AC q;
v0 = *(u16 *)(a0 + 0x10A);
*(s32 *)(s1 + 0x2C) = (v0 & 0x18) >> 3;
p1.x = *(u16 *)(a0 + 0x6);
p1.y = *(u16 *)(a0 + 0xA);
p1.z = *(u16 *)(a0 + 0xE);
q.x = p1.x;
q.y = p1.y + 0x80;
q.z = p1.z;
func_80133784(1, &p1, (s32)&q);
if (q.flag) {
*(u16 *)(s1 + 0x6) = *(u16 *)(a0 + 0x6);
*(u16 *)(s1 + 0xA) = q.y;
*(u16 *)(s1 + 0xE) = *(u16 *)(a0 + 0xE);
} else {
func_801292C8(s1);
}
}
}
}
extern void (*D_8019AF58[])(void);