diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index c49d50a3..8b856ada 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -423,10 +423,10 @@ lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 data:string lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 data:string lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 data:string lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 -lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C data:string -lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 data:string -lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A data:string -lbl_1_data_587 = .data:0x00000587; // type:object size:0x3D +lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C scope:local data:string +lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 scope:local data:string +lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A scope:local data:string +lbl_1_data_587 = .data:0x00000587; // type:object size:0x3D scope:local data:string lbl_1_data_5C4 = .data:0x000005C4; // type:object size:0x20 data:4byte lbl_1_data_5E4 = .data:0x000005E4; // type:object size:0x40 data:4byte lbl_1_data_624 = .data:0x00000624; // type:object size:0x70 diff --git a/configure.py b/configure.py index d04f0d54..0de9c77d 100644 --- a/configure.py +++ b/configure.py @@ -1301,7 +1301,7 @@ config.libs = [ objects={ Object(Matching, "REL/mpexDll/main.c"), Object(NonMatching, "REL/mpexDll/mpex.c"), - Object(NonMatching, "REL/mpexDll/charsel.c"), + Object(Matching, "REL/mpexDll/charsel.c"), Object(Matching, "REL/mpexDll/mgname.c"), }, ), diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h index 3c4c3d78..c14b7b54 100644 --- a/include/REL/mpexDll.h +++ b/include/REL/mpexDll.h @@ -26,13 +26,16 @@ typedef struct MpexDllUnkStruct2 { /* 0x58 */ u32 unk_58; } MpexDllUnkStruct2; /* size = unknown */ +void fn_1_374(void); +void fn_1_298(void); +void fn_1_910(MpexDllUnkFunc arg0); +void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); s32 fn_1_3044(Process *arg0); -// s32 fn_1_1B52C(float, float, float, float); seems implicit in main.c -s32 fn_1_1B554(float, float, float); -s32 fn_1_1B574(float, float, float, float); -s32 fn_1_1B64C(float, float, float, float); -s32 fn_1_1B7D0(s32 arg0); +void fn_1_1B7D0(s32 arg0); + +s32 fn_1_1D02C(s32 arg0); extern u8 lbl_1_bss_6AC; diff --git a/src/REL/mpexDll/charsel.c b/src/REL/mpexDll/charsel.c new file mode 100644 index 00000000..180626fa --- /dev/null +++ b/src/REL/mpexDll/charsel.c @@ -0,0 +1,3107 @@ +#include "ext_math.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/mpexDll.h" + +typedef void (*MpexDllUnkFunc2)(omObjData *, ...); + +typedef struct MpexDllUnkStruct4 { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MpexDllUnkFunc2 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ char pad_18[0x10]; /* maybe part of unk_14[5]? */ + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ char pad_38[0x10]; /* maybe part of unk_34[5]? */ + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ s32 unk_54; + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; +} MpexDllUnkStruct4; /* size = 0x60 */ + +void fn_1_1490C(void); +void fn_1_14B28(void); +void fn_1_14E54(void); +void fn_1_14EF0(void); +void fn_1_151C8(void); +void fn_1_154A4(void); +void fn_1_15774(void); +void fn_1_157C4(void); +void fn_1_15D48(void); +void fn_1_16320(void); +void fn_1_16600(s32 arg0); +void fn_1_16874(s32); +void fn_1_168F0(s32 arg0, s32 arg1); +void fn_1_16D3C(s32 arg0); +void fn_1_17170(s32); +void fn_1_17374(void); +void fn_1_17B04(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_18610(MpexDllUnkStruct4 *arg0); +void fn_1_18D30(MpexDllUnkStruct4 *arg0); +void fn_1_18DCC(omObjData *arg0, MpexDllUnkStruct4 *arg1); +s32 fn_1_19A98(MpexDllUnkStruct4 *arg0); +void fn_1_1A3BC(void); +void fn_1_1A5A4(s32 arg0); +void fn_1_1AEFC(s32); +void fn_1_1AF78(s32 arg0); +void fn_1_1B0DC(s32); +void fn_1_1B294(void); +void fn_1_1B338(void); +s32 fn_1_1B42C(s32 arg0); +s32 fn_1_1B4AC(s32 arg0); +float fn_1_1B52C(float, float, float, float); // seems implicit in main.c +float fn_1_1B554(float, float, float); // seems implicit in main.c +float fn_1_1B574(float, float, float, float); // seems implicit in main.c +float fn_1_1B64C(float, float, float, float); // seems implcit in main.c +void fn_1_1B834(void); +void fn_1_1B9F4(void); +void fn_1_1BA78(u32 arg0, s32 arg1, s32 arg2); +void fn_1_1BB4C(u32 arg0, s32 arg1); +void fn_1_1BF1C(u32 arg0); +void fn_1_1C120(void); +void fn_1_1C174(void); +void fn_1_1C478(void); +void fn_1_1C77C(void); +void fn_1_1CABC(s32 arg0); + +u8 lbl_1_bss_6AC; +s32 lbl_1_bss_63C[0x1C]; +MpexDllUnkStruct4 lbl_1_bss_5DC; +MpexDllUnkStruct4 lbl_1_bss_45C[4]; +s32 lbl_1_bss_448[5]; +s32 lbl_1_bss_444; +Process *lbl_1_bss_440; + +void fn_1_1264C(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_440 = arg0; + fn_1_1490C(); + fn_1_16320(); + fn_1_1A3BC(); + HuPrcChildCreate(fn_1_1B294, 0x3E8, 0x2000, 0, lbl_1_bss_440); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_1B338, 0x3E8, 0x2000, 0, lbl_1_bss_440); + } +} + +s32 fn_1_126EC(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r29 = -1; + fn_1_14EF0(); + fn_1_1B834(); + fn_1_1BA78(0x1A0005, -1, -1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330091); + lbl_1_bss_5DC.unk_04 = (MpexDllUnkFunc2)fn_1_157C4; + var_r29 = -1; + while (TRUE) { + fn_1_1B7D0(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r29 != var_r30) { + var_r29 = var_r30; + fn_1_1BA78(var_r30 + 0x1A001B, -1, 1); + } + if (lbl_1_bss_5DC.unk_28 != 0) { + continue; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + fn_1_15774(); + lbl_1_bss_5DC.unk_04 = NULL; + fn_1_1C120(); + if (var_r28 == 1) { + var_r27 = 0; + var_r26 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r27++; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r26 < var_r27) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_45C[var_r31].unk_50 = 0; + var_r26++; + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + } + fn_1_1B9F4(); + fn_1_154A4(); + return var_r28; +} + +s32 fn_1_12910(s32 arg0, s32 arg1) +{ + s32 sp10; + s32 spC; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + + sp10 = 0; + spC = 0; + var_r30 = 0; + if (arg1 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_17374(); + if (arg0 == 0) { + fn_1_16D3C(0); + } + fn_1_1B834(); + fn_1_1B7D0(1); + if (arg1 == 1) { + fn_1_1BA78(0x1E005E, -1, -1); + } + else { + fn_1_1BA78(0x1A0009, -1, -1); + } + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_17B04; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if ((lbl_1_bss_45C->unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) { + HuAudFXPlay(3); + if (lbl_1_bss_5DC.unk_10 == 1) { + lbl_1_bss_5DC.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0 && lbl_1_bss_45C[var_r31].unk_08 != 1) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r27 == 0) { + fn_1_17170(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = 0; + var_r29++; + } + } + if ((var_r29 == 0) || ((arg1 == 2) && (var_r29 == 2))) { + fn_1_17170(0); + return 2; + } + if (arg1 == 2) { + lbl_1_bss_45C[1].unk_4C = 0; + } + return 1; +} + +void fn_1_12BEC(s32 arg0) +{ + fn_1_12910(arg0, 4); +} + +s32 fn_1_12C18(s32 arg0, s32 arg1) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + if (arg1 == 2) { + fn_1_168F0(0, 2); + } + else { + fn_1_168F0(0, 1); + } + } + fn_1_1B834(); + while (TRUE) { + fn_1_1B7D0(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + else { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_45C[var_r31].unk_0C = var_r27; + fn_1_18610(&lbl_1_bss_45C[var_r31]); + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_18DCC; + break; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if (((HuPadBtnDown[lbl_1_bss_45C->unk_58] & 0x200) != 0) && (lbl_1_bss_45C[var_r30].unk_08 == 0) && (lbl_1_bss_5DC.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_45C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } + lbl_1_bss_45C[var_r30].unk_04 = NULL; + fn_1_1BA78(0x1A0022, -1, 1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330093); + var_r29 = fn_1_19A98(&lbl_1_bss_45C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_45C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_45C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_45C[var_r30].unk_08 = 0; + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == arg1) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_18610(&lbl_1_bss_45C[var_r30]); + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_0C; + lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 != 4) { + if (var_r29 == 0) { + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + } + break; + } + } + var_r24 = -1; + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r29 != 0) { + fn_1_17170(0); + } + return var_r29; +} + +void fn_1_13130(s32 arg0) +{ + fn_1_12C18(arg0, 4); +} + +void fn_1_1315C(void) +{ + fn_1_12910(0, 1); +} + +s32 fn_1_13184(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = -1; + fn_1_151C8(); + fn_1_1B834(); + fn_1_1BA78(0x1A0005, -1, -1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330091); + lbl_1_bss_5DC.unk_04 = (MpexDllUnkFunc2)fn_1_15D48; + + while (TRUE) { + fn_1_1B7D0(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r26 != var_r30) { + var_r26 = var_r30; + fn_1_1BA78(var_r30 + 0x330093, -1, 1); + } + if (lbl_1_bss_5DC.unk_28 != 0) { + continue; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + fn_1_15774(); + lbl_1_bss_5DC.unk_04 = NULL; + fn_1_1C120(); + if (var_r28 == 1) { + var_r29 = 0; + var_r27 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r29++; + } + } + if (var_r29 >= 2) { + var_r29 = 2; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r27 < var_r29) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_45C[var_r31].unk_50 = 0; + lbl_1_bss_45C[var_r31].unk_4C = 0; + var_r27++; + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + lbl_1_bss_45C[var_r31].unk_4C = 1; + } + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + lbl_1_bss_45C[var_r31].unk_4C = 1; + } + } + } + fn_1_1B9F4(); + fn_1_154A4(); + return var_r28; +} + +void fn_1_133F8(s32 arg0) +{ + fn_1_12910(arg0, 2); +} + +void fn_1_13424(s32 arg0) +{ + fn_1_12C18(arg0, 2); +} + +void fn_1_13450(void) +{ + fn_1_126EC(0); +} + +s32 fn_1_13474(s32 arg0) +{ + s32 spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + spC[1] = 0; + spC[0] = 0; + var_r30 = 4; + var_r28 = 4; + if (var_r28 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_17374(); + if (arg0 == 0) { + fn_1_16D3C(3); + } + fn_1_1B834(); + fn_1_1B7D0(1); + fn_1_1BA78(0x1A0009, -1, -1); + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_17B04; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if ((lbl_1_bss_45C->unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + if (lbl_1_bss_5DC.unk_10 == 1) { + lbl_1_bss_5DC.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0 && lbl_1_bss_45C[var_r31].unk_08 != 1) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r27 == 0) { + fn_1_17170(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = 1; + var_r29++; + } + } + if ((var_r29 == 0) || ((var_r28 == 2) && (var_r29 == 2))) { + fn_1_17170(3); + return 2; + } + if (var_r28 == 2) { + lbl_1_bss_45C[1].unk_4C = 0; + } + return 1; +} + +s32 fn_1_13730(s32 arg0) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r28 = 4; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + fn_1_168F0(3, 3); + } + fn_1_1B834(); + while (TRUE) { + fn_1_1B7D0(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + else { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_45C[var_r31].unk_0C = var_r27; + fn_1_18610(&lbl_1_bss_45C[var_r31]); + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_18DCC; + break; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if (((HuPadBtnDown[lbl_1_bss_45C->unk_58] & PAD_BUTTON_B) != 0) && (lbl_1_bss_45C[var_r30].unk_08 == 0) && (lbl_1_bss_5DC.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_45C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + lbl_1_bss_45C[var_r31].unk_5C = 1; + } + } + lbl_1_bss_45C[var_r30].unk_04 = NULL; + fn_1_1BA78(0x1A0022, -1, 1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330093); + var_r29 = fn_1_19A98(&lbl_1_bss_45C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_45C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_45C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_45C[var_r30].unk_08 = 0; + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == var_r28) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_18610(&lbl_1_bss_45C[var_r30]); + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_0C; + lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 != 4) { + if (var_r29 == 0) { + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + } + break; + } + var_r24 = -1; + } + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r29 != 0) { + fn_1_17170(3); + } + return var_r29; +} + +void fn_1_13C30(s32 arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayer[var_r31].team = GWPlayerCfg[var_r31].group = lbl_1_bss_45C[var_r31].unk_4C; + GWPlayer[var_r31].com = GWPlayerCfg[var_r31].iscom = lbl_1_bss_45C[var_r31].unk_50; + GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff = lbl_1_bss_45C[var_r31].unk_54; + if (lbl_1_bss_444 != 0) { + if (lbl_1_bss_45C[var_r31].unk_5C <= 5) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_45C[var_r31].unk_5C <= 0xB) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C - 3; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = fn_1_1B4AC(lbl_1_bss_45C[var_r31].unk_5C - 4); + } + } + else if (arg0 == 1) { + if (var_r31 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = lbl_1_bss_45C[var_r31 - 1].unk_5C + 1; + if (lbl_1_bss_45C[var_r31].unk_5C >= 8) { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C; + } + GWPlayer[var_r31].port = GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_45C[var_r31].unk_58; + } + OSReport("\n\n#################### SET PLAYERDATA ####################\n"); + OSReport("ID) GRP:COM:DIF:CHR:PAD\n"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + OSReport("%2d) %3d:%3d:%3d:%3d:%3d\n", var_r31, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom, GWPlayerCfg[var_r31].diff, + GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx); + } + OSReport("########################################################\n"); +} + +s32 fn_1_140B0(s32 arg0, s32 arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + + var_r30 = 0; + var_r27 = 0; + var_r26 = 0; + var_r29 = arg0; + if (arg0 == 3) { + lbl_1_bss_444 = 1; + } + else { + lbl_1_bss_444 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_4C = 0; + lbl_1_bss_45C[var_r31].unk_50 = 0; + lbl_1_bss_45C[var_r31].unk_54 = 0; + if (lbl_1_bss_444 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = var_r31 + 1; + } + else { + lbl_1_bss_45C[var_r31].unk_5C = var_r31; + } + lbl_1_bss_45C[var_r31].unk_58 = var_r31; + } + if (arg1 == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_4C = GWPlayerCfg[var_r31].group; + lbl_1_bss_45C[var_r31].unk_50 = GWPlayerCfg[var_r31].iscom; + lbl_1_bss_45C[var_r31].unk_54 = GWPlayerCfg[var_r31].diff; + lbl_1_bss_45C[var_r31].unk_5C = GWPlayerCfg[var_r31].character; + lbl_1_bss_45C[var_r31].unk_58 = GWPlayerCfg[var_r31].pad_idx; + lbl_1_bss_45C[var_r31].unk_08 = lbl_1_bss_45C[var_r31].unk_0C = lbl_1_bss_45C[var_r31].unk_10 = lbl_1_bss_45C[var_r31].unk_14 = 0; + lbl_1_bss_45C[var_r31].unk_28 = lbl_1_bss_45C[var_r31].unk_2C = lbl_1_bss_45C[var_r31].unk_30 = lbl_1_bss_45C[var_r31].unk_34 = 0; + + switch (arg0) { + case 0: + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_08 = 1; + } + else { + var_r27 = 1; + } + break; + case 2: + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + break; + case 3: + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + if (lbl_1_bss_45C[var_r31].unk_5C <= 3) { + lbl_1_bss_45C[var_r31].unk_5C += 1; + } + else if (lbl_1_bss_45C[var_r31].unk_5C <= 7) { + lbl_1_bss_45C[var_r31].unk_5C += 3; + } + else { + lbl_1_bss_45C[var_r31].unk_5C = fn_1_1B42C(lbl_1_bss_45C[var_r31].unk_5C) + 4; + } + break; + } + } + switch (arg0) { + case 0: + if (var_r27 == 1) { + var_r29 = 0x66; + var_r30 = 1; + } + else { + var_r29 = 0x65; + var_r30 = 0; + } + break; + case 1: + var_r29 = 0xC8; + break; + case 2: + if ((var_r27 == 1) && (var_r26 == 1)) { + var_r29 = 0x12E; + var_r30 = 1; + } + else { + var_r29 = 0x12D; + var_r30 = 0; + } + break; + case 3: + if (var_r27 == 1) { + var_r29 = 0x192; + var_r30 = 1; + } + else { + var_r29 = 0x191; + var_r30 = 0; + } + break; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if (var_r28 == 0x3E7) { + break; + } + switch (var_r29) { + case 0x0: + var_r29 = 0x64; + break; + case 0x1: + var_r29 = 0xC8; + break; + case 0x2: + var_r29 = 0x12C; + break; + case 0x3: + var_r29 = 0x190; + break; + case 0x64: + var_r28 = fn_1_126EC(var_r30); + if (var_r28 != 0) { + var_r29 = 0x65; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x65: + var_r23 = fn_1_12910(var_r30, 4); + var_r28 = var_r23; + if (var_r28 == 1) { + var_r29 = 0x66; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x64; + var_r30 = 1; + } + break; + case 0x66: + var_r22 = fn_1_12C18(var_r30, 4); + var_r28 = var_r22; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x65; + var_r30 = 1; + } + break; + case 0xC8: + var_r21 = fn_1_12910(0, 1); + var_r28 = var_r21; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12C: + var_r28 = fn_1_13184(); + if (var_r28 != 0) { + var_r29 = 0x12D; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12D: + var_r20 = fn_1_12910(var_r30, 2); + var_r28 = var_r20; + if (var_r28 == 1) { + var_r29 = 0x12E; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12C; + var_r30 = 1; + } + break; + case 0x12E: + var_r19 = fn_1_12C18(var_r30, 2); + var_r28 = var_r19; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12D; + var_r30 = 1; + } + break; + case 0x190: + var_r18 = fn_1_126EC(0); + var_r28 = var_r18; + if (var_r28 != 0) { + var_r29 = 0x191; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x191: + var_r28 = fn_1_13474(var_r30); + if (var_r28 == 1) { + var_r29 = 0x192; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x190; + var_r30 = 1; + } + break; + case 0x192: + var_r28 = fn_1_13730(var_r30); + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x191; + var_r30 = 1; + } + break; + case 0x384: + fn_1_13C30(arg0); + var_r24 = 1; + var_r28 = 0x3E7; + break; + case 0x385: + var_r24 = 0; + var_r28 = 0x3E7; + break; + } + } + return var_r24; +} + +void fn_1_148BC(s32 arg0) +{ + fn_1_1AF78(arg0); +} + +void fn_1_148E4(s32 arg0) +{ + fn_1_1B0DC(arg0); +} + +s32 lbl_1_data_5C4[4][2] = { { -0x69, 0 }, { -0x23, 0 }, { 0x23, 0 }, { 0x69, 0 } }; +s32 lbl_1_data_5E4[8][2] = { + { -0x7B, -0x34 }, + { -0x29, -0x34 }, + { 0x29, -0x34 }, + { 0x7B, -0x34 }, + { -0x7B, 0x34 }, + { -0x29, 0x34 }, + { 0x29, 0x34 }, + { 0x7B, 0x34 }, +}; +s32 lbl_1_data_624[0xE][2] = { + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_694[0x12][2] = { + { 0, 0 }, + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { 0, 0 }, + { 0, 0 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { 0, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_724[4][2] = { { -0x45, -8 }, { -0x17, -8 }, { 0x17, -8 }, { 0x45, -8 } }; +s32 lbl_1_data_744[2] = { 0x00, 0xFFFFFFF8 }; +s32 lbl_1_data_74C[2][2] = { { -0x17, -8 }, { 0x17, -8 } }; +s32 lbl_1_data_75C[4][2] = { { -0x59, -8 }, { -0x2B, -8 }, { 0x2B, -8 }, { 0x59, -8 } }; +s32 lbl_1_data_77C = -1; +s32 lbl_1_data_780[2] = {-1, 0}; + +void fn_1_1490C(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r30 = HuSprGrpCreate(0xB); + *lbl_1_bss_63C = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(0x640046), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(0x640047); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 1, var_r29); + HuSprBankSet(var_r30, var_r31 + 1, var_r31); + } + var_r28 = HuSprAnimReadFile(0x640048); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x76C, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 3, var_r29); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + fn_1_14B28(); + fn_1_14E54(); +} + +void fn_1_14B28(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } +} + +void fn_1_14CBC(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4 + 1][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } +} + +void fn_1_14E54(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r30, 1.0f, 1.0f); +} + +void fn_1_14EF0(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = *lbl_1_bss_63C; + var_r29 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_1B7D0(0xA); +} + +void fn_1_151C8(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = *lbl_1_bss_63C; + var_r29 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4 + 1][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_1B7D0(0xA); +} + +void fn_1_154A4(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28 = *lbl_1_bss_63C; + + fn_1_1B7D0(0xA); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, -390.0f); + var_r29 = *lbl_1_bss_63C; + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + HuSprAttrSet(var_r29, var_r30, 4); + } + HuSprGrpPosSet(var_r29, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r29, 1.0f, 1.0f); +} + +void fn_1_15684(s32 arg0) +{ + s32 var_r31; + + var_r31 = *lbl_1_bss_63C; + HuSprAttrReset(var_r31, 1, 4); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 1, -155.0f, 0.0f); + HuSprPosSet(var_r31, 2, 155.0f, 0.0f); + if (arg0 == 2) { + HuSprPosSet(var_r31, 1, -80.0f, 0.0f); + HuSprPosSet(var_r31, 2, 80.0f, 0.0f); + } +} + +void fn_1_15774(void) +{ + s32 var_r31; + + var_r31 = *lbl_1_bss_63C; + HuSprAttrSet(var_r31, 1, 4); + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_157C4(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_63C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_5DC.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_63C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + if (*HuPadStkX >= 5) { + var_r29++; + var_r26 = 1; + } + else if (*HuPadStkX <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_63C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_5DC.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_1B64C(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_1B64C(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_1B64C(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (155.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-155.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 1)) { + lbl_1_bss_45C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 0)) { + lbl_1_bss_45C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_1B7D0(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_45C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_45C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_5DC.unk_28 = 0; +} + +void fn_1_15D48(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_63C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_5DC.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 2; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 > 2) { + var_r28 = 2; + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_63C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + HuSprPosSet(var_r25, 1, -80.0f, 0.0f); + HuSprPosSet(var_r25, 2, 80.0f, 0.0f); + if (*HuPadStkX >= 5) { + var_r29++; + var_r26 = 1; + } + else if (*HuPadStkX <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_63C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_5DC.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_1B64C(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_1B64C(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_1B64C(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (77.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-77.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 1)) { + lbl_1_bss_45C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 0)) { + lbl_1_bss_45C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_1B7D0(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_45C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_45C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_5DC.unk_28 = 0; +} + +void fn_1_16320(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x36); + lbl_1_bss_63C[1] = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(0x64004A), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + HuSprPosSet(var_r29, 0, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(0x64005A); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x64004C), 0x76C, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 2, var_r30); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x64005B), 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1E, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x640060), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x22, var_r30); + } + var_r28 = HuSprAnimReadFile(0x64005F); + var_r27 = HuSprAnimReadFile(0x640064); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x26, var_r30); + var_r30 = HuSprCreate(var_r27, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2A, var_r30); + } + var_r28 = HuSprAnimReadFile(0x640065); + var_r27 = HuSprAnimReadFile(0x640066); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2E, var_r30); + var_r30 = HuSprCreate(var_r27, 0x320, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x32, var_r30); + } + fn_1_16600(0); + fn_1_16874(0); +} + +void fn_1_16600(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_624[var_r31][0], lbl_1_data_624[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} + +void fn_1_16874(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} + +void fn_1_168F0(s32 arg0, s32 arg1) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_63C[1]; + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_624[var_r31][0], lbl_1_data_624[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + if (arg1 == 1) { + fn_1_1C174(); + } + if (arg1 == 2) { + fn_1_1C478(); + } + if (arg1 == 3) { + fn_1_1C77C(); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_16D3C(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_63C[1]; + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_624[var_r31][0], lbl_1_data_624[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_17170(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r29, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r29, 288.0f, 169.0f + var_f31); + } + } + HuSprGrpPosSet(var_r29, 288.0f, -331.0f); + var_r28 = lbl_1_bss_63C[1]; + for (var_r30 = 0; var_r30 < 0x36; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 288.0f, -331.0f); +} + +void fn_1_17374(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 0x1E, 0); + HuSprBankSet(var_r30, var_r31 + 0x22, 0); + HuSprBankSet(var_r30, var_r31 + 0x26, 0); + HuSprBankSet(var_r30, var_r31 + 0x2A, 0); + HuSprBankSet(var_r30, var_r31 + 0x2E, 0); + HuSprBankSet(var_r30, var_r31 + 0x32, 0); + } + if (lbl_1_bss_444 != 0) { + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_1B7D0(1); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_bss_444 != 0) { + var_f31 = fn_1_1B64C(lbl_1_data_694[lbl_1_bss_45C[var_r29].unk_5C][0], lbl_1_data_694[var_r29 + 1][0], var_r31, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_694[lbl_1_bss_45C[var_r29].unk_5C][1], lbl_1_data_694[1][1], var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B64C(lbl_1_data_5E4[lbl_1_bss_45C[var_r29].unk_5C % 4][0], lbl_1_data_5E4[var_r29][0], var_r31, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_5E4[(lbl_1_bss_45C[var_r29].unk_5C / 4) * 4][1], lbl_1_data_5E4[0][1], var_r31, 10.0f); + } + HuSprPosSet(var_r30, var_r29 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r30, var_r29 + 0x22, var_f31, var_f30); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r30, var_r31 + 0x1E, lbl_1_data_694[var_r31 + 1][0], lbl_1_data_694[var_r31 + 1][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, lbl_1_data_694[var_r31 + 1][0], lbl_1_data_694[var_r31 + 1][1]); + lbl_1_bss_45C[var_r31].unk_5C = var_r31 + 1; + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_08 = 0; + } + else { + HuSprPosSet(var_r30, var_r31 + 0x1E, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_5C = var_r31; + lbl_1_bss_45C[var_r31].unk_08 = 0; + } + } +} + +void fn_1_17B04(omObjData *arg0, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r24 = lbl_1_bss_63C[1]; + var_r27 = 0; + var_r26 = 0; + HuSprAttrReset(var_r24, arg1->unk_48 + 0x1E, 4); + HuSprAttrReset(var_r24, arg1->unk_48 + 0x22, 4); + if (lbl_1_bss_444 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + if (lbl_1_bss_444 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + fn_1_1CABC(var_r21); + HuSprBankSet(var_r24, var_r21 + 2, 1); + } + else { + fn_1_1CABC(arg1->unk_5C); + HuSprBankSet(var_r24, arg1->unk_5C + 2, 1); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 1); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 1); + } + else if (lbl_1_bss_444 != 0) { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if (HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_B) { + arg1->unk_08 = 0; + lbl_1_bss_5DC.unk_10 = 1; + HuAudFXPlay(3); + if (lbl_1_bss_444 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r24, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r24, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 0); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 0); + } + if (lbl_1_bss_444 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + if (lbl_1_bss_444 != 0) { + while (TRUE) { + var_r25 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_45C[var_r28].unk_5C)) + || (var_r25 == 0) || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + if (var_r28 == 4) { + break; + } + } + } + else { + do { + var_r25 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_45C[var_r28].unk_5C)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 3) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 1) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_444 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + HuAudFXPlay(0); + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r25; + if (lbl_1_bss_444 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(lbl_1_data_694[var_r19][0], lbl_1_data_694[var_r25][0], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_694[var_r19][1], lbl_1_data_694[var_r25][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + return; + } + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(*lbl_1_data_5E4[var_r23], *lbl_1_data_5E4[var_r30], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_5E4[var_r22 * 4][1], lbl_1_data_5E4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + } + } +} + +void fn_1_18610(MpexDllUnkStruct4 *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_63C[1]; + do { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != arg0->unk_48) && (lbl_1_bss_45C[var_r29].unk_08 == 1) && (arg0->unk_5C == lbl_1_bss_45C[var_r29].unk_5C)) { + arg0->unk_5C += 1; + break; + } + } + } while (var_r29 != 4); + arg0->unk_54 = 0; + if (lbl_1_bss_444 != 0) { + var_r28 = 0; + if (arg0->unk_5C <= 5) { + var_r28 = arg0->unk_5C - 1; + } + else if (arg0->unk_5C <= 0xB) { + var_r28 = arg0->unk_5C - 3; + } + else { + var_r28 = arg0->unk_5C - 4; + } + HuSprBankSet(var_r30, var_r28 + 2, 0); + } + else { + HuSprBankSet(var_r30, arg0->unk_5C + 2, 0); + } + HuSprBankSet(var_r30, arg0->unk_48 + 0x26, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2A, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2E, arg0->unk_54); + HuSprBankSet(var_r30, arg0->unk_48 + 0x32, arg0->unk_54); + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + arg0->unk_10 = 0; + HuSprAttrReset(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrReset(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_18D30(struct MpexDllUnkStruct4 *arg0) +{ + s32 var_r30; + + var_r30 = lbl_1_bss_63C[1]; + HuSprAttrSet(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_18DCC(omObjData *arg0, MpexDllUnkStruct4 *arg1) +{ + s32 sp8; + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r27 = lbl_1_bss_63C[1]; + var_r26 = 0; + var_r25 = 0; + sp8 = arg1->unk_54; + lbl_1_bss_5DC.unk_30 = 0; + if (lbl_1_bss_444 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[lbl_1_bss_45C->unk_58] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 1); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 1); + if (lbl_1_bss_444 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r21 + 2, 1); + fn_1_1CABC(var_r21); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 1); + fn_1_1CABC(arg1->unk_5C); + } + arg1->unk_54 = 0; + HuSprBankSet(var_r27, arg1->unk_48 + 0x2E, arg1->unk_54); + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_694[arg1->unk_5C][0], lbl_1_data_694[arg1->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_5E4[arg1->unk_5C % 4][0], lbl_1_data_5E4[(arg1->unk_5C / 4) * 4][1] + 0x23); + } + HuSprAttrReset(var_r27, arg1->unk_48 + 0x2E, 4); + } + else if (lbl_1_bss_444 != 0) { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[0] <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (HuPadStkY[0] >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[0] <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (HuPadStkY[0] >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if (HuPadBtnDown[lbl_1_bss_45C->unk_58] & PAD_BUTTON_B) { + arg1->unk_08 = arg1->unk_10 = 0; + if (lbl_1_bss_444 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 0); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 0); + HuSprAttrSet(var_r27, arg1->unk_48 + 0x2E, 4); + HuAudFXPlay(3); + } + if (lbl_1_bss_444 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + if (lbl_1_bss_444 != 0) { + while (TRUE) { + fn_1_1B7D0(1); + var_r24 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_45C[var_r28].unk_5C)) + || (var_r24 == 0) || (var_r24 == 5) || (var_r24 == 6) || (var_r24 == 0xB)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 5) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 2) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 5) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 2) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + if (var_r28 == 4) { + break; + } + } + } + else { + do { + var_r24 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_45C[var_r28].unk_5C)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 3) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 1) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 3) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 1) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_444 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r24; + HuAudFXPlay(0); + if (lbl_1_bss_444 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(lbl_1_data_694[var_r19][0], lbl_1_data_694[var_r24][0], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_694[var_r19][1], lbl_1_data_694[var_r24][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + else { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(lbl_1_data_5E4[var_r23][0], lbl_1_data_5E4[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_5E4[var_r22 * 4][1], lbl_1_data_5E4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + } + } + lbl_1_bss_5DC.unk_30 = 0; +} + +s32 fn_1_19A98(MpexDllUnkStruct4 *arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r28 = 0; + var_r29 = lbl_1_bss_63C[1]; + while (TRUE) { + fn_1_1B7D0(1); + var_r28 = 0; + var_r26 = arg0->unk_54; + if (HuPadStkX[lbl_1_bss_45C->unk_58] < 5) { + if ((HuPadBtn[lbl_1_bss_45C->unk_58] & PAD_BUTTON_RIGHT) == 0) { + // TODO remove gotos + goto block_2; + } + } + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 3) { + arg0->unk_54 = 0; + } + } + else { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 2) { + arg0->unk_54 = 0; + } + goto block_1; + block_2: + if (HuPadStkX[lbl_1_bss_45C->unk_58] <= -5 || HuPadBtn[lbl_1_bss_45C->unk_58] & PAD_BUTTON_LEFT) { + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 3; + } + } + else { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 2; + } + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_A) { + var_r27 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + var_r27 = 0; + HuAudFXPlay(3); + break; + } + } + block_1: + if (arg0->unk_54 != var_r26) { + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + if (lbl_1_bss_444 != 0) { + var_f31 = fn_1_1B64C(lbl_1_data_694[arg0->unk_5C][0], lbl_1_data_694[arg0->unk_5C][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_1B64C(lbl_1_data_5E4[arg0->unk_5C % 4][0], lbl_1_data_5E4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x2E, arg0->unk_54); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + if (lbl_1_bss_444 != 0) { + var_f31 = fn_1_1B64C(lbl_1_data_694[arg0->unk_5C][0] + (var_r28 * 0xA), lbl_1_data_694[arg0->unk_5C][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_1B64C(lbl_1_data_5E4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), lbl_1_data_5E4[arg0->unk_5C % 4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + } + } + if (var_r27 == 1) { + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_694[arg0->unk_5C][0], lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_5E4[arg0->unk_5C % 4][0], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x32, arg0->unk_54); + HuSprAttrReset(var_r29, arg0->unk_48 + 0x32, 4); + HuSprAttrSet(var_r29, arg0->unk_48 + 0x2E, 4); + } + return var_r27; +} + +void fn_1_1A3BC(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x1B); + lbl_1_bss_63C[2] = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(0x640067), 0x64, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(0x640069), 0x64, 0); + HuSprGrpMemberSet(var_r29, 2, var_r30); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x64006B), 0x5A, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 4, var_r30); + } + var_r28 = HuSprAnimReadFile(0x640079); + var_r27 = HuSprAnimReadFile(0x64007A); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x12, var_r30); + var_r30 = HuSprCreate(var_r27, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x16, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(0x64007B), 0x46, 0); + HuSprGrpMemberSet(var_r29, 0x1A, var_r30); + fn_1_1A5A4(0); + fn_1_1AEFC(0); +} + +void fn_1_1A5A4(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + + var_r30 = lbl_1_bss_63C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + switch (arg0) { + case 0: + HuSprAttrReset(var_r30, 2, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = GWPlayerCfg[var_r31].character; + var_r25 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r28 + 4, 4); + HuSprPosSet(var_r30, var_r28 + 4, lbl_1_data_724[var_r31][0], lbl_1_data_724[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r25); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_724[var_r31][0], lbl_1_data_724[var_r31][1] + 0x14); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_724[var_r31][0], lbl_1_data_724[var_r31][1] + 0x14); + } + } + break; + case 1: + HuSprAttrReset(var_r30, 0, 4); + var_r27 = GWPlayerCfg->character; + var_r24 = GWPlayerCfg->diff; + HuSprAttrReset(var_r30, var_r27 + 4, 4); + HuSprPosSet(var_r30, var_r27 + 4, 0.0f, lbl_1_data_744[1]); + if (GWPlayerCfg->iscom != 0) { + HuSprAttrReset(var_r30, 0x16, 4); + HuSprBankSet(var_r30, 0x16, var_r24); + HuSprPosSet(var_r30, var_r31 + 0x16, 0.0f, lbl_1_data_744[1] + 0x14); + } + else { + HuSprAttrReset(var_r30, 0x12, 4); + HuSprBankSet(var_r30, 0x12, 0); + HuSprPosSet(var_r30, 0x12, 0.0f, lbl_1_data_744[1] + 0x14); + } + break; + case 2: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r26 = GWPlayerCfg[var_r31].character; + var_r23 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r26 + 4, 4); + HuSprPosSet(var_r30, var_r26 + 4, lbl_1_data_74C[var_r31][0], lbl_1_data_74C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r23); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_74C[var_r31][0], lbl_1_data_74C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_74C[var_r31][0], lbl_1_data_74C[var_r31][1] + 0x19); + } + } + break; + case 3: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = GWPlayerCfg[var_r31].character; + var_r22 = GWPlayerCfg[var_r31].diff; + var_r29 = fn_1_1B42C(var_r29); + HuSprAttrReset(var_r30, var_r29 + 4, 4); + HuSprPosSet(var_r30, var_r29 + 4, lbl_1_data_75C[var_r31][0], lbl_1_data_75C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r22); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_75C[var_r31][0], lbl_1_data_75C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_75C[var_r31][0], lbl_1_data_75C[var_r31][1] + 0x19); + } + } + HuSprAttrReset(var_r30, 0x1A, 4); + break; + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_1AEFC(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_1AF78(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[2]; + fn_1_1A5A4(arg0); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f); +} + +void fn_1_1B0DC(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_63C[2]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r29, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r29, 112.0f, -428.0f); + var_r28 = lbl_1_bss_63C[2]; + for (var_r30 = 0; var_r30 < 0x1B; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 112.0f, -428.0f); +} + +void fn_1_1B294(void) +{ + omObjData *var_r31; + + var_r31 = NULL; + var_r31 = omAddObjEx(lbl_1_bss_440, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_5DC.unk_00 = var_r31; + lbl_1_bss_5DC.unk_04 = NULL; + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_5DC.unk_04 == NULL) { + continue; + } + lbl_1_bss_5DC.unk_04(lbl_1_bss_5DC.unk_00, &lbl_1_bss_5DC); + } +} + +void fn_1_1B338(void) +{ + s32 var_r31; + omObjData *var_r30; + + var_r31 = lbl_1_bss_448[0]; + lbl_1_bss_448[0] = var_r31 + 1; + var_r30 = NULL; + var_r30 = omAddObjEx(lbl_1_bss_440, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_45C[var_r31].unk_00 = var_r30; + lbl_1_bss_45C[var_r31].unk_04 = NULL; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_45C[var_r31].unk_04 == NULL) { + continue; + } + lbl_1_bss_45C[var_r31].unk_04(lbl_1_bss_45C[var_r31].unk_00, &lbl_1_bss_45C[var_r31]); + } +} + +s32 fn_1_1B42C(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 9: + var_r31 = 8; + break; + case 10: + var_r31 = 9; + break; + case 11: + var_r31 = 0xA; + break; + case 12: + var_r31 = 0xB; + break; + case 13: + var_r31 = 0xC; + break; + case 8: + var_r31 = 0xD; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +s32 fn_1_1B4AC(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 8: + var_r31 = 9; + break; + case 9: + var_r31 = 0xA; + break; + case 10: + var_r31 = 0xB; + break; + case 11: + var_r31 = 0xC; + break; + case 12: + var_r31 = 0xD; + break; + case 13: + var_r31 = 8; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +float fn_1_1B52C(float arg8, float arg9, float argA, float argB) +{ + if (argB <= argA) { + return arg9; + } + return arg8 + ((argA / argB) * (arg9 - arg8)); +} + +float fn_1_1B554(float arg0, float arg1, float arg2) +{ + return (arg1 + (arg0 * (arg2 - 1.0f))) / arg2; +} + +float fn_1_1B574(float arg0, float arg1, float arg2, float arg3) +{ + if (arg2 >= arg3) { + return arg1; + } + return arg0 + ((arg1 - arg0) * (1.0 - cosd(((90.0f / arg3) * arg2)))); +} + +float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3) +{ + if (arg2 >= arg3) { + return arg1; + } + return arg0 + ((arg1 - arg0) * sind(((90.0f / arg3) * arg2))); +} + +float fn_1_1B714(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg8; + } + return arg8 + ((arg9 - arg8) * sind(((360.0f / argB) * argA))); +} + +void fn_1_1B7D0(s32 arg0) +{ + if (arg0 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg0); +} + +void fn_1_1B810(void) +{ + HuWinInit(1); +} + +void fn_1_1B834(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_data_77C == -1) { + var_r31 = 0x1C9; + var_r30 = 0x44; + var_r29 = 1.0f + ((576.0f - var_r31) / 2); + var_r28 = 445.0f - var_r30; + lbl_1_data_77C = HuWinExCreateStyled(var_r29, var_r28, var_r31, var_r30, -1, 1); + winData[lbl_1_data_77C].active_pad = 1; + HuWinMesPalSet(lbl_1_data_77C, 7, 0, 0, 0); + HuWinExAnimIn(lbl_1_data_77C); + } +} + +void fn_1_1B9F4(void) +{ + if (lbl_1_data_77C != -1) { + HuWinMesSet(lbl_1_data_77C, 0x250004); + HuWinExAnimOut(lbl_1_data_77C); + HuWinExCleanup(lbl_1_data_77C); + lbl_1_data_77C = -1; + } +} + +void fn_1_1BA78(u32 arg0, s32 arg1, s32 arg2) +{ + if (lbl_1_data_77C != -1) { + if (arg2 == 1) { + HuWinMesSpeedSet(lbl_1_data_77C, 0); + } + else { + HuWinMesSpeedSet(lbl_1_data_77C, 1); + } + HuWinMesSet(lbl_1_data_77C, arg0); + if (arg1 <= 0) { + HuWinMesWait(lbl_1_data_77C); + return; + } + if (arg1 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg1); + } +} + +void fn_1_1BB4C(u32 arg0, s32 arg1) +{ + if (lbl_1_data_77C != -1) { + HuWinInsertMesSet(lbl_1_data_77C, arg0, arg1); + } +} + +s32 fn_1_1BBA4(s32 arg0) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + HuWinMesMaxSizeGet(1, spC, 0x1E0035); + var_r30 = spC[0]; + var_r29 = spC[1]; + var_r27 = 0x22C - var_r30; + var_r26 = 0x1BD - var_r29; + var_r31 = HuWinExCreateStyled(var_r27, var_r26, var_r30, var_r29, -1, 1); + winData[var_r31].active_pad = 1; + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + HuWinExAnimIn(var_r31); + HuWinMesSpeedSet(var_r31, 0); + HuWinMesSet(var_r31, 0x1E0035); + var_r28 = HuWinChoiceGet(var_r31, arg0); + HuWinMesSet(var_r31, 0x250004); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + return var_r28; +} + +void fn_1_1BD00(u32 arg0, s32 arg1) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_r29 = spC[0]; + var_r31 = spC[1]; + var_r28 = (0x240 - var_r29) / 2.0f; + if (arg1 == 1) { + var_r30 = 0x1BD - var_r31; + } + else { + var_r30 = 0x181 - var_r31; + } + if (lbl_1_data_780[0] != -1) { + fn_1_1C120(); + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + else { + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_780[0], 0.0f); + HuWinDispOn(lbl_1_data_780[0]); + HuWinMesSet(lbl_1_data_780[0], arg0); + HuWinMesSpeedSet(lbl_1_data_780[0], 0); +} + +void fn_1_1BF1C(u32 arg0) +{ + float sp8[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, sp8, arg0); + var_r30 = sp8[0]; + var_r31 = sp8[1]; + var_r28 = (0x240 - var_r30) / 2.0f; + var_r29 = 0x181 - var_r31; + if (lbl_1_data_780[0] != -1) { + fn_1_1C120(); + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + else { + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_780[0], 0.0f); + HuWinDispOn(lbl_1_data_780[0]); + HuWinMesSet(lbl_1_data_780[0], arg0); + HuWinMesSpeedSet(lbl_1_data_780[0], 0); +} + +void fn_1_1C120(void) +{ + if (lbl_1_data_780[0] != -1) { + HuWinExCleanup(lbl_1_data_780[0]); + lbl_1_data_780[0] = -1; + } +} + +void fn_1_1C174(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_1C478(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_1C77C(void) +{ + s32 var_r29; + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 1) { + if (lbl_1_bss_45C[var_r31].unk_5C <= 5) { + var_r29 = lbl_1_bss_45C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_45C[var_r31].unk_5C <= 0xB) { + var_r29 = lbl_1_bss_45C[var_r31].unk_5C - 3; + } + else { + var_r29 = lbl_1_bss_45C[var_r31].unk_5C - 4; + } + HuSprBankSet(var_r30, var_r29 + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][0], + lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][1]); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][0], + lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][1]); + } + else { + lbl_1_bss_45C[var_r31].unk_5C = 1; + } + } +} + +void fn_1_1CABC(s32 arg0) +{ + s32 sp8[] = { 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x39, 0x40, 0x4B, 0x46, 0x3E, 0x3A }; + + if ((arg0 < 0) || (arg0 > 0xD)) { + return; + } + HuAudFXPlay(sp8[arg0]); +} diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c index 599a30ef..ed43b5c1 100644 --- a/src/REL/mpexDll/main.c +++ b/src/REL/mpexDll/main.c @@ -16,7 +16,7 @@ void fn_1_A70(MpexDllUnkStruct *arg0); MpexDllUnkStruct lbl_1_bss_64; s32 lbl_1_bss_4[0x18]; -Process *lbl_1_bss_0; // it's something bigger +Process *lbl_1_bss_0; void fn_1_A0(void) { diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c index 62e29ea7..91f3d5b9 100644 --- a/src/REL/mpexDll/mgname.c +++ b/src/REL/mpexDll/mgname.c @@ -326,7 +326,7 @@ s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2) return var_r20; } -s32 fn_1_1D02C(u32 arg0) +s32 fn_1_1D02C(s32 arg0) { SeqWork sp10; s16 spC[2];