feat(phase-26): h_seq family sweep — 3 member-matches banked via remap_hseq

This commit is contained in:
Drew T
2026-08-18 14:54:54 -06:00
parent 18b0eb40a8
commit 9cd4eb0071
3 changed files with 177 additions and 3 deletions
+59 -1
View File
@@ -437,7 +437,65 @@ void func_801E30EC(void *param_1) {
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E3290);
extern s32 func_80029504(void);
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
extern s32 func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, s32 a1);
extern void func_8012E8E0(s32 a0, s32 a1);
extern void func_8012E88C(u8 *a0);
extern s32 func_80178B18(s32 a0, s32 a1);
void func_801E3290(void *a0) {
extern s32 D_801E9E3C;
extern s32 D_801E9E38;
extern s32 D_801E37D0[];
extern s32 D_801E37B8[][2];
extern s32 D_801E37E8[];
extern s32 D_801E389C;
s32 v0;
s32 cur;
s32 target;
if ((u32)(func_80029504() - 0x122) >= 0xA) {
func_8012CAE4(a0);
return;
}
if (*(s16 *)((s32)a0 + 0x70) == 0) {
D_801E9E3C = func_8012C658(0x1C1, 1, 0);
D_801E9E38 = func_8012C658(0x1C1, 2, 0);
}
v0 = func_8012C1B8();
*(s32 *)((s32)a0 + 0x20) = v0;
if (v0 == 0) {
func_8012CAE4(a0);
return;
}
func_8001C214(v0, D_801E37D0[*(s16 *)((s32)a0 + 0x70)]);
*(s16 *)(*(s32 *)((s32)a0 + 0x68) + 0xC) = 0x7FFF;
func_8012E8E0((s32)a0, (s32)&D_801E37B8[*(s16 *)((s32)a0 + 0x70)]);
*(s16 *)((s32)a0 + 0x2) = 1;
func_8012E8E0((s32)a0, (s32)&D_801E37B8[*(s16 *)((s32)a0 + 0x70)]);
func_8012E88C((u8 *)a0);
cur = *(s32 *)((s32)a0 + 0x90);
target = D_801E37E8[*(s16 *)((s32)a0 + 0x70)];
if (cur != target) {
func_8012A828((s32)a0, target);
}
if (*(s16 *)((s32)a0 + 0x70) != 0) {
func_80178B18((s32)a0, (s32)&D_801E389C);
}
}
+59 -1
View File
@@ -442,7 +442,65 @@ void func_801E8654(void *param_1) {
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E87F8);
extern s32 func_80029504(void);
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
extern s32 func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, s32 a1);
extern void func_8012E8E0(s32 a0, s32 a1);
extern void func_8012E88C(u8 *a0);
extern s32 func_80178B18(s32 a0, s32 a1);
void func_801E87F8(void *a0) {
extern s32 D_801EF37C;
extern s32 D_801EF378;
extern s32 D_801E8D10[];
extern s32 D_801E8CF8[][2];
extern s32 D_801E8D28[];
extern s32 D_801E8DDC;
s32 v0;
s32 cur;
s32 target;
if ((u32)(func_80029504() - 0x122) >= 0xA) {
func_8012CAE4(a0);
return;
}
if (*(s16 *)((s32)a0 + 0x70) == 0) {
D_801EF37C = func_8012C658(0x1C1, 1, 0);
D_801EF378 = func_8012C658(0x1C1, 2, 0);
}
v0 = func_8012C1B8();
*(s32 *)((s32)a0 + 0x20) = v0;
if (v0 == 0) {
func_8012CAE4(a0);
return;
}
func_8001C214(v0, D_801E8D10[*(s16 *)((s32)a0 + 0x70)]);
*(s16 *)(*(s32 *)((s32)a0 + 0x68) + 0xC) = 0x7FFF;
func_8012E8E0((s32)a0, (s32)&D_801E8CF8[*(s16 *)((s32)a0 + 0x70)]);
*(s16 *)((s32)a0 + 0x2) = 1;
func_8012E8E0((s32)a0, (s32)&D_801E8CF8[*(s16 *)((s32)a0 + 0x70)]);
func_8012E88C((u8 *)a0);
cur = *(s32 *)((s32)a0 + 0x90);
target = D_801E8D28[*(s16 *)((s32)a0 + 0x70)];
if (cur != target) {
func_8012A828((s32)a0, target);
}
if (*(s16 *)((s32)a0 + 0x70) != 0) {
func_80178B18((s32)a0, (s32)&D_801E8DDC);
}
}
+59 -1
View File
@@ -434,7 +434,65 @@ void func_801EE4DC(void *param_1) {
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE680);
extern s32 func_80029504(void);
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
extern s32 func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, s32 a1);
extern void func_8012E8E0(s32 a0, s32 a1);
extern void func_8012E88C(u8 *a0);
extern s32 func_80178B18(s32 a0, s32 a1);
void func_801EE680(void *a0) {
extern s32 D_801F5204;
extern s32 D_801F5200;
extern s32 D_801EEB98[];
extern s32 D_801EEB80[][2];
extern s32 D_801EEBB0[];
extern s32 D_801EEC64;
s32 v0;
s32 cur;
s32 target;
if ((u32)(func_80029504() - 0x122) >= 0xA) {
func_8012CAE4(a0);
return;
}
if (*(s16 *)((s32)a0 + 0x70) == 0) {
D_801F5204 = func_8012C658(0x1C1, 1, 0);
D_801F5200 = func_8012C658(0x1C1, 2, 0);
}
v0 = func_8012C1B8();
*(s32 *)((s32)a0 + 0x20) = v0;
if (v0 == 0) {
func_8012CAE4(a0);
return;
}
func_8001C214(v0, D_801EEB98[*(s16 *)((s32)a0 + 0x70)]);
*(s16 *)(*(s32 *)((s32)a0 + 0x68) + 0xC) = 0x7FFF;
func_8012E8E0((s32)a0, (s32)&D_801EEB80[*(s16 *)((s32)a0 + 0x70)]);
*(s16 *)((s32)a0 + 0x2) = 1;
func_8012E8E0((s32)a0, (s32)&D_801EEB80[*(s16 *)((s32)a0 + 0x70)]);
func_8012E88C((u8 *)a0);
cur = *(s32 *)((s32)a0 + 0x90);
target = D_801EEBB0[*(s16 *)((s32)a0 + 0x70)];
if (cur != target) {
func_8012A828((s32)a0, target);
}
if (*(s16 *)((s32)a0 + 0x70) != 0) {
func_80178B18((s32)a0, (s32)&D_801EEC64);
}
}