diff --git a/config/GMPE01_00/rels/mentDll/symbols.txt b/config/GMPE01_00/rels/mentDll/symbols.txt index 1c9c6ddd..a567448f 100644 --- a/config/GMPE01_00/rels/mentDll/symbols.txt +++ b/config/GMPE01_00/rels/mentDll/symbols.txt @@ -244,7 +244,7 @@ lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:byte lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C data:4byte lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float @@ -254,32 +254,32 @@ lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:4byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:float lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 data:4byte lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:float lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:float lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 data:4byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:float lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C data:4byte lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 data:4byte lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:float lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:4byte -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:4byte -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:float lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float @@ -392,7 +392,7 @@ lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D data:string lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 data:string lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 data:string lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 data:string lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 data:string @@ -408,7 +408,7 @@ lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B data:string lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 data:string lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B data:string lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 data:string jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B data:string lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A data:string diff --git a/include/REL/mentDll.h b/include/REL/mentDll.h new file mode 100644 index 00000000..9167ed8e --- /dev/null +++ b/include/REL/mentDll.h @@ -0,0 +1,57 @@ +#ifndef MENTDLL_H +#define MENTDLL_H + +#include "game/object.h" + +typedef struct MentDllUnkBss64Struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ float unk_38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk_40; +} MentDllUnkBss64Struct; /* size = 0x44 */ + +float fn_1_20C(float arg8, float arg9, float argA, float argB); +float fn_1_234(float arg8, float arg9, float argA); +float fn_1_254(float arg8, float arg9, float argA, float argB); +float fn_1_32C(float arg8, float arg9, float argA, float argB); +float fn_1_3F4(float arg8, float arg9, float argA, float argB); +void fn_1_4B0(s32 arg0); +void fn_1_4D8(void); +void fn_1_50C(void); +void fn_1_5E8(s32 arg0); +void fn_1_6D0(void); +s32 fn_1_1434(s32 arg0, s32 arg1, s32 arg2); +void fn_1_16AC(s32 arg0); +void fn_1_1968(s32 arg0, u32 arg1, s32 arg2, s32 arg3); +s32 fn_1_1A5C(u32 arg0, s32 arg1, s32 arg2); +s32 fn_1_1DD8(u32 arg0, s32 arg1, s32 arg2); +s32 fn_1_2154(u32 arg0); +void fn_1_2318(s32 arg0); +void fn_1_2808(void *arg0); +void fn_1_2844(Process *arg0, void *arg1); +void fn_1_4138(MentDllUnkBss64Struct *arg0, float *arg1, float arg8, float arg9, float argA); +void fn_1_5150(void *arg0, void *arg1, float arg8, float arg9, float argA); +void fn_1_5818(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_59A0(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_5C08(omObjData *arg0); +void fn_1_5CDC(omObjData *arg0, s32 arg1, s32 arg2); +void fn_1_5D38(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); +void fn_1_6534(s32, s32, float, float); + +void fn_1_658C(Process *arg0); + +#endif diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c new file mode 100644 index 00000000..c97cd7b7 --- /dev/null +++ b/src/REL/mentDll/main.c @@ -0,0 +1,6575 @@ +#include "game/board/main.h" +#include "ext_math.h" +#include "game/armem.h" +#include "game/chrman.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/mentDll.h" + +typedef struct MentDllUnkBssE4Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; +} MentDllUnkBssE4Struct; /* size = 0x1C */ + +typedef struct MentDllUnkBss16C4Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; +} MentDllUnkBss16C4Struct; /* size = 0x30 */ + +typedef void (*MentDllUnkFunc)(omObjData *, ...); + +typedef struct MentDllUnkBss3114Struct { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MentDllUnkFunc unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ char pad_10[0x48]; /* maybe part of unk_0C[0x13]? */ + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; + /* 0x60 */ s32 unk_60; + /* 0x64 */ s32 unk_64; + /* 0x68 */ s32 unk_68; + /* 0x6C */ s32 unk_6C; + /* 0x70 */ s32 unk_70[4]; + /* 0x80 */ s32 unk_80[4]; +} MentDllUnkBss3114Struct; /* size = 0x90 */ + +typedef struct MentDllUnkBss33ACStruct { // maybe the same as the other one? + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MentDllUnkFunc unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ char pad_10[0x20]; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ char pad_38[0x20]; +} MentDllUnkBss33ACStruct; /* size = 0x58 */ + +typedef struct MentDllUnkBss35BCStruct { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MentDllUnkFunc unk_04; + /* 0x08 */ s32 unk_08[5]; + /* 0x1C */ s32 unk_1C[5]; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s32 unk_40; + /* 0x44 */ s32 unk_44[5]; +} MentDllUnkBss35BCStruct; /* size = 0x58 */ + +void fn_1_116F4(void); +void fn_1_1184C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_11908(omObjData *arg0, s32 arg1); +void fn_1_121D8(void); +void fn_1_127FC(omObjData *arg0, MentDllUnkBss33ACStruct *arg1); +void fn_1_12E40(void); +void fn_1_134A8(void); +void fn_1_13970(void); +void fn_1_13D60(void); +void fn_1_13DEC(void); +void fn_1_13EDC(void); +void fn_1_13F68(void); +void fn_1_14058(void); +void fn_1_14148(void); +void fn_1_14238(void); +void fn_1_14328(void); +void fn_1_14418(void); +void fn_1_146D0(void); +void fn_1_147C0(void); +void fn_1_148B0(void); +void fn_1_149A0(void); +void fn_1_14A2C(void); +void fn_1_14AB8(void); +void fn_1_14BA8(void); +void fn_1_14CE0(void); +void fn_1_15098(void); +void fn_1_151B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_15950(void); +void fn_1_15CB4(omObjData *arg0, MentDllUnkBss3114Struct *arg1); +s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0); +void fn_1_16B68(omObjData *arg0, MentDllUnkBss3114Struct *arg1); +void fn_1_173FC(MentDllUnkBss3114Struct *arg0); +void fn_1_17914(MentDllUnkBss3114Struct *arg0); +void fn_1_179DC(void); +void fn_1_17CC8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1811C(void); +void fn_1_1850C(void); +void fn_1_1872C(void); +void fn_1_18788(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_18A54(s32 arg0); +void fn_1_18DCC(void); +void fn_1_18F74(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_190E8(void); +void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_1BB2C(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1C554(void); +void fn_1_1C674(void); +void fn_1_1C754(void); +void fn_1_1C990(void); +void fn_1_1CF68(void); +void fn_1_1D4FC(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1DED8(void); +void fn_1_1DF48(void); +void fn_1_1DFB8(void); +void fn_1_1E1B4(void); +void fn_1_1E404(omObjData *arg0, MentDllUnkBss3114Struct *arg1); +void fn_1_1E8A4(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_1F6B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1F868(void); +void fn_1_1FA34(void); +void fn_1_1FC54(void); +void fn_1_1FF4C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_2055C(s32 arg0); +void fn_1_207BC(void); +void fn_1_208F4(void); +void fn_1_20A24(void); +void fn_1_20B54(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_21724(omObjData *object); +void fn_1_2342C(omObjData *object); +void fn_1_C174(s32 arg0); +void fn_1_E654(s32 arg0); +void fn_1_E71C(s32 arg0); + +s32 lbl_1_data_0[][4] = { + { 0x00000037, 0x00000038, 0x00000036, 0x00000039 }, + { 0x00000043, 0x00000045, 0x00000044, 0x00000043 }, + { 0x00000040, 0x00000042, 0x00000041, 0x00000040 }, + { 0x0000004B, 0x0000004D, 0x0000004C, 0x0000004B }, + { 0x00000046, 0x00000048, 0x00000047, 0x00000046 }, + { 0x0000003E, 0x0000003F, 0x0000003E, 0x0000003E }, + { 0x0000003A, 0x0000003B, 0x0000003C, 0xFFFFFFFF }, +}; + +s32 lbl_1_data_70 = -1; + +char lbl_1_data_74[] = ">>>>>>>>>> CAMERA DATA <<<<<<<<<<"; +char lbl_1_data_96[] = "CENTER : %.2f, %.2f, %.2f"; +char lbl_1_data_B0[] = "ROT : %.2f, %.2f, %.2f"; +char lbl_1_data_CA[] = "ZOOM : %.2f"; + +Vec lbl_1_data_D8[6] = { + { 0.0f, 0.0f, 460.0f }, + { -240.0f, 0.0f, 460.0f }, + { -120.0f, 0.0f, 460.0f }, + { 120.0f, 50.0f, 460.0f }, + { 240.0f, 0.0f, 460.0f }, + { 1200.0f, 0.0f, 460.0f }, +}; + +float lbl_1_data_120[6] = { 0.0f, 20.0f, 10.0f, -10.0f, -20.0f, 0.0f }; + +MentDllUnkBss35BCStruct lbl_1_bss_366C; +MentDllUnkBss35BCStruct lbl_1_bss_35BC[2]; +MentDllUnkBss33ACStruct lbl_1_bss_33AC[6]; +MentDllUnkBss33ACStruct lbl_1_bss_3354; +MentDllUnkBss3114Struct lbl_1_bss_3114[4]; +omObjData *lbl_1_bss_3108[3]; +omObjData *lbl_1_bss_3104; +MentDllUnkBss16C4Struct lbl_1_bss_16C4[0x8C]; +MentDllUnkBssE4Struct lbl_1_bss_E4[0xC8]; +s32 lbl_1_bss_E0; +s32 lbl_1_bss_DC; +s32 lbl_1_bss_D8; +s32 lbl_1_bss_D4; +s32 lbl_1_bss_D0; +s32 lbl_1_bss_CC; +Process *lbl_1_bss_C8; +s32 lbl_1_bss_A8[8]; +MentDllUnkBss64Struct lbl_1_bss_64; +s32 lbl_1_bss_24[16]; +s32 lbl_1_bss_14[4]; +s32 lbl_1_bss_0[5]; + +void fn_1_658C(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_C8 = arg0; + fn_1_6D0(); + fn_1_50C(); + fn_1_5E8(lbl_1_bss_A8[0]); + if (lbl_1_bss_A8[0] != 0xB) { + CharKill(-1); + } + lbl_1_bss_A8[4] = GWGameStat.open_w06; + lbl_1_bss_A8[5] = GWGameStat.field10E_bit4; + lbl_1_bss_A8[6] = GWGameStat.field10E_bit5; + switch (lbl_1_bss_A8[0]) { + case 0: + HuAudSndGrpSetSet(7); + if (lbl_1_bss_A8[1] == 0) { + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + } + else { + fn_1_2844(lbl_1_bss_C8, fn_1_13EDC); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + if (lbl_1_bss_A8[1] == 0) { + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + } + break; + case 1: + HuAudSndGrpSetSet(7); + if (lbl_1_bss_A8[1] == 0) { + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + } + else { + fn_1_2844(lbl_1_bss_C8, fn_1_13EDC); + } + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + if (lbl_1_bss_A8[1] == 0) { + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + } + lbl_1_bss_3104 = omAddObjEx(lbl_1_bss_C8, 0x1000, 0xC9, 0x10, -1, fn_1_2342C); + break; + case 3: + HuAudSndCommonGrpSet(0x56, 1); + HuAudSndCommonGrpSet(0x6B, 0); + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_D0 = 4; + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + break; + case 4: + HuAudSndGrpSetSet(3); + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_D0 = 2; + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + break; + case 5: + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_D0 = 3; + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + break; + case 10: + HuAudSndGrpSetSet(7); + fn_1_2844(lbl_1_bss_C8, fn_1_149A0); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + break; + case 11: + lbl_1_bss_CC = 1; + HuAudSndGrpSetSet(7); + fn_1_2844(lbl_1_bss_C8, fn_1_14A2C); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_134A8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + fn_1_4B0(2); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + break; + } + HuPrcChildCreate(fn_1_116F4, 0xC8, 0x3000, 0, HuPrcCurrentGet()); +} + +void fn_1_6C4C(void) +{ + s32 var_r31; + s32 var_r30 = 0x10; + s32 var_r29 = 0x28; + s32 var_r28 = 0; + { + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + while (TRUE) { + fn_1_4D8(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 = var_r28 % 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 0xDC, 0x122, &sp10); + if (lbl_1_bss_366C.unk_04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } + else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_35BC[var_r31].unk_04 == NULL) { + print8(var_r30, var_r29 + 0x14 + (var_r31 * 0xA), 1.0f, "PROC_MAP%d -> FALSE", var_r31); + } + else { + print8(var_r30, var_r29 + 0x14 + (var_r31 * 0xA), 1.0f, "PROC_MAP%d -> TRUE", var_r31); + } + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (lbl_1_bss_33AC[var_r31].unk_04 == NULL) { + print8(var_r30, var_r29 + 0x32 + (var_r31 * 0xA), 1.0f, "PROC_SUB%d -> FALSE", var_r31); + } + else { + print8(var_r30, var_r29 + 0x32 + (var_r31 * 0xA), 1.0f, "PROC_SUB%d -> TRUE", var_r31); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_04 == NULL) { + print8(var_r30, var_r29 + 0x78 + (var_r31 * 0xA), 1.0f, "PROC_PLAYER%d -> FALSE", var_r31); + } + else { + print8(var_r30, var_r29 + 0x78 + (var_r31 * 0xA), 1.0f, "PROC_PLAYER%d -> TRUE", var_r31); + } + } + print8(var_r30, var_r29 + 0xAA, 1.0f, "MODE:%d MAP:%d", lbl_1_bss_A8[0], lbl_1_bss_A8[2]); + print8(var_r30, var_r29 + 0xBE, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + s32 spC; + s32 sp8 = lbl_1_bss_3114[var_r31].unk_6C; + spC = lbl_1_bss_3114[var_r31].unk_68; + print8(var_r30, var_r29 + 0xC8 + (var_r31 * 0xA), 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, lbl_1_bss_3114[var_r31].unk_58, + lbl_1_bss_3114[var_r31].unk_5C, lbl_1_bss_3114[var_r31].unk_60, lbl_1_bss_3114[var_r31].unk_64); + } + print8(var_r30, var_r29 + 0xF0, 1.0f, "NO) FG0:FG1:FG2:FG3"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 0xFA + (var_r31 * 0xA), 1.0f, "%2d) %3d:%3d:%3d:%3d", var_r31, lbl_1_bss_3114[var_r31].unk_70[0], + lbl_1_bss_3114[var_r31].unk_70[1], lbl_1_bss_3114[var_r31].unk_70[2], lbl_1_bss_3114[var_r31].unk_70[3]); + } + } + } +} + +s32 fn_1_7124(void) +{ + s32 var_r31 = 0; + + if (_CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 7)) != 0) { + var_r31++; + } + OSReport("DIF OMAKASE MAP %d\n", var_r31); + var_r31 = var_r31 / 2; + if (var_r31 < 0) { + var_r31 = 0; + } + else if (var_r31 > 3) { + var_r31 = 3; + } + OSReport("DIF OMAKASE DIF %d\n", var_r31); + return var_r31; +} + +s32 lbl_1_data_2B4[0xF] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1, +}; + +void fn_1_7218(void) +{ + s32 var_r31 = HuDataDirReadAsync(DATADIR_BOARD); + + if (var_r31 != -1) { + while (HuDataGetAsyncStat(var_r31) == 0) { + HuPrcVSleep(); + } + } + HuAR_MRAMtoARAM(DATADIR_BOARD); + while (HuARDMACheck() != 0) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_BOARD); + if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { + var_r31 = HuDataDirReadAsync(DATADIR_W10); + } + else { + var_r31 = HuDataDirReadAsync(lbl_1_data_2B4[GWSystem.board]); + } + if (var_r31 != -1) { + while (HuDataGetAsyncStat(var_r31) == 0) { + HuPrcVSleep(); + } + } + lbl_1_bss_D8 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7304(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = -1; + lbl_1_bss_3114[var_r31].unk_6C = var_r31; + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + for (var_r31 = 1; var_r31 < 4; var_r31++) { + do { + lbl_1_bss_3114[var_r31].unk_68 = rand8() % 8; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r31 != var_r29) && (lbl_1_bss_3114[var_r29].unk_68 != -1) + && (lbl_1_bss_3114[var_r31].unk_68 == lbl_1_bss_3114[var_r29].unk_68)) { + break; + } + } + } while (var_r29 != 4); + } + GWSystem.diff_story = lbl_1_bss_35BC[0].unk_1C[0]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_64 = GWSystem.diff_story; + if (GWSystem.diff_story == 4) { + lbl_1_bss_3114[var_r31].unk_64 = fn_1_7124(); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = lbl_1_bss_3114[var_r31].unk_68; + GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_3114[var_r31].unk_6C; + GWPlayerCfg[var_r31].diff = lbl_1_bss_3114[var_r31].unk_64; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = lbl_1_bss_3114[var_r31].unk_60; + } + BoardSaveInit(lbl_1_bss_A8[2]); + CharKill(-1); +} + +void fn_1_7684(void) +{ + s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MSTORY3, 0, 0); + do { + fn_1_4D8(); + } while (lbl_1_bss_D8 != 1); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + omOvlCallEx(spC[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_77C0(void) +{ + s32 var_r31; + + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0xF0); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x8C); +} + +void fn_1_7858(void) +{ + s32 var_r31; + + fn_1_4B0(0x3C); + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + WipeCreate(1, 0, -1); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_4B0(0x3C); +} + +void fn_1_7900(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = lbl_1_bss_DC; + sp8[3] = 60.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 850.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); +} + +s32 lbl_1_data_2F0 = -1; + +void fn_1_7A14(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + _ClearFlag(2); + _ClearFlag(3); + _ClearFlag(4); + _ClearFlag(5); + _ClearFlag(6); + _ClearFlag(7); + _ClearFlag(1); + _ClearFlag(9); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + fn_1_59A0(lbl_1_bss_33AC[var_r31].unk_00, 1, 6, 5, 1); + } + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + lbl_1_bss_3104->work[0] = 1; + var_r29 = -1; + var_r29 = HuAudFXPlay(0x43); + HuAudFXPanning(var_r29, 0x20); + var_r29 = HuAudFXPlay(0x40); + HuAudFXPanning(var_r29, 0x30); + var_r29 = HuAudFXPlay(0x37); + HuAudFXPanning(var_r29, 0x40); + var_r29 = HuAudFXPlay(0x4B); + HuAudFXPanning(var_r29, 0x4C); + var_r29 = HuAudFXPlay(0x46); + HuAudFXPanning(var_r29, 0x60); + HuAudFXPlay(0x9A); + HuAudFXPlay(0x306); + fn_1_4B0(0x96); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + lbl_1_bss_33AC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC->unk_08 = 1; + fn_1_4B0(0x3C); + for (var_r31 = 1; var_r31 < 5; var_r31++) { + fn_1_59A0(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0x1E, 1); + } + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + HuWinInsertMesSet(var_r30, lbl_1_bss_3114->unk_68, 0); + fn_1_1968(var_r30, 0x1E005F, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + fn_1_4B0(0x1E); + for (var_r31 = 1; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[3].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[3].x; + fn_1_2808(fn_1_7900); + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 6, 0xF, 1); + fn_1_1968(var_r30, 0x1E0060, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[1].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[1].x; + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[1].unk_00, 1, 6, 0xF, 1); + fn_1_1968(var_r30, 0x1E0061, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[1].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[4].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[4].x; + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 6, 0xF, 1); + fn_1_1968(var_r30, 0x1E0062, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[2].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[2].x; + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_1968(var_r30, 0x1E0063, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + lbl_1_bss_3104->work[0] = 3; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC->unk_08 = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x3C); + var_r30 = fn_1_1434(0, 0, 0); + lbl_1_data_2F0 = var_r30; + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r30, 0x1E0064, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_04 = NULL; + } +} + +void fn_1_81A8(omObjData *arg0, void *arg1, void *arg2) +{ + fn_1_1F868(); + lbl_1_bss_3114->unk_04 = NULL; +} + +void fn_1_81D8(void) +{ + lbl_1_bss_3114[0].unk_04 = (MentDllUnkFunc)fn_1_81A8; +} + +void fn_1_81F0(void) +{ + fn_1_4B0(0x3C); + HuAudSStreamPlay(0xC); + OSReport("########### ME_MainProcFunc000\n"); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(1, 0, -1); +} + +void fn_1_824C(void) +{ + s32 var_r31; + + fn_1_4B0(0x3C); + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + if (lbl_1_bss_A8[0] == 0) { + for (var_r31 = 0; var_r31 < 6; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + else { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + Hu3DModelPosSet(lbl_1_bss_33AC[0].unk_00->model[1], 0.0f, 0.0f, 560.0f); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 2); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + OSReport("########### ME_MainProcFunc400\n"); + WipeCreate(1, 0, -1); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_4B0(0x3C); +} + +void fn_1_83CC(void) +{ + s32 var_r31; + + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + if (lbl_1_bss_A8[0] == 0) { + for (var_r31 = 0; var_r31 < 6; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + else { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[0].unk_00, 1, sp14, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_4B0(0x1E); +} + +void fn_1_85C8(void) +{ + s32 var_r31; + s32 var_r30; + + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + var_r31 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[0][0]); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + saveExecF = 0; + if (GWGameStat.party_continue == 1) { + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0001, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r30 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r30 == -1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r30 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r30 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + continue; + } + if (var_r30 == 0) { + HuAudFXPlay(lbl_1_data_0[0][3]); + saveExecF = 1; + SLLoadBoard(); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_16AC(var_r31); + fn_1_C174(1); + continue; + } + if (var_r30 == 1) { + break; + } + } + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0002, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + } +} + +void fn_1_88A4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r30, 0x1A0004, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + fn_1_16AC(var_r30); + if (var_r29 == 0) { + s32 spC[4] = { 3, 0, 2, 4 }; + _SetFlag(0x1000B); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = spC[var_r31]; + GWPlayerCfg[var_r31].pad_idx = var_r31; + GWPlayerCfg[var_r31].diff = 0; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = 1; + OSReport("ID-%d CHR-%d PAD-%d DIF-%d GRP-%d COM-%d\n", var_r31, GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx, + GWPlayerCfg[var_r31].diff, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom); + } + BoardSaveInit(6); + GWSystem.max_turn = 0x14; + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MENT, 0, 1); + fn_1_C174(2); + } + else { + _ClearFlag(0x1000B); + } + fn_1_14BA8(); +} + +void fn_1_8B40(s32 arg0) +{ + fn_1_2055C(arg0); +} + +s32 fn_1_8B68(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + s32 var_r27; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r30 = 0; + var_r23 = 0; + var_r28 = 0; + if (lbl_1_bss_A8[0] == 5) { + var_r28 = 3; + } + var_r27 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[var_r28][2]); + while (TRUE) { + fn_1_4D8(); + fn_1_4D8(); + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0005, -1, -1); + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0021); + fn_1_208F4(); + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_1FF4C; + var_r25 = 0x63; + var_r23 = 0; + while (TRUE) { + fn_1_4D8(); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[3] == 0) { + var_r30++; + } + } + if (var_r25 != var_r30) { + var_r25 = var_r30; + fn_1_1968(var_r27, var_r30 + 0x1A001B, -1, -0x3E7); + } + if (lbl_1_bss_35BC[0].unk_1C[0] != 0) { + continue; + } + if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) { + var_r29 = 1; + HuAudFXPlay(2); + lbl_1_bss_35BC[0].unk_04 = NULL; + fn_1_4B0(2); + var_r26 = 0; + var_r30 = var_r26; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + var_r26++; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 < var_r26) { + if (HuPadStatGet(var_r31) != -1) { + var_r30++; + lbl_1_bss_3114[var_r31].unk_60 = 0; + } + else { + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + } + } + break; + } + else if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) { + var_r29 = 0; + HuAudFXPlay(3); + break; + } + } + fn_1_20A24(); + lbl_1_bss_35BC[0].unk_04 = NULL; + fn_1_2318(0); + if (var_r29 == 0) { + fn_1_59A0(lbl_1_bss_33AC[var_r28].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[var_r28].unk_00, 1, 1, 0xF, 1); + var_r24 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r24 == 0) { + fn_1_16AC(var_r27); + fn_1_C174(0); + } + } + else if (var_r29 == 1) { + break; + } + } + fn_1_16AC(var_r27); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + var_r30++; + } + } + if (var_r30 == 0) { + var_r29 = 2; + } + else { + var_r29 = 1; + } + return var_r29; +} + +void fn_1_8F44(void) +{ + s32 var_r31; + + fn_1_207BC(); + fn_1_15950(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = var_r31; + } +} + +void fn_1_8F98(void) +{ + fn_1_14CE0(); +} + +s32 fn_1_8FB8(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = 0; + var_r29 = 0; + if (lbl_1_bss_A8[0] == 5) { + var_r29 = 3; + } + fn_1_15950(); + var_r27 = fn_1_1434(0, 0, 0); + HuWinPushKeySet(var_r27, 0x300); + HuAudFXPlay(lbl_1_data_0[var_r29][2]); + fn_1_4D8(); + fn_1_5818(lbl_1_bss_33AC[var_r29].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0009, -1, -1); + fn_1_5818(lbl_1_bss_33AC[var_r29].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + lbl_1_bss_3114[var_r31].unk_04 = (MentDllUnkFunc)fn_1_15CB4; + } + } + while (TRUE) { + fn_1_4D8(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((lbl_1_bss_3114[var_r31].unk_60 == 0) && (HuPadBtnDown[lbl_1_bss_3114[var_r31].unk_6C] & PAD_BUTTON_A)) { + var_r26 = 1; + } + } + if ((lbl_1_bss_3114[0].unk_70[0] == 0) && (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + var_r30 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((lbl_1_bss_3114[var_r31].unk_60 == 0) && (lbl_1_bss_3114[var_r31].unk_70[0] != 1)) { + break; + } + } + if (var_r31 == 4) { + var_r30 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_04 = NULL; + } + fn_1_2318(0); + fn_1_16AC(var_r27); + if (var_r30 == 2) { + var_r28 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + lbl_1_bss_3114[var_r31].unk_68 = 0; + var_r28++; + } + } + if (var_r28 == 0) { + var_r30 = 3; + } + else { + var_r30 = 2; + } + } + else { + var_r30 = 0; + } + return var_r30; +} + +s32 fn_1_92CC(void) +{ + s32 sp8; + 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_r26 = -1; + var_r24 = -1; + sp8 = 0; + var_r25 = 0; + if (lbl_1_bss_A8[0] == 5) { + var_r25 = 3; + } + var_r27 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[var_r25][3]); + var_r28 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + var_r28++; + } + } + HuWinInsertMesSet(var_r27, var_r28 + 0x1A0023, 1); + fn_1_59A0(lbl_1_bss_33AC[var_r25].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0007, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[var_r25].unk_00, 1, 1, 0xF, 1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + lbl_1_bss_3114[var_r31].unk_68 = lbl_1_bss_3114[var_r31].unk_64 = 0; + } + } +loop_12: + fn_1_4D8(); + fn_1_2154(0x1A0020); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((lbl_1_bss_3114[var_r31].unk_60 != 0) && (lbl_1_bss_3114[var_r31].unk_70[0] == 0)) { + var_r30 = var_r31; + lbl_1_bss_3114[var_r31].unk_70[1] = var_r26; + fn_1_173FC(&lbl_1_bss_3114[var_r31]); + lbl_1_bss_3114[var_r31].unk_04 = (MentDllUnkFunc)fn_1_16B68; + } + } +loop_18: + fn_1_4D8(); + if ((var_r24 != lbl_1_bss_3114[var_r30].unk_68) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { + var_r24 = lbl_1_bss_3114[var_r30].unk_68; + fn_1_1968(var_r27, lbl_1_bss_3114[var_r30].unk_68 + 0x1B0008, -1, -0x3E7); + } + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { + HuAudFXPlay(3); + if (var_r26 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + } + else if (lbl_1_bss_3114[var_r30].unk_70[0] == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { + lbl_1_bss_3114[var_r31].unk_68 = 0; + } + } + lbl_1_bss_3114[var_r30].unk_04 = NULL; + fn_1_1968(var_r27, 0x1A0022, -1, -0x3E7); + fn_1_2154(0x1A0023); + var_r29 = fn_1_1648C(&lbl_1_bss_3114[var_r30]); + if (var_r29 == 1) { + lbl_1_bss_3114[var_r30].unk_70[2] = 1; + var_r29 = 4; + var_r26 = var_r30; + } + else { + lbl_1_bss_3114[var_r30].unk_70[2] = 0; + var_r29 = 4; + lbl_1_bss_3114[var_r30].unk_70[0] = 0; + fn_1_17914(&lbl_1_bss_3114[var_r30]); + fn_1_173FC(&lbl_1_bss_3114[var_r30]); + } + } + else { + goto loop_18; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { + break; + } + } + if (var_r31 == 4) { + var_r29 = 3; + } + else { + if (var_r29 == 1) { + fn_1_173FC(&lbl_1_bss_3114[var_r30]); + fn_1_17914(&lbl_1_bss_3114[var_r30]); + fn_1_173FC(&lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]]); + var_r26 = lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[1]; + lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[0] = 0; + } + else if (var_r29 == 4) { + goto loop_12; + } + else if (var_r29 == 0) { + fn_1_17914(&lbl_1_bss_3114[var_r30]); + var_r24 = -1; + } + } + fn_1_2318(0); + fn_1_16AC(var_r27); + if (var_r29 == 0) { + var_r28 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + var_r28++; + } + } + if (var_r28 != 0) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + } + return var_r29; +} + +void fn_1_98E4(void) +{ + s32 var_r31; + s32 var_r30; + + fn_1_15098(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 1) { + lbl_1_bss_3114[var_r31].unk_70[var_r30] = 0; + lbl_1_bss_3114[var_r31].unk_80[var_r30] = 0; + fn_1_17914(&lbl_1_bss_3114[var_r31]); + } + } + } +} + +void fn_1_99AC(void) +{ + fn_1_1811C(); +} + +s32 fn_1_99CC(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s16 var_r26; + + s32 sp8[6] = { + 0x00000001, + 0x00000002, + 0x00000000, + 0x00000003, + 0x00000004, + 0x00000005, + }; + var_r30 = 2; + var_r27 = fn_1_1434(0, 0, 0); +loop_1: + fn_1_4D8(); + var_r28 = 0; + lbl_1_bss_33AC->unk_34 = 1; + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0008, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + lbl_1_bss_33AC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_18F74; +loop_5: + fn_1_4D8(); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (lbl_1_bss_33AC[var_r31].unk_08 == 2) { + break; + } + } + if (var_r31 != 6) { + block_29: + if (var_r28 == 0) { + if (var_r30 != 5) { + fn_1_2808(fn_1_14058); + } + else { + fn_1_2808(fn_1_14148); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; + } + var_r28++; + if ((var_r28 == 0x14) != 0) { + var_r28 = 0x15; + fn_1_18A54(sp8[var_r30]); + fn_1_1968(var_r27, sp8[var_r30] + 0x1B0001, -1, -0x3E7); + if (sp8[var_r30] != 0) { + HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][0]); + } + else { + HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][2]); + } + } + goto loop_5; + } + if (var_r28 < 0x15) { + goto block_29; + } + if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r29 = 0; + } + else if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r29 = 2; + } + else { + if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2) != 0)) { + if (lbl_1_bss_A8[4] == 1) { + var_r30++; + if (var_r30 > 5) { + var_r30 = 5; + } + else { + var_r28 = 0; + } + } + else { + var_r30++; + if (var_r30 > 4) { + var_r30 = 4; + } + else { + var_r28 = 0; + } + } + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -0x32) || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT)) { + var_r30--; + if (var_r30 < 0) { + var_r30 = 0; + } + else { + var_r28 = 0; + } + } + goto block_29; + } + fn_1_2318(0); + switch (var_r29) { + case 0: + fn_1_2808(fn_1_14058); + if (var_r30 != 2) { + var_r30 = 2; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[2]].unk_08 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + break; + case 1: + fn_1_2808(fn_1_14058); + if (var_r30 != 2) { + var_r30 = 2; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[2]].unk_08 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r26 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r26 == 0) { + fn_1_16AC(var_r27); + fn_1_C174(0); + } + goto loop_1; + case 2: + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_04 = NULL; + } + lbl_1_bss_A8[2] = sp8[var_r30]; + break; + } + fn_1_16AC(var_r27); + if (var_r29 == 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { } + } + if (var_r31 != 4) { + var_r29 = 2; + } + else { + var_r29 = 1; + } + } + else { + var_r29 = 3; + } + return var_r29; +} + +void fn_1_A0A4(void) +{ + fn_1_1850C(); +} + +void fn_1_A0C4(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_A8[2]; + fn_1_1850C(); + HuAudFXPlay(lbl_1_data_0[var_r31][3]); + if (var_r31 != 5) { + Vec sp2C = { -350.0f, 0.0f, 800.0f }; + fn_1_2808(fn_1_14238); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp2C, 30.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + } + else { + Vec sp20 = { 850.0f, 0.0f, 800.0f }; + fn_1_2808(fn_1_14328); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp20, 30.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[1].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[1].unk_00, 2, 0); + } +} + +void fn_1_A39C(void) +{ + fn_1_1C754(); +} + +s32 fn_1_A3BC(void) +{ + char sp8[10]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r27 = -1; + var_r26 = -1; + var_r30 = lbl_1_bss_A8[2]; + var_r31 = fn_1_1434(0, 0, 0); + if (var_r30 == 0) { + HuAudFXPlay(lbl_1_data_0[var_r30][2]); + } + else { + HuAudFXPlay(lbl_1_data_0[var_r30][0]); + } +loop_3: + fn_1_4D8(); + var_r27 = var_r26 = -1; + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, var_r30 + 0x1A000A, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0021); + lbl_1_bss_35BC[0].unk_08[1] = 0; + fn_1_1C554(); + lbl_1_bss_35BC[1].unk_04 = (MentDllUnkFunc)fn_1_19C98; +loop_4: + fn_1_4D8(); + if ((var_r27 != lbl_1_bss_35BC[1].unk_08[0]) || var_r26 != lbl_1_bss_35BC[1].unk_1C[lbl_1_bss_35BC[1].unk_08[0]]) { + var_r27 = lbl_1_bss_35BC[1].unk_08[0]; + var_r26 = lbl_1_bss_35BC[1].unk_1C[lbl_1_bss_35BC[1].unk_08[0]]; + switch (lbl_1_bss_35BC[1].unk_08[0]) { + case 0: + switch (lbl_1_bss_35BC[1].unk_1C[0]) { + case 0: + fn_1_1968(var_r31, 0x1B0015, -1, -0x3E7); + break; + case 1: + HuWinInsertMesSet(var_r31, 0x1B001E, 0); + HuWinInsertMesSet(var_r31, 0x1B001F, 1); + HuWinInsertMesSet(var_r31, 0x1B0020, 2); + fn_1_1968(var_r31, 0x1B0016, -1, -0x3E7); + break; + case 2: + HuWinInsertMesSet(var_r31, 0x1B001F, 0); + HuWinInsertMesSet(var_r31, 0x1B001E, 1); + HuWinInsertMesSet(var_r31, 0x1B0020, 2); + fn_1_1968(var_r31, 0x1B0016, -1, -0x3E7); + break; + case 3: + HuWinInsertMesSet(var_r31, 0x1B0020, 0); + HuWinInsertMesSet(var_r31, 0x1B001E, 1); + HuWinInsertMesSet(var_r31, 0x1B001F, 2); + fn_1_1968(var_r31, 0x1B0016, -1, -0x3E7); + break; + } + break; + case 1: + sprintf(sp8, "%d", lbl_1_bss_35BC[1].unk_1C[1]); + HuWinInsertMesSet(var_r31, MAKE_MESSID_PTR(sp8), 0); + fn_1_1968(var_r31, 0x1B0017, -1, -0x3E7); + break; + case 2: + fn_1_1968(var_r31, lbl_1_bss_35BC[1].unk_1C[2] + 0x1B0018, -1, -0x3E7); + break; + case 3: + fn_1_1968(var_r31, lbl_1_bss_35BC[1].unk_1C[3] + 0x1B001B, -1, -0x3E7); + break; + case 4: + HuWinInsertMesSet(var_r31, lbl_1_bss_3114[lbl_1_bss_35BC[1].unk_1C[4]].unk_68, 0); + fn_1_1968(var_r31, 0x1B001D, -1, -0x3E7); + break; + } + } + if (lbl_1_bss_35BC[0].unk_08[3] != 0) { + goto loop_4; + } + if (lbl_1_bss_35BC[0].unk_08[1] == -1) { + fn_1_1C674(); + var_r29 = 0; + } + else if (lbl_1_bss_35BC[0].unk_08[1] == 1) { + fn_1_1C674(); + var_r29 = 2; + } + else { + goto loop_4; + } + fn_1_2318(0); + lbl_1_bss_35BC[1].unk_04 = NULL; + fn_1_1C674(); + if (var_r29 == 0) { + var_r29 = 1; + } + else if (var_r29 == 1) { + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + var_r28 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r28 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + goto loop_3; + } + else if (var_r29 == 2) { + HuAudFXPlay(lbl_1_data_0[var_r30][2]); + fn_1_1968(var_r31, 0x1B0000, -1, 5); + var_r28 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r28 == 0) { + var_r29 = 0x63; + } + else { + fn_1_1968(var_r31, 0x1B0007, -1, 5); + var_r28 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r28 == 0) { + var_r29 = 0; + } + else { + goto loop_3; + } + } + } + else { + goto loop_3; + } + fn_1_16AC(var_r31); + return var_r29; +} + +void fn_1_A990(void) +{ + fn_1_1C990(); +} + +void fn_1_A9B0(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_A8[2]; + { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + if (lbl_1_bss_A8[2] == 5) { + var_r31 = 1; + } + else { + var_r31 = 0; + } + for (var_r29 = 0; var_r29 < 6; var_r29++) { + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r29].unk_00->model[1], 1); + } + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r30].unk_00->model[1], 1); + fn_1_11908(lbl_1_bss_35BC[var_r31].unk_00, lbl_1_bss_A8[2]); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], 1); + lbl_1_bss_35BC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_1184C; + if (var_r30 == 5) { + sp14.x += 1200.0f; + } + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r30].unk_00, 1, sp14, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_35BC[var_r31].unk_00, 2, 3, 0, 0); + var_r28 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[var_r30][0]); + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 5, 0xF, 1); + fn_1_1968(var_r28, var_r30 + 0x1A0010, -1, -1); + fn_1_16AC(var_r28); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); + fn_1_5CDC(lbl_1_bss_35BC[var_r31].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], 1); + fn_1_2808(fn_1_14418); + fn_1_4B0(0xA); + HuAudFXPlay(GWPlayerCfg->character + 0x75); + HuAudFXPlay(GWPlayerCfg[1].character + 0x75); + HuAudFXPlay(GWPlayerCfg[2].character + 0x75); + HuAudFXPlay(GWPlayerCfg[3].character + 0x75); + fn_1_4B0(0x8C); + } +} + +void fn_1_AD78(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + s32 sp20[6] = { 1, 2, 0, 3, 4, 5 }; + var_r30 = lbl_1_bss_A8[2]; + var_r29 = lbl_1_bss_A8[2]; + if (var_r30 != 5) { + var_r28 = 0; + } + else { + var_r28 = 1; + } + fn_1_5818(lbl_1_bss_35BC[var_r28].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[var_r28].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + if (var_r30 != 5) { + fn_1_2808(fn_1_146D0); + } + else { + fn_1_2808(fn_1_147C0); + } + { + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + sp14.x = lbl_1_data_D8[var_r30].x; + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r30].unk_00, 1, sp14, lbl_1_data_120[var_r30], 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + lbl_1_bss_33AC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC[sp20[var_r29]].unk_08 = 1; + fn_1_2808(fn_1_14058); + if (var_r29 != 2) { + var_r29 = 2; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp20[var_r29]].unk_08 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + } +} + +void fn_1_B084(void) +{ + s32 sp28; + s32 sp24; + s32 sp20; + s32 sp1C; + s32 sp18; + float sp14; + s32 sp10; + s32 spC; + s32 sp8; + s32 var_r31; + MentDllUnkBss3114Struct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + MentDllUnkBss3114Struct *var_r26; + MentDllUnkBss33ACStruct *var_r25; + MentDllUnkBss35BCStruct *var_r24; + + var_r28 = lbl_1_bss_A8[2]; + if (var_r28 != 5) { + var_r27 = 0; + } + else { + var_r27 = 1; + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (var_r31 != var_r28) { + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + fn_1_5818(lbl_1_bss_35BC[var_r27].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[var_r27].unk_00, 2, 0); + if (var_r28 != 5) { + fn_1_2808(fn_1_146D0); + } + else { + fn_1_2808(fn_1_147C0); + } + { + Vec sp2C = { 0.0f, 0.0f, 460.0f }; + + if (var_r28 == 5) { + sp2C.x = 1200.0f; + } + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r28].unk_00, 1, sp2C, 0.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 1, 0xF, 1); + fn_1_5818(lbl_1_bss_35BC[var_r27].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[var_r27].unk_00, 2, 0); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 2); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + if (var_r28 == 5) { + fn_1_2808(fn_1_14058); + } + fn_1_4B0(0x1E); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = &lbl_1_bss_3114[var_r31]; + var_r26 = &lbl_1_bss_3114[var_r31]; + var_r30->unk_58 = var_r31; + var_r30->unk_5C = 0; + var_r30->unk_60 = var_r30->unk_58; + if (var_r30->unk_60 > 0) { + var_r30->unk_60 = 1; + } + var_r30->unk_64 = 0; + var_r30->unk_68 = var_r30->unk_58; + var_r30->unk_6C = var_r30->unk_58; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r30->unk_70[0] = var_r30->unk_70[1] = 0; + } + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r26->unk_08 = var_r26->unk_0C = 0; + } + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_r25 = &lbl_1_bss_33AC[var_r31]; + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r25->unk_08 = var_r25->unk_0C = 0; + } + Hu3DModelPosSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], lbl_1_data_D8[var_r31].x, lbl_1_data_D8[var_r31].y, lbl_1_data_D8[var_r31].z); + Hu3DModelRotSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], 0.0f, lbl_1_data_120[var_r31], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r24 = &lbl_1_bss_35BC[var_r31]; + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r24->unk_08[0] = var_r24->unk_08[1] = 0; + } + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + } + fn_1_14BA8(); + fn_1_179DC(); + fn_1_1872C(); + fn_1_190E8(); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + { + Vec sp20 = { 0.0f, 0.0f, 560.0f }; + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[0].unk_00, 1, sp20, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + } + } +} + +void fn_1_B654(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + var_r30 = 0xA; + var_r29 = 0; + if (lbl_1_bss_A8[1] == 0) { + fn_1_81F0(); + fn_1_83CC(); + fn_1_85C8(); + fn_1_88A4(); + } + else { + fn_1_824C(); + fn_1_88A4(); + } + do { + fn_1_4D8(); + switch (var_r30) { + case 10: + var_r30 = 0; + fn_1_2055C(var_r29); + var_r29 = fn_1_8B68(); + fn_1_8F44(); + break; + case 0: + var_r30 = 1; + fn_1_14CE0(); + while (TRUE) { + fn_1_4D8(); + switch (var_r29) { + case 1: + var_r29 = fn_1_8FB8(); + break; + case 2: + var_r29 = fn_1_92CC(); + break; + } + if (var_r29 == 0) { + var_r30 = 0xA; + break; + } + else if (var_r29 == 3) { + break; + } + } + fn_1_98E4(); + break; + case 1: + var_r30 = 2; + fn_1_1811C(); + var_r29 = fn_1_99CC(); + if (var_r29 != 3) { + fn_1_1850C(); + var_r30 = 0; + } + else { + fn_1_A0C4(); + } + break; + case 2: + fn_1_1C754(); + var_r30 = fn_1_A3BC(); + fn_1_1C990(); + switch (var_r30) { + case 0: + var_r30 = 0xA; + var_r29 = 0; + fn_1_B084(); + break; + case 1: + var_r30 = 1; + fn_1_AD78(); + break; + } + break; + } + } while (var_r30 != 0x63); + if (lbl_1_bss_35BC[1].unk_1C[0] == 0) { + var_r21 = 0; + } + else { + var_r21 = 1; + } + if (lbl_1_bss_35BC[1].unk_1C[3] == 0) { + var_r20 = 1; + } + else { + var_r20 = 0; + } + switch (lbl_1_bss_35BC[1].unk_1C[2]) { + case 0: + var_r22 = 0; + break; + case 1: + var_r22 = 1; + break; + case 2: + var_r22 = 2; + break; + default: + var_r22 = 0; + break; + } + { + s32 var_r19 = lbl_1_bss_35BC[1].unk_1C[1]; + s32 var_r18 = lbl_1_bss_35BC[1].unk_08[1]; + s32 var_r17 = lbl_1_bss_35BC[1].unk_08[2]; + s32 sp18 = lbl_1_bss_35BC[1].unk_08[3]; + s32 sp14 = lbl_1_bss_35BC[1].unk_08[4]; + BoardPartyConfigSet(var_r21, var_r20, var_r22, var_r19, var_r18, var_r17, sp18, sp14); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = lbl_1_bss_3114[var_r31].unk_68; + GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_3114[var_r31].unk_6C; + GWPlayerCfg[var_r31].diff = lbl_1_bss_3114[var_r31].unk_64; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = lbl_1_bss_3114[var_r31].unk_60; + } + if (var_r21 == 1) { + switch (lbl_1_bss_35BC[1].unk_1C[0]) { + case 1: + GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; + break; + case 2: + GWPlayerCfg[1].group = GWPlayerCfg[3].group = 1; + break; + case 3: + GWPlayerCfg[1].group = GWPlayerCfg[2].group = 1; + break; + default: + GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; + break; + } + } + BoardSaveInit(lbl_1_bss_A8[2]); + fn_1_A9B0(); + if (lbl_1_bss_A8[2] != 5) { + WipeColorSet(0xFF, 0xFF, 0xFF); + } + else { + WipeColorSet(0, 0, 0); + } + fn_1_C174(3); +} + +void fn_1_C174(s32 arg0) +{ + s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; + if (arg0 == 0 || arg0 == 1 || arg0 == 2) { + fn_1_4B0(0x3C); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); + } + WipeCreate(2, 0, -1); + + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + + if (arg0 != 0) { + if (arg0 == 1 || arg0 == 3) { + omOvlHisData *sp8 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY3, 0, 0); + } + do { + fn_1_4D8(); + } while (lbl_1_bss_D8 != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + } + + switch (arg0) { + case 0: + omOvlReturnEx(1, 1); + break; + case 2: + omOvlCallEx(spC[6], 1, 0, 0); + break; + case 1: + case 3: + omOvlCallEx(spC[GWSystem.board], 1, 0, 0); + break; + } + while (TRUE) { + fn_1_4D8(); + } +} + +s32 fn_1_C354(s32 arg0) +{ + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5)) != 0) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6)) != 0) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7)) != 0) { + return 1; + } + return 0; +} + +s32 fn_1_C440(void) +{ + if ((_CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) && (_CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) && (_CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) + && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0) && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0)) { + return 1; + } + return 0; +} + +void fn_1_C4B8(void) +{ + s32 var_r31; + s32 var_r28; + + var_r31 = fn_1_1434(0, 0, 0); + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E005C, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + saveExecF = 0; + if (GWGameStat.story_continue != 1) { + return; + } + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0001, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r28 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r28 == -1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r28 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r28 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + continue; + } + if (var_r28 == 0) { + fn_1_16AC(var_r31); + SLLoadBoardStory(); + if (_CheckFlag(FLAG_ID_MAKE(0, 7)) != 0 && _CheckFlag(FLAG_ID_MAKE(0, 9)) != 0) { + OSReport("########## Next to Ending\n"); + fn_1_E654(1); + omOvlGotoEx(OVL_MSTORY2, 1, 4, 0); + } + else { + if (_CheckFlag(0x10000) != 0) { + OSReport("########### Next to Turn\n"); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_4D8(); + fn_1_E71C(0); + } + else { + if (fn_1_C354(GWSystem.board) != 0) { + if (_CheckFlag(FLAG_ID_MAKE(0, 9)) != 0) { + if (fn_1_C440() != 0) { + OSReport("########## Next to MapSelect KoopaEvent\n"); + fn_1_E654(1); + omOvlGotoEx(OVL_MSTORY2, 1, 0, 0); + } + else { + OSReport("########## Next to MapSelect NormalEvent\n"); + fn_1_E654(1); + omOvlGotoEx(OVL_MENT, 1, 0xA, 0); + } + } + else if (GWSystem.board == 5) { + OSReport("########## Next to BoardClear KoopaEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY2, 1, 1, 0); + } + else { + OSReport("########## Next to BoardClear NormalEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY, 1, 0, 0); + } + } + else { + if (_CheckFlag(FLAG_ID_MAKE(0, 9)) != 0) { + if (GWSystem.board == 5) { + OSReport("########## Next to BoardMiss KoopaEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY2, 1, 2, 0); + } + else { + OSReport("########### Next to BoardMiss NormalEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY, 1, 1, 0); + } + } + else { + OSReport("########### Next to Turn\n"); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_4D8(); + fn_1_E71C(0); + } + } + } + } + while (TRUE) { + fn_1_4D8(); + } + } + if (var_r28 == 1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0002, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + break; + } + } +} + +void fn_1_CAE4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r30, 0x1A0004, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + fn_1_16AC(var_r30); + if (var_r29 == 0) { + s32 spC[4] = { 3, 0, 2, 4 }; + _SetFlag(0x1000B); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = spC[var_r31]; + GWPlayerCfg[var_r31].pad_idx = var_r31; + GWPlayerCfg[var_r31].diff = 0; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = 1; + OSReport("ID-%d CHR-%d PAD-%d DIF-%d GRP-%d COM-%d\n", var_r31, GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx, + GWPlayerCfg[var_r31].diff, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom); + } + BoardSaveInit(6); + GWSystem.max_turn = 0x14; + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MENT, 1, 1); + fn_1_C174(2); + } + else { + _ClearFlag(0x1000B); + } +} + +void fn_1_CD6C(void) +{ + fn_1_1DFB8(); +} + +s32 fn_1_CD8C(void) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + sp8 = 0; + fn_1_1CF68(); + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E005E, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + lbl_1_bss_3114->unk_04 = (MentDllUnkFunc)fn_1_1E404; + while (TRUE) { + if (lbl_1_bss_3114->unk_70[0] == 1) { + var_r30 = 1; + break; + } + else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) != 0) { + HuAudFXPlay(3); + lbl_1_bss_3114->unk_04 = NULL; + var_r30 = 0; + break; + } + else { + fn_1_4D8(); + } + } + lbl_1_bss_3114->unk_04 = NULL; + fn_1_2318(0); + if (var_r30 != 0) { + break; + } + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0005, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r29 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + } + fn_1_16AC(var_r31); + fn_1_4B0(0x1E); + return var_r30; +} + +s32 fn_1_CF8C(void) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + sp8 = 0; + var_r28 = -1; + var_r27 = -1; + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0009, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0021); + lbl_1_bss_35BC[1].unk_08[1] = 0; + fn_1_1DED8(); + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_1E8A4; + while (TRUE) { + fn_1_4D8(); + if ((var_r28 != lbl_1_bss_35BC[0].unk_08[0]) || (var_r27 != lbl_1_bss_35BC[0].unk_1C[lbl_1_bss_35BC[0].unk_08[0] - 1])) { + var_r28 = lbl_1_bss_35BC[0].unk_08[0]; + var_r27 = lbl_1_bss_35BC[0].unk_1C[lbl_1_bss_35BC[0].unk_08[0] - 1]; + switch (lbl_1_bss_35BC[0].unk_08[0]) { + case 1: + HuWinInsertMesSet(var_r31, lbl_1_bss_35BC[0].unk_1C[0] + 0x1B0028, 0); + fn_1_1968(var_r31, 0x1B0027, -1, -0x3E7); + break; + case 2: + fn_1_1968(var_r31, lbl_1_bss_35BC[0].unk_1C[1] + 0x1B0018, -1, -0x3E7); + break; + } + } + if (lbl_1_bss_35BC[0].unk_08[3] != 0) { + continue; + } + if (lbl_1_bss_35BC[1].unk_08[1] == 1) { + var_r30 = 2; + break; + } + else if (lbl_1_bss_35BC[1].unk_08[1] == -1) { + var_r30 = 0; + break; + } + } + fn_1_1DF48(); + lbl_1_bss_35BC[0].unk_04 = NULL; + fn_1_2318(0); + if (var_r30 == 1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0005, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r29 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + } + else if (var_r30 == 2) { + fn_1_1968(var_r31, 0x1B0000, -1, 5); + var_r29 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r29 == 0) { + break; + } + fn_1_1968(var_r31, 0x1B0007, -1, 5); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r29 == 0) { + fn_1_1CF68(); + var_r30 = 0; + break; + } + else { + var_r28 = -1; + var_r27 = -1; + } + } + else { + var_r30 = 0; + break; + } + } + lbl_1_bss_E0 = lbl_1_bss_35BC[0].unk_1C[1]; + fn_1_16AC(var_r31); + return var_r30; +} + +void fn_1_D310(void) +{ + fn_1_1E1B4(); +} + +void fn_1_D330(void) +{ + fn_1_1F868(); +} + +void fn_1_D350(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + fn_1_4B0(0x3C); + var_r29 = fn_1_1434(0, 0, 0); + lbl_1_bss_3104->work[0] = 1; + var_r31 = -1; + var_r31 = HuAudFXPlay(0x43); + HuAudFXPanning(var_r31, 0x20); + var_r31 = HuAudFXPlay(0x40); + HuAudFXPanning(var_r31, 0x30); + var_r31 = HuAudFXPlay(0x37); + HuAudFXPanning(var_r31, 0x40); + var_r31 = HuAudFXPlay(0x4B); + HuAudFXPanning(var_r31, 0x4C); + var_r31 = HuAudFXPlay(0x46); + HuAudFXPanning(var_r31, 0x60); + HuAudFXPlay(0x9A); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 6, 5, 1); + } + HuWinInsertMesSet(var_r29, lbl_1_bss_3114->unk_68, 0); + fn_1_1968(var_r29, 0x1E0006, 0, 0xB4); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + } + fn_1_4B0(0x1E); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + HuWinInsertMesSet(var_r29, lbl_1_bss_3114->unk_68, 0); + fn_1_1968(var_r29, 0x1E0007, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2808(fn_1_148B0); + HuAudFXPlay(0x39); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r29, 0x1E0008, 0, 0x78); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2808(fn_1_13F68); + fn_1_16AC(var_r29); + fn_1_4B0(0x78); + lbl_1_bss_3104->func = NULL; + _ClearFlag(2); + _ClearFlag(3); + _ClearFlag(4); + _ClearFlag(5); + _ClearFlag(6); + _ClearFlag(7); + _ClearFlag(1); + _ClearFlag(9); +} + +void fn_1_D634(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + s32 sp8[6] = { 1, 2, 0, 3, 4, 5 }; + var_r28 = 0; + var_r31 = 2; + if (lbl_1_data_2F0 == -1) { + var_r29 = fn_1_1434(0, 0, 0); + } + else { + var_r29 = lbl_1_data_2F0; + lbl_1_data_2F0 = -1; + } + while (TRUE) { + fn_1_4D8(); + var_r28 = 0; + lbl_1_bss_33AC[0].unk_34 = 1; + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r29, 0x1A0008, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + lbl_1_bss_33AC[var_r30].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_18F74; + loop_7: + fn_1_4D8(); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + if (lbl_1_bss_33AC[var_r30].unk_08 == 2) { + (void)var_r30; + } + } + if (var_r30 != 5) { + block_27: + if (var_r28 == 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + } + if (var_r28++ == 0x14) { + var_r28 = 0x15; + fn_1_18A54(sp8[var_r31]); + fn_1_1968(var_r29, sp8[var_r31] + 0x1B0001, -1, -0x3E7); + if (sp8[var_r31] != 0) { + HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][0]); + } + else { + HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][0]); + } + } + goto loop_7; + } + if (var_r28 < 0x15) { + goto block_27; + } + if ((HuPadBtnDown[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_A) != 0) { + HuAudFXPlay(2); + var_r26 = 2; + } + else { + if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_RIGHT) != 0)) { + var_r31++; + if (var_r31 > 4) { + var_r31 = 4; + } + else { + var_r28 = 0; + } + goto block_27; + } + if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] <= -0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_LEFT) != 0)) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 0; + } + else { + var_r28 = 0; + } + goto block_27; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + var_r26 = 1; + } + else { + goto block_27; + } + } + fn_1_2318(0); + if (var_r26 == 1) { + fn_1_2808(fn_1_14058); + if (var_r31 != 2) { + var_r31 = 2; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + lbl_1_bss_33AC[sp8[var_r31]].unk_34 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + fn_1_1968(var_r29, 0x1E0005, -1, 5); + var_r27 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r27 == 0) { + fn_1_16AC(var_r29); + fn_1_C174(0); + } + continue; + } + if (var_r26 != 2) { + continue; + } + if (((sp8[var_r31] == 0) && (_CheckFlag(FLAG_ID_MAKE(0, 2)) != 0)) || ((sp8[var_r31] == 1) && (_CheckFlag(FLAG_ID_MAKE(0, 3)) != 0)) + || ((sp8[var_r31] == 2) && (_CheckFlag(FLAG_ID_MAKE(0, 4)) != 0)) || ((sp8[var_r31] == 3) && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0)) + || ((sp8[var_r31] == 4) && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0))) { + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 4, 0xF, 1); + HuWinInsertMesSet(var_r29, sp8[var_r31] + 0x1B0021, 1); + fn_1_1968(var_r29, sp8[var_r31] + 0x1E0052, -1, -1); + fn_1_1968(var_r29, sp8[var_r31] + 0x1E0057, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 1, 0xF, 1); + var_r27 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r27 == 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_04 = NULL; + } + lbl_1_bss_A8[2] = sp8[var_r31]; + } + else { + if (var_r31 != 2) { + var_r31 = 2; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + lbl_1_bss_33AC[sp8[var_r31]].unk_34 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + continue; + } + } + else { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_04 = NULL; + } + lbl_1_bss_A8[2] = sp8[var_r31]; + } + break; + } + fn_1_16AC(var_r29); +} + +void fn_1_DE60(void) +{ + s32 var_r31 = lbl_1_bss_A8[2]; + { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + + fn_1_1FA34(); + fn_1_2808(fn_1_14238); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp14, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + fn_1_4B0(0x3C); + } +} + +void fn_1_DFDC(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r31 = 0; + var_r29 = lbl_1_bss_A8[2]; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r30].unk_00->model[1], 1); + } + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r29].unk_00->model[1], 1); + fn_1_11908(lbl_1_bss_35BC[var_r31].unk_00, lbl_1_bss_A8[2]); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], 1); + lbl_1_bss_35BC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_1184C; + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_5818(lbl_1_bss_35BC[var_r31].unk_00, 2, 3, 0, 0); + var_r28 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[var_r29].unk_00, 1, 5, 0xF, 1); + fn_1_1968(var_r28, var_r29 + 0x1E000C, -1, -1); + fn_1_16AC(var_r28); + fn_1_5CDC(lbl_1_bss_35BC[var_r31].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], 1); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); + fn_1_2808(fn_1_14418); + fn_1_4B0(0xA); + HuAudFXPlay(GWPlayerCfg->character + 0x75); + fn_1_4B0(0x8C); +} + +void fn_1_E244(void) +{ + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + OSReport("########### ME_MainProcFunc200\n"); + WipeCreate(1, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + fn_1_4B0(0x3C); +} + +void fn_1_E2B4(void) +{ + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + fn_1_D330(); + fn_1_2808(fn_1_146D0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[0].unk_00, 1, sp14, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); +} + +void fn_1_E3FC(void) +{ + lbl_1_bss_14[0] = HuAudSeqPlay(6); + OSReport("########### ME_MainProcFunc300\n"); + WipeCreate(1, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + fn_1_D330(); + lbl_1_bss_35BC[1].unk_04 = (MentDllUnkFunc)fn_1_18F74; + fn_1_18A54(5); + fn_1_4B0(0x3C); +} + +void fn_1_E48C(void) +{ + s32 var_r31; + + lbl_1_bss_A8[2] = 5; + var_r31 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1968(var_r31, 0x1F0008, 0, 0x3C); + fn_1_59A0(lbl_1_bss_3354.unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + fn_1_1FC54(); + fn_1_4B0(0x3C); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[5], 1); + fn_1_7304(); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_59A0(lbl_1_bss_3354.unk_00, 1, 2, 0xF, 1); + fn_1_5818(lbl_1_bss_35BC[1].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x3C); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_5CDC(lbl_1_bss_35BC[1].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); + fn_1_2808(fn_1_14418); + fn_1_4B0(0xA); + fn_1_4B0(0x8C); +} + +void fn_1_E654(s32 arg0) +{ + fn_1_4B0(0x3C); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudAllStop(); + HuDataDirClose(DATADIR_MENT); + CharARAMOpen(GWPlayerCfg[0].character); + if (arg0 == 0) { + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + } +} + +void fn_1_E71C(s32 arg0) +{ + s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; + fn_1_4B0(0x3C); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MSTORY3, 0, 0); + do { + fn_1_4D8(); + } while (lbl_1_bss_D8 != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + omOvlCallEx(spC[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +inline void fn_1_E874_inline(void) +{ + s32 sp18 = lbl_1_bss_3114[0].unk_68; + GWSystem.unk0B[1] = sp18; +} + +void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 var_r31; + s32 var_r29; + s32 var_r27; + s32 var_r25; + s32 var_r24; + s32 var_r18; + + var_r25 = 0; + if (lbl_1_bss_A8[1] == 0) { + fn_1_81F0(); + fn_1_77C0(); + fn_1_C4B8(); + fn_1_CAE4(); + } + else { + fn_1_7858(); + fn_1_CAE4(); + } + fn_1_1DFB8(); + do { + fn_1_4D8(); + switch (var_r25) { + case 0: + var_r25 = fn_1_CD8C(); + break; + case 1: + var_r25 = fn_1_CF8C(); + break; + } + } while (var_r25 != 2); + fn_1_D310(); + fn_1_81D8(); + fn_1_7A14(); + fn_1_D634(); + fn_1_DE60(); + switch (lbl_1_bss_E0) { + case 0: + var_r24 = 0; + break; + case 1: + var_r24 = 1; + break; + case 2: + var_r24 = 2; + break; + default: + var_r24 = 0; + break; + } + if (lbl_1_bss_35BC[0].unk_1C[0] == 4) { + var_r18 = 1; + } + else { + var_r18 = 0; + } + BoardStoryConfigSet(var_r24, var_r18); + fn_1_E874_inline(); + // looks a bit similar to fn_1_7304 + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = -1; + lbl_1_bss_3114[var_r31].unk_6C = var_r31; + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + for (var_r31 = 1; var_r31 < 4; var_r31++) { + do { + lbl_1_bss_3114[var_r31].unk_68 = rand8() % 8; + for (var_r27 = 0; var_r27 < 4; var_r27++) { + if ((var_r31 != var_r27) && (lbl_1_bss_3114[var_r27].unk_68 != -1) + && (lbl_1_bss_3114[var_r31].unk_68 == lbl_1_bss_3114[var_r27].unk_68)) { + break; + } + } + } while (var_r27 != 4); + } + GWSystem.diff_story = lbl_1_bss_35BC[0].unk_1C[0]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_64 = GWSystem.diff_story; + if (GWSystem.diff_story == 4) { + lbl_1_bss_3114[var_r31].unk_64 = fn_1_7124(); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_3114[var_r31].unk_68; + GWPlayer[var_r31].port = GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_3114[var_r31].unk_6C; + GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff = lbl_1_bss_3114[var_r31].unk_64; + GWPlayerCfg[var_r31].group = 0; + GWPlayer[var_r31].com = GWPlayerCfg[var_r31].iscom = lbl_1_bss_3114[var_r31].unk_60; + } + BoardSaveInit(lbl_1_bss_A8[2]); + fn_1_DFDC(); + fn_1_E71C(0); +} + +void fn_1_F83C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + _ClearFlag(FLAG_ID_MAKE(0, 9)); + lbl_1_bss_35BC[0].unk_1C[0] = GWSystem.diff_story; + fn_1_E244(); + fn_1_E2B4(); + fn_1_D634(); + fn_1_DE60(); + fn_1_7304(); + fn_1_DFDC(); + WipeColorSet(0xFF, 0xFF, 0xFF); + fn_1_7684(); +} + +void fn_1_FEAC(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + _ClearFlag(9); + lbl_1_bss_35BC[0].unk_1C[0] = GWSystem.diff_story; + fn_1_E3FC(); + fn_1_E48C(); + WipeColorSet(0, 0, 0); + fn_1_7684(); +} + +void fn_1_10234(void) +{ + s32 var_r31; + + Vec sp2C = { 0.0f, 0.0f, 560.0f }; + Vec sp20 = { -120.0f, 0.0f, 670.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + Hu3DModelAttrReset(lbl_1_bss_33AC[4].unk_00->model[1], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[4].unk_00, 1, sp2C, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + HuAudSeqPlay(0x2D); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x2F0000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + fn_1_5818(lbl_1_bss_33AC[4].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[4].unk_00, 1, sp20, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_33AC[4].unk_00, 1, 5, 0xF, 1); + fn_1_2808(fn_1_14AB8); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 1, 0, 0, 0); +} + +void fn_1_1053C(void) +{ + fn_1_4B0(0x6E); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + omOvlGotoEx(OVL_OPTION, 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_105B8(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + fn_1_81F0(); + fn_1_10234(); + fn_1_1053C(); +} + +void fn_1_10954(void) +{ + s32 var_r31; + + Vec sp2C = { 0.0f, 0.0f, 560.0f }; + Vec sp20 = { -120.0f, 0.0f, 670.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + Hu3DModelAttrReset(lbl_1_bss_33AC[2].unk_00->model[1], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[2].unk_00, 1, sp2C, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + HuAudSeqPlay(0x2F); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x320000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + fn_1_5818(lbl_1_bss_33AC[2].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[2].unk_00, 1, sp20, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_33AC[2].unk_00, 1, 5, 0xF, 1); + fn_1_2808(fn_1_14AB8); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 1, 0, 0, 0); +} + +void fn_1_10C5C(void) +{ + fn_1_4B0(0x6E); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + omOvlGotoEx(OVL_PRESENT, 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_10CD8(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + fn_1_81F0(); + fn_1_10954(); + fn_1_10C5C(); +} + +void fn_1_11074(void) +{ + s32 var_r31; + s32 var_r30; + + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + Hu3DModelAttrReset(lbl_1_bss_33AC[3].unk_00->model[1], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[3].unk_00, 1, sp14, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x330000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x330001, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + var_r30 = fn_1_1A5C(0x1E0035, 3, 0); + fn_1_16AC(var_r31); + if (var_r30 == 0) { + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x330002, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + } +} + +void fn_1_11368(void) +{ + + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + fn_1_5818(lbl_1_bss_33AC[3].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[3].unk_00, 1, sp14, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_33AC[3].unk_00, 1, 5, 0xF, 1); + fn_1_2808(fn_1_14AB8); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 1, 0, 0, 0); +} + +void fn_1_114A0(void) +{ + fn_1_4B0(0x6E); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_11514(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 spC = 0xA; + s32 sp8 = 0; + fn_1_81F0(); + fn_1_11074(); + fn_1_11368(); + fn_1_114A0(); +} + +void fn_1_116F4(void) +{ + omObjData *var_r31; + + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_366C.unk_00 = var_r31; + switch (lbl_1_bss_A8[0]) { + case 0: + case 20: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_B654; + break; + case 1: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_E874; + break; + case 3: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_105B8; + break; + case 4: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_10CD8; + break; + case 5: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_11514; + break; + case 10: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_F83C; + break; + case 11: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_FEAC; + break; + } + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_366C.unk_04 == NULL) { + continue; + } + lbl_1_bss_366C.unk_04(var_r31, &lbl_1_bss_366C); + } +} + +void fn_1_1184C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + Hu3DData[arg0->model[4]].pos.y = fn_1_3F4(80.0f, 90.0f, arg1->unk_1C[0]++, 360.0f); + if (arg1->unk_1C[0] >= 0x168) { + arg1->unk_1C[0] = 0; + } +} + +void fn_1_11908(omObjData *arg0, s32 arg1) +{ + arg0->model[4] = Hu3DModelCreateFile(arg1 + DATA_MAKE_NUM(DATADIR_MENT, 0xD)); + if (arg1 != 5) { + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x13)); + } + else { + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x14)); + } + arg0->motion[4] = Hu3DMotionIDGet(arg0->model[4]); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + fn_1_59A0(arg0, 4, 4, 0, 2); + fn_1_59A0(arg0, 5, 5, 0, 2); + if (arg1 != 5) { + Hu3DModelPosSet(arg0->model[4], 0.0f, 80.0f, 460.0f); + Hu3DModelHookSet(arg0->model[4], "partybox_fix2-effect_fook1", arg0->model[5]); + } + else { + Hu3DModelPosSet(arg0->model[4], 1200.0f, 80.0f, 460.0f); + Hu3DModelHookSet(arg0->model[4], "koopabox_fix-effect_fook2", arg0->model[5]); + } + Hu3DModelAttrSet(arg0->model[4], 1); + Hu3DModelAttrSet(arg0->model[5], 1); + Hu3DModelShadowSet(arg0->model[4]); +} + +void fn_1_11AD0(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x61)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x69)); + if (lbl_1_bss_A8[0] < 0xA) { + object->model[3] = Hu3DModelCreateFile(lbl_1_bss_A8[0] + DATA_MAKE_NUM(DATADIR_MENT, 0x63)); + } + else { + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x64)); + } + if ((lbl_1_bss_A8[4] == 1) && ((lbl_1_bss_A8[0] == 0) || (lbl_1_bss_A8[0] == 0x14))) { + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x6C)); + Hu3DModelLayerSet(object->model[6], 2); + Hu3DModelPosSet(object->model[6], 50.0f, 0.0f, -100.0f); + object->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x6D)); + Hu3DModelLayerSet(object->model[7], 2); + Hu3DModelPosSet(object->model[7], 1150.0f, 0.0f, -100.0f); + } + object->motion[0] = Hu3DMotionIDGet(object->model[1]); + object->motion[1] = Hu3DMotionIDGet(object->model[3]); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6B)); + if (lbl_1_bss_A8[0] == 0xA) { + fn_1_59A0(object, 2, 3, 0, 2); + } + else { + fn_1_59A0(object, 2, 3, 0, 2); + } + fn_1_59A0(object, 3, 1, 0, 1); + fn_1_59A0(object, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); +} + +void fn_1_11DA4(omObjData *object, s32 arg1, s32 arg2, s32 arg3) +{ + + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x62)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x69)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6B)); + if (lbl_1_bss_A8[0] == 0xB) { + fn_1_59A0(object, 2, 3, 0, 2); + } + else { + fn_1_59A0(object, 2, 2, 0, 2); + Hu3DModelAttrSet(object->model[2], 1); + } + fn_1_59A0(object, 1, 1, 0, 1); + Hu3DModelPosSet(object->model[1], 1200.0f, 0.0f, 0.0f); + Hu3DModelPosSet(object->model[2], 1200.0f, 0.0f, 0.0f); + if (lbl_1_bss_A8[0] == 3) { + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x12)); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x14)); + object->motion[4] = Hu3DMotionIDGet(object->model[4]); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + fn_1_59A0(object, 4, 4, 0, 2); + fn_1_59A0(object, 5, 5, 0, 2); + Hu3DModelPosSet(object->model[4], 1200.0f, 80.0f, 460.0f); + Hu3DModelHookSet(object->model[4], "koopabox_fix-effect_fook2", object->model[5]); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[4]); + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[5], 1); + lbl_1_bss_35BC[1].unk_04 = (MentDllUnkFunc)fn_1_1184C; + } + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + if (lbl_1_bss_A8[0] == 0xB) { + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x12)); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x14)); + object->motion[4] = Hu3DMotionIDGet(object->model[4]); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + fn_1_59A0(object, 4, 4, 0, 2); + fn_1_59A0(object, 5, 5, 0, 2); + Hu3DModelPosSet(object->model[4], 1200.0f, 80.0f, 460.0f); + Hu3DModelHookSet(object->model[4], "koopabox_fix-effect_fook2", object->model[5]); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[4]); + } +} + +void fn_1_121D8(void) +{ + omObjData *var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_CC; + lbl_1_bss_CC = var_r30 + 1; + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_35BC[var_r30].unk_00 = var_r31; + lbl_1_bss_35BC[var_r30].unk_04 = NULL; + if (var_r30 == 0) { + fn_1_11AD0(var_r31); + switch (lbl_1_bss_A8[0]) { + case 0: + fn_1_20B54(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_151B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_17CC8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_18788(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_1BB2C(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + case 1: + fn_1_1D4FC(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_1F6B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_18788(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + case 10: + if (GWSystem.mg_list == 3) { + GWSystem.mg_list = 0; + } + var_r29 = GWSystem.mg_list; + lbl_1_bss_35BC[0].unk_1C[1] = var_r29; + lbl_1_bss_35BC[0].unk_1C[0] = GWPlayerCfg[0].diff; + fn_1_1F6B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_18788(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + case 5: + fn_1_20B54(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_151B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + } + } + else { + fn_1_11DA4(var_r31, 0, 0, 0); + if (lbl_1_bss_A8[0] == 0xB) { + fn_1_1F6B8(lbl_1_bss_35BC, 0, 0, 0); + fn_1_18788(lbl_1_bss_35BC, 0, 0, 0); + } + } + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_35BC[var_r30].unk_04 == NULL) { + continue; + } + lbl_1_bss_35BC[var_r30].unk_04(var_r31, &lbl_1_bss_35BC[var_r30]); + } +} + +void fn_1_127FC(omObjData *arg0, MentDllUnkBss33ACStruct *arg1) +{ + float var_f31; + float var_f30; + + var_f31 = 0.0f; + var_f30 = 0.0f; + var_f31 = Hu3DData[arg0->model[1]].pos.z; + var_f30 = Hu3DData[arg0->model[1]].rot.y; + if (arg1->unk_08 == 1) { + if (var_f31 > 560.0f) { + arg1->unk_08 = 2; + fn_1_59A0(arg0, 1, 1, 0xF, 1); + } + else { + var_f31 += 5.0f; + fn_1_59A0(arg0, 1, 2, 0xF, 1); + var_f30 = fn_1_234(var_f30, 0.0f, 10.0f); + } + } + else if (arg1->unk_08 == 0) { + if (var_f31 <= 460.0f) { + arg1->unk_08 = 2; + fn_1_59A0(arg0, 1, 1, 0xF, 1); + } + else { + var_f31 -= 5.0f; + fn_1_59A0(arg0, 1, 2, 0xF, 1); + var_f30 = fn_1_234(var_f30, lbl_1_data_120[arg1->unk_30], 10.0f); + } + } + Hu3DData[arg0->model[1]].pos.z = var_f31; + Hu3DData[arg0->model[1]].rot.y = var_f30; +} + +void fn_1_12A0C(omObjData *object, s32 arg1) +{ + s32 sp20[6] = { + DATA_MAKE_NUM(DATADIR_MENT, 0x6E), + DATA_MAKE_NUM(DATADIR_MENT, 0x75), + DATA_MAKE_NUM(DATADIR_MENT, 0x7C), + DATA_MAKE_NUM(DATADIR_MENT, 0x83), + DATA_MAKE_NUM(DATADIR_MENT, 0x89), + DATA_MAKE_NUM(DATADIR_MENT, 0x90), + }; + s32 sp38[6][6] = { + DATA_MAKE_NUM(DATADIR_MENT, 0x6F), + DATA_MAKE_NUM(DATADIR_MENT, 0x70), + DATA_MAKE_NUM(DATADIR_MENT, 0x71), + DATA_MAKE_NUM(DATADIR_MENT, 0x72), + DATA_MAKE_NUM(DATADIR_MENT, 0x73), + DATA_MAKE_NUM(DATADIR_MENT, 0x74), + DATA_MAKE_NUM(DATADIR_MENT, 0x76), + DATA_MAKE_NUM(DATADIR_MENT, 0x77), + DATA_MAKE_NUM(DATADIR_MENT, 0x78), + DATA_MAKE_NUM(DATADIR_MENT, 0x79), + DATA_MAKE_NUM(DATADIR_MENT, 0x7A), + DATA_MAKE_NUM(DATADIR_MENT, 0x7B), + DATA_MAKE_NUM(DATADIR_MENT, 0x7D), + DATA_MAKE_NUM(DATADIR_MENT, 0x7E), + DATA_MAKE_NUM(DATADIR_MENT, 0x7F), + DATA_MAKE_NUM(DATADIR_MENT, 0x80), + DATA_MAKE_NUM(DATADIR_MENT, 0x81), + DATA_MAKE_NUM(DATADIR_MENT, 0x82), + DATA_MAKE_NUM(DATADIR_MENT, 0x84), + DATA_MAKE_NUM(DATADIR_MENT, 0x85), + DATA_MAKE_NUM(DATADIR_MENT, 0x85), + DATA_MAKE_NUM(DATADIR_MENT, 0x86), + DATA_MAKE_NUM(DATADIR_MENT, 0x87), + DATA_MAKE_NUM(DATADIR_MENT, 0x88), + DATA_MAKE_NUM(DATADIR_MENT, 0x8A), + DATA_MAKE_NUM(DATADIR_MENT, 0x8B), + DATA_MAKE_NUM(DATADIR_MENT, 0x8C), + DATA_MAKE_NUM(DATADIR_MENT, 0x8D), + DATA_MAKE_NUM(DATADIR_MENT, 0x8E), + DATA_MAKE_NUM(DATADIR_MENT, 0x8F), + DATA_MAKE_NUM(DATADIR_MENT, 0x91), + DATA_MAKE_NUM(DATADIR_MENT, 0x92), + DATA_MAKE_NUM(DATADIR_MENT, 0x93), + DATA_MAKE_NUM(DATADIR_MENT, 0x94), + DATA_MAKE_NUM(DATADIR_MENT, 0x95), + DATA_MAKE_NUM(DATADIR_MENT, 0x91), + }; + object->model[1] = Hu3DModelCreateFile(sp20[arg1]); + object->motion[1] = Hu3DJointMotionFile(object->model[1], sp38[arg1][0]); + object->motion[2] = Hu3DJointMotionFile(object->model[1], sp38[arg1][1]); + object->motion[3] = Hu3DJointMotionFile(object->model[1], sp38[arg1][2]); + object->motion[4] = Hu3DJointMotionFile(object->model[1], sp38[arg1][3]); + object->motion[5] = Hu3DJointMotionFile(object->model[1], sp38[arg1][4]); + object->motion[6] = Hu3DJointMotionFile(object->model[1], sp38[arg1][5]); + { + s32 sp8[6] = { 9, 14, 10, 11, 12, 13 }; + if (arg1 != 3) { + CharModelEffectNpcInit(object->model[1], object->motion[2], 0, sp8[arg1]); + CharModelEffectNpcInit(object->model[1], object->motion[3], 1, sp8[arg1]); + } + } + fn_1_59A0(object, 1, 1, 0, 1); + Hu3DModelPosSet(object->model[1], lbl_1_data_D8[arg1].x, lbl_1_data_D8[arg1].y, lbl_1_data_D8[arg1].z); + Hu3DModelRotSet(object->model[1], 0.0f, lbl_1_data_120[arg1], 0.0f); + if (lbl_1_bss_A8[0] >= 2 && lbl_1_bss_A8[0] < 0xA) { + Hu3DModelPosSet(object->model[1], lbl_1_data_D8[0].x, lbl_1_data_D8[0].y, lbl_1_data_D8[0].z); + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, 0.0f); + if (lbl_1_bss_A8[0] == 5) { + Hu3DModelPosSet(object->model[1], lbl_1_data_D8[0].x, 50.0f + lbl_1_data_D8[0].y, lbl_1_data_D8[0].z); + } + } + if (lbl_1_bss_A8[0] < 0xA) { + Hu3DModelAttrSet(object->model[1], 1); + } + Hu3DModelShadowSet(object->model[1]); + Hu3DModelLayerSet(object->model[1], 2); +} + +void fn_1_12E40(void) +{ + omObjData *var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_D0; + lbl_1_bss_D0 = var_r30 + 1; + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_33AC[var_r30].unk_00 = var_r31; + lbl_1_bss_33AC[var_r30].unk_04 = NULL; + lbl_1_bss_33AC[var_r30].unk_30 = var_r30; + fn_1_12A0C(var_r31, var_r30); + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_33AC[var_r30].unk_04 != NULL) { + lbl_1_bss_33AC[var_r30].unk_04(var_r31, &lbl_1_bss_33AC[var_r30]); + } + if (var_r31->work[0] != 1) { + continue; + } + fn_1_5C08(var_r31); + } +} + +void fn_1_13348(omObjData *arg0) +{ + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x96)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MENT, 0x97)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MENT, 0x98)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MENT, 0x99)); + fn_1_59A0(arg0, 1, 3, 0, 1); + Hu3DModelPosSet(arg0->model[1], 1020.0f, 0.0f, 800.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 60.0f, 0.0f); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelLayerSet(arg0->model[1], 2); +} + +void fn_1_134A8(void) +{ + omObjData *var_r31; + + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_3354.unk_00 = var_r31; + lbl_1_bss_3354.unk_04 = NULL; + fn_1_13348(var_r31); + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_3354.unk_04 != NULL) { + lbl_1_bss_3354.unk_04(var_r31, &lbl_1_bss_3354); + } + if (var_r31->work[0] != 1) { + continue; + } + fn_1_5C08(var_r31); + } +} + +void fn_1_1368C(omObjData *arg0, s32 arg1) +{ + MentDllUnkBss3114Struct *var_r31; + + var_r31 = &lbl_1_bss_3114[arg1]; + var_r31->unk_58 = arg1; + var_r31->unk_5C = 0; + var_r31->unk_60 = var_r31->unk_58; + if (var_r31->unk_60 > 0) { + var_r31->unk_60 = 1; + } + var_r31->unk_64 = 0; + var_r31->unk_68 = var_r31->unk_58; + var_r31->unk_6C = var_r31->unk_58; +} + +void fn_1_136F0(omObjData *arg0, s32 arg1) +{ + MentDllUnkBss3114Struct *var_r31; + + var_r31 = &lbl_1_bss_3114[arg1]; + var_r31->unk_58 = arg1; + var_r31->unk_5C = GWPlayerCfg[var_r31->unk_58].group; + var_r31->unk_60 = GWPlayerCfg[var_r31->unk_58].iscom; + var_r31->unk_64 = GWPlayerCfg[var_r31->unk_58].diff; + var_r31->unk_68 = GWPlayerCfg[var_r31->unk_58].character; + var_r31->unk_6C = GWPlayerCfg[var_r31->unk_58].pad_idx; +} + +void fn_1_137A4(omObjData *arg0, s32 arg1) +{ + MentDllUnkBss3114Struct *var_r31; + + var_r31 = &lbl_1_bss_3114[arg1]; + var_r31->unk_58 = arg1; + var_r31->unk_5C = GWPlayerCfg[var_r31->unk_58].group; + var_r31->unk_60 = GWPlayerCfg[var_r31->unk_58].iscom; + var_r31->unk_64 = GWPlayerCfg[var_r31->unk_58].diff; + var_r31->unk_68 = GWPlayerCfg[var_r31->unk_58].character; + var_r31->unk_6C = GWPlayerCfg[var_r31->unk_58].pad_idx; + arg0->model[1] = CharModelCreate(var_r31->unk_68, 1); + arg0->motion[1] = CharModelMotionCreate(var_r31->unk_68, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], var_r31->unk_68 + DATA_MAKE_NUM(DATADIR_MENT, 0x00)); + fn_1_59A0(arg0, 1, 2, 0, 1); + Hu3DModelPosSet(arg0->model[1], 1320.0f, 0.0f, 800.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, -60.0f, 0.0f); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelLayerSet(arg0->model[1], 2); +} + +void fn_1_13970(void) +{ + MentDllUnkBss3114Struct *var_r28; + omObjData *var_r27; + s32 var_r26; + + var_r26 = lbl_1_bss_D4; + lbl_1_bss_D4 = var_r26 + 1; + var_r27 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_3114[var_r26].unk_00 = var_r27; + lbl_1_bss_3114[var_r26].unk_04 = NULL; + if (lbl_1_bss_A8[0] <= 1) { + fn_1_1368C(var_r27, var_r26); + } + else if (lbl_1_bss_A8[0] == 0xA) { + fn_1_136F0(var_r27, 0); + } + else if (lbl_1_bss_A8[0] == 0xB) { + fn_1_137A4(var_r27, 0); + } + else { + fn_1_1368C(var_r27, var_r26); + } + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_3114[var_r26].unk_04 == NULL) { + continue; + } + lbl_1_bss_3114[var_r26].unk_04(var_r27, &lbl_1_bss_3114[var_r26]); + } +} + +void fn_1_13D60(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 0.0f; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = -10.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 2900.0f; +} + +void fn_1_13DEC(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 0.0f; + sp8[4] = 0.0f; + sp8[8] = -10.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1150.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 180.0f, 15.0f); +} + +void fn_1_13EDC(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 0.0f; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = -10.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 2900.0f; +} + +void fn_1_13F68(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 60.0f, 10.0f); +} + +void fn_1_14058(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); +} + +void fn_1_14148(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 1200.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); +} + +void fn_1_14238(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 125.0f; + sp8[4] = 0.0f; + sp8[8] = -5.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1750.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_14328(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 1200.0f; + sp8[3] = 125.0f; + sp8[4] = 0.0f; + sp8[8] = -5.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1750.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_14418(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_A8[2] / 5; + var_r31 = &lbl_1_bss_64; + if (var_r31->unk_40 == 0x32) { + fn_1_5818(lbl_1_bss_35BC[var_r30].unk_00, 4, 4, 0, 0); + fn_1_5818(lbl_1_bss_35BC[var_r30].unk_00, 5, 5, 0, 0); + HuAudFXPlay(0x7D); + } + sp8[2] = 0.0f; + if (var_r30 == 1) { + sp8[2] = 1200.0f; + } + sp8[3] = 100.0f; + sp8[4] = 460.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 125.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40, 180.0f, 10.0f); + if (var_r31->unk_40++ >= 0x5A) { + if (var_r31->unk_40 == 0x5B) { + if (var_r30 == 0) { + lbl_1_bss_24[10] = HuAudFXPlay(0x22); + } + else { + lbl_1_bss_24[10] = HuAudFXPlay(0x23); + } + } + var_r31->unk_20 = fn_1_20C(var_r31->unk_20, -45.0f, var_r31->unk_40 - 0x5A, 90.0f); + Hu3DData[lbl_1_bss_35BC[var_r30].unk_00->model[4]].rot.x = fn_1_20C(0.0f, 45.0f, var_r31->unk_40 - 0x5A, 90.0f); + } +} + +void fn_1_146D0(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_5150(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_147C0(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 1200.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_5150(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_148B0(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 30.0f; + sp8[4] = 0.0f; + sp8[8] = -5.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1100.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_149A0(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 0.0f; + var_r31->unk_0C = 125.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = 5.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 1750.0f; +} + +void fn_1_14A2C(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 1200.0f; + var_r31->unk_0C = 125.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = -4.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 1750.0f; +} + +void fn_1_14AB8(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 125.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 125.0f; + fn_1_5150(var_r31, sp8, var_r31->unk_40++, 120.0f, 10.0f); +} + +void fn_1_14BA8(void) +{ + s32 var_r31; + s32 var_r30; + var_r30 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 0x35; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31, 0); + HuSprAttrReset(var_r30, var_r31, 4); + HuSprAttrReset(var_r30, var_r31 + 8, 4); + } + HuSprAttrReset(var_r30, 0x28, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 0x10, 0); + HuSprBankSet(var_r30, var_r31 + 0x14, 0); + HuSprAttrReset(var_r30, var_r31 + 0x29, 4); + HuSprAttrReset(var_r30, var_r31 + 0x2D, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +s32 lbl_1_data_57C[4][4] = { + { 0xA8, 0x5A, 0x78, 0x33 }, + { 0xF8, 0xBE, 0x1CA, 0x33 }, + { 0x148, 0x5A, 0x78, 0xDE }, + { 0x198, 0xBE, 0x1CA, 0xDE }, +}; +s32 lbl_1_data_5BC[4][2] = { + { 0x1B, 0x18 }, + { 0x49, 0x18 }, + { 0x77, 0x18 }, + { 0xA5, 0x18 }, +}; +float lbl_1_data_5DC[5][5] = { + { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, + { 314.0f, 168.0f, 0.75f, 265.0f, 416.0f }, + { 366.0f, 204.0f, 0.75f, 240.0f, 440.0f }, + { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, + { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f }, +}; +s32 lbl_1_data_640[4][5] = { + { 0xB4, 0x60, 0x87, 0, 0 }, + { 0xFC, 0xB8, 0xF6, 0xD4, 0x1D4 }, + { 0x144, 0x60, 0x11A, 0xE6, 0x1C2 }, + { 0x18C, 0xB8, 0, 0, 0 }, +}; +s32 lbl_1_data_690[4][4] = { + { 0xB1, 0x68, 0x78, 0x37 }, + { 0xFB, 0x68, 0x1CA, 0x37 }, + { 0x145, 0x68, 0x78, 0x8E }, + { 0x18F, 0x68, 0x1CA, 0x8E }, +}; + +void fn_1_14CE0(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + } + else { + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + } + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], + lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], + lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); + } + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 2.06f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + } +} + +void fn_1_15098(void) +{ + float var_f31; + s32 var_r31; + + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(2.06f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + } +} + +void fn_1_151B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + AnimData *var_r26; + AnimData *var_r25; + AnimData *var_r24; + AnimData *var_r23; + AnimData *var_r22; + + var_r30 = HuSprGrpCreate(0x35); + arg0->unk_30 = var_r30; + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x22)); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31, var_r29); + HuSprPosSet(var_r30, var_r31, lbl_1_data_57C[var_r31 % 4][0], lbl_1_data_57C[var_r31 / 4][1]); + var_r29 = HuSprCreate(var_r26, 0x3F2, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 8, var_r29); + HuSprTPLvlSet(var_r30, var_r31 + 8, 0.5f); + HuSprPosSet(var_r30, var_r31 + 8, lbl_1_data_57C[var_r31 % 4][0] + 1, lbl_1_data_57C[var_r31 / 4][1] + 2); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x23)), 0, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x10, var_r29); + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x28)), 0xA, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x14, var_r29); + } + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x27)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2C)); + var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2D)); + var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2F)); + var_r22 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2E)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r26, 0, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x18, var_r29); + var_r29 = HuSprCreate(var_r25, 0x1E, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x1C, var_r29); + var_r29 = HuSprCreate(var_r24, 0xA, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x20, var_r29); + var_r29 = HuSprCreate(var_r23, 0x14, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x24, var_r29); + HuSprTPLvlSet(var_r30, var_r31 + 0x24, 0.5f); + var_r29 = HuSprCreate(var_r22, 0x14, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x31, var_r29); + } + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x17)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 0x28, var_r29); + HuSprTPLvlSet(var_r30, 0x28, 0.8f); + fn_1_6534(var_r30, 0x28, 288.0f, 240.0f); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r26, 0x7BC, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x29, var_r29); + HuSprBankSet(var_r30, var_r31 + 0x29, var_r31); + fn_1_6534(var_r30, var_r31 + 0x29, lbl_1_data_57C[var_r31][2], lbl_1_data_57C[var_r31][3]); + var_r29 = HuSprCreate(var_r25, 0x7C6, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x2D, var_r29); + HuSprBankSet(var_r30, var_r31 + 0x2D, var_r31); + HuSprTPLvlSet(var_r30, var_r31 + 0x2D, 0.5f); + fn_1_6534(var_r30, var_r31 + 0x2D, lbl_1_data_57C[var_r31][2] + 1, lbl_1_data_57C[var_r31][3] + 6); + } + var_r27 = lbl_1_bss_35BC[0].unk_30; + for (var_r28 = 0; var_r28 < 0x35; var_r28++) { + HuSprAttrSet(var_r27, var_r28, 4); + } + for (var_r28 = 0; var_r28 < 8; var_r28++) { + HuSprBankSet(var_r27, var_r28, 0); + HuSprAttrReset(var_r27, var_r28, 4); + HuSprAttrReset(var_r27, var_r28 + 8, 4); + } + HuSprAttrReset(var_r27, 0x28, 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuSprBankSet(var_r27, var_r28 + 0x10, 0); + HuSprBankSet(var_r27, var_r28 + 0x14, 0); + HuSprAttrReset(var_r27, var_r28 + 0x29, 4); + HuSprAttrReset(var_r27, var_r28 + 0x2D, 4); + } + HuSprGrpPosSet(var_r27, 0.0f, -500.0f); +} + +void fn_1_15950(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + MentDllUnkBss3114Struct *var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r29, var_r31, 0); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r29, var_r31 + 0x10, 0); + HuSprBankSet(var_r29, var_r31 + 0x14, 0); + HuSprBankSet(var_r29, var_r31 + 0x18, 0); + HuSprBankSet(var_r29, var_r31 + 0x1C, 0); + HuSprBankSet(var_r29, var_r31 + 0x20, 0); + } + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_4D8(); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r30 = &lbl_1_bss_3114[var_r28]; + var_f31 = fn_1_32C(lbl_1_data_57C[var_r30->unk_68 % 4][0], lbl_1_data_57C[var_r30->unk_58 % 4][0], var_r31, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_57C[var_r30->unk_68 / 4][1], lbl_1_data_57C[var_r30->unk_58 / 4][1], var_r31, 10.0f); + HuSprPosSet(var_r29, var_r30->unk_58 + 0x10, var_f31, var_f30); + HuSprPosSet(var_r29, var_r30->unk_58 + 0x14, var_f31, var_f30); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = lbl_1_bss_3114[var_r31].unk_58; + lbl_1_bss_3114[var_r31].unk_70[0] = 0; + } +} + +void fn_1_15CB4(omObjData *arg0, MentDllUnkBss3114Struct *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; + + var_r25 = lbl_1_bss_35BC[0].unk_30; + var_r27 = 0; + var_r26 = 0; + var_r30 = arg1->unk_68 % 4; + var_r24 = var_r30; + var_r29 = arg1->unk_68 / 4; + var_r23 = var_r29; + if (arg1->unk_70[0] == 0) { + if ((HuPadBtnDown[arg1->unk_6C] & PAD_BUTTON_A) != 0) { + arg1->unk_70[0] = 1; + HuSprBankSet(var_r25, arg1->unk_68, 1); + HuSprBankSet(var_r25, arg1->unk_58 + 0x10, 1); + HuSprBankSet(var_r25, arg1->unk_58 + 0x14, 1); + HuAudFXPlay(arg1->unk_68 + 0x6D); + } + else { + if ((HuPadStkX[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 2) != 0)) { + var_r30++; + var_r27 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if ((HuPadStkX[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 1) != 0)) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if ((HuPadStkY[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 4) != 0)) { + var_r29++; + var_r26 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if ((HuPadStkY[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 8) != 0)) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[arg1->unk_6C] & PAD_BUTTON_B) != 0) { + arg1->unk_70[0] = 0; + HuSprBankSet(var_r25, arg1->unk_68, 0); + HuSprBankSet(var_r25, arg1->unk_58 + 0x10, 0); + HuSprBankSet(var_r25, arg1->unk_58 + 0x14, 0); + HuAudFXPlay(3); + } + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + do { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_58) && (lbl_1_bss_3114[var_r28].unk_60 == 0) + && ((var_r30 + (var_r29 * 4)) == lbl_1_bss_3114[var_r28].unk_68)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 3) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r24; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r23; + } + 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_r24; + var_r29 = var_r23; + } + break; + } + } + } while (var_r28 != 4); + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + arg1->unk_68 = var_r30 + (var_r29 * 4); + HuAudFXPlay(0); + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[var_r24][0], lbl_1_data_57C[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_57C[var_r23][1], lbl_1_data_57C[var_r29][1], var_r28, 10.0f); + HuSprPosSet(var_r25, arg1->unk_58 + 0x10, var_f31, var_f30); + HuSprPosSet(var_r25, arg1->unk_58 + 0x14, var_f31, var_f30); + } + } + } +} + +void fn_1_162A0(MentDllUnkBss3114Struct *arg0) +{ + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + arg0->unk_64 = 0; + HuSprBankSet(var_r30, arg0->unk_58 + 0x20, arg0->unk_64); + HuSprPosSet(var_r30, arg0->unk_58 + 0x20, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x20, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x24, 4); +} + +s32 fn_1_1648C(MentDllUnkBss3114Struct *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_35BC[0].unk_30; +loop_1: + fn_1_4D8(); + var_r28 = 0; + var_r26 = arg0->unk_64; + if (HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) { + block_3: + if (lbl_1_bss_A8[5] == 1) { + arg0->unk_64++; + var_r28 = 1; + if (arg0->unk_64 > 3) { + arg0->unk_64 = 0; + } + } + else { + arg0->unk_64++; + var_r28 = 1; + if (arg0->unk_64 > 2) { + arg0->unk_64 = 0; + } + } + block_19: + if (arg0->unk_64 != var_r26) { + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_58 + 0x20, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r29, arg0->unk_58 + 0x24, 1.0f + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + } + HuSprBankSet(var_r29, arg0->unk_58 + 0x20, arg0->unk_64); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 0xA), lbl_1_data_57C[arg0->unk_68 % 4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_58 + 0x20, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r29, arg0->unk_58 + 0x24, 1.0f + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + } + } + goto loop_1; + } + if ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT) != 0) { + goto block_3; + } + if (HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) { + block_10: + if (lbl_1_bss_A8[5] == 1) { + arg0->unk_64--; + var_r28 = -1; + if (arg0->unk_64 < 0) { + arg0->unk_64 = 3; + } + } + else { + arg0->unk_64--; + var_r28 = -1; + if (arg0->unk_64 < 0) { + arg0->unk_64 = 2; + } + } + goto block_19; + } + if ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT) != 0) { + goto block_10; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_A) != 0) { + var_r27 = 1; + HuAudFXPlay(2); + } + else if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + var_r27 = 0; + HuAudFXPlay(3); + } + else { + goto block_19; + } + if (var_r27 == 1) { + HuSprPosSet(var_r29, arg0->unk_58 + 0x31, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprBankSet(var_r29, arg0->unk_58 + 0x31, arg0->unk_64); + HuSprAttrReset(var_r29, arg0->unk_58 + 0x31, 4); + HuSprAttrSet(var_r29, arg0->unk_58 + 0x20, 4); + } + return var_r27; +} + +void fn_1_16B68(omObjData *arg0, MentDllUnkBss3114Struct *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_r23; + s32 var_r22; + + var_r27 = lbl_1_bss_35BC[0].unk_30; + var_r26 = 0; + var_r25 = 0; + sp8 = arg1->unk_64; + var_r23 = var_r30 = arg1->unk_68 % 4; + var_r29 = arg1->unk_68 / 4; + var_r22 = var_r29; + if (arg1->unk_70[0] == 0) { + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) != 0) { + arg1->unk_70[0] = 1; + HuSprBankSet(var_r27, arg1->unk_68, 1); + HuSprBankSet(var_r27, arg1->unk_58 + 0x18, 1); + HuSprBankSet(var_r27, arg1->unk_58 + 0x1C, 1); + HuAudFXPlay(arg1->unk_68 + 0x6D); + fn_1_162A0(arg1); + } + else { + if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2) != 0)) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1) != 0)) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if ((HuPadStkY[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 4) != 0)) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if ((HuPadStkY[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 8) != 0)) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) != 0) { + arg1->unk_70[0] = arg1->unk_70[2] = 0; + HuSprBankSet(var_r27, arg1->unk_68, 0); + HuSprBankSet(var_r27, arg1->unk_58 + 0x18, 0); + HuSprBankSet(var_r27, arg1->unk_58 + 0x1C, 0); + HuSprAttrSet(var_r27, arg1->unk_58 + 0x20, 4); + HuSprAttrSet(var_r27, arg1->unk_58 + 0x24, 4); + HuAudFXPlay(3); + } + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + do { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_58) && (lbl_1_bss_3114[var_r28].unk_70[0] == 1) + && ((var_r30 + (var_r29 * 4)) == lbl_1_bss_3114[var_r28].unk_68)) { + 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 (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + arg1->unk_68 = var_r30 + (var_r29 * 4); + HuAudFXPlay(0); + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[var_r23][0], lbl_1_data_57C[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_57C[var_r22][1], lbl_1_data_57C[var_r29][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_58 + 0x18, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_58 + 0x1C, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_58 + 0x20, var_f31, 35.0f + var_f30); + HuSprPosSet(var_r27, arg1->unk_58 + 0x24, 1.0f + var_f31, 37.0f + var_f30); + } + } + } + (void)var_r30; +} + +void fn_1_173FC(MentDllUnkBss3114Struct *arg0) +{ + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + do { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != arg0->unk_58) && (lbl_1_bss_3114[var_r29].unk_70[0] == 1) && (arg0->unk_68 == lbl_1_bss_3114[var_r29].unk_68)) { + arg0->unk_68++; + break; + } + } + } while (var_r29 != 4); + arg0->unk_64 = 0; + HuSprBankSet(var_r30, arg0->unk_68, 0); + HuSprBankSet(var_r30, arg0->unk_58 + 0x18, 0); + HuSprBankSet(var_r30, arg0->unk_58 + 0x1C, 0); + HuSprBankSet(var_r30, arg0->unk_58 + 0x20, arg0->unk_64); + HuSprBankSet(var_r30, arg0->unk_58 + 0x31, arg0->unk_64); + HuSprPosSet(var_r30, arg0->unk_58 + 0x18, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1]); + HuSprPosSet(var_r30, arg0->unk_58 + 0x1C, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1]); + HuSprPosSet(var_r30, arg0->unk_58 + 0x20, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + HuSprPosSet(var_r30, arg0->unk_58 + 0x31, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + arg0->unk_70[2] = 0; + HuSprAttrReset(var_r30, arg0->unk_58 + 0x18, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x1C, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, 4); +} + +void fn_1_17914(MentDllUnkBss3114Struct *arg0) +{ + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + HuSprBankSet(var_r30, arg0->unk_68, 0); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x18, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x1C, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, 4); +} + +void fn_1_179DC(void) +{ + MentDllUnkBss3114Struct *var_r31; + s32 var_r29; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r29 = 0; var_r29 < 0x11; var_r29++) { + HuSprAttrSet(var_r30, var_r29, 4); + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = &lbl_1_bss_3114[var_r29]; + HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); + HuSprAttrReset(var_r30, var_r31->unk_68, 4); + if (var_r31->unk_60 == 0) { + HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); + HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + } + else { + HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); + HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + } + } + HuSprAttrReset(var_r30, 0x10, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); +} + +void fn_1_17CC8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + MentDllUnkBss3114Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + AnimData *var_r25; + AnimData *var_r24; + + var_r26 = HuSprGrpCreate(0x11); + arg0->unk_34 = var_r26; + for (var_r30 = 0; var_r30 < 8; var_r30++) { + var_r27 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MENT, 0x31)), 0x3E8, 0); + HuSprGrpMemberSet(var_r26, var_r30, var_r27); + } + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3A)); + var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3B)); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27 = HuSprCreate(var_r25, 0x3DE, 0); + HuSprGrpMemberSet(var_r26, var_r30 + 8, var_r27); + var_r27 = HuSprCreate(var_r24, 0x3DE, 0); + HuSprGrpMemberSet(var_r26, var_r30 + 0xC, var_r27); + } + var_r27 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x30)), 0x7D0, 0); + HuSprGrpMemberSet(var_r26, 0x10, var_r27); + HuSprTPLvlSet(var_r26, 0x10, 0.8f); + HuSprPosSet(var_r26, 0x10, 96.0f, 32.0f); + var_r29 = lbl_1_bss_35BC[0].unk_34; + for (var_r28 = 0; var_r28 < 0x11; var_r28++) { + HuSprAttrSet(var_r29, var_r28, 4); + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r31 = &lbl_1_bss_3114[var_r28]; + HuSprPosSet(var_r29, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); + HuSprAttrReset(var_r29, var_r31->unk_68, 4); + if (var_r31->unk_60 == 0) { + HuSprBankSet(var_r29, var_r31->unk_58 + 8, var_r31->unk_58); + HuSprPosSet(var_r29, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r29, var_r31->unk_58 + 8, 4); + } + else { + HuSprBankSet(var_r29, var_r31->unk_58 + 0xC, var_r31->unk_64); + HuSprPosSet(var_r29, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r29, var_r31->unk_58 + 0xC, 4); + } + } + HuSprAttrReset(var_r29, 0x10, 4); + HuSprGrpPosSet(var_r29, 16.0f, -500.0f); +} + +void fn_1_1811C(void) +{ + float var_f31; + MentDllUnkBss3114Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r29 = 0; var_r29 < 0x11; var_r29++) { + HuSprAttrSet(var_r30, var_r29, 4); + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = &lbl_1_bss_3114[var_r29]; + HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); + HuSprAttrReset(var_r30, var_r31->unk_68, 4); + if (var_r31->unk_60 == 0) { + HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); + HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + } + else { + HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); + HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + } + } + HuSprAttrReset(var_r30, 0x10, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); + for (var_r28 = 0; var_r28 <= 0x3C; var_r28++) { + fn_1_4D8(); + if (var_r28 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 50.0f, var_r28, 50.0f); + } + else { + var_f31 = fn_1_254(50.0f, 40.0f, var_r28 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + } +} + +void fn_1_1850C(void) +{ + float var_f31; + s32 var_r31; + + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; + for (var_r31 = 0; var_r31 <= 0x4B; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(40.0f, 50.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(50.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + if (var_r31 >= 0xF) { + var_f31 = fn_1_254(210.0f, -500.0f, var_r31 - 0xF, 60.0f); + HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y = (s32)fn_1_234(HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y, var_f31, 10.0f); + } + } +} + +void fn_1_1872C(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_38; + for (var_r31 = 0; var_r31 < 7; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } +} + +void fn_1_18788(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r31 = HuSprGrpCreate(7); + arg0->unk_38 = var_r31; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3C)), 0x7DA, 0); + HuSprGrpMemberSet(var_r31, 0, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3D)), 0x7C6, 0); + HuSprGrpMemberSet(var_r31, 1, var_r30); + HuSprPosSet(var_r31, 1, 0.0f, -80.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3E)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 2, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3F)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 3, var_r30); + HuSprPosSet(var_r31, 3, 0.0f, -80.0f); + if (lbl_1_bss_A8[0] != 0) { + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5A)), 0x7BC, 0); + HuSprGrpMemberSet(var_r31, 4, var_r30); + HuSprPosSet(var_r31, 4, -140.0f, -86.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5B)), 0x7BC, 0); + HuSprGrpMemberSet(var_r31, 5, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5C)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 6, var_r30); + HuSprScaleSet(var_r31, 6, 1.0f, 0.875f); + HuSprTPLvlSet(var_r31, 6, 0.5f); + } + HuSprExecLayerSet(0x40, 1); + HuSprGrpDrawNoSet(var_r31, 0x40); + var_r28 = lbl_1_bss_35BC[0].unk_38; + for (var_r29 = 0; var_r29 < 7; var_r29++) { + HuSprAttrSet(var_r28, var_r29, 4); + } +} + +void fn_1_18A54(s32 arg0) +{ + float var_f31; + float var_f30; + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_38; + if (arg0 != 5) { + HuSprBankSet(var_r31, 0, arg0); + HuSprBankSet(var_r31, 1, arg0); + HuSprAttrSet(var_r31, 2, 4); + HuSprAttrSet(var_r31, 3, 4); + HuSprAttrReset(var_r31, 0, 4); + HuSprAttrReset(var_r31, 1, 4); + if (lbl_1_bss_A8[0] != 0) { + if ((arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) || (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) + || (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) || (arg0 == 3 && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0)) + || (arg0 == 4 && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0))) { + HuSprAttrReset(var_r31, 4, 4); + HuSprAttrReset(var_r31, 5, 4); + HuSprTPLvlSet(var_r31, 5, 0.8f); + HuSprAttrReset(var_r31, 6, 4); + HuSprTPLvlSet(var_r31, 6, 0.5f); + } + else { + HuSprAttrSet(var_r31, 4, 4); + HuSprAttrSet(var_r31, 5, 4); + HuSprAttrSet(var_r31, 6, 4); + } + } + } + else { + HuSprAttrSet(var_r31, 0, 4); + HuSprAttrSet(var_r31, 1, 4); + HuSprAttrReset(var_r31, 2, 4); + HuSprAttrReset(var_r31, 3, 4); + } + lbl_1_bss_35BC[0].unk_08[0] = arg0; + lbl_1_bss_35BC[0].unk_1C[1] = (rand8() % 10) * 0x24; + HuSprGrpScaleSet(var_r31, 0.0f, 0.0f); + for (arg0 = 0; arg0 <= 0xF; arg0++) { + fn_1_4D8(); + if (arg0 <= 0xA) { + var_f31 = fn_1_32C(0.0f, 1.0f, arg0, 10.0f); + var_f30 = 0.01f; + } + else { + var_f31 = 1.0f; + var_f30 = fn_1_32C(0.01f, 1.0f, arg0 - 0xA, 5.0f); + } + HuSprGrpScaleSet(var_r31, var_f31, var_f30); + } +} + +void fn_1_18DCC(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_35BC[0].unk_38; + for (var_r31 = 0; var_r31 <= 0xF; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = 1.0f; + var_f30 = fn_1_32C(1.0f, 0.01f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_32C(1.0f, 0.0f, var_r31 - 0xA, 5.0f); + var_f30 = 0.01f; + } + HuSprGrpScaleSet(var_r29, var_f31, var_f30); + } + var_r28 = lbl_1_bss_35BC[0].unk_38; + for (var_r30 = 0; var_r30 < 7; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; +} + +void fn_1_18F74(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + Vec sp14; + Vec sp8; + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_38; + if (lbl_1_bss_35BC[0].unk_08[0] != -1) { + sp14.x = lbl_1_data_D8[lbl_1_bss_35BC[0].unk_08[0]].x; + sp14.y = 0.0f; + sp14.z = lbl_1_data_D8[lbl_1_bss_35BC[0].unk_08[0]].z; + Hu3D3Dto2D(&sp14, 1, &sp8); + sp8.y = fn_1_3F4(210.0f, 220.0f, lbl_1_bss_35BC[0].unk_1C[1]++, 360.0f); + if (lbl_1_bss_35BC[0].unk_1C[1] >= 0x168) { + lbl_1_bss_35BC[0].unk_1C[1] = 0; + } + HuSprGrpPosSet(var_r31, sp8.x, (s32)sp8.y); + } +} + +void fn_1_190E8(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_3C; + for (var_r31 = 0; var_r31 < 0x5B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (lbl_1_bss_A8[2] != 5) { + HuSprBankSet(var_r30, 0, lbl_1_bss_A8[2]); + HuSprAttrReset(var_r30, 0, 4); + } + else { + HuSprAttrReset(var_r30, 1, 4); + } + HuSprAttrReset(var_r30, 2, 4); + HuSprPosSet(var_r30, 2, 288.0f, lbl_1_data_5DC[0][1]); + HuSprScaleSet(var_r30, 2, 1.0f, lbl_1_data_5DC[0][2]); + 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_5DC[0][var_r31 + 3], lbl_1_data_5DC[0][1]); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, 4); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[0][1]); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 4); + HuSprPosSet( + var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 2.0f + lbl_1_data_5DC[0][1]); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, 4); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 9.0f); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 4); + HuSprPosSet( + var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x1B, 4); + HuSprBankSet(var_r30, var_r31 + 0x1B, lbl_1_bss_3114[var_r31].unk_64); + HuSprPosSet(var_r30, var_r31 + 0x1B, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[0][1]); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x17, 4); + HuSprBankSet(var_r30, var_r31 + 0x17, lbl_1_bss_3114[var_r31].unk_58); + HuSprPosSet(var_r30, var_r31 + 0x17, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0] - 8.0f, lbl_1_data_5DC[0][1] - 21.0f); + } + HuSprPosSet(var_r30, var_r31 + 0x2F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 20.0f + lbl_1_data_5DC[4][1]); + HuSprAttrReset(var_r30, var_r31 + 0x2F, 4); + HuSprPosSet(var_r30, var_r31 + 0x33, 10.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[4][1]); + HuSprAttrReset(var_r30, var_r31 + 0x33, 4); + HuSprBankSet(var_r30, var_r31 + 0x33, 0); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x37, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); + HuSprPosSet(var_r30, var_r31 + 0x3F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 23.0f + lbl_1_data_5DC[4][1]); + HuSprPosSet(var_r30, var_r31 + 0x43, 14.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 24.0f + lbl_1_data_5DC[4][1]); + HuSprBankSet(var_r30, var_r31 + 0x43, 0); + } + HuSprPosSet(var_r30, 0x47, 340.0f, lbl_1_data_5DC[0][1]); + HuSprScaleSet(var_r30, 0x47, 0.0f, 0.0f); + HuSprAttrReset(var_r30, 0x47, 4); + HuSprAttrReset(var_r30, 0x48, 4); + HuSprPosSet(var_r30, 0x48, 366.0f, lbl_1_data_5DC[1][1]); + HuSprAttrReset(var_r30, 0x49, 4); + HuSprPosSet(var_r30, 0x49, 367.0f, 2.0f + lbl_1_data_5DC[1][1]); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x4A, 4); + HuSprPosSet(var_r30, var_r31 + 0x4A, 0x141 - (var_r31 * 0x1A), lbl_1_data_5DC[1][1]); + HuSprBankSet(var_r30, var_r31 + 0x4A, var_r31); + HuSprAttrReset(var_r30, var_r31 + 0x4C, 4); + HuSprPosSet(var_r30, var_r31 + 0x4C, 0x142 - (var_r31 * 0x1A), 2.0f + lbl_1_data_5DC[1][1]); + HuSprBankSet(var_r30, var_r31 + 0x4C, var_r31); + } + HuSprAttrReset(var_r30, 0x4E, 4); + HuSprPosSet(var_r30, 0x4E, 340.0f, lbl_1_data_5DC[2][1]); + HuSprBankSet(var_r30, 0x4E, 0); + HuSprAttrReset(var_r30, 0x4F, 4); + HuSprPosSet(var_r30, 0x4F, 341.0f, 2.0f + lbl_1_data_5DC[2][1]); + HuSprBankSet(var_r30, 0x4F, 0); + HuSprAttrReset(var_r30, 0x50, 4); + HuSprPosSet(var_r30, 0x50, 340.0f, lbl_1_data_5DC[3][1]); + HuSprBankSet(var_r30, 0x50, 0); + HuSprAttrReset(var_r30, 0x51, 4); + HuSprPosSet(var_r30, 0x51, 341.0f, 2.0f + lbl_1_data_5DC[3][1]); + HuSprBankSet(var_r30, 0x51, 0); + HuSprAttrReset(var_r30, 0x52, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x53, 4); + HuSprAttrReset(var_r30, var_r31 + 0x57, 4); + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + HuWinPosSet(lbl_1_bss_35BC[0].unk_44[var_r31], 100.0f, -500.0f + (lbl_1_data_5DC[var_r31][1] - 21.0f)); + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_35BC[1].unk_08[var_r31] = lbl_1_bss_35BC[1].unk_1C[var_r31] = 0; + } + lbl_1_bss_35BC[1].unk_1C[1] = 0x14; + HuSprBankSet(var_r30, 0x4A, 0); + HuSprBankSet(var_r30, 0x4C, 0); + HuSprBankSet(var_r30, 0x4B, 2); + HuSprBankSet(var_r30, 0x4D, 2); + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + float sp8[2]; + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = 0; + var_r30 = lbl_1_bss_35BC[0].unk_3C; + { + s32 sp10[4][4] = { + { 0x106, 0x106, 0x106, 0x106 }, + { 0x13A, 0x133, 0x175, 0x175 }, + { 0x16E, 0x175, 0x133, 0x1A2 }, + { 0x1A2, 0x1A2, 0x1A2, 0x133 }, + }; + lbl_1_bss_35BC[0].unk_08[3] = 0; + var_r27 = arg1->unk_08[0]; + sp8[0] = HuSprData[HuSprGrpData[var_r30].members[3]].x; + sp8[1] = HuSprData[HuSprGrpData[var_r30].members[4]].x; + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) != 0) { + arg1->unk_08[0]++; + HuAudFXPlay(2); + if (arg1->unk_08[0] > 4) { + lbl_1_bss_35BC[0].unk_08[1] = 1; + arg1->unk_08[0] = 4; + fn_1_1C674(); + } + lbl_1_bss_35BC[0].unk_08[3] = 1; + } + else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) != 0) { + arg1->unk_08[0]--; + HuAudFXPlay(3); + if (arg1->unk_08[0] < 0) { + lbl_1_bss_35BC[0].unk_08[1] = -1; + arg1->unk_08[0] = 0; + fn_1_1C674(); + } + lbl_1_bss_35BC[0].unk_08[3] = 1; + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT) != 0)) { + var_r26 = 1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + switch (arg1->unk_08[0]) { + case 0: + arg1->unk_1C[0] += 1; + if (arg1->unk_1C[0] > 3) { + arg1->unk_1C[0] = 0; + } + break; + case 1: + arg1->unk_1C[1] += 5; + if (arg1->unk_1C[1] > 0x32) { + arg1->unk_1C[1] = 0xA; + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[2]++; + if (arg1->unk_1C[2] > 2) { + arg1->unk_1C[2] = 0; + } + } + else { + arg1->unk_1C[2]++; + if (arg1->unk_1C[2] > 1) { + arg1->unk_1C[2] = 0; + } + } + break; + case 3: + arg1->unk_1C[3]++; + if (arg1->unk_1C[3] > 1) { + arg1->unk_1C[3] = 0; + } + break; + case 4: + arg1->unk_1C[4] += 1; + if (arg1->unk_1C[4] > 3) { + arg1->unk_1C[4] = 0; + } + break; + } + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT) != 0)) { + var_r26 = -1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + switch (arg1->unk_08[0]) { + case 0: + arg1->unk_1C[0] -= 1; + if (arg1->unk_1C[0] < 0) { + arg1->unk_1C[0] = 3; + } + break; + case 1: + arg1->unk_1C[1] -= 5; + if (arg1->unk_1C[1] < 0xA) { + arg1->unk_1C[1] = 0x32; + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[2]--; + if (arg1->unk_1C[2] < 0) { + arg1->unk_1C[2] = 2; + } + } + else { + arg1->unk_1C[2]--; + if (arg1->unk_1C[2] < 0) { + arg1->unk_1C[2] = 1; + } + } + break; + case 3: + arg1->unk_1C[3]--; + if (arg1->unk_1C[3] < 0) { + arg1->unk_1C[3] = 1; + } + break; + case 4: + arg1->unk_1C[4] -= 1; + if (arg1->unk_1C[4] < 0) { + arg1->unk_1C[4] = 3; + } + break; + } + } + else if (arg1->unk_08[0] == 4) { + if ((HuPadStkY[lbl_1_bss_3114->unk_6C] >= 0x1E) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_UP) != 0)) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f29 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + } + else { + var_f29 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + } + HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - 48.0f) - var_f29); + if (var_r29 == 3) { + arg1->unk_08[arg1->unk_1C[4] + 1]--; + if (arg1->unk_08[arg1->unk_1C[4] + 1] < 0) { + arg1->unk_08[arg1->unk_1C[4] + 1] = 9; + } + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x33, arg1->unk_08[arg1->unk_1C[4] + 1]); + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x43, arg1->unk_08[arg1->unk_1C[4] + 1]); + } + } + } + else if ((HuPadStkY[lbl_1_bss_3114->unk_6C] <= -0x1E) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 4) != 0)) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f29 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + } + else { + var_f29 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + } + HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + lbl_1_data_5DC[4][1] + var_f29); + if (var_r29 == 3) { + arg1->unk_08[arg1->unk_1C[4] + 1]++; + if (arg1->unk_08[arg1->unk_1C[4] + 1] > 9) { + arg1->unk_08[arg1->unk_1C[4] + 1] = 0; + } + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x33, arg1->unk_08[arg1->unk_1C[4] + 1]); + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x43, arg1->unk_08[arg1->unk_1C[4] + 1]); + } + } + } + } + if (var_r26 != 0) { + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 5.0f); + } + else { + var_f31 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29 - 5, 5.0f); + } + if (arg1->unk_08[0] != 4) { + if (var_r26 == 1) { + HuSprPosSet(var_r30, 4, var_f31 + lbl_1_data_5DC[arg1->unk_08[0]][4], lbl_1_data_5DC[arg1->unk_08[0]][1]); + } + else { + HuSprPosSet(var_r30, 3, lbl_1_data_5DC[arg1->unk_08[0]][3] - var_f31, lbl_1_data_5DC[arg1->unk_08[0]][1]); + } + } + switch (arg1->unk_08[0]) { + case 0: + var_r27 = arg1->unk_1C[0] - var_r26; + if (var_r27 > 3) { + var_r27 = 0; + } + else if (var_r27 < 0) { + var_r27 = 3; + } + if (arg1->unk_1C[0] != 0) { + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29, 10.0f); + } + else { + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 10.0f); + } + HuSprScaleSet(var_r30, 0x47, var_f30, var_f30); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_f31 = fn_1_32C( + sp10[lbl_1_bss_3114[var_r28].unk_58][var_r27], sp10[lbl_1_bss_3114[var_r28].unk_58][arg1->unk_1C[0]], var_r29, 10.0f); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 7, var_f31, lbl_1_data_5DC[0][1]); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0xF, 1.0f + var_f31, 2.0f + lbl_1_data_5DC[0][1]); + if (lbl_1_bss_3114[var_r28].unk_60 != 0) { + HuSprPosSet(var_r30, var_r28 + 0x1B, var_f31, 21.0f + lbl_1_data_5DC[0][1]); + } + else { + HuSprPosSet(var_r30, var_r28 + 0x17, var_f31 - 8.0f, lbl_1_data_5DC[0][1] - 21.0f); + } + } + break; + case 1: + if (var_r26 == 1) { + HuSprPosSet(var_r30, 0x48, 366.0f + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x49, 367.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4A, 321.0f + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, 322.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, 295.0f + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, 296.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + } + else { + HuSprPosSet(var_r30, 0x48, 366.0f - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x49, 367.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4A, 321.0f - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, 322.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, 295.0f - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, 296.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + } + HuSprScaleSet(var_r30, 0x48, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x49, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4A, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4C, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4B, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4D, 1.0f, var_f30); + break; + case 2: + if (var_r26 == 1) { + HuSprPosSet(var_r30, 0x4E, 340.0f + var_f31, lbl_1_data_5DC[2][1]); + HuSprPosSet(var_r30, 0x4F, 341.0f + var_f31, 2.0f + lbl_1_data_5DC[2][1]); + } + else { + HuSprPosSet(var_r30, 0x4E, 340.0f - var_f31, lbl_1_data_5DC[2][1]); + HuSprPosSet(var_r30, 0x4F, 341.0f - var_f31, 2.0f + lbl_1_data_5DC[2][1]); + } + HuSprScaleSet(var_r30, 0x4E, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4F, 1.0f, var_f30); + break; + case 3: + if (var_r26 == 1) { + HuSprPosSet(var_r30, 0x50, 340.0f + var_f31, lbl_1_data_5DC[3][1]); + HuSprPosSet(var_r30, 0x51, 341.0f + var_f31, 2.0f + lbl_1_data_5DC[3][1]); + } + else { + HuSprPosSet(var_r30, 0x50, 340.0f - var_f31, lbl_1_data_5DC[3][1]); + HuSprPosSet(var_r30, 0x51, 341.0f - var_f31, 2.0f + lbl_1_data_5DC[3][1]); + } + HuSprScaleSet(var_r30, 0x50, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x51, 1.0f, var_f30); + break; + case 4: + var_f31 = fn_1_32C(sp8[0], lbl_1_data_5DC[arg1->unk_1C[4]][0] - 32.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 3, var_f31, lbl_1_data_5DC[4][1]); + var_f31 = fn_1_32C(sp8[1], 33.0f + lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); + HuSprPosSet(var_r30, 4, var_f31, lbl_1_data_5DC[4][1]); + var_f31 = fn_1_32C(32.0f + sp8[0], lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); + HuSprPosSet(var_r30, 5, var_f31, lbl_1_data_5DC[4][1] - 48.0f); + HuSprPosSet(var_r30, 6, var_f31, 49.0f + lbl_1_data_5DC[4][1]); + if (var_r29 == 3) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); + HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); + HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + } + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + } + break; + } + if (var_r29 == 6) { + switch (arg1->unk_08[0]) { + case 1: + HuSprBankSet(var_r30, 0x4A, arg1->unk_1C[1] % 10); + HuSprBankSet(var_r30, 0x4C, arg1->unk_1C[1] % 10); + HuSprBankSet(var_r30, 0x4B, arg1->unk_1C[1] / 10); + HuSprBankSet(var_r30, 0x4D, arg1->unk_1C[1] / 10); + break; + case 2: + HuSprBankSet(var_r30, 0x4E, arg1->unk_1C[2]); + HuSprBankSet(var_r30, 0x4F, arg1->unk_1C[2]); + break; + case 3: + HuSprBankSet(var_r30, 0x50, arg1->unk_1C[3]); + HuSprBankSet(var_r30, 0x51, arg1->unk_1C[3]); + break; + } + } + } + } + else if (var_r27 != arg1->unk_08[0]) { + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + var_f29 = fn_1_32C(lbl_1_data_5DC[var_r27][1], lbl_1_data_5DC[arg1->unk_08[0]][1], var_r29, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_5DC[var_r27][2], lbl_1_data_5DC[arg1->unk_08[0]][2], var_r29, 10.0f); + HuSprPosSet(var_r30, 2, 288.0f, var_f29); + HuSprScaleSet(var_r30, 2, 1.0f, var_f30); + if (arg1->unk_08[0] != 4) { + var_f31 = fn_1_32C(sp8[0], lbl_1_data_5DC[arg1->unk_08[0]][3], var_r29, 10.0f); + HuSprPosSet(var_r30, 3, var_f31, var_f29); + var_f31 = fn_1_32C(sp8[1], lbl_1_data_5DC[arg1->unk_08[0]][4], var_r29, 10.0f); + HuSprPosSet(var_r30, 4, var_f31, var_f29); + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 10.0f); + HuSprTPLvlSet(var_r30, 5, var_f30); + HuSprTPLvlSet(var_r30, 6, var_f30); + var_f29 = fn_1_32C(0.0f, 20.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); + HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); + HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); + HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + } + } + else { + var_f31 = fn_1_32C(sp8[0], lbl_1_data_5DC[arg1->unk_1C[4]][0] - 32.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 3, var_f31, var_f29); + var_f31 = fn_1_32C(sp8[1], 33.0f + lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); + HuSprPosSet(var_r30, 4, var_f31, var_f29); + HuSprAttrReset(var_r30, 5, 4); + HuSprAttrReset(var_r30, 6, 4); + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29, 10.0f); + HuSprTPLvlSet(var_r30, 5, var_f30); + HuSprTPLvlSet(var_r30, 6, var_f30); + var_f29 = fn_1_32C(20.0f, 0.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); + HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); + if (var_r29 == 3) { + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + } + } + } + if (arg1->unk_08[0] != 4) { + HuSprAttrSet(var_r30, 5, 4); + HuSprAttrSet(var_r30, 6, 4); + } + } + lbl_1_bss_35BC[0].unk_08[3] = 0; + } +} + +void fn_1_1BB2C(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r26; + AnimData *var_r25; + + s32 sp8[4][2] = { + { 0x00000070, 0x00000060 }, + { 0x000001D2, 0x00000060 }, + { 0x00000070, 0x0000012D }, + { 0x000001D2, 0x0000012D }, + }; + var_r29 = HuSprGrpCreate(0x5B); + arg0->unk_3C = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3D)), 0x7C6, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + HuSprPosSet(var_r29, 0, 288.0f, 54.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3F)), 0x7C6, 0); + HuSprGrpMemberSet(var_r29, 1, var_r30); + HuSprPosSet(var_r29, 1, 288.0f, 54.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x41)), 0x7BC, 0); + HuSprGrpMemberSet(var_r29, 2, var_r30); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x42)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 3, var_r30); + HuSprBankSet(var_r29, var_r31 + 3, var_r31); + } + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x39)); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r28 = HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x31)); + var_r26 = HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x4E)); + var_r30 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 7, var_r30); + var_r30 = HuSprCreate(var_r25, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xF, var_r30); + var_r30 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1F, var_r30); + var_r30 = HuSprCreate(var_r25, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x27, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x37, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3A)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3B)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x17, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1B, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x43)), 0x3DE, 0); + HuSprGrpMemberSet(var_r29, 0x47, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x44)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, 0x48, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x46)), 0x3F2, 0); + HuSprGrpMemberSet(var_r29, 0x49, var_r30); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x45)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x47)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x4A, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x4C, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x48)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, 0x4E, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x49)), 0x3F2, 0); + HuSprGrpMemberSet(var_r29, 0x4F, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, 0x50, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4B)), 0x3F2, 0); + HuSprGrpMemberSet(var_r29, 0x51, var_r30); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4C)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4D)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2F, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3D4, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x33, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x56)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x57)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3CA, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x3F, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3C0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x43, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x40)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0x52, var_r30); + HuSprTPLvlSet(var_r29, 0x52, 0.8f); + fn_1_6534(var_r29, 0x52, 288.0f, 240.0f); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x7BC, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x53, var_r30); + HuSprBankSet(var_r29, var_r31 + 0x53, var_r31); + fn_1_6534(var_r29, var_r31 + 0x53, sp8[var_r31][0], sp8[var_r31][1]); + var_r30 = HuSprCreate(var_r26, 0x7C6, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x57, var_r30); + HuSprBankSet(var_r29, var_r31 + 0x57, var_r31); + HuSprTPLvlSet(var_r29, var_r31 + 0x57, 0.5f); + fn_1_6534(var_r29, var_r31 + 0x57, sp8[var_r31][0] + 1, sp8[var_r31][1] + 6); + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + arg0->unk_44[var_r31] = HuWinExCreateStyled(0.0f, 0.0f, 0xC8, 0xC8, -1, 1); + HuWinBGTPLvlSet(arg0->unk_44[var_r31], 0.0f); + HuWinMesSet(arg0->unk_44[var_r31], var_r31 + 0x1B0010); + HuWinMesSpeedSet(arg0->unk_44[var_r31], 0); + HuWinDispOn(arg0->unk_44[var_r31]); + winData[arg0->unk_44[var_r31]].mess_shadow_color = 0; + } + fn_1_190E8(); +} + +void fn_1_1C554(void) +{ + s32 var_r31; + s32 var_r30; + MentDllUnkBss35BCStruct *var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_3C; + var_r29 = &lbl_1_bss_35BC[1]; + HuSprAttrReset(var_r30, 2, 4); + if (lbl_1_bss_35BC[1].unk_08[0] == 4) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + } + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r29->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x3F, 4); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x43, 4); + return; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + } +} + +void fn_1_1C674(void) +{ + MentDllUnkBss35BCStruct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_3C; + var_r31 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r30, 2, 4); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + HuSprAttrSet(var_r30, var_r29 + 3, 4); + } + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x43, 4); +} + +void fn_1_1C754(void) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss35BCStruct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + fn_1_190E8(); + var_r28 = lbl_1_bss_35BC[0].unk_3C; + var_r30 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r28, 2, 4); + for (var_r27 = 0; var_r27 < 4; var_r27++) { + HuSprAttrSet(var_r28, var_r27 + 3, 4); + } + HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_3C, 0.0f, var_f31); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r29], 100.0f, lbl_1_data_5DC[var_r29][1] - 21.0f + var_f31); + } + } +} + +void fn_1_1C990(void) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss35BCStruct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r28 = lbl_1_bss_35BC[0].unk_3C; + var_r30 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r28, 2, 4); + for (var_r27 = 0; var_r27 < 4; var_r27++) { + HuSprAttrSet(var_r28, var_r27 + 3, 4); + } + HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_3C, 0.0f, var_f31); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r29], 100.0f, lbl_1_data_5DC[var_r29][1] - 21.0f + var_f31); + } + } +} + +void fn_1_1CBC8(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 0x22; 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 + 1, 4); + HuSprAttrReset(var_r30, var_r31 + 5, 4); + } + HuSprPosSet(var_r30, 0x1B, 288.0f, lbl_1_data_640[1][2]); + HuSprScaleSet(var_r30, 0x1B, 1.0f, 0.75f); + HuSprPosSet(var_r30, 0x1C, lbl_1_data_640[1][3], lbl_1_data_640[1][2]); + HuSprPosSet(var_r30, 0x1D, lbl_1_data_640[1][4], lbl_1_data_640[1][2]); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 9, 0); + HuSprAttrReset(var_r30, var_r31 + 9, 4); + HuSprAttrReset(var_r30, var_r31 + 0x11, 4); + } + HuSprAttrReset(var_r30, 0x19, 4); + HuSprAttrReset(var_r30, 0x1A, 4); + HuSprBankSet(var_r30, 0x1E, 0); + HuSprAttrReset(var_r30, 0x1E, 4); + HuSprBankSet(var_r30, 0x1F, 0); + HuSprAttrReset(var_r30, 0x1F, 4); + HuSprBankSet(var_r30, 0x20, 0); + HuSprAttrReset(var_r30, 0x20, 4); + HuSprBankSet(var_r30, 0x21, 0); + HuSprAttrReset(var_r30, 0x21, 4); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r31], 100.0f, lbl_1_data_640[var_r31][2] - 0x209); + } + lbl_1_bss_35BC[0].unk_08[0] = 1; + lbl_1_bss_35BC[0].unk_1C[0] = lbl_1_bss_35BC[0].unk_1C[0] = 0; + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_1CF68(void) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_35BC[0].unk_30; + for (var_r30 = 0; var_r30 < 8; var_r30++) { + HuSprBankSet(var_r31, var_r30 + 9, 0); + } + HuSprBankSet(var_r31, 0x19, 0); + HuSprBankSet(var_r31, 0x1A, 0); + HuSprPosSet(var_r31, 0x1B, 288.0f, lbl_1_data_640[1][2]); + HuSprScaleSet(var_r31, 0x1B, 1.0f, 0.75f); + HuSprPosSet(var_r31, 0x1C, lbl_1_data_640[1][3], lbl_1_data_640[1][2]); + HuSprPosSet(var_r31, 0x1D, lbl_1_data_640[1][4], lbl_1_data_640[1][2]); + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + fn_1_4D8(); + if (var_r30 <= 5) { + var_f31 = fn_1_32C(1.0f, 0.0f, var_r30, 5.0f); + } + else { + var_f31 = fn_1_32C(0.0f, 1.0f, var_r30 - 5, 5.0f); + } + if (lbl_1_bss_3114->unk_68 != 0) { + var_f30 = fn_1_32C(lbl_1_data_640[lbl_1_bss_3114->unk_68 % 4][0], lbl_1_data_640[0][0], var_r30, 10.0f); + var_f29 = fn_1_32C(lbl_1_data_640[lbl_1_bss_3114->unk_68 / 4][1], lbl_1_data_640[0][1], var_r30, 10.0f); + HuSprPosSet(var_r31, 0x19, var_f30, var_f29); + HuSprPosSet(var_r31, 0x1A, var_f30, var_f29); + } + if (lbl_1_bss_35BC[0].unk_1C[0] != 0) { + HuSprScaleSet(var_r31, 0x1E, 1.0f, var_f31); + HuSprScaleSet(var_r31, 0x1F, 1.0f, var_f31); + } + if (lbl_1_bss_35BC[0].unk_1C[1] != 0) { + HuSprScaleSet(var_r31, 0x20, 1.0f, var_f31); + HuSprScaleSet(var_r31, 0x21, 1.0f, var_f31); + } + if (var_r30 == 6) { + HuSprBankSet(var_r31, 0x1E, 0); + HuSprBankSet(var_r31, 0x1F, 0); + HuSprBankSet(var_r31, 0x20, 0); + HuSprBankSet(var_r31, 0x21, 0); + } + } + lbl_1_bss_3114[0].unk_70[0] = lbl_1_bss_3114[0].unk_68 = 0; + lbl_1_bss_35BC[0].unk_08[0] = 1; + lbl_1_bss_35BC[0].unk_1C[0] = lbl_1_bss_35BC[0].unk_1C[1] = 0; +} + +void fn_1_1D4FC(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r27; + AnimData *var_r26; + + s32 sp8[4][2] = { + { 0x00000070, 0x00000037 }, + { 0x000001D2, 0x00000037 }, + { 0x00000070, 0x0000011A }, + { 0x000001D2, 0x0000011A }, + }; + arg0->unk_30 = var_r30 = HuSprGrpCreate(0x22); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x58)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprTPLvlSet(var_r30, 0, 0.8f); + fn_1_6534(var_r30, 0, 288.0f, 240.0f); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r27, 0x7BC, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 1, var_r29); + HuSprBankSet(var_r30, var_r31 + 1, var_r31); + fn_1_6534(var_r30, var_r31 + 1, sp8[var_r31][0], sp8[var_r31][1]); + var_r29 = HuSprCreate(var_r26, 0x7C6, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 5, var_r29); + HuSprBankSet(var_r30, var_r31 + 5, var_r31); + HuSprTPLvlSet(var_r30, var_r31 + 5, 0.5f); + fn_1_6534(var_r30, var_r31 + 5, sp8[var_r31][0] + 1, sp8[var_r31][1] + 6); + } + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x41)), 0x7BC, 0); + HuSprGrpMemberSet(var_r30, 0x1B, var_r29); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x42)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29 = HuSprCreate(var_r27, 0, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x1C, var_r29); + HuSprBankSet(var_r30, var_r31 + 0x1C, var_r31); + } + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x22)); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 9, var_r29); + HuSprPosSet(var_r30, var_r31 + 9, lbl_1_data_640[var_r31 % 4][0], lbl_1_data_640[var_r31 / 4][1]); + var_r29 = HuSprCreate(var_r27, 0x3F2, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x11, var_r29); + HuSprTPLvlSet(var_r30, var_r31 + 0x11, 0.5f); + HuSprPosSet(var_r30, var_r31 + 0x11, lbl_1_data_640[var_r31 % 4][0] + 1, lbl_1_data_640[var_r31 / 4][1] + 2); + } + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x23)), 0, 0); + HuSprGrpMemberSet(var_r30, 0x19, var_r29); + HuSprPosSet(var_r30, 0x19, lbl_1_data_640[0][0], lbl_1_data_640[0][1]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x28)), 0xA, 0); + HuSprGrpMemberSet(var_r30, 0x1A, var_r29); + HuSprPosSet(var_r30, 0x1A, lbl_1_data_640[0][0], lbl_1_data_640[0][1]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5D)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 0x1E, var_r29); + HuSprPosSet(var_r30, 0x1E, 340.0f, lbl_1_data_640[1][2]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5E)), 0x3F2, 0); + HuSprGrpMemberSet(var_r30, 0x1F, var_r29); + HuSprTPLvlSet(var_r30, 0x1F, 0.5f); + HuSprPosSet(var_r30, 0x1F, 341.0f, lbl_1_data_640[1][2] + 2); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x48)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 0x20, var_r29); + HuSprPosSet(var_r30, 0x20, 340.0f, lbl_1_data_640[2][2]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x49)), 0x3F2, 0); + HuSprGrpMemberSet(var_r30, 0x21, var_r29); + HuSprTPLvlSet(var_r30, 0x21, 0.5f); + HuSprPosSet(var_r30, 0x21, 341.0f, lbl_1_data_640[2][2] + 2); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + arg0->unk_44[var_r31] = HuWinExCreateStyled(0.0f, 0.0f, 0xC8, 0xC8, -1, 1); + HuWinBGTPLvlSet(arg0->unk_44[var_r31], 0.0f); + HuWinMesSet(arg0->unk_44[var_r31], var_r31 + 0x1B002D); + HuWinMesSpeedSet(arg0->unk_44[var_r31], 0); + HuWinDispOn(arg0->unk_44[var_r31]); + if (var_r31 == 0) { + HuWinDispOff(arg0->unk_44[var_r31]); + } + winData[arg0->unk_44[var_r31]].mess_shadow_color = 0; + } + fn_1_1CBC8(); +} + +void fn_1_1DED8() +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrReset(var_r30, 0x1B, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x1C, 4); + } +} + +void fn_1_1DF48(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r30, 0x1B, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrSet(var_r30, var_r31 + 0x1C, 4); + } +} + +void fn_1_1DFB8(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + fn_1_1CBC8(); + var_r28 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r28, 0x1B, 4); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + HuSprAttrSet(var_r28, var_r29 + 0x1C, 4); + } + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuWinPosSet(lbl_1_bss_35BC[0].unk_44[var_r30], 100.0f, lbl_1_data_640[var_r30][2] - 0x15 + var_f31); + } + } +} + +void fn_1_1E1B4(void) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss35BCStruct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r28 = lbl_1_bss_35BC[0].unk_3C; + var_r30 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r28, 2, 4); + for (var_r27 = 0; var_r27 < 4; var_r27++) { + HuSprAttrSet(var_r28, var_r27 + 3, 4); + } + HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + for (var_r29 = 0; var_r29 < 3; var_r29++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r29], 100.0f, lbl_1_data_640[var_r29][2] - 0x15 + var_f31); + } + } +} + +void fn_1_1E404(omObjData *arg0, MentDllUnkBss3114Struct *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; + + var_r28 = lbl_1_bss_35BC[0].unk_30; + var_r26 = 0; + var_r25 = 0; + var_r30 = arg1->unk_68 % 4; + var_r24 = var_r30; + var_r29 = arg1->unk_68 / 4; + var_r23 = var_r29; + if (arg1->unk_70[0] == 0) { + if (HuPadBtnDown[arg1->unk_6C] & PAD_BUTTON_A) { + arg1->unk_70[0] = 1; + HuSprBankSet(var_r28, arg1->unk_68 + 9, 1); + HuSprBankSet(var_r28, 0x19, 1); + HuSprBankSet(var_r28, 0x1A, 1); + HuAudFXPlay(arg1->unk_68 + 0x6D); + } + else { + if ((HuPadStkX[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 2) != 0)) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if ((HuPadStkX[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 1) != 0)) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if ((HuPadStkY[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 4) != 0)) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if ((HuPadStkY[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 8) != 0)) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[arg1->unk_6C] & 0x200) != 0) { + arg1->unk_70[0] = 0; + HuSprBankSet(var_r28, arg1->unk_68 + 9, 0); + HuSprBankSet(var_r28, 0x19, 0); + HuSprBankSet(var_r28, 0x1A, 0); + HuAudFXPlay(3); + } + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + arg1->unk_68 = var_r30 + (var_r29 * 4); + HuAudFXPlay(0); + for (var_r27 = 0; var_r27 <= 0xA; var_r27++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_640[var_r24][0], lbl_1_data_640[var_r30][0], var_r27, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_640[var_r23][1], lbl_1_data_640[var_r29][1], var_r27, 10.0f); + HuSprPosSet(var_r28, 0x19, var_f31, var_f30); + HuSprPosSet(var_r28, 0x1A, var_f31, var_f30); + } + } +} + +void fn_1_1E8A4(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + 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_r30 = arg1->unk_30; + var_r28 = 0; + var_r27 = arg1->unk_08[0]; + lbl_1_bss_35BC[0].unk_08[3] = 0; + if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + arg1->unk_08[0]++; + if (arg1->unk_08[0] > 2) { + arg1->unk_08[0] = 2; + lbl_1_bss_35BC[1].unk_08[1] = 1; + var_r24 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r24, 0x1B, 4); + for (var_r26 = 0; var_r26 < 2; var_r26++) { + HuSprAttrSet(var_r24, var_r26 + 0x1C, 4); + } + } + HuAudFXPlay(2); + } + else if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + arg1->unk_08[0]--; + if (arg1->unk_08[0] < 1) { + arg1->unk_08[0] = 1; + lbl_1_bss_35BC[1].unk_08[1] = -1; + var_r23 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r23, 0x1B, 4); + for (var_r25 = 0; var_r25 < 2; var_r25++) { + HuSprAttrSet(var_r23, var_r25 + 0x1C, 4); + } + } + HuAudFXPlay(3); + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT)) { + var_r28 = 1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + switch (arg1->unk_08[0]) { + case 1: + if (lbl_1_bss_A8[5] == 1) { + arg1->unk_1C[0] += 1; + if (arg1->unk_1C[0] > 4) { + arg1->unk_1C[0] = 0; + } + } + else { + arg1->unk_1C[0] += 1; + if (arg1->unk_1C[0] > 4) { + arg1->unk_1C[0] = 0; + } + if (arg1->unk_1C[0] == 3) { + arg1->unk_1C[0] = 4; + } + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[1]++; + if (arg1->unk_1C[1] > 2) { + arg1->unk_1C[1] = 0; + } + } + else { + arg1->unk_1C[1]++; + if (arg1->unk_1C[1] > 1) { + arg1->unk_1C[1] = 0; + } + } + break; + } + HuAudFXPlay(0); + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1) != 0)) { + var_r28 = -1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + switch (arg1->unk_08[0]) { + case 1: + if (lbl_1_bss_A8[5] == 1) { + arg1->unk_1C[0] -= 1; + if (arg1->unk_1C[0] < 0) { + arg1->unk_1C[0] = 4; + } + } + else { + arg1->unk_1C[0] -= 1; + if (arg1->unk_1C[0] < 0) { + arg1->unk_1C[0] = 4; + } + if (arg1->unk_1C[0] == 3) { + arg1->unk_1C[0] = 2; + } + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[1]--; + if (arg1->unk_1C[1] < 0) { + arg1->unk_1C[1] = 2; + } + } + else { + arg1->unk_1C[1]--; + if (arg1->unk_1C[1] < 0) { + arg1->unk_1C[1] = 1; + } + } + break; + } + HuAudFXPlay(0); + } + if (var_r27 != arg1->unk_08[0]) { + for (var_r29 = 0; var_r29 < 0xB; var_r29++) { + fn_1_4D8(); + var_f29 = fn_1_32C(lbl_1_data_640[var_r27][2], lbl_1_data_640[arg1->unk_08[0]][2], var_r29, 10.0f); + HuSprPosSet(var_r30, 0x1B, 288.0f, var_f29); + var_f31 = fn_1_32C(lbl_1_data_640[var_r27][3], lbl_1_data_640[arg1->unk_08[0]][3], var_r29, 10.0f); + HuSprPosSet(var_r30, 0x1C, var_f31, var_f29); + var_f31 = fn_1_32C(lbl_1_data_640[var_r27][4], lbl_1_data_640[arg1->unk_08[0]][4], var_r29, 10.0f); + HuSprPosSet(var_r30, 0x1D, var_f31, var_f29); + } + } + else if (var_r28 != 0) { + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 5.0f); + } + else { + var_f31 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29 - 5, 5.0f); + } + if (var_r28 == 1) { + HuSprPosSet(var_r30, 0x1D, var_f31 + lbl_1_data_640[arg1->unk_08[0]][4], lbl_1_data_640[arg1->unk_08[0]][2]); + } + else { + HuSprPosSet(var_r30, 0x1C, lbl_1_data_640[arg1->unk_08[0]][3] - var_f31, lbl_1_data_640[arg1->unk_08[0]][2]); + } + switch (arg1->unk_08[0]) { + case 1: + if (var_r28 == 1) { + HuSprPosSet(var_r30, 0x1E, 340.0f + var_f31, lbl_1_data_640[1][2]); + HuSprPosSet(var_r30, 0x1F, 340.0f + var_f31, lbl_1_data_640[1][2] + 2); + } + else { + HuSprPosSet(var_r30, 0x1E, 341.0f - var_f31, lbl_1_data_640[1][2]); + HuSprPosSet(var_r30, 0x1F, 341.0f - var_f31, lbl_1_data_640[1][2] + 2); + } + HuSprScaleSet(var_r30, 0x1E, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x1F, 1.0f, var_f30); + break; + case 2: + if (var_r28 == 1) { + HuSprPosSet(var_r30, 0x20, 340.0f + var_f31, lbl_1_data_640[2][2]); + HuSprPosSet(var_r30, 0x21, 340.0f + var_f31, lbl_1_data_640[2][2] + 2); + } + else { + HuSprPosSet(var_r30, 0x20, 341.0f - var_f31, lbl_1_data_640[2][2]); + HuSprPosSet(var_r30, 0x21, 341.0f - var_f31, lbl_1_data_640[2][2] + 2); + } + HuSprScaleSet(var_r30, 0x20, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x21, 1.0f, var_f30); + break; + } + if (var_r29 == 6) { + switch (arg1->unk_08[0]) { + case 1: + HuSprBankSet(var_r30, 0x1E, arg1->unk_1C[0]); + HuSprBankSet(var_r30, 0x1F, arg1->unk_1C[0]); + break; + case 2: + HuSprBankSet(var_r30, 0x20, arg1->unk_1C[1]); + HuSprBankSet(var_r30, 0x21, arg1->unk_1C[1]); + break; + } + } + } + } + lbl_1_bss_35BC[0].unk_08[3] = 0; +} + +void fn_1_1F5F0(void) +{ + s32 var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_35BC[0].unk_34; + for (var_r30 = 0; var_r30 < 9; var_r30++) { + HuSprAttrSet(var_r31, var_r30, 4); + } + HuSprAttrReset(var_r31, 0, 4); + HuSprBankSet(var_r31, 0, lbl_1_bss_35BC[0].unk_1C[0]); + HuSprAttrReset(var_r31, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprGrpPosSet(var_r31, 16.0f, -500.0f); +} + +void fn_1_1F6B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = HuSprGrpCreate(9); + arg0->unk_34 = var_r29; + var_r27 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x59)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0, var_r27); + fn_1_6534(var_r29, 0, 75.0f, 25.0f); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r27 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x31)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 1, var_r27); + HuSprPosSet(var_r29, var_r31 + 1, 24.0f, 25.0f); + } + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r28 = 0; var_r28 < 9; var_r28++) { + HuSprAttrSet(var_r30, var_r28, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); +} + +void fn_1_1F868(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r29 = 0; var_r29 < 9; var_r29++) { + HuSprAttrSet(var_r30, var_r29, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 50.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(50.0f, 40.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + } +} + +void fn_1_1FA34(void) +{ + float var_f31; + s32 var_r31; + + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; + for (var_r31 = 0; var_r31 <= 0x4B; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(40.0f, 50.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(50.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + if (var_r31 >= 0xF) { + var_f31 = fn_1_254(210.0f, -500.0f, var_r31 - 0xF, 60.0f); + HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y = (s32)fn_1_234(HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y, var_f31, 10.0f); + } + } +} + +void fn_1_1FC54(void) +{ + float var_f31; + s32 var_r31; + + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; + for (var_r31 = 0; var_r31 <= 0x28; var_r31++) { + fn_1_4D8(); + var_f31 = fn_1_254(40.0f, -500.0f, var_r31, 40.0f); + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + var_f31 = fn_1_254(210.0f, -500.0f, var_r31, 40.0f); + HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y = (s32)fn_1_234(HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y, var_f31, 10.0f); + } +} + +void fn_1_1FE08(void) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + + sp8 = 0; + var_r30 = lbl_1_bss_35BC[0].unk_40; + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31, 0); + lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; + HuSprAttrReset(var_r30, var_r31, 4); + HuSprAttrReset(var_r30, var_r31 + 4, 4); + } + HuSprAttrReset(var_r30, 0xA, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0xB, 4); + HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_1FF4C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 sp8; + 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; + + sp8 = 0; + var_r28 = lbl_1_bss_35BC[0].unk_40; + var_r29 = var_r27 = var_r26 = var_r25 = 0; + lbl_1_bss_35BC[0].unk_1C[0] = 0; + var_r29 = 1; + for (var_r30 = 1; var_r30 < 4; var_r30++) { + if (lbl_1_bss_3114[var_r30].unk_60 == 0) { + var_r29++; + } + } + var_r27 = 1; + for (var_r30 = 1; var_r30 < 4; var_r30++) { + if (HuPadStatGet(var_r30) != -1) { + var_r27++; + } + } + if (var_r27 >= 2) { + fn_1_208F4(); + if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2) != 0)) { + var_r29++; + var_r26 = 1; + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1) != 0)) { + var_r29--; + var_r26 = -1; + } + } + else { + fn_1_20A24(); + } + if (var_r29 < 1) { + var_r29 = var_r27; + } + else if (var_r29 > var_r27) { + if (var_r26 == 0) { + var_r29 = var_r27; + var_r25 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r25 != 0)) { + lbl_1_bss_35BC[0].unk_1C[0] = 1; + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + if (var_r30 <= 5) { + var_f30 = fn_1_32C(0.0f, 10.0f, var_r30, 5.0f); + var_f31 = fn_1_32C(1.0f, 0.0f, var_r30, 5.0f); + } + else { + var_f30 = fn_1_32C(10.0f, 0.0f, var_r30 - 5, 5.0f); + var_f31 = fn_1_32C(0.0f, 1.0f, var_r30 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r28, 9, (lbl_1_data_690[3][0] + 0x32) + var_f30, lbl_1_data_690[0][1]); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r28, 8, (lbl_1_data_690[0][0] - 0x32) - var_f30, lbl_1_data_690[0][1]); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((var_r31 < var_r29) && (lbl_1_bss_3114[var_r31].unk_60 == 1)) { + lbl_1_bss_3114[var_r31].unk_70[3] = 0; + HuSprScaleSet(var_r28, var_r31, var_f31, 1.0f); + HuSprScaleSet(var_r28, var_r31 + 4, var_f31, 1.0f); + if (var_r30 == 5) { + HuSprBankSet(var_r28, var_r31, 0); + } + } + else if ((var_r31 >= var_r29) && (lbl_1_bss_3114[var_r31].unk_60 == 0)) { + lbl_1_bss_3114[var_r31].unk_70[3] = 1; + HuSprScaleSet(var_r28, var_r31, var_f31, 1.0f); + HuSprScaleSet(var_r28, var_r31 + 4, var_f31, 1.0f); + if (var_r30 == 5) { + HuSprBankSet(var_r28, var_r31, 1); + } + } + } + fn_1_4D8(); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r31 < var_r29) { + lbl_1_bss_3114[var_r31].unk_60 = 0; + } + else { + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + } + } + lbl_1_bss_35BC[0].unk_1C[0] = 0; +} + +void fn_1_2055C(s32 arg0) +{ + s32 spC; + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_35BC[0].unk_40; + if (arg0 == 0) { + spC = 0; + var_r30 = lbl_1_bss_35BC[0].unk_40; + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31, 0); + lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; + HuSprAttrReset(var_r30, var_r31, 4); + HuSprAttrReset(var_r30, var_r31 + 4, 4); + } + HuSprAttrReset(var_r30, 0xA, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0xB, 4); + HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 2.06f, var_r29 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 0.0f, var_f31); + } +} + +void fn_1_207BC(void) +{ + s32 spC; + s32 sp8; + float var_f31; + s32 var_r31; + s32 var_r30; + + spC = 0; + sp8 = 0; + var_r30 = lbl_1_bss_35BC[0].unk_40; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(2.06f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r30, 0.0f, var_f31); + } +} + +void fn_1_208F4(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_40; + HuSprAttrReset(var_r31, 8, 4); + HuSprPosSet(var_r31, 8, lbl_1_data_690[0][0] - 0x32, lbl_1_data_690[0][1]); + HuSprAttrReset(var_r31, 9, 4); + HuSprPosSet(var_r31, 9, lbl_1_data_690[3][0] + 0x32, lbl_1_data_690[0][1]); +} + +void fn_1_20A24(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_40; + HuSprAttrSet(var_r31, 8, 4); + HuSprPosSet(var_r31, 8, lbl_1_data_690[0][0] - 0x32, lbl_1_data_690[0][1]); + HuSprAttrSet(var_r31, 9, 4); + HuSprPosSet(var_r31, 9, lbl_1_data_690[3][0] + 0x32, lbl_1_data_690[0][1]); +} + +void fn_1_20B54(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + AnimData *var_r26; + AnimData *var_r25; + + var_r29 = HuSprGrpCreate(0x13); + arg0->unk_40 = var_r29; + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x22)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x16)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31, var_r28); + HuSprPosSet(var_r29, var_r31, lbl_1_data_690[var_r31 % 4][0], lbl_1_data_690[0][1]); + var_r28 = HuSprCreate(var_r26, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 4, var_r28); + HuSprTPLvlSet(var_r29, var_r31 + 4, 0.5f); + HuSprPosSet(var_r29, var_r31 + 4, lbl_1_data_690[var_r31 % 4][0] + 1, lbl_1_data_690[0][1] + 2); + } + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x42)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r28 = HuSprCreate(var_r26, 0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 8, var_r28); + HuSprBankSet(var_r29, var_r31 + 8, var_r31); + } + var_r28 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x15)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0xA, var_r28); + HuSprTPLvlSet(var_r29, 0xA, 0.8f); + fn_1_6534(var_r29, 0xA, 288.0f, 240.0f); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = HuSprCreate(var_r26, 0x7BC, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xB, var_r28); + HuSprBankSet(var_r29, var_r31 + 0xB, var_r31); + fn_1_6534(var_r29, var_r31 + 0xB, lbl_1_data_690[var_r31][2], lbl_1_data_690[var_r31][3]); + var_r28 = HuSprCreate(var_r25, 0x7C6, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xF, var_r28); + HuSprBankSet(var_r29, var_r31 + 0xF, var_r31); + HuSprTPLvlSet(var_r29, var_r31 + 0xF, 0.5f); + fn_1_6534(var_r29, var_r31 + 0xF, lbl_1_data_690[var_r31][2] + 1, lbl_1_data_690[var_r31][3] + 6); + } + sp8 = 0; + var_r27 = lbl_1_bss_35BC[0].unk_40; + for (var_r30 = 0; var_r30 < 0x13; var_r30++) { + HuSprAttrSet(var_r27, var_r30, 4); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + HuSprBankSet(var_r27, var_r30, 0); + lbl_1_bss_3114[var_r30].unk_70[3] = lbl_1_bss_3114[var_r30].unk_60 = 0; + HuSprAttrReset(var_r27, var_r30, 4); + HuSprAttrReset(var_r27, var_r30 + 4, 4); + } + HuSprAttrReset(var_r27, 0xA, 4); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + HuSprAttrReset(var_r27, var_r30 + 0xB, 4); + HuSprAttrReset(var_r27, var_r30 + 0xF, 4); + } + HuSprGrpPosSet(var_r27, 0.0f, -500.0f); +} + +void fn_1_21134(omObjData *object) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss64Struct *var_r29; + + var_r29 = &lbl_1_bss_64; + for (var_r31 = 1; var_r31 < 0xA; var_r31++) { + if ((var_r29->unk_38 <= 1200.0f) || (lbl_1_bss_16C4[var_r31].unk_1C == -200.0f)) { + if (lbl_1_bss_16C4[var_r31].unk_1C >= -100.0f) { + lbl_1_bss_16C4[var_r31].unk_00 = 0; + lbl_1_bss_16C4[var_r31].unk_1C = -200.0f; + lbl_1_bss_16C4[var_r31].unk_24 = -99.0f; + lbl_1_bss_16C4[var_r31].unk_04 = rand8() + 0xB4; + } + var_f31 = fn_1_254(lbl_1_bss_16C4[var_r31].unk_10, 1000.0f, lbl_1_bss_16C4[var_r31].unk_00++, lbl_1_bss_16C4[var_r31].unk_04); + Hu3DData[object->model[var_r31]].pos.y = fn_1_234(Hu3DData[object->model[var_r31]].pos.y, var_f31, 30.0f); + Hu3DData[object->model[var_r31]].pos.x + = fn_1_234(Hu3DData[object->model[var_r31]].pos.x, lbl_1_bss_16C4[var_r31].unk_18 + Hu3DData[object->model[var_r31]].pos.x, 5.0f); + } + } + for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { + Hu3DData[object->model[var_r31]].pos.y = fn_1_3F4( + lbl_1_bss_16C4[var_r31].unk_10, lbl_1_bss_16C4[var_r31].unk_1C, lbl_1_bss_16C4[var_r31].unk_00++, lbl_1_bss_16C4[var_r31].unk_04); + if (lbl_1_bss_16C4[var_r31].unk_00 >= lbl_1_bss_16C4[var_r31].unk_04) { + lbl_1_bss_16C4[var_r31].unk_00 = 0; + } + } + for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { + if ((lbl_1_bss_16C4[var_r31].unk_24 == 0.0f) && (lbl_1_bss_16C4[var_r31].unk_14 > (var_r29->unk_38 - 400.0f)) + && (lbl_1_bss_16C4[var_r31].unk_0C < (200.0f + var_r29->unk_08)) && (lbl_1_bss_16C4[var_r31].unk_0C > (var_r29->unk_08 - 200.0f))) { + if (var_r29->unk_08 >= lbl_1_bss_16C4[var_r31].unk_0C) { + lbl_1_bss_16C4[var_r31].unk_24 = -300.0f; + } + else { + lbl_1_bss_16C4[var_r31].unk_24 = 300.0f; + } + } + if (lbl_1_bss_16C4[var_r31].unk_24 != -99.0f) { + Hu3DData[object->model[var_r31]].pos.x + = fn_1_234(Hu3DData[object->model[var_r31]].pos.x, lbl_1_bss_16C4[var_r31].unk_0C + lbl_1_bss_16C4[var_r31].unk_24, 30.0f); + } + } + if (object->work[0] == 1) { + for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { + Hu3DModelAttrSet(object->model[var_r31], 1); + } + } +} + +void fn_1_21724(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x08)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x09)); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x0A)); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x0B)); + Hu3DModelLayerSet(object->model[1], 3); + Hu3DModelLayerSet(object->model[2], 3); + Hu3DModelLayerSet(object->model[3], 3); + Hu3DModelLayerSet(object->model[4], 3); + for (var_r30 = 5; var_r30 < 0x8C; var_r30++) { + object->model[var_r30] = Hu3DModelLink(object->model[rand8() % 4 + 1]); + } + for (var_r30 = 1; var_r30 < 0xA; var_r30++) { + var_r28 = 0; + do { + Hu3DData[object->model[var_r30]].pos.x = var_f31 = 50.0f + rand8(); + if ((var_r30 % 2) != 0) { + lbl_1_bss_16C4[var_r30].unk_0C = Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + Hu3DData[object->model[var_r30]].pos.y = var_f30 = 50.0f + rand8(); + Hu3DData[object->model[var_r30]].pos.z = var_f29 = 750.0f + (var_r30 * 5); + for (var_r29 = 1; var_r29 < 0xA; var_r29++) { + if ((var_r30 != var_r29) && (lbl_1_bss_16C4[var_r29].unk_08 == 1)) { + var_f31 = Hu3DData[object->model[var_r30]].pos.x - Hu3DData[object->model[var_r29]].pos.x; + var_f30 = Hu3DData[object->model[var_r30]].pos.y - Hu3DData[object->model[var_r29]].pos.y; + var_f29 = Hu3DData[object->model[var_r30]].pos.z - Hu3DData[object->model[var_r29]].pos.z; + if (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) <= 100.0f) { + break; + } + } + } + var_r28++; + } while (var_r29 != 0xA && var_r28 < 0x32); + lbl_1_bss_16C4[var_r30].unk_08 = 1; + lbl_1_bss_16C4[var_r30].unk_0C = lbl_1_bss_16C4[var_r30].unk_18 = Hu3DData[object->model[var_r30]].pos.x; + lbl_1_bss_16C4[var_r30].unk_10 = lbl_1_bss_16C4[var_r30].unk_1C = Hu3DData[object->model[var_r30]].pos.y; + lbl_1_bss_16C4[var_r30].unk_14 = lbl_1_bss_16C4[var_r30].unk_20 = Hu3DData[object->model[var_r30]].pos.z; + lbl_1_bss_16C4[var_r30].unk_18 = 0.025f * lbl_1_bss_16C4[var_r30].unk_0C; + Hu3DModelScaleSet(object->model[var_r30], 0.5f, 0.5f, 0.5f); + Hu3DModelLayerSet(object->model[var_r30], 3); + } + for (var_r30 = 0xA; var_r30 < 0x8C; var_r30++) { + var_r28 = 0; + do { + Hu3DData[object->model[var_r30]].pos.x = var_f31 = rand8() * 2; + if ((var_r30 % 2) != 0) { + Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + + Hu3DData[object->model[var_r30]].pos.y = var_f30 = (rand8() * 2) + 0x7D; + Hu3DData[object->model[var_r30]].pos.z = var_f29 = 800.0f + (var_r30 * 0xA); + for (var_r29 = 0xA; var_r29 < 0x8C; var_r29++) { + if ((var_r30 != var_r29) && (lbl_1_bss_16C4[var_r29].unk_08 == 1)) { + var_f31 = Hu3DData[object->model[var_r30]].pos.x - Hu3DData[object->model[var_r29]].pos.x; + var_f30 = Hu3DData[object->model[var_r30]].pos.y - Hu3DData[object->model[var_r29]].pos.y; + var_f29 = Hu3DData[object->model[var_r30]].pos.z - Hu3DData[object->model[var_r29]].pos.z; + if (sqrtf((var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30))) <= 100.0f) { + break; + } + } + } + var_r28++; + } while (var_r29 != 0x8C && var_r28 < 0x32); + + lbl_1_bss_16C4[var_r30].unk_08 = 1; + Hu3DModelLayerSet(object->model[var_r30], 3); + lbl_1_bss_16C4[var_r30].unk_0C = lbl_1_bss_16C4[var_r30].unk_18 = Hu3DData[object->model[var_r30]].pos.x; + lbl_1_bss_16C4[var_r30].unk_10 = lbl_1_bss_16C4[var_r30].unk_1C = Hu3DData[object->model[var_r30]].pos.y; + lbl_1_bss_16C4[var_r30].unk_14 = lbl_1_bss_16C4[var_r30].unk_20 = Hu3DData[object->model[var_r30]].pos.z; + if ((rand8() % 2) == 0) { + lbl_1_bss_16C4[var_r30].unk_18 += rand8() % 30; + } + else { + lbl_1_bss_16C4[var_r30].unk_18 -= rand8() % 30; + } + lbl_1_bss_16C4[var_r30].unk_1C += (rand8() % 30) + 0xA; + if ((rand8() % 2) == 0) { + lbl_1_bss_16C4[var_r30].unk_20 += rand8() % 30; + } + else { + lbl_1_bss_16C4[var_r30].unk_20 -= rand8() % 30; + } + lbl_1_bss_16C4[var_r30].unk_24 = lbl_1_bss_16C4[var_r30].unk_28 = lbl_1_bss_16C4[var_r30].unk_2C = 0.0f; + lbl_1_bss_16C4[var_r30].unk_04 = ((rand8() * 2) % 360) + 0x168; + lbl_1_bss_16C4[var_r30].unk_00 = rand8(); + } + object->func = fn_1_21134; +} + +void fn_1_225F4(omObjData *object) +{ + s32 var_r30; + + if (object->work[0] == 0) { + return; + } + for (var_r30 = 0; var_r30 < 0xC8; var_r30++) { + switch (lbl_1_bss_E4[var_r30].unk_04) { + case 0: + Hu3DData[object->model[var_r30]].pos.x = rand8() + rand8() % 50; + if ((var_r30 % 2) == 0) { + Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + Hu3DData[object->model[var_r30]].pos.y = 500.0f + rand8() + rand8(); + Hu3DData[object->model[var_r30]].pos.z = 700.0f + rand8() % 128; + lbl_1_bss_E4[var_r30].unk_18 = 1.0f; + lbl_1_bss_E4[var_r30].unk_00 = (rand8() % 30) + 0x1E; + lbl_1_bss_E4[var_r30].unk_0C = 0.01f * (25.0f + (rand8() % 50)); + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_0C *= -1.0f; + } + lbl_1_bss_E4[var_r30].unk_10 = rand8() % 2; + lbl_1_bss_E4[var_r30].unk_14 = 0.01f * ((rand8() % 100) - 0x32); + lbl_1_bss_E4[var_r30].unk_08 = (rand8() % 5) + 5; + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_08 *= -1; + } + lbl_1_bss_E4[var_r30].unk_04 = 1; + break; + case 1: + if (Hu3DData[object->model[var_r30]].pos.y <= 0.5f) { + Hu3DData[object->model[var_r30]].pos.y = 0.5f; + if (lbl_1_bss_E4[var_r30].unk_10 > 0.0f) { + Hu3DData[object->model[var_r30]].rot.x = fn_1_234(Hu3DData[object->model[var_r30]].rot.x, 180.0f, 5.0f); + } + else { + Hu3DData[object->model[var_r30]].rot.x = fn_1_234(Hu3DData[object->model[var_r30]].rot.x, 0.0f, 5.0f); + } + Hu3DData[object->model[var_r30]].rot.z = fn_1_234(Hu3DData[object->model[var_r30]].rot.z, 0.0f, 5.0f); + lbl_1_bss_E4[var_r30].unk_18 -= 0.025f; + if (lbl_1_bss_E4[var_r30].unk_18 <= 0.0f) { + lbl_1_bss_E4[var_r30].unk_18 = 0.0f; + lbl_1_bss_E4[var_r30].unk_04 = 0; + if (object->work[0] == 3) { + lbl_1_bss_E4[var_r30].unk_04 = 2; + } + } + } + else { + if (lbl_1_bss_E4[var_r30].unk_00-- <= 0) { + lbl_1_bss_E4[var_r30].unk_00 = (rand8() % 30) + 0x1E; + lbl_1_bss_E4[var_r30].unk_0C = 0.01f * (25.0f + (rand8() % 50)); + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_0C *= -1.0f; + } + lbl_1_bss_E4[var_r30].unk_10 = rand8() % 2; + lbl_1_bss_E4[var_r30].unk_14 = 0.01f * ((rand8() % 100) - 0x32); + lbl_1_bss_E4[var_r30].unk_08 = (rand8() % 5) + 5; + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_08 *= -1; + } + } + Hu3DModelAttrReset(object->model[var_r30], 1); + Hu3DData[object->model[var_r30]].pos.x += lbl_1_bss_E4[var_r30].unk_0C; + Hu3DData[object->model[var_r30]].pos.y -= (var_r30 % 3) + 2; + Hu3DData[object->model[var_r30]].pos.z += lbl_1_bss_E4[var_r30].unk_14; + Hu3DData[object->model[var_r30]].rot.x += lbl_1_bss_E4[var_r30].unk_08; + Hu3DData[object->model[var_r30]].rot.y += lbl_1_bss_E4[var_r30].unk_08; + Hu3DData[object->model[var_r30]].rot.z += lbl_1_bss_E4[var_r30].unk_08; + if (Hu3DData[object->model[var_r30]].rot.x >= 360.0f) { + Hu3DData[object->model[var_r30]].rot.x -= 360.0f; + } + else if (Hu3DData[object->model[var_r30]].rot.x <= 0.0f) { + Hu3DData[object->model[var_r30]].rot.x += 360.0f; + } + if (Hu3DData[object->model[var_r30]].rot.y >= 360.0f) { + Hu3DData[object->model[var_r30]].rot.y -= 360.0f; + } + else if (Hu3DData[object->model[var_r30]].rot.y <= 0.0f) { + Hu3DData[object->model[var_r30]].rot.y += 360.0f; + } + if (Hu3DData[object->model[var_r30]].rot.z >= 360.0f) { + Hu3DData[object->model[var_r30]].rot.z -= 360.0f; + } + else if (Hu3DData[object->model[var_r30]].rot.z <= 0.0f) { + Hu3DData[object->model[var_r30]].rot.z += 360.0f; + } + } + break; + case 2: + Hu3DModelAttrSet(object->model[var_r30], 1); + break; + } + } +} + +void fn_1_2342C(omObjData *object) +{ + float var_f30; + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 12)); + for (var_r30 = 0; var_r30 < 0xC8; var_r30++) { + object->model[var_r30] = Hu3DModelLink(object->model[0]); + } + for (var_r30 = 0; var_r30 < 0xC8; var_r30++) { + Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DData[object->model[var_r30]].pos.x = rand8() + rand8(); + if (rand8() == 0) { + Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + Hu3DData[object->model[var_r30]].pos.y = 500.0f + rand8() + rand8(); + Hu3DData[object->model[var_r30]].pos.z = 700.0f + (rand8() % 128); + var_f31 = 1.0f + (0.1f * (rand8() % 5)); + Hu3DModelScaleSet(object->model[var_r30], var_f31, var_f31, var_f31); + lbl_1_bss_E4[var_r30].unk_0C = 0.01f * (25.0f + (rand8() % 50)); + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_0C *= -1.0f; + } + lbl_1_bss_E4[var_r30].unk_10 = rand8() % 2; + lbl_1_bss_E4[var_r30].unk_14 = 0.01f * ((rand8() % 100) - 0x32); + lbl_1_bss_E4[var_r30].unk_08 = (rand8() % 5) + 5; + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_08 *= -1; + } + var_r29 = rand8() % 4; + switch (var_r29) { + case 0: + Hu3DModelAmbSet(object->model[var_r30], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(object->model[var_r30], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(object->model[var_r30], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(object->model[var_r30], 0.0f, 0.0f, 1.0f); + break; + } + lbl_1_bss_E4[var_r30].unk_04 = 0; + } + object->func = fn_1_225F4; +}