marioparty4/src/REL/m446Dll/main.c
2024-05-20 11:49:24 -04:00

739 lines
No EOL
22 KiB
C

#include "REL/m446Dll.h"
#include "rel_sqrt_consts.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/audio.h"
#include "game/jmp.h"
#include "game/window.h"
#include "game/wipe.h"
#include "game/frand.h"
#include "game/minigame_seq.h"
// card.c
extern s32 fn_1_2064(void);
extern void fn_1_207C(void);
extern void fn_1_20D4(void);
extern void fn_1_2EC0(unkSubStruct2*, s32);
// deck.c
extern void fn_1_3180(s32);
extern void fn_1_31D8(s32, s32*, s32*, s32);
extern s32 fn_1_38E0(void);
extern s32 fn_1_3064(void);
extern void fn_1_34A0(s32, s32*, s32, s32);
extern void fn_1_3700(s32, unkSubStruct2*, s32);
// table.c
extern s32 fn_1_3924(void);
extern void fn_1_393C(void);
extern void fn_1_3994(void);
extern unkSubStruct *fn_1_39D0(void);
extern void fn_1_3B4C(unkSubStruct*);
extern s32 fn_1_3BF0(unkSubStruct*, unkSubStruct2*, s32);
extern s32 fn_1_3EB4(unkSubStruct*, unkSubStruct2*, s32);
extern void fn_1_4000(unkSubStruct*, s32);
extern s32 fn_1_4088(unkSubStruct*, u8, u8, s32, unkSubStruct2**, s32);
extern void fn_1_46D0(unkSubStruct*);
// player.c
extern s32 fn_1_480C(void);
extern void fn_1_4824(void);
extern void fn_1_487C(void);
extern unkSubStruct *fn_1_4B00(s32, unkSubStruct*);
extern void fn_1_509C(unkSubStruct*);
extern s32 fn_1_5504(unkSubStruct*, unkSubStruct2*, s32);
extern unkSubStruct *fn_1_5648(unkSubStruct*, s32, unkSubStruct2**);
extern s32 fn_1_5678(unkSubStruct*, unkSubStruct2**, s32);
extern void fn_1_5B34(unkSubStruct*);
extern void fn_1_5C10(unkSubStruct*);
extern void fn_1_5CEC(unkSubStruct*);
extern void fn_1_637C(unkSubStruct*, s32);
// camera.c
extern void fn_1_6778(void);
extern void fn_1_68D8(void);
extern void fn_1_68DC(void);
extern void fn_1_6EA0(Vec*);
extern void fn_1_6EC4(Vec*);
extern void fn_1_6EE8(f32);
extern void fn_1_6EF8(Vec*, Vec*, f32*, s32);
// cursor.c
extern s32 fn_1_72E0(void);
extern void fn_1_72F8(void);
extern void fn_1_7350(void);
// stage.c
extern s32 fn_1_7BF0(void);
extern void fn_1_7C08(void);
extern void fn_1_7C60(void);
extern s32 fn_1_80C0(void);
extern void fn_1_83F0(s32);
extern void fn_1_84AC(s32);
// bss
s32 lbl_1_bss_14;
s32 lbl_1_bss_10;
Process* lbl_1_bss_C;
omObjData *lbl_1_bss_8;
s32 lbl_1_bss_4;
unkStruct* lbl_1_bss_0;
// data
Vec lbl_1_data_0 = { 0.0f, 90.0f, 0.0f };
Vec lbl_1_data_C = { -40.0f, 40.0f, 0.0f };
f32 lbl_1_data_18 = 1260.0f;
Vec lbl_1_data_1C = { 0.0f, 90.0f, 0.0f };
Vec lbl_1_data_28 = { -90.0f, 0.0f, 0.0f };
f32 lbl_1_data_34 = 260.0f;
Vec lbl_1_data_38[2] = {
{ 0.0f, 100.0f, 120.0f },
{ 0.0f, 100.0f, 120.0f }
};
Vec lbl_1_data_50[2] = {
{ -30.0f, 0.0f, 0.0f },
{ -30.0f, 0.0f, 0.0f }
};
f32 lbl_1_data_68[2] = { 600.0f, 600.0f };
s32 lbl_1_data_70[2][2] = { { 0x46, 0x1A4 }, { 0x1F4, 0x3C } };
void ModuleProlog(void) {
lbl_1_bss_C = omInitObjMan(5, 0x2000);
omGameSysInit(lbl_1_bss_C);
lbl_1_bss_8 = omAddObjEx(lbl_1_bss_C, 0x3E8, 0x32U, 0x32U, 0, fn_1_13C);
omSetStatBit(lbl_1_bss_8, 0x100U);
lbl_1_bss_4 = 0;
}
void fn_1_13C(omObjData* arg0) {
switch (lbl_1_bss_4) {
case 0:
HuWinInit(1);
Hu3DLighInit();
frand();
fn_1_38E0();
fn_1_6778();
fn_1_7BF0();
fn_1_2064();
fn_1_480C();
fn_1_3924();
fn_1_72E0();
lbl_1_bss_0 = m446FlowCreate();
lbl_1_bss_4 = 1;
break;
case 1:
fn_1_4B4(lbl_1_bss_0);
fn_1_7C60();
fn_1_487C();
fn_1_3994();
fn_1_7350();
fn_1_20D4();
fn_1_68DC();
if (lbl_1_bss_0->unk0 != 5) break;
lbl_1_bss_4 = 3;
WipeCreate(2, 0, 0x3C);
case 2:
break;
case 3:
if (WipeStatGet() == 0) {
lbl_1_bss_4 = 4;
}
break;
case 4:
HuAudFadeOut(0x64);
fn_1_3FC(lbl_1_bss_0);
fn_1_72F8();
fn_1_4824();
fn_1_393C();
fn_1_207C();
fn_1_7C08();
fn_1_68D8();
omOvlReturnEx(1, 1);
break;
}
}
unkStruct* m446FlowCreate(void) {
s32 var_r30;
unkStruct* temp_r3;
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, 0x10000000);
if (temp_r3 == 0) {
OSReport("[!] m446FlowCreate() ERROR");
return NULL;
}
temp_r3->unk4 = -1;
temp_r3->unk6 = -1;
temp_r3->unk1C = 0;
temp_r3->unk0 = 0;
temp_r3->unk10 = 0;
temp_r3->unk98 = NULL;
temp_r3->unk18 = -1;
for (var_r30 = 0; var_r30 < 23; var_r30++) {
temp_r3->unk38[var_r30] = 0;
}
temp_r3->unk24 = fn_1_80C0();
temp_r3->unk20 = fn_1_39D0();
lbl_1_bss_10 = 0;
for (var_r30 = 0; var_r30 < 2; var_r30++) {
temp_r3->unk2C[var_r30] = fn_1_4B00(var_r30, temp_r3->unk20);
if (temp_r3->unk2C[var_r30]->unk68 != 0) {
lbl_1_bss_10 += 1;
}
}
temp_r3->unk28 = fn_1_3064();
WipeCreate(1, 0, 0x3C);
return temp_r3;
}
void fn_1_3FC(unkStruct* arg0) {
s32 var_r30;
if (arg0->unk98) {
HuPrcKill(arg0->unk98);
}
if (arg0->unk4 == -1) {
fn_1_183C(arg0);
}
if (arg0->unk6 == -1) {
MGSeqParamSet(arg0->unk6, 2, -1);
}
for (var_r30 = 0; var_r30 < 2; var_r30++) {
fn_1_509C(arg0->unk2C[var_r30]);
}
fn_1_3B4C(arg0->unk20);
fn_1_3180(arg0->unk28);
fn_1_83F0(arg0->unk24);
HuMemDirectFree(arg0);
}
m446Func1 lbl_1_data_A0[5] = {fn_1_53C, fn_1_B78, fn_1_CA0, fn_1_C0C, fn_1_958};
void fn_1_4B4(unkStruct* arg0) {
if (lbl_1_data_A0[arg0->unk0]) {
lbl_1_data_A0[arg0->unk0](arg0);
}
if (omSysExitReq != 0) {
arg0->unk0 = 5;
}
}
void fn_1_53C(unkStruct* arg0) {
s32 var_r30;
s32 var_r29;
switch (arg0->unk10) {
case 0:
fn_1_6EA0(&lbl_1_data_0);
fn_1_6EC4(&lbl_1_data_C);
fn_1_6EE8(lbl_1_data_18);
arg0->unk10 = 1;
arg0->unk14 = 0;
HuAudFXPlay(0x773);
break;
case 1:
if (arg0->unk14 == 20) {
fn_1_84AC(arg0->unk24);
}
if (arg0->unk14++ < 0xB4) break;
arg0->unk18 = HuAudSeqPlay(0x3D);
if (arg0->unk2C[1]->unk64 == 8) {
arg0->unk10 = 2;
} else {
arg0->unk10 = 4;
}
break;
case 2:
arg0->unk98 = HuPrcChildCreate(fn_1_19D4, 0x64, 0x2000, 0, lbl_1_bss_C);
lbl_1_bss_14 = 1;
arg0->unk10 = 3;
break;
case 3:
if (lbl_1_bss_14 == 0) {
arg0->unk98 = NULL;
arg0->unk10 = 4;
}
break;
case 4:
fn_1_6EF8(&lbl_1_data_1C, &lbl_1_data_28, &lbl_1_data_34, 0xB4);
arg0->unk10 = 5;
break;
case 5:
if (fn_1_708C()) break;
fn_1_860C(arg0->unk24);
for (var_r30 = 0; var_r30 < 2; var_r30++) {
fn_1_637C(arg0->unk2C[var_r30], 1);
}
arg0->unk10 = 6;
break;
case 6:
fn_1_31D8(arg0->unk28, &arg0->unk38[0], &arg0->unk94, 1);
arg0->unk10 = 7;
arg0->unk14 = 0;
break;
case 7:
if (arg0->unk14++ < 0x78) break;
fn_1_34A0(arg0->unk28, &arg0->unk38[0], arg0->unk94, 1);
arg0->unk10 = 8;
arg0->unk14 = 0;
break;
case 8:
if (arg0->unk14++ < 0x78) break;
for (var_r29 = 0; var_r29 < 2; var_r29++) {
for (var_r30 = 0; var_r30 < 3; var_r30++) {
fn_1_3854(arg0->unk28, &arg0->unk34);
fn_1_51B8(arg0->unk2C[var_r29], arg0->unk34, 1);
fn_1_2EC0(arg0->unk34, 0);
}
}
HuAudFXPlay(0x767);
arg0->unk10 = 9;
break;
case 9:
if (arg0->unk34->unk70 != 0) break;
if (arg0->unk34->unk78 != 0) break;
if (arg0->unk34->unk74 != 0) break;
if (arg0->unk34->unk4 != 0) break;
for (var_r29 = 0; var_r29 < 2; var_r29++) {
for (var_r30 = 0; var_r30 < 3; var_r30++) {
fn_1_5648(arg0->unk2C[var_r29], var_r30, &arg0->unk34);
fn_1_272C(arg0->unk34);
}
}
arg0->unk10 = 10;
break;
case 10:
if (arg0->unk34->unk70 != 0) break;
if (arg0->unk34->unk78 != 0) break;
if (arg0->unk34->unk74 != 0) break;
if (arg0->unk34->unk4 != 0) break;
fn_1_46AC(arg0->unk20);
while (fn_1_3854(arg0->unk28, &arg0->unk34) != 0) {
fn_1_3BF0(arg0->unk20, arg0->unk34, 1);
}
fn_1_46D0(arg0->unk20);
if (arg0->unk18 != -1) {
HuAudSeqFadeOut(arg0->unk18, 0x7D0);
}
arg0->unk10 = 11;
arg0->unk14 = 0;
break;
case 11:
if (arg0->unk14++ < 0x78) break;
arg0->unk0 = 1;
arg0->unk10 = 0;
break;
}
}
void fn_1_958(unkStruct* arg0) {
s32 temp_r3;
s32 temp_r3_2;
s32 temp_r3_3;
s32 var_r30;
switch (arg0->unk10) {
case 0:
for (var_r30 = 0; var_r30 < 2; var_r30++) {
fn_1_637C(arg0->unk2C[var_r30], 0);
}
fn_1_6EF8(&lbl_1_data_38[arg0->unk1C], &lbl_1_data_50[arg0->unk1C], &lbl_1_data_68[arg0->unk1C], 0x4E);
arg0->unk10 = 1;
arg0->unk14 = 0;
break;
case 1:
if (arg0->unk14++ >= 0x1E) {
fn_1_5CEC(arg0->unk2C[0]);
arg0->unk10 = 2;
arg0->unk14 = 0;
}
break;
case 2:
if (arg0->unk14++ >= 0x36) {
if ((arg0->unk2C[0]->unk24 == 0) && (arg0->unk2C[1]->unk24 == 0)) {
fn_1_5C10(arg0->unk2C[0]);
if (arg0->unk2C[1]->unk64 == 8) {
fn_1_5B34(arg0->unk2C[1]);
HuAudSStreamPlay(3);
} else {
fn_1_5C10(arg0->unk2C[1]);
HuAudSStreamPlay(4);
}
} else if (arg0->unk2C[0]->unk24 != 0) {
fn_1_5B34(arg0->unk2C[0]);
fn_1_5C10(arg0->unk2C[1]);
HuAudSStreamPlay(1);
} else if (arg0->unk2C[1]->unk24 != 0) {
fn_1_5B34(arg0->unk2C[1]);
fn_1_5C10(arg0->unk2C[0]);
if (arg0->unk2C[1]->unk64 == 8) {
HuAudSStreamPlay(3);
} else {
HuAudSStreamPlay(1);
}
}
arg0->unk10 = 3;
arg0->unk14 = 0;
return;
}
break;
case 3:
if (arg0->unk14++ >= 0xD2) {
arg0->unk0 = 5;
}
break;
}
}
void fn_1_B78(unkStruct* arg0) {
switch (arg0->unk10) {
case 0:
arg0->unk18 = HuAudSeqPlay(0x3F);
fn_1_1874(arg0);
arg0->unk10 = 1;
arg0->unk14 = 0;
break;
case 1:
if (!fn_1_17FC(arg0)) {
fn_1_183C(arg0);
arg0->unk0 = 2;
arg0->unk10 = 0;
}
break;
}
}
void fn_1_C0C(unkStruct* arg0) {
switch (arg0->unk10) {
case 0:
HuAudSeqFadeOut(arg0->unk18, 0x64);
fn_1_18B0(arg0);
arg0->unk10 = 1;
arg0->unk14 = 0;
break;
case 1:
if (fn_1_17FC(arg0) == 0) {
fn_1_183C(arg0);
arg0->unk0 = 4;
arg0->unk10 = 0;
}
break;
}
}
void fn_1_CA0(unkStruct* arg0) {
s32 var_r29;
unkSubStruct *var_r30;
var_r30 = arg0->unk2C[arg0->unk1C];
switch (arg0->unk10) {
case 0:
arg0->unk1C = 0;
arg0->unk10 = 1;
break;
case 1:
arg0->unkC = 300;
arg0->unk6 = MGSeqCreate(1, arg0->unkC / 60, -1, -1);
MGSeqPosSet(arg0->unk6, lbl_1_data_70[arg0->unk1C][0], lbl_1_data_70[arg0->unk1C][1]);
arg0->unk10 = 2;
case 2:
if (fn_1_5678(var_r30, &arg0->unk34, 0) == 0) {
if ((arg0->unkC-- % 60) == 0) {
MGSeqParamSet(arg0->unk6, 1, arg0->unkC / 60);
}
if (arg0->unkC == 0) {
arg0->unk10 = 3;
arg0->unk14 = 0;
}
} else {
arg0->unk10 = 4;
}
break;
case 3:
if (arg0->unk14++ >= 60) {
fn_1_5678(var_r30, &arg0->unk34, 1);
arg0->unk10 = 4;
}
break;
case 4:
MGSeqParamSet(arg0->unk6, 2, -1);
arg0->unk6 = -1;
fn_1_5504(var_r30, arg0->unk34, 3);
arg0->unk10 = 5;
break;
case 5:
if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) {
fn_1_3BF0(arg0->unk20, arg0->unk34, 4);
arg0->unk10 = 6;
}
break;
case 6:
if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) {
fn_1_2EC0(arg0->unk34, 1);
arg0->unkC = 300;
arg0->unk6 = MGSeqCreate(1, arg0->unkC / 60, -1, -1);
MGSeqPosSet(arg0->unk6, lbl_1_data_70[arg0->unk1C][0], lbl_1_data_70[arg0->unk1C][1]);
fn_1_4000(arg0->unk20, arg0->unk1C == 1 >> 5);
arg0->unk10 = 7;
} else break;
case 7:
if (fn_1_4088(arg0->unk20, var_r30->unk64, var_r30->unk66, arg0->unk1C == 1, &arg0->unk34, 0) == 0) {
if ((arg0->unkC-- % 60) == 0) {
MGSeqParamSet(arg0->unk6, 1, arg0->unkC / 60);
}
if (arg0->unkC <= 0) {
if (fn_1_4088(arg0->unk20, var_r30->unk64, var_r30->unk66, arg0->unk1C == 1, &arg0->unk34, 2) == 0) {
fn_1_4000(arg0->unk20, arg0->unk1C == 1 >> 5);
arg0->unk10 = 8;
arg0->unk14 = 0;
break;
}
} else break;
}
arg0->unk10 = 9;
break;
case 8:
fn_1_4088(arg0->unk20, var_r30->unk64, var_r30->unk66, arg0->unk1C == 1, &arg0->unk34, 1);
if (arg0->unk14++ >= 0x1E) {
fn_1_4088(arg0->unk20, var_r30->unk64, var_r30->unk66, arg0->unk1C == 1, &arg0->unk34, 2);
arg0->unk10 = 9;
}
break;
case 9:
MGSeqParamSet(arg0->unk6, 2, -1);
arg0->unk6 = -1;
fn_1_2EC0(arg0->unk34, 0);
fn_1_3EB4(arg0->unk20, arg0->unk34, 3);
arg0->unk10 = 10;
break;
case 10:
if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) {
if (arg0->unk34->unk0 == 4) {
arg0->unk10 = 13;
} else {
fn_1_51B8(var_r30, arg0->unk34, 4);
arg0->unk10 = 11;
}
}
break;
case 11:
if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) {
if (var_r30->unk24 != 0) {
arg0->unk10 = 24;
} else {
arg0->unk10 = 12;
}
}
break;
case 12:
if (fn_1_4720(arg0->unk20, 5) == 0) {
arg0->unk1C = 1;
arg0->unk10 = 25;
break;
} else if (arg0->unk1C == 0) {
arg0->unk1C = 1;
} else {
arg0->unk1C = 0;
}
arg0->unk10 = 1;
break;
case 13:
fn_1_64BC(var_r30, 0, 60);
HuAudFXPlay(0x4E);
arg0->unk10 = 14;
case 14:
fn_1_2A94(arg0->unk34);
arg0->unk10 = 15;
break;
case 15:
if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) {
fn_1_3EB4(var_r30, arg0->unk34, 4);
fn_1_2688(arg0->unk34);
for (var_r29 = 0; var_r29 < 3; var_r29++) {
fn_1_5648(var_r30, var_r29, &arg0->unk34);
if (arg0->unk34) {
fn_1_5504(var_r30, arg0->unk34, 4);
fn_1_3BF0(arg0->unk20, arg0->unk34, 3);
}
}
arg0->unk10 = 16;
arg0->unk14 = 0;
}
break;
case 16:
if (arg0->unk14++ >= 60) {
for (var_r29 = 0; var_r29 < 21; var_r29++) {
fn_1_3FD0(arg0->unk20, var_r29, &arg0->unk34);
if (arg0->unk34) {
fn_1_2794(arg0->unk34);
fn_1_2EC0(arg0->unk34, 1);
}
}
arg0->unk10 = 17;
arg0->unk14 = 0;
}
break;
case 17:
if (arg0->unk14++ >= 60) {
for (var_r29 = 0; var_r29 < 21; var_r29++) {
fn_1_3FD0(arg0->unk20, var_r29, &arg0->unk34);
if (arg0->unk34) {
fn_1_3EB4(arg0->unk20, arg0->unk34, 4);
fn_1_3700(arg0->unk28, arg0->unk34, 2);
}
}
arg0->unk10 = 18;
arg0->unk14 = 0;
}
break;
case 18:
if (arg0->unk14++ >= 60) {
fn_1_31D8(arg0->unk28, &arg0->unk38[0], &arg0->unk94, 1);
arg0->unk10 = 19;
arg0->unk14 = 0;
}
break;
case 19:
if (arg0->unk14++ >= 120) {
fn_1_34A0(arg0->unk28, &arg0->unk38[0], arg0->unk94, 1);
arg0->unk10 = 20;
arg0->unk14 = 0;
}
break;
case 20:
if (arg0->unk14++ >= 120) {
for (var_r29 = 0; var_r29 < 3; var_r29++) {
fn_1_3854(arg0->unk28, &arg0->unk34);
fn_1_51B8(var_r30, arg0->unk34, 1);
fn_1_2EC0(arg0->unk34, 0);
}
HuAudFXPlay(0x767);
arg0->unk10 = 21;
}
break;
case 21:
if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) {
for (var_r29 = 0; var_r29 < 3; var_r29++) {
fn_1_5648(var_r30, var_r29, &arg0->unk34);
fn_1_272C(arg0->unk34);
}
arg0->unk10 = 22;
}
break;
case 22:
if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) {
fn_1_46AC(arg0->unk20);
while (fn_1_3854(arg0->unk28, &arg0->unk34)) {
fn_1_3BF0(arg0->unk20, arg0->unk34, 1);
}
fn_1_46D0(arg0->unk20);
arg0->unk10 = 23;
arg0->unk14 = 0;
}
break;
case 23:
if (arg0->unk14++ >= 120) {
arg0->unk10 = 12;
}
break;
case 24:
for (var_r29 = 0; var_r29 < 3; var_r29++) {
fn_1_5648(var_r30, var_r29, &arg0->unk34);
if (arg0->unk34) {
fn_1_2D94(arg0->unk34);
}
}
GWPlayerCoinWinAdd(arg0->unk1C, 10);
case 25:
arg0->unk0 = 3;
arg0->unk10 = 0;
break;
}
}
s32 fn_1_17FC(unkStruct* arg0) {
return MGSeqStatGet(arg0->unk4) != 0;
}
void fn_1_183C(unkStruct* arg0) {
MGSeqKill(arg0->unk4);
arg0->unk4 = -1;
}
void fn_1_1874(unkStruct* arg0) {
arg0->unk4 = MGSeqCreate(3, 0);
}
void fn_1_18B0(unkStruct* arg0) {
arg0->unk4 = MGSeqCreate(3, 1);
}
void fn_1_18EC(s16 arg0, s32 arg1) {
HuWinComKeyReset();
if (lbl_1_bss_10 == 2) {
HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, arg1);
}
winData[arg0].active_pad = 1;
HuWinMesWait(arg0);
}
s32 fn_1_1970(s16 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (lbl_1_bss_10 == 2) {
HuPrcSleep(arg3);
return arg2;
} else {
return HuWinChoiceGet(arg0, arg1);
}
}
const s32 lbl_1_rodata_18[12] = {
0x180003, 0x180004, 0x180005, 0x180006,
0x180007, 0x180008, 0x180009, 0x18000A,
0x18000B, 0x18000C, 0x18000D, 0
};
void fn_1_19D4(void) {
s16 temp_r3;
s16 var_r30;
s32 temp_r0;
s32 var_r29;
u32 temp_r27;
temp_r3 = HuWinExCreateStyled(-10000.0f, 40.0f, 0x138, 0x78, -1, 1);
HuWinExAnimIn(temp_r3);
HuWinBGTPLvlSet(temp_r3, 0.8f);
HuWinMesSpeedSet(temp_r3, 1);
HuWinMesColSet(temp_r3, 0);
HuWinMesSet(temp_r3, 0x180001);
fn_1_18EC(temp_r3, 0x3C);
if (lbl_1_bss_10 < 2) {
HuWinMesColSet(temp_r3, 0);
HuWinMesSet(temp_r3, 0x180002);
var_r30 = fn_1_1970(temp_r3, 0, 1, 0x3C);
} else {
var_r30 = 1;
}
if (var_r30 == 0) {
var_r29 = 0;
while (temp_r27 = lbl_1_rodata_18[var_r29++], temp_r27 != 0) {
HuWinMesColSet(temp_r3, 0);
HuWinMesSet(temp_r3, temp_r27);
fn_1_18EC(temp_r3, 0x3C);
}
} else {
HuWinMesColSet(temp_r3, 0);
HuWinMesSet(temp_r3, 0x18000D);
fn_1_18EC(temp_r3, 0x3C);
}
HuWinExAnimOut(temp_r3);
HuWinExCleanup(temp_r3);
lbl_1_bss_14 = 0;
HuPrcEnd();
while (1) {
HuPrcVSleep();
}
}