baseline functions, some still need completion
fn_1_CA0 fn_1_19D4
This commit is contained in:
parent
8243ade01d
commit
cbe39b06af
2 changed files with 794 additions and 1 deletions
793
src/REL/m446Dll/main.c
Normal file
793
src/REL/m446Dll/main.c
Normal 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();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue