baseline functions, some still need completion

fn_1_CA0
fn_1_19D4
This commit is contained in:
CreateSource 2024-05-12 18:07:03 -04:00
parent 8243ade01d
commit cbe39b06af
2 changed files with 794 additions and 1 deletions

793
src/REL/m446Dll/main.c Normal file
View file

@ -0,0 +1,793 @@
#include "dolphin/types.h"
#include "game/hsfman.h"
#include "game/audio.h"
#include "game/jmp.h"
#include "game/process.h"
#include "game/window.h"
#include "game/wipe.h"
#include "game/frand.h"
#include "game/object.h"
#include "game/minigame_seq.h"
typedef struct _unkSubStruct {
s32 unk0;
char unk4[0x20];
s32 unk24;
char unk28[0x3C];
u8 unk64;
u8 unk65;
u8 unk66;
s32 unk68;
char unk6C[0x4];
} unkSubStruct;
typedef struct _unkSubStruct2 {
char unk0;
} unkSubStruct2;
typedef struct _unkSubStruct3 {
s32 unk0;
s32 unk4;
char unk8[0x68];
s32 unk70;
s32 unk74;
s32 unk78;
} unkSubStruct3;
typedef struct _unkStruct {
s32 unk0;
s16 unk4;
s16 unk6;
char unk8[0x4];
s32 unkC;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
unkSubStruct2 *unk20;
s32 unk24;
s32 unk28;
unkSubStruct *unk2C[2];
unkSubStruct3 *unk34;
s32 unk38[23];
s32 unk94;
Process *unk98;
} unkStruct;
typedef void (*m446Func)(unkStruct *);
// card.c
extern s32 fn_1_2064(void);
extern void fn_1_207C(void);
extern void fn_1_20D4(void);
// deck.c
extern void fn_1_3180(s32);
extern s32 fn_1_38E0(void);
extern s32 fn_1_3064(void);
// table.c
extern s32 fn_1_3924(void);
extern void fn_1_393C(void);
extern void fn_1_3994(void);
extern unkSubStruct2 *fn_1_39D0(void);
void fn_1_3B4C(unkSubStruct2*);
// 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, unkSubStruct2*);
extern void fn_1_509C(unkSubStruct*);
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);
// prototypes
void ModuleProlog(void);
void fn_1_13C(omObjData*);
unkStruct* m446FlowCreate(void);
void fn_1_3FC(unkStruct*);
void fn_1_4B4(unkStruct*);
void fn_1_53C(unkStruct*);
void fn_1_958(unkStruct*);
void fn_1_B78(unkStruct*);
//...
void fn_1_C0C(unkStruct*);
void fn_1_CA0(unkStruct*);
s32 fn_1_17FC(unkStruct*);
void fn_1_183C(unkStruct*);
void fn_1_1874(unkStruct*);
void fn_1_18B0(unkStruct*);
void fn_1_19D4(void);
// 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);
}
m446Func 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, &arg0->unk94, 1);
arg0->unk10 = 7;
arg0->unk14 = 0;
break;
case 7:
if (arg0->unk14++ < 0x78) break;
fn_1_34A0(arg0->unk28, arg0->unk38, 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, &arg0->unk94, 1);
arg0->unk10 = 19;
arg0->unk14 = 0;
}
break;
case 19:
if (arg0->unk14++ >= 120) {
fn_1_34A0(arg0->unk28, &arg0->unk38, 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_r29, var_r30, &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();
}
}