mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 23:00:29 -04:00
chore(decomp): commit in-tree banked work before the serial lane
This commit is contained in:
@@ -11132,154 +11132,7 @@ void func_8018898C(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct {
|
||||
s8 pad00[0x2];
|
||||
s16 unk02;
|
||||
s8 pad04[0x2];
|
||||
s16 unk06;
|
||||
s8 pad08[0x4];
|
||||
s16 unk0C;
|
||||
s8 pad0E[0x6];
|
||||
s16 unk14;
|
||||
s8 pad16[0x4];
|
||||
s32 unk1C;
|
||||
s16 unk20;
|
||||
s8 pad22[0x12];
|
||||
s16 unk34;
|
||||
s8 pad36[0x24];
|
||||
s16 unk5C;
|
||||
s8 pad5E[0xE];
|
||||
s16 unk6C;
|
||||
s8 pad6E[0x2];
|
||||
u16 unk70;
|
||||
s8 pad72[0x12];
|
||||
u16 unk84;
|
||||
s8 pad86[0x2];
|
||||
s16 unk88;
|
||||
s8 pad8A[0x2];
|
||||
s16 unk8C;
|
||||
s8 pad8E[0x6C];
|
||||
s16 unkFC;
|
||||
u16 unkFE;
|
||||
} SC02_11;
|
||||
|
||||
extern void func_8012B8E4(SC02_11 *arg0, s32 arg1);
|
||||
extern void func_80142414(SC02_11 *arg0, s32 arg1);
|
||||
extern void func_8002D4C8(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BEE8(SC02_11 *arg0);
|
||||
extern void func_8012A828(SC02_11 *arg0, void *arg1);
|
||||
extern s32 func_8012B178(void *arg0, void *arg1);
|
||||
extern s32 func_8012CBA4(SC02_11 *arg0);
|
||||
extern void func_80131E00(SC02_11 *arg0, s32 arg1);
|
||||
extern void func_8012ADE4(SC02_11 *arg0);
|
||||
extern void func_80188250(SC02_11 *arg0);
|
||||
extern void func_80143B6C(SC02_11 *arg0, s32 arg1);
|
||||
extern s32 Square0(s32 arg0);
|
||||
extern s32 func_8012BCCC(SC02_11 *arg0);
|
||||
extern s32 rand(void);
|
||||
extern s32 func_8012B744(void *arg0, void *arg1);
|
||||
extern s32 func_8012BD3C(SC02_11 *arg0, s32 arg1, s32 arg2);
|
||||
extern void func_80188D54(SC02_11 *arg0);
|
||||
extern void func_80188D80(SC02_11 *arg0);
|
||||
|
||||
s32 D_8019609C;
|
||||
void D_801D3CBC;
|
||||
void D_801D3D64;
|
||||
void D_801D3DEC;
|
||||
|
||||
s32 func_80188A10(SC02_11 *s0) {
|
||||
s32 sp10;
|
||||
s32 sp14;
|
||||
s32 sp18;
|
||||
s32 v1;
|
||||
s32 v0;
|
||||
s32 phi_v0;
|
||||
s32 phi_ret;
|
||||
|
||||
if (s0->unk02 == 0) {
|
||||
func_8012B8E4(s0, 4);
|
||||
v1 = *(u16 *) (s0->unk14 + 0x12) + v0;
|
||||
*(u16 *) (s0->unk14 + 0x12) = v1;
|
||||
if (s0->unk1C == 15) {
|
||||
func_80142414(s0, -0x78);
|
||||
func_8002D4C8(0x6A9, 0);
|
||||
}
|
||||
if (func_8012BEE8(s0) != 0) {
|
||||
if ((s0->unk84 & 2)) {
|
||||
func_8012A828(s0, &D_801D3D64);
|
||||
s0->unk02 = 1;
|
||||
s0->unk1C = 40;
|
||||
s0->unkFE = 0;
|
||||
} else {
|
||||
func_8012A828(s0, &D_801D3DEC);
|
||||
s0->unk02 = 0;
|
||||
s0->unk1C = 25;
|
||||
s0->unk84 |= 2;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if (s0->unk02 != 1) {
|
||||
return 0;
|
||||
}
|
||||
func_8012B8E4(s0, 6);
|
||||
v1 = *(u16 *) (s0->unk14 + 0x12) + v0;
|
||||
*(u16 *) (s0->unk14 + 0x12) = v1;
|
||||
func_8012B178(&D_8019609C, s0);
|
||||
v1 = func_8012CBA4(s0);
|
||||
if ((v1 & 0x1000)) {
|
||||
func_80131E00(s0, 0x12);
|
||||
phi_v0 = 0;
|
||||
} else if (v1 == 0x2000) {
|
||||
phi_v0 = 1;
|
||||
} else {
|
||||
func_8012ADE4(s0);
|
||||
phi_v0 = 1;
|
||||
}
|
||||
if (phi_v0 != 0) {
|
||||
func_80188250(s0);
|
||||
phi_ret = s0->unkFE - 1;
|
||||
s0->unkFE = phi_ret;
|
||||
if (phi_ret <= 0) {
|
||||
func_80143B6C(s0, 0);
|
||||
s0->unkFE = 8;
|
||||
}
|
||||
sp14 = 0;
|
||||
sp10 = s0->unk06 - s0->unk88;
|
||||
sp18 = s0->unk0C - s0->unk8C;
|
||||
if (((sp10 + Square0(sp18)) < 0x8FFFF) && (func_8012BCCC(s0), (func_8012BCCC(s0) >= 0x10000))) {
|
||||
block_58:
|
||||
s0->unk02 = 1;
|
||||
s0->unk5C = 0xAA10;
|
||||
s0->unk34 = 0;
|
||||
v0 = rand() & 0x1F;
|
||||
s0->unk1C = v0 + 0x28;
|
||||
sp14 = 0;
|
||||
sp10 = s0->unk06 - s0->unk88;
|
||||
sp18 = s0->unk0C - s0->unk8C;
|
||||
if (((sp10 + Square0(sp18)) >= 0x8FFFF) || (func_8012B744(s0->pad04, &v1), (s0->unkFC = v0, 0))) {
|
||||
v0 = rand() & 0x3FF;
|
||||
v1 = v0 - 0x200;
|
||||
if (v1 >= 0) {
|
||||
v1 = v0 + 0x100;
|
||||
} else {
|
||||
v1 = v0 - 0x500;
|
||||
}
|
||||
s0->unkFC = (*(u16 *) (s0->unk14 + 0x12) + v1) & 0xFFF;
|
||||
}
|
||||
func_8012A828(s0, &D_801D3CBC);
|
||||
}
|
||||
}
|
||||
if (!(s0->unk70 & 0x100)) {
|
||||
if (func_8012BD3C(s0, 0x200, 0x1000) != 0) {
|
||||
func_80188D54(s0);
|
||||
}
|
||||
} else if (func_8012BD3C(s0, 0x400, 0x40000) != 0) {
|
||||
func_80188D80(s0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188A10);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188D54);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user