chore(decomp): commit in-tree banked work before the next gate

Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted. Top-level src/*.c (main TUs) are excluded by construction (S59).
This commit is contained in:
Drew T
2026-08-25 20:15:39 -06:00
parent 06396e1fef
commit d9c34fcebb
+120 -1
View File
@@ -5514,7 +5514,126 @@ void func_801826E4(s32 param_1)
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801827DC);
void func_801827DC(s32 param_1)
{
extern void func_80186C1C(void);
extern void func_80183F10(void);
extern void func_8018BA9C(void);
extern void func_80183EA8(void);
extern void func_8018BAC4(void);
extern void func_80182D34(s32 a0);
extern void func_8018AC00(void *a0);
extern void func_8012BEE8(u8 *a0);
extern void func_8013C9C4(void *a0);
extern void func_8018637C(s32 arg0, s32 arg1);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_8018B9D4();
extern void func_80182AF8();
extern void *D_80194500[][3];
extern s32 aFC4C[] __asm__("D_801EFC4C");
extern s32 D_801EFC54;
extern s32 D_801EFC5C;
extern s32 D_801EFC60;
extern s32 D_801EFC64[];
extern s32 D_801EFC68;
extern s32 D_801EFD28;
extern u16 D_801EFD40;
extern u8 D_80190B88[];
s32 r;
s32 obj;
u16 t;
u16 f;
switch (*(u16 *)(param_1 + 0x34)) {
case 0:
case 1:
if (*(s16 *)(param_1 + 0x98) == 0) {
func_8018637C(param_1, (s32)D_80194500[*(s16 *)(param_1 + 0xE2)][*(u16 *)(param_1 + 0x34) + 1]);
goto incr;
}
goto draw;
case 2:
if (*(s32 *)(param_1 + 0x94) != 0xB) {
goto draw;
}
func_80186C1C();
*(s16 *)(param_1 + 0x76) = 0x64;
*(s32 *)(param_1 + 0x1C) = 0x80;
*(s16 *)(param_1 + 0xF2) = 1;
*(s16 *)(param_1 + 0xE2) = (s16)*(u16 *)(param_1 + 0xE2) >> 1;
func_8013C9C4(D_80190B88);
func_8018AC00((void *)aFC4C[0]);
func_8018AC00((void *)D_801EFC54);
func_8018AC00((void *)D_801EFC5C);
func_8018AC00((void *)D_801EFC60);
func_8018AC00((void *)D_801EFC64[0]);
func_8018AC00((void *)D_801EFC68);
func_8002D4C8(0x907, 0);
incr:
*(u16 *)(param_1 + 0x34) = *(u16 *)(param_1 + 0x34) + 1;
draw:
func_8018B9D4(D_801EFC54, *(s32 *)(param_1 + 0xD0));
return;
case 3:
if (*(s16 *)(param_1 + 0x76) == 0) {
t = *(u16 *)(param_1 + 0xF6) - 1;
*(u16 *)(param_1 + 0xF6) = t;
*(s16 *)&D_801EFD28 = (s16)t * 100;
func_80183F10();
obj = *(s32 *)(param_1 + 0xD0);
if (obj != 0) {
*(u16 *)(obj + 0x1A) = 0x800;
*(u16 *)(obj + 0x18) = 0x800;
}
func_8018BA9C();
*(u16 *)(param_1 + 0x34) = *(u16 *)(param_1 + 0x34) + 1;
if (*(s16 *)(param_1 + 0xF6) == 0) {
f = D_801EFD40;
*(s32 *)(param_1 + 0x1C) = 8;
D_801EFD40 = f | 0x100;
return;
}
*(s32 *)(param_1 + 0x1C) = 0x10;
return;
}
r = ((s32 (*)(s32))func_8012BEE8)((s32)param_1);
if (r == 0) {
if (((*(s32 *)(param_1 + 0x1C) & 0xF) == 0) && (*(s16 *)(param_1 + 0xF2) != 0)) {
*(s16 *)(param_1 + 0xF2) = *(s16 *)(param_1 + 0xF2) - 1;
func_8013C9C4(D_80190B88);
}
func_8018B9D4(D_801EFC54, *(s32 *)(param_1 + 0xD0));
if ((*(s32 *)(param_1 + 0x1C) & 1) != 0) {
return;
}
func_80183EA8();
return;
}
goto L_af8;
case 4:
r = ((s32 (*)(s32))func_8012BEE8)((s32)param_1);
if (r != 0) {
if (*(s16 *)(param_1 + 0xF6) == 0) {
func_80182D34(param_1);
return;
}
L_af8:
func_80182AF8(param_1);
return;
}
obj = *(s32 *)(param_1 + 0xD0);
if (obj != 0) {
t = *(u16 *)(obj + 0x18) + 0x600;
*(u16 *)(obj + 0x18) = t;
*(u16 *)(obj + 0x1A) = t;
}
func_8018BAC4();
return;
default:
return;
}
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182AF8);