From 85f1363bcc1172a1f302b755ddffafd60a5f710c Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 29 Oct 2024 21:16:32 +0100 Subject: [PATCH 1/2] Got 99% on mpexDll/mpex.c --- config/GMPE01_00/rels/mpexDll/symbols.txt | 58 +- include/REL/mpexDll.h | 33 +- include/game/object.h | 4 +- include/game/objsub.h | 2 +- src/REL/mpexDll/main.c | 56 +- src/REL/mpexDll/mpex.c | 3500 +++++++++++++++++++++ src/game/objmain.c | 4 +- src/game/objsub.c | 2 +- 8 files changed, 3588 insertions(+), 71 deletions(-) create mode 100644 src/REL/mpexDll/mpex.c diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index 8b856ada..21ef6f1a 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -256,7 +256,7 @@ lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC scope:local data: lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC scope:local data:float lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double @@ -267,14 +267,14 @@ lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data: lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC scope:local data:float lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC scope:local data:float lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double @@ -395,34 +395,34 @@ lbl_1_data_232 = .data:0x00000232; // type:object size:0xE scope:local data:stri lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte -lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 scope:local data:string lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x10 data:4byte lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:4byte -lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 data:string -lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 data:string -lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 data:string -lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 data:string -lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 scope:local data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 scope:local data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 scope:local data:string +lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 scope:local data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 scope:local data:string lbl_1_data_324 = .data:0x00000324; // type:object size:0x4 data:4byte lbl_1_data_328 = .data:0x00000328; // type:object size:0x4 data:4byte lbl_1_data_32C = .data:0x0000032C; // type:object size:0xC data:4byte -lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B data:string -lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 data:string -lbl_1_data_38B = .data:0x0000038B; // type:object size:0x5 data:string -lbl_1_data_390 = .data:0x00000390; // type:object size:0x4 data:string -lbl_1_data_394 = .data:0x00000394; // type:object size:0x4 +lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B scope:local data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 scope:local data:string +lbl_1_data_38B = .data:0x0000038B; // type:object size:0x5 scope:local data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x4 scope:local data:string +lbl_1_data_394 = .data:0x00000394; // type:object size:0x4 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x2C scope:local -lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x3C data:string -lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 data:string -lbl_1_data_416 = .data:0x00000416; // type:object size:0x1A data:string -lbl_1_data_430 = .data:0x00000430; // type:object size:0x1A data:string -lbl_1_data_44A = .data:0x0000044A; // type:object size:0x1A data:string -lbl_1_data_464 = .data:0x00000464; // type:object size:0x17 data:string -lbl_1_data_47B = .data:0x0000047B; // type:object size:0x16 data:string -lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 data:string -lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 data:string -lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 data:string -lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x3C scope:local data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 scope:local data:string +lbl_1_data_416 = .data:0x00000416; // type:object size:0x1A scope:local data:string +lbl_1_data_430 = .data:0x00000430; // type:object size:0x1A scope:local data:string +lbl_1_data_44A = .data:0x0000044A; // type:object size:0x1A scope:local data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0x17 scope:local data:string +lbl_1_data_47B = .data:0x0000047B; // type:object size:0x16 scope:local data:string +lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 scope:local data:string +lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 scope:local data:string +lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 scope:local data:string +lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 scope:local data:string lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C scope:local data:string lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 scope:local data:string lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A scope:local data:string diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h index c14b7b54..58c6910d 100644 --- a/include/REL/mpexDll.h +++ b/include/REL/mpexDll.h @@ -17,26 +17,35 @@ typedef struct MpexDllUnkStruct { /* 0x40 */ s32 unk_40; } MpexDllUnkStruct; /* size = 0x44 */ -typedef struct MpexDllUnkStruct2 { - /* 0x00 */ char unk00[0x40]; - /* 0x40 */ s16 *unk_40; - /* 0x44 */ char unk44; - /* 0x48 */ s16 *unk_48; - /* 0x4C */ char unk_4C[0xC]; - /* 0x58 */ u32 unk_58; -} MpexDllUnkStruct2; /* size = unknown */ - void fn_1_374(void); void fn_1_298(void); void fn_1_910(MpexDllUnkFunc arg0); -void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); -void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); -s32 fn_1_3044(Process *arg0); +void fn_1_25C4(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_28E0(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); +Process *fn_1_3044(Process *arg0); + +void fn_1_1264C(Process *arg0); +s32 fn_1_140B0(s32 arg0, s32 arg1); +void fn_1_148BC(s32 arg0); +void fn_1_148E4(s32 arg0); +void fn_1_1A5A4(s32 arg0); +float fn_1_1B714(float arg8, float arg9, float argA, float argB); +void fn_1_1B810(void); +void fn_1_1B834(void); +void fn_1_1B9F4(void); +void fn_1_1BA78(u32 arg0, s32 arg1, s32 arg2); +void fn_1_1BB4C(u32 arg0, s32 arg1); +s32 fn_1_1BBA4(s32 arg0); +void fn_1_1BD00(u32 arg0, s32 arg1); +void fn_1_1BF1C(u32 arg0); +void fn_1_1C120(void); void fn_1_1B7D0(s32 arg0); s32 fn_1_1D02C(s32 arg0); extern u8 lbl_1_bss_6AC; +extern s32 lbl_1_bss_63C[0x1C]; +extern MpexDllUnkStruct lbl_1_bss_64; #endif diff --git a/include/game/object.h b/include/game/object.h index 95061c52..69f4cb6b 100644 --- a/include/game/object.h +++ b/include/game/object.h @@ -117,7 +117,7 @@ extern s32 omcurdll; extern s32 omovlhisidx; extern s32 omovlevtno; extern s32 omnextovlevtno; -extern s32 omovlstat; +extern u32 omovlstat; extern char omUPauseFlag; extern s16 omSysExitReq; extern s16 omdispinfo; @@ -134,4 +134,4 @@ extern Vec CenterM[16]; extern float CZoomM[16]; extern s16 omDBGMenuButton; -#endif \ No newline at end of file +#endif diff --git a/include/game/objsub.h b/include/game/objsub.h index 2cc262d0..d42531e5 100644 --- a/include/game/objsub.h +++ b/include/game/objsub.h @@ -26,7 +26,7 @@ extern s16 mgTypeCurr; extern s16 mgBattleStar[4]; extern s16 mgBattleStarMax; extern u8 lbl_801D3E94; -extern s32 mgRecordExtra; +extern u32 mgRecordExtra; extern s32 mgQuitExtraF; extern s32 mgPracticeEnableF; extern s32 mgInstExitEnableF; diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c index ed43b5c1..8e6bdafc 100644 --- a/src/REL/mpexDll/main.c +++ b/src/REL/mpexDll/main.c @@ -3,6 +3,7 @@ #include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/printfunc.h" @@ -11,6 +12,13 @@ #include "REL/mpexDll.h" +#ifndef __MWERKS__ +float fn_1_1B52C(float arg8, float arg9, float argA, float argB); +float fn_1_1B554(float, float, float); +float fn_1_1B574(float arg0, float arg1, float arg2, float arg3); +float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3); +#endif + void fn_1_230(); void fn_1_A70(MpexDllUnkStruct *arg0); @@ -338,34 +346,34 @@ void fn_1_2228(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA); } -void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +void fn_1_25C4(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { switch (arg4) { case 0: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); break; case 1: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); break; case 2: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); break; } } -void fn_1_273C(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +void fn_1_273C(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { - if (arg0->unk_58 != arg0->unk_48[arg2]) { - arg0->unk_58 = arg0->unk_48[arg2]; + if (arg0->work[3] != arg0->motion[arg2]) { + arg0->work[3] = arg0->motion[arg2]; switch (arg4) { case 0: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); break; case 1: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); break; case 2: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); break; } } @@ -373,7 +381,7 @@ void fn_1_273C(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) void fn_1_28DC(void) { } -void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4) +void fn_1_28E0(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4) { Vec sp4C; Vec sp40; @@ -386,17 +394,17 @@ void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float a s32 var_r28 = 0; s32 var_r26; - sp40.x = Hu3DData[arg0->unk_40[arg1]].pos.x; - sp40.y = Hu3DData[arg0->unk_40[arg1]].pos.y; - sp40.z = Hu3DData[arg0->unk_40[arg1]].pos.z; + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; - sp34.x = arg2->x; - sp34.y = arg2->y; - sp34.z = arg2->z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; - sp1C.x = Hu3DData[arg0->unk_40[arg1]].rot.x; - sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y; - sp1C.z = Hu3DData[arg0->unk_40[arg1]].rot.z; + sp1C.x = Hu3DData[arg0->model[arg1]].rot.x; + sp1C.y = Hu3DData[arg0->model[arg1]].rot.y; + sp1C.z = Hu3DData[arg0->model[arg1]].rot.z; sp10.x = 0.0f; sp10.y = arg8; @@ -466,15 +474,15 @@ void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float a if (arg4 != 0) { sp1C.y = fn_1_1B554(sp1C.y, sp28.y, argA); } - Hu3DModelPosSet(arg0->unk_40[arg1], sp4C.x, sp40.y, sp4C.z); - Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp1C.y, sp1C.z); + Hu3DModelPosSet(arg0->model[arg1], sp4C.x, sp40.y, sp4C.z); + Hu3DModelRotSet(arg0->model[arg1], sp1C.x, sp1C.y, sp1C.z); if (var_r29 == 2 && var_r28 == 2) { break; } }; - sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y; + sp1C.y = Hu3DData[arg0->model[arg1]].rot.y; if (arg4 != 0) { for (var_r26 = 0; var_r26 <= argA; var_r26++) { fn_1_1B7D0(1); @@ -495,7 +503,7 @@ void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float a } } sp10.z = fn_1_1B52C(sp1C.y, sp10.y, var_r26, argA); - Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp10.z, sp1C.z); + Hu3DModelRotSet(arg0->model[arg1], sp1C.x, sp10.z, sp1C.z); } } } diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c new file mode 100644 index 00000000..d8d8e422 --- /dev/null +++ b/src/REL/mpexDll/mpex.c @@ -0,0 +1,3500 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/hsfex.h" +#include "stdio.h" +#endif + +#include "REL/mpexDll.h" + +typedef void (*MpexDllUnkFunc2)(omObjData *, ...); + +typedef struct MpexDllUnkStruct3 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; +} MpexDllUnkStruct3; /* size = 0x14 */ + +typedef struct MpexDllUnkStruct4 { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MpexDllUnkFunc2 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ char unk14[0x14]; + /* 0x28 */ s32 unk_28; + /* 0x2C */ char unk2C[0x1C]; +} MpexDllUnkStruct4; /* size = 0x48 */ + +s32 rand8(void); +float fn_1_1B52C(float arg8, float arg9, float argA, float argB); +float fn_1_1B574(float arg0, float arg1, float arg2, float arg3); +float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3); + +void fn_1_1015C(void); +void fn_1_10228(void); +void fn_1_10268(s32 arg0); +void fn_1_1045C(void); +void fn_1_107EC(void); +void fn_1_1085C(void); +void fn_1_10ABC(void); +void fn_1_10C30(void); +void fn_1_110F8(void); +void fn_1_114D4(void); +void fn_1_115A0(void); +void fn_1_115E0(s32 arg0); +void fn_1_117D4(void); +void fn_1_11930(void); +void fn_1_11984(void); +void fn_1_119E0(void); +void fn_1_11A3C(s32 arg0); +void fn_1_11E28(void); +void fn_1_11FC0(omObjData *object, MpexDllUnkStruct4 *arg1); +void fn_1_121E8(void); +void fn_1_125DC(float *arg0, s32 arg1); +void fn_1_32D8(void); +void fn_1_5D40(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_7D80(void); +void fn_1_7FC4(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_8320(void); +void fn_1_8ADC(void); +void fn_1_901C(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_9430(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_96B4(void); +void fn_1_A608(void); +void fn_1_AD34(void); +void fn_1_B004(void); +void fn_1_B210(void); +s32 fn_1_B248(s32 arg0, s32 arg1); +void fn_1_B2E4(s32 arg0); +void fn_1_B7F4(s32 arg0); +void fn_1_B870(s32 arg0); +void fn_1_B9A8(s32); +void fn_1_BC18(void); +void fn_1_BCD8(void); +u32 fn_1_BD10(s32 arg0, s32 arg1); +void fn_1_BD78(s32 arg0, s32 arg1); +void fn_1_C0DC(s32 arg0, s32); +void fn_1_C4D4(s32); +void fn_1_C544(void); +void fn_1_C860(void); +s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_CF10(s32 arg0); +void fn_1_D3AC(s32 arg0); +void fn_1_D468(s32 arg0); +void fn_1_D6AC(s32 arg0); +void fn_1_DBD0(s32 arg0); +void fn_1_E174(void); +void fn_1_E384(void); +void fn_1_E568(void); +void fn_1_EB1C(void); +void fn_1_ED78(s32 arg0, s32 arg1); +void fn_1_F0C0(void); +void fn_1_F40C(void); +void fn_1_F47C(void); +void fn_1_F730(void); +void fn_1_F8A4(void); +void fn_1_FDA0(void); + +s32 lbl_1_data_240[21] = { + 0x00000000, + 0x00000000, + 0x00000000, + 0xC37A0000, + 0x00000000, + 0x00000000, + 0x437A0000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x43FA0000, + 0x00000000, + 0xC47A0000, + 0x00000000, + 0x00000000, + 0x447A0000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x447A0000, + 0x00000000, +}; + +MpexDllUnkStruct4 lbl_1_bss_3F8; +MpexDllUnkStruct4 lbl_1_bss_3B0; +MpexDllUnkStruct4 lbl_1_bss_2D8[3]; +MpexDllUnkStruct4 lbl_1_bss_1B8[4]; +s32 lbl_1_bss_1B4; +s32 lbl_1_bss_1B0; +s32 lbl_1_bss_1AC; +s32 lbl_1_bss_180[0xB]; +MpexDllUnkStruct3 lbl_1_bss_130[4]; +char lbl_1_bss_120[16]; +char lbl_1_bss_118[8]; +char lbl_1_bss_110[8]; +s32 lbl_1_bss_10C; +s32 lbl_1_bss_108; +s32 lbl_1_bss_104; +char lbl_1_bss_FC[8]; +char lbl_1_bss_F4[8]; +char lbl_1_bss_EC[8]; +char lbl_1_bss_E4[8]; +s32 lbl_1_bss_E0; +s32 lbl_1_bss_C8[6]; +s32 lbl_1_bss_C4; +s32 lbl_1_bss_C0; +s32 lbl_1_bss_BC; +float lbl_1_bss_B8; +s32 lbl_1_bss_B4; +s32 lbl_1_bss_B0; +u32 lbl_1_bss_AC; +Process *lbl_1_bss_A8; + +Process *fn_1_3044(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_A8 = arg0; + if (omovlevtno == 0) { + mgGameStatBackup = GWGameStat; + } + fn_1_298(); + fn_1_374(); + fn_1_1B810(); + fn_1_910(fn_1_96B4); + lbl_1_bss_180[0] = 1; + lbl_1_bss_180[1] = 1; + lbl_1_bss_180[2] = GWMGAvailGet(omMgIndexGet(0x40) + 0x191); + lbl_1_bss_180[3] = GWMGAvailGet(omMgIndexGet(0xB) + 0x191); + lbl_1_bss_180[4] = GWMGAvailGet(omMgIndexGet(0x13) + 0x191); + lbl_1_bss_180[5] = 1; + lbl_1_bss_180[6] = 1; + lbl_1_bss_180[7] = 1; + lbl_1_bss_180[8] = 1; + lbl_1_bss_180[9] = GWMGAvailGet(omMgIndexGet(0x1B) + 0x191); + fn_1_121E8(); + for (var_r31 = 0; var_r31 < 0xA; var_r31++) { + if (lbl_1_bss_180[var_r31] == 0) { + break; + } + } + if (var_r31 == 0xA) { + lbl_1_bss_180[0xA] = 1; + } + else { + lbl_1_bss_180[0xA] = 0; + } + if (omovlevtno == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_8320, 0x7D0, 0x2000, 0, HuPrcCurrentGet()); + } + } + HuPrcChildCreate(fn_1_7D80, 0x7D0, 0x2000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuPrcChildCreate(fn_1_8ADC, 0x7D0, 0x2000, 0, HuPrcCurrentGet()); + } + fn_1_1264C(lbl_1_bss_A8); + + return HuPrcChildCreate(fn_1_32D8, 0x3E8, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_32D8(void) +{ + omObjData *var_r31; + + var_r31 = NULL; + var_r31 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_3F8.unk_00 = var_r31; + lbl_1_bss_3F8.unk_04 = (MpexDllUnkFunc2)fn_1_5D40; + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_3F8.unk_04 == NULL) { + continue; + } + lbl_1_bss_3F8.unk_04(lbl_1_bss_3F8.unk_00, &lbl_1_bss_3F8); + } +} + +void fn_1_3384(void) +{ + fn_1_1B7D0(0x1E); + HuAudFadeOut(0x3E8); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + HuAudAllStop(); + omOvlReturnEx(1, 1); + + while (TRUE) { + fn_1_1B7D0(1); + } +} + +void fn_1_33F8(void) +{ + s16 var_r31; + + if (SLSaveFlagGet() != 0) { + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + espInit(); + HuPrcVSleep(); + var_r31 = espEntry(0x860020, 0x1388, 0); + espPosSet(var_r31, 288.0f, 240.0f); + espAttrReset(var_r31, 4); + Hu3DBGColorSet(0, 0, 0); + WipeCreate(1, 0, 0xA); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + SLCommonSet(); + if (SLSave() == 0) { + GWSystem.save_mode = 1; + } + WipeCreate(2, 0, 0x14); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } +} + +void fn_1_3508(void) +{ + s16 var_r31; + + fn_1_1B7D0(0x1E); + HuAudFadeOut(0x3E8); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + + HuAudAllStop(); + CharModelKill(-1); + MGSeqKillAll(); + if (omovlevtno != 0) { + fn_1_1B7D0(0x3C); + fn_1_33F8(); + } + mgQuitExtraF = 0; + omOvlReturnEx(1, 1); + + while (TRUE) { + fn_1_1B7D0(1); + } +} + +void fn_1_36A4(void) +{ + omOvlHisData *sp8; + + fn_1_1B7D0(0x1E); + HuAudSStreamAllFadeOut(0x3E8); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + CharModelKill(-1); + MGSeqKillAll(); + sp8 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MPEX, 2, 0); + mgQuitExtraF = 0; + omOvlCallEx(OVL_ZTAR, 1, 0, 0); + while (TRUE) { + fn_1_1B7D0(1); + } +} + +void fn_1_3758(s32 arg0, s32 arg1) +{ + s32 spC[10][3] = { + { 0x60, 0x01, 0x00 }, + { 0x61, 0x01, 0x01 }, + { 0x45, 0x01, 0x02 }, + { 0x3C, 0x01, 0x03 }, + { 0x3B, 0x01, 0x04 }, + { 0x32, 0x01, 0x05 }, + { 0x41, 0x01, 0x06 }, + { 0x42, 0x01, 0x07 }, + { 0x43, 0x01, 0x08 }, + { 0x44, 0x01, 0x09 }, + }; + omOvlHisData *sp8; + s32 var_r29; + + fn_1_1B7D0(0x1E); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + if (arg0 == 0 || arg0 == 1) { + var_r29 = (arg1 * 0xA) + 0xA; + BoardPartyConfigSet(0, 0, 0, var_r29, 0, 0, 0, 0); + BoardSaveInit(arg0 + 7); + spC[arg0][2] += (arg1 * 0xA); + } + else if (arg0 == 4) { + GWSystem.mg_type = arg1; + spC[arg0][2] += (arg1 * 0xA); + } + + sp8 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MPEX, spC[arg0][1], spC[arg0][2]); + HuDataDirClose(DATA_MAKE_NUM(DATADIR_MPEX, 0x00)); + HuDataDirClose(0x150000); + CharModelKill(-1); + CharKill(-1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudAllStop(); + if (arg0 > 1) { + mgPracticeEnableF = 1; + } + mgQuitExtraF = 0; + omOvlCallEx(spC[arg0][0], 1, 0, 0); + while (TRUE) { + fn_1_1B7D0(1); + } +} + +s32 lbl_1_data_294 = -1; +s32 lbl_1_data_298 = -1; + +void fn_1_397C(void) +{ + if (omovlevtno != 2) { + lbl_1_data_298 = HuAudSeqPlay(0x2E); + } + WipeCreate(1, 0, -1); + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + fn_1_1B7D0(0x3C); +} + +void fn_1_39F4(void) +{ + fn_1_1B834(); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330000, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); + fn_1_1B7D0(0x3C); + fn_1_1B834(); + fn_1_1BA78(0x330001, 5, -1); + if (fn_1_1BBA4(1) == 0) { + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330002, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + } + fn_1_1B9F4(); + fn_1_1B7D0(0x3C); +} + +void fn_1_3AF8(void) +{ + s16 var_r29; + s32 var_r30; + s32 var_r31; + + var_r31 = -1; + var_r30 = 0; + fn_1_1B834(); + while (TRUE) { + fn_1_1B7D0(1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330003, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1BF1C(0x33004C); + var_r31 = -1; + lbl_1_bss_3B0.unk_08 = 0; + lbl_1_bss_3B0.unk_04 = (MpexDllUnkFunc2)fn_1_11FC0; + while (TRUE) { + fn_1_1B7D0(1); + if (var_r31 != lbl_1_bss_3B0.unk_08) { + HuAudFXPlay(0); + fn_1_11A3C(var_r31); + var_r31 = lbl_1_bss_3B0.unk_08; + switch (lbl_1_bss_3B0.unk_08) { + case 0: + fn_1_1BA78(0x330005, -1, 1); + break; + case 1: + fn_1_1BA78(0x330012, -1, 1); + break; + case 2: + fn_1_1BA78(0x330023, -1, 1); + break; + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r30 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r30 = 0; + break; + } + else { + if (lbl_1_bss_180[0xA] == 1) { + if (HuPadStkX[0] <= -0x1E) { + lbl_1_bss_3B0.unk_08 = 0; + } + else if (HuPadStkX[0] >= 0x1E) { + lbl_1_bss_3B0.unk_08 = 1; + } + else if (HuPadStkY[0] >= 0x1E) { + lbl_1_bss_3B0.unk_08 = 2; + } + else if ((HuPadStkY[0] <= -0x1E) && (lbl_1_bss_3B0.unk_08 == 2)) { + if (HuPadStkX[0] >= 5) { + lbl_1_bss_3B0.unk_08 = 1; + } + else { + lbl_1_bss_3B0.unk_08 = 0; + } + } + } + else if (HuPadStkX[0] <= -0x1E) { + lbl_1_bss_3B0.unk_08 = 0; + } + else if (HuPadStkX[0] >= 0x1E) { + lbl_1_bss_3B0.unk_08 = 1; + } + } + } + lbl_1_bss_3B0.unk_04 = NULL; + fn_1_1C120(); + if (var_r30 == 0) { + fn_1_11E28(); + fn_1_1BA78(0x330004, 5, -1); + if (fn_1_1BBA4(1) == 0) { + fn_1_1B9F4(); + fn_1_3508(); + } + continue; + } + break; + } + fn_1_11E28(); + fn_1_1B9F4(); + lbl_1_bss_1B4 = lbl_1_bss_3B0.unk_08; +} + +void fn_1_4014(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + lbl_1_bss_2D8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_901C; + } + do { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (lbl_1_bss_2D8[var_r31].unk_04 != NULL) { + break; + } + } + } while (var_r31 != 3); +} + +void fn_1_40AC(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + lbl_1_bss_2D8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_9430; + } + do { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (lbl_1_bss_2D8[var_r31].unk_04 != NULL) { + break; + } + } + } while (var_r31 != 3); +} + +s32 fn_1_4144(s32 arg0) +{ + s32 var_r31; + + var_r31 = 1; + var_r31 = fn_1_140B0(0, arg0); + return var_r31; +} + +s32 fn_1_4184(s32 arg0) +{ + s32 var_r31 = 0; + s32 var_r30 = -1; + if (arg0 == 0) { + fn_1_148BC(lbl_1_bss_1B4); + } + fn_1_F8A4(); + fn_1_1B834(); + if (lbl_1_data_294 == -1) { + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330007, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + } + else { + lbl_1_bss_3B0.unk_0C = lbl_1_data_294; + lbl_1_data_294 = -1; + } + fn_1_1B7D0(1); + fn_1_1BF1C(0x33004D); + fn_1_1015C(); + while (TRUE) { + fn_1_1B7D0(1); + if (var_r30 != lbl_1_bss_3B0.unk_0C) { + var_r30 = lbl_1_bss_3B0.unk_0C; + HuAudFXPlay(0); + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C] == 1) { + fn_1_1BA78(lbl_1_bss_3B0.unk_0C + MAKE_MESSID(0x33, 0x08), -1, 1); + } + else { + fn_1_1BA78(0x33002E, -1, 1); + } + fn_1_1B7D0(1); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C] == 1) { + HuAudFXPlay(2); + lbl_1_data_294 = lbl_1_bss_3B0.unk_0C; + var_r31 = 1; + break; + } + else { + HuAudFXPlay(4); + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + else { + if (HuPadStkY[0] >= 0x1E) { + fn_1_10268(-1); + } + else if (HuPadStkY[0] <= -0x1E) { + fn_1_10268(1); + } + } + } + fn_1_10228(); + fn_1_1C120(); + fn_1_1B9F4(); + fn_1_FDA0(); + if (var_r31 == 0) { + fn_1_148E4(lbl_1_bss_1B4); + } + lbl_1_bss_1B0 = lbl_1_bss_3B0.unk_0C; + return var_r31; +} + +s32 fn_1_444C(s32 arg0) +{ + s32 var_r31; + + var_r31 = 1; + if (arg0 == 0) { + lbl_1_bss_3B0.unk_10 = 0; + fn_1_D6AC(lbl_1_bss_1B0); + } + while (TRUE) { + fn_1_1B7D0(1); + if (HuPadBtnDown[0] & PAD_BUTTON_START) { + HuAudFXPlay(2); + var_r31 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + } + if (var_r31 == 0) { + fn_1_DBD0(lbl_1_bss_1B0); + } + return var_r31; +} + +s32 fn_1_4514(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r31 = 1; + var_r30 = lbl_1_bss_3B0.unk_10; + if ((lbl_1_bss_1B0 == 0) || (lbl_1_bss_1B0 == 1) || (lbl_1_bss_1B0 == 4)) { + if (lbl_1_bss_1B0 == 4) { + fn_1_E568(); + } + else { + fn_1_E174(); + } + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_3B0.unk_10 != var_r30) { + HuAudFXPlay(0); + fn_1_ED78(lbl_1_bss_3B0.unk_10, var_r30); + var_r30 = lbl_1_bss_3B0.unk_10; + } + if (HuPadStkY[0] <= -0x1E) { + lbl_1_bss_3B0.unk_10++; + if (lbl_1_bss_3B0.unk_10 > 2) { + lbl_1_bss_3B0.unk_10 = 0; + } + continue; + } + if (HuPadStkY[0] >= 0x1E) { + lbl_1_bss_3B0.unk_10--; + if (lbl_1_bss_3B0.unk_10 < 0) { + lbl_1_bss_3B0.unk_10 = 2; + } + continue; + } + if (HuPadBtnDown[0] & PAD_BUTTON_START) { + HuAudFXPlay(2); + var_r31 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + } + lbl_1_bss_1AC = lbl_1_bss_3B0.unk_10; + } + else { + var_r31 = 1; + } + if (var_r31 == 0) { + if (lbl_1_bss_1B0 == 4) { + fn_1_EB1C(); + } + else { + fn_1_E384(); + } + } + return var_r31; +} + +s32 fn_1_4730(s32 arg0) +{ + s32 var_r31; + + var_r31 = 1; + var_r31 = fn_1_140B0(1, arg0); + return var_r31; +} + +s32 fn_1_4770(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = -1; + if (arg0 == 0) { + fn_1_148BC(lbl_1_bss_1B4); + } + fn_1_10C30(); + fn_1_1B834(); + if (lbl_1_data_294 == -1) { + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330014, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + } + else { + lbl_1_bss_3B0.unk_0C = lbl_1_data_294; + lbl_1_data_294 = -1; + } + fn_1_1B7D0(1); + fn_1_1BF1C(0x33004D); + fn_1_114D4(); + while (TRUE) { + fn_1_1B7D0(1); + if (var_r30 != lbl_1_bss_3B0.unk_0C) { + var_r30 = lbl_1_bss_3B0.unk_0C; + HuAudFXPlay(0); + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C + 4] == 1) { + fn_1_1BA78(lbl_1_bss_3B0.unk_0C + 0x330015, -1, 1); + } + else { + fn_1_1BA78(0x33002E, -1, 1); + } + fn_1_1B7D0(1); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C + 4] == 1) { + HuAudFXPlay(2); + lbl_1_data_294 = lbl_1_bss_3B0.unk_0C; + var_r31 = 1; + break; + } + else { + HuAudFXPlay(4); + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + else { + if (HuPadStkY[0] >= 0x1E) { + fn_1_115E0(-1); + } + else if (HuPadStkY[0] <= -0x1E) { + fn_1_115E0(1); + } + } + } + fn_1_115A0(); + fn_1_1C120(); + fn_1_1B9F4(); + fn_1_110F8(); + if (var_r31 == 0) { + fn_1_148E4(lbl_1_bss_1B4); + } + lbl_1_bss_1B0 = lbl_1_bss_3B0.unk_0C + (lbl_1_bss_1B4 * 4); + return var_r31; +} + +s32 fn_1_4A58(s32 arg0) +{ + s32 var_r31 = 1; + var_r31 = fn_1_444C(arg0); + return var_r31; +} + +s32 fn_1_4B3C(s32 arg0) +{ + s32 var_r31 = 1; + var_r31 = fn_1_4514(arg0); + return var_r31; +} + +s32 fn_1_4B78(s32 arg0) +{ + s32 var_r30; + + var_r30 = 1; + lbl_1_bss_1B0 = 0xA; + var_r30 = fn_1_444C(arg0); + return var_r30; +} + +void fn_1_4C6C(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], -400.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelPosSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], -225.0f + (150.0f * var_r31), 0.0f, 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } +} + +void fn_1_4DF8(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelPosSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], -225.0f + (150.0f * var_r31), 0.0f, 0.0f); + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } +} + +void fn_1_4F84(void) +{ + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_130[var_r31].unk_00 = GWPlayerCfg[var_r31].group; + lbl_1_bss_130[var_r31].unk_04 = GWPlayerCfg[var_r31].iscom; + lbl_1_bss_130[var_r31].unk_08 = GWPlayerCfg[var_r31].diff; + lbl_1_bss_130[var_r31].unk_0C = GWPlayerCfg[var_r31].character; + lbl_1_bss_130[var_r31].unk_10 = GWPlayerCfg[var_r31].pad_idx; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 == lbl_1_bss_130[var_r31].unk_10) { + GWPlayer[var_r30].team = GWPlayerCfg[var_r30].group = lbl_1_bss_130[var_r31].unk_00; + GWPlayer[var_r30].com = GWPlayerCfg[var_r30].iscom = lbl_1_bss_130[var_r31].unk_04; + GWPlayer[var_r30].diff = GWPlayerCfg[var_r30].diff = lbl_1_bss_130[var_r31].unk_08; + GWPlayer[var_r30].character = GWPlayerCfg[var_r30].character = lbl_1_bss_130[var_r31].unk_0C; + GWPlayer[var_r30].port = GWPlayerCfg[var_r30].pad_idx = lbl_1_bss_130[var_r31].unk_10; + break; + } + } + } +} + +s32 fn_1_5238(void) +{ + s32 var_r29 = 0; + if (lbl_1_bss_1B0 != 2) { + fn_1_A608(); + } + fn_1_4F84(); + fn_1_1B7D0(0x3C); + var_r29 = 0; + return var_r29; +} + +void fn_1_5530(void) +{ + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1B8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_7FC4; + } + do { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1B8[var_r31].unk_04 != NULL) { + break; + } + } + } while (var_r31 != 4); + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], 0x40000002); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 2, 0xF, 1); + fn_1_28E0(lbl_1_bss_2D8[0].unk_00, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1B7D0(0x3C); +} + +void fn_1_56B8(void) +{ + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], -1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], -400.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_1B8[0].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1B8[0].unk_00->model[1], 1); +} + +s32 fn_1_57E0(void) +{ + s32 var_r31 = 0; + fn_1_AD34(); + fn_1_1B7D0(0x3C); + var_r31 = 0; + return var_r31; +} + +// similar to fn_1_5530 +void fn_1_581C(void) +{ + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + + lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_7FC4; + + do { + fn_1_1B7D0(1); + } while (lbl_1_bss_1B8[0].unk_04 != NULL); + + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], 0x40000002); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 2, 0xF, 1); + fn_1_28E0(lbl_1_bss_2D8[1].unk_00, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + fn_1_1B7D0(0x3C); +} + +void fn_1_595C(void) +{ + fn_1_3508(); +} + +void fn_1_5AF8(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } + fn_1_C544(); + fn_1_D468(lbl_1_bss_1B0); +} + +void fn_1_5C1C(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], -1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } + fn_1_C544(); + fn_1_D468(lbl_1_bss_1B0); +} + +void fn_1_5D40(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + s32 var_r31 = 0; + s32 var_r29 = 0; + s32 var_r30 = 0; + + if (omovlevtno == 1) { + lbl_1_bss_1B0 = omovlstat % 10; + if (lbl_1_bss_1B0 <= 3) { + lbl_1_bss_1B4 = 0; + } + else { + lbl_1_bss_1B4 = 1; + } + lbl_1_bss_1AC = omovlstat / 10; + if (mgQuitExtraF == 1) { + mgQuitExtraF = 0; + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], Hu3DMotionMotionMaxTimeGet(lbl_1_bss_3B0.unk_00->model[5]) - 5.0f); + if (lbl_1_bss_1B0 <= 3) { + fn_1_4F84(); + lbl_1_data_294 = lbl_1_bss_1B0; + fn_1_5AF8(); + var_r31 = 0x320; + } + else { + lbl_1_data_294 = lbl_1_bss_1B0 - 4; + fn_1_5C1C(); + var_r31 = 0x384; + } + } + else if (lbl_1_bss_1B0 <= 3) { + lbl_1_data_294 = lbl_1_bss_1B0; + if (lbl_1_bss_1B0 == 2) { + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], Hu3DMotionMotionMaxTimeGet(lbl_1_bss_3B0.unk_00->model[5]) - 5.0f); + fn_1_4DF8(); + var_r31 = 0x1FE; + } + else { + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], 33.0f); + fn_1_4C6C(); + var_r31 = 0x1F4; + } + } + else { + lbl_1_data_294 = lbl_1_bss_1B0 - 4; + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], 33.0f); + fn_1_56B8(); + var_r31 = 0x258; + } + } + else if (omovlevtno == 2) { + lbl_1_bss_1B0 = 0; + lbl_1_bss_1B4 = 0; + var_r31 = 1; + } + else { + var_r31 = 0; + } + while (TRUE) { + fn_1_1B7D0(1); + switch (var_r31) { + case 0x0: + fn_1_397C(); + fn_1_25C4(lbl_1_bss_3B0.unk_00, 5, 5, 0, 0); + fn_1_1B7D0(0x3C); + fn_1_39F4(); + var_r31 = 0x64; + break; + case 0x1: + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], Hu3DMotionMotionMaxTimeGet(lbl_1_bss_3B0.unk_00->model[5]) - 5.0f); + fn_1_397C(); + var_r31 = 0x64; + break; + case 0x64: + fn_1_117D4(); + fn_1_3AF8(); + fn_1_11930(); + var_r30 = 0; + var_r31 = 0x65; + break; + case 0x65: + fn_1_4014(); + + if (lbl_1_bss_1B4 == 2) { + var_r31 = (lbl_1_bss_1B4 * 0x64) + 0xC9; + } + else { + var_r31 = (lbl_1_bss_1B4 * 0x64) + 0xC8; + } + break; + case 0x66: + fn_1_40AC(); + var_r31 = 0x64; + break; + case 0xC8: + var_r29 = fn_1_4144(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0xC9; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0xC9: + fn_1_F0C0(); + var_r29 = fn_1_4184(var_r30); + fn_1_F40C(); + if (var_r29 != 0) { + fn_1_C544(); + var_r30 = 0; + var_r31 = 0xCA; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0xCA: + var_r29 = fn_1_444C(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0xCB; + } + else { + fn_1_C860(); + var_r30 = 1; + var_r31 = 0xC9; + } + break; + case 0xCB: + var_r29 = fn_1_4514(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0xCC; + } + else { + var_r30 = 1; + var_r31 = 0xCA; + } + break; + case 0xCC: + fn_1_3758(lbl_1_bss_1B0, lbl_1_bss_1AC); + var_r31 = -1; + break; + case 0x12C: + var_r29 = fn_1_4730(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x12D; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0x12D: + fn_1_1045C(); + var_r29 = fn_1_4770(var_r30); + fn_1_107EC(); + if (var_r29 != 0) { + fn_1_C544(); + var_r30 = 0; + var_r31 = 0x12E; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0x12E: + var_r29 = fn_1_4A58(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x12F; + } + else { + fn_1_C860(); + var_r30 = 1; + var_r31 = 0x12D; + } + break; + case 0x12F: + var_r29 = fn_1_4B3C(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x130; + } + else { + var_r30 = 1; + var_r31 = 0x12E; + } + break; + case 0x130: + fn_1_3758(lbl_1_bss_1B0, lbl_1_bss_1AC); + var_r31 = -1; + continue; + case 0x191: + fn_1_C544(); + var_r29 = fn_1_4B78(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x192; + } + else { + fn_1_C860(); + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0x192: + fn_1_36A4(); + case 0x1F4: + fn_1_397C(); + var_r29 = fn_1_5238(); + if (var_r29 == 1) { + var_r31 = 0xCC; + } + else if (var_r29 == 0) { + var_r31 = 0x1F5; + } + else { + var_r31 = 0x2BC; + } + break; + case 0x1F5: + fn_1_5530(); + var_r31 = 0xC9; + break; + case 0x1FE: + fn_1_397C(); + var_r31 = 0xC9; + break; + case 0x258: + fn_1_397C(); + var_r29 = fn_1_57E0(); + if (var_r29 == 1) { + var_r31 = 0x130; + } + else if (var_r29 == 0) { + var_r31 = 0x259; + } + else { + var_r31 = 0x2BC; + } + break; + case 0x259: + fn_1_581C(); + var_r31 = 0x12D; + break; + case 0x2BC: + fn_1_3508(); + case 0x320: + fn_1_397C(); + var_r31 = 0xCA; + var_r30 = 1; + break; + case 0x384: + fn_1_397C(); + var_r31 = 0x12E; + var_r30 = 1; + break; + default: + break; + } + } +} + +void fn_1_7BC8(omObjData *object) +{ + s32 var_r30; + + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x00)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "extra_ent_fix0-obj41"); + fn_1_25C4(object, 1, 1, 0, 1); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + object->model[var_r30 + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x02)); + Hu3DModelAttrSet(object->model[var_r30 + 1], 1); + } + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x01)); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0.0f, 0.0f, 270.0f); + if (omovlevtno == 2) { + fn_1_25C4(object, 5, 5, 0, 0); + return; + } + if (omovlevtno == 1) { + Hu3DModelAttrSet(object->model[5], 0x40000002); + return; + } + fn_1_25C4(object, 5, 5, 0, 2); +} + +void fn_1_7D80(void) +{ + omObjData *var_r29; + omObjData *var_r31; + s32 var_r30; + + var_r29 = NULL; + var_r29 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_3B0.unk_00 = var_r29; + lbl_1_bss_3B0.unk_04 = NULL; + var_r31 = lbl_1_bss_3B0.unk_00; + fn_1_7BC8(var_r31); + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_3B0.unk_04 == NULL) { + continue; + } + lbl_1_bss_3B0.unk_04(lbl_1_bss_3B0.unk_00, &lbl_1_bss_3B0); + } +} + +void fn_1_7FC4(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + Vec sp14 = { 700.0f, 0.0f, 0.0f }; + fn_1_1B7D0((4 - object->work[0]) * 5); + fn_1_25C4(object, 1, 2, 0xA, 1); + object->work[1] = 0; + while (object->work[1] <= 0xA) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].rot.y = fn_1_1B52C(0.0f, 90.0f, object->work[1], 10.0f); + object->work[1]++; + } + + fn_1_25C4(object, 1, 3, 0xA, 1); + fn_1_28E0(object, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(object, 1, 1, 0xA, 1); + arg1->unk_04 = NULL; +} + +void fn_1_816C(omObjData *object, s32 arg1) +{ + s32 var_r30 = GWPlayerCfg[arg1].character; + object->model[1] = CharModelCreate(var_r30, 4); + object->motion[1] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + object->motion[3] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[4] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); + object->motion[5] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + Hu3DModelPosSet(object->model[1], -150.0f + (100.0f * arg1), 0.0f, 0.0f); + Hu3DModelShadowSet(object->model[1]); + Hu3DModelAttrSet(object->model[1], 1); + CharModelLayerSetAll2(2); + fn_1_25C4(object, 1, 1, 0, 1); + CharKill(var_r30); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x02)); + Hu3DModelAttrSet(object->model[2], 1); +} + +void fn_1_8320(void) +{ + MpexDllUnkStruct4 *temp_r5; + omObjData *var_r28; + omObjData *var_r31; + s16 var_r29; + u32 var_r30; + + var_r30 = lbl_1_bss_AC; + lbl_1_bss_AC = var_r30 + 1; + var_r28 = NULL; + var_r28 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_1B8[var_r30].unk_00 = var_r28; + lbl_1_bss_1B8[var_r30].unk_04 = NULL; + lbl_1_bss_1B8[var_r30].unk_00->work[0] = var_r30; + var_r31 = lbl_1_bss_1B8[var_r30].unk_00; + fn_1_816C(var_r31, var_r30); + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_1B8[var_r30].unk_04 == NULL) { + continue; + } + lbl_1_bss_1B8[var_r30].unk_04(lbl_1_bss_1B8[var_r30].unk_00, &lbl_1_bss_1B8[var_r30]); + } +} + +void fn_1_85C4(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x03)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x04)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x06)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x06)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x07)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x08)); + Hu3DModelPosSet(object->model[1], -200.0f, 0.0f, 0.0f); + Hu3DModelShadowSet(object->model[1]); + CharModelEffectNpcInit(object->model[1], object->motion[2], 0, 0xF); + fn_1_25C4(object, 1, 1, 0, 1); +} + +void fn_1_8758(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x09)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0A)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0B)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0C)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0D)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0E)); + Hu3DModelPosSet(object->model[1], 200.0f, 0.0f, 0.0f); + Hu3DModelShadowSet(object->model[1]); + CharModelEffectNpcInit(object->model[1], object->motion[2], 0, 0x10); + fn_1_25C4(object, 1, 1, 0, 1); +} + +void fn_1_88EC(omObjData *object) +{ + float var_f31; + + var_f31 = 0.0f; + var_f31 = fn_1_1B714(0.0f, 1.0f, object->work[3], 180.0f); + Hu3DData[object->model[1]].pos.y += var_f31; + if (object->work[3]++ >= 0xB4) { + object->work[3] -= 0xB4; + } +} + +void fn_1_89C4(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x0F)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x10)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x11)); + Hu3DModelPosSet(object->model[1], 0.0f, 400.0f, 0.0f); + if (lbl_1_bss_180[0xA] == 0) { + Hu3DModelAttrSet(object->model[1], 1); + } + fn_1_25C4(object, 1, 1, 0, 1); + object->func = fn_1_88EC; +} + +void fn_1_8ADC(void) +{ + omObjData *var_r31; + omObjData *var_r30; + omObjData *var_r29; + s32 var_r28; + omObjData *var_r27; + + var_r28 = lbl_1_bss_B0; + lbl_1_bss_B0 = var_r28 + 1; + var_r27 = NULL; + var_r27 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_2D8[var_r28].unk_00 = var_r27; + lbl_1_bss_2D8[var_r28].unk_04 = 0; + lbl_1_bss_2D8[var_r28].unk_00->work[0] = var_r28; + switch (var_r28) { + case 0: + var_r31 = lbl_1_bss_2D8[var_r28].unk_00; + fn_1_85C4(var_r31); + break; + case 1: + var_r30 = lbl_1_bss_2D8[var_r28].unk_00; + fn_1_8758(var_r30); + break; + case 2: + var_r29 = lbl_1_bss_2D8[var_r28].unk_00; + fn_1_89C4(var_r29); + break; + } + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_2D8[var_r28].unk_04 == NULL) { + continue; + } + lbl_1_bss_2D8[var_r28].unk_04(lbl_1_bss_2D8[var_r28].unk_00, &lbl_1_bss_2D8[var_r28]); + } +} + +void fn_1_901C(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + + s32 var_r30; + s32 *var_r29; + s32 *var_r28; + s32 *var_r27; + s32 *var_r26; + void *var_r25; + + Vec sp50 = { 0.0f, 0.0f, 0.0f }; + Vec sp44 = { -1000.0f, 0.0f, 0.0f }; + Vec sp38 = { 1000.0f, 0.0f, 0.0f }; + switch (object->work[0]) { + case 0: + fn_1_25C4(object, 1, 3, 0xF, 1); + if (lbl_1_bss_1B4 == 0) { + fn_1_28E0(object, 1, sp50, 0.0f, 9.0f, 0.0f, 1, 0); + } + else { + fn_1_28E0(object, 1, sp44, 0.0f, 9.0f, 0.0f, 1, 0); + } + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 1: + fn_1_25C4(object, 1, 2, 0xF, 1); + if (lbl_1_bss_1B4 == 1) { + fn_1_28E0(object, 1, sp50, 0.0f, 9.0f, 0.0f, 1, 0); + } + else { + fn_1_28E0(object, 1, sp38, 0.0f, 9.0f, 0.0f, 1, 0); + } + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 2: + if (lbl_1_bss_1B4 == 2) { + var_f31 = Hu3DData[object->model[1]].pos.y; + for (var_r30 = 0; var_r30 <= 0x78; var_r30++) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].pos.y = fn_1_1B64C(var_f31, 250.0f, var_r30, 120.0f); + } + } + else { + var_f31 = Hu3DData[object->model[1]].pos.y; + for (var_r30 = 0; var_r30 <= 0x78; var_r30++) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].pos.y = fn_1_1B64C(var_f31, 1000.0f, var_r30, 120.0f); + } + } + break; + } + arg1->unk_04 = 0; +} + +void fn_1_9430(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + s32 var_r30; + s32 *var_r29; + s32 *var_r28; + + Vec sp38 = { 0.0f, 0.0f, 0.0f }; + Vec sp2C = { -200.0f, 0.0f, 0.0f }; + Vec sp20 = { 200.0f, 0.0f, 0.0f }; + switch (object->work[0]) { + case 0: + fn_1_25C4(object, 1, 2, 0xF, 1); + fn_1_28E0(object, 1, sp2C, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 1: + fn_1_25C4(object, 1, 2, 0xF, 1); + fn_1_28E0(object, 1, sp20, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 2: + var_f31 = Hu3DData[object->model[1]].pos.y; + for (var_r30 = 0; var_r30 <= 0x78; var_r30++) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].pos.y = fn_1_1B574(var_f31, 400.0f, var_r30, 120.0f); + } + break; + } + arg1->unk_04 = 0; +} + +void fn_1_96B4(void) +{ + MpexDllUnkStruct *var_r31 = &lbl_1_bss_64; + var_r31->unk_08.x = 0.0f; + var_r31->unk_08.y = 165.0f; + var_r31->unk_08.z = 0.0f; + var_r31->unk_20.x = 0.0f; + var_r31->unk_20.y = 0.0f; + var_r31->unk_20.z = 0.0f; + var_r31->unk_38 = 1200.0f; +} + +s32 lbl_1_data_2B4[4] = { -1, -1, -1, -1 }; +s32 lbl_1_data_2C4 = -1; + +void fn_1_9740(s32 arg0) +{ + s32 spC[4]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r29 = 0; + var_r30 = 0; + lbl_1_bss_B4 = 0; + lbl_1_data_2B4[0] = lbl_1_data_2B4[1] = lbl_1_data_2B4[2] = lbl_1_data_2B4[3] = -1; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[var_r31] = fn_1_B248(arg0, var_r31); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (spC[var_r31] >= var_r30) { + var_r30 = spC[var_r31]; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 == spC[var_r31]) { + lbl_1_bss_B4++; + lbl_1_data_2B4[var_r29++] = var_r31; + } + } + lbl_1_data_2C4 = var_r30; +} + +void fn_1_9890(void) +{ + fn_1_1B834(); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x33000C, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); +} + +void fn_1_9908(void) +{ + fn_1_1B834(); + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x33001B, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); +} + +void fn_1_9988(s32 arg0) +{ + s32 var_r31; + u32 var_r30; + u32 var_r29; + + fn_1_1B834(); + if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (arg0 == 4))) { + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(arg0 + 0x330096, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + } + else { + if ((arg0 == 4) || (arg0 == 8)) { + var_r31 = mgRecordExtra; + var_r30 = var_r31 / 36000; + var_r31 -= var_r30 * 36000; + var_r29 = var_r31 / 3600; + var_r31 -= var_r29 * 3600; + sprintf(lbl_1_bss_120, "%d", var_r29); + fn_1_1BB4C((u32)&lbl_1_bss_120, 0); + var_r30 = var_r31 / 600; + var_r31 -= var_r30 * 600; + var_r29 = var_r31 / 60; + var_r31 -= var_r29 * 60; + sprintf(lbl_1_bss_118, "%d%d", var_r30, var_r29); + fn_1_1BB4C((u32)lbl_1_bss_118, 1); + if (arg0 == 8) { + var_r31 = 1.6916666666666667 * (float)var_r31; + } + else { + var_r31 = 1.6666666666666667 * (float)var_r31; + } + var_r30 = var_r31 / 10; + var_r31 -= var_r30 * 0xA; + var_r29 = var_r31; + sprintf(lbl_1_bss_110, "%d%d", var_r30, var_r29); + fn_1_1BB4C((u32)lbl_1_bss_110, 2); + } + else { + sprintf(lbl_1_bss_110, "%d", mgRecordExtra); + fn_1_1BB4C((u32)lbl_1_bss_110, 0); + } + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(arg0 + 0x330018, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + } + fn_1_1B9F4(); +} + +void fn_1_9CD4(s32 arg0) +{ + fn_1_1B834(); + fn_1_1BB4C(fn_1_BD10(arg0, mgRecordExtra), 3); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330090, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); +} + +void fn_1_9D6C(void) +{ + fn_1_1B834(); + switch (lbl_1_bss_B4) { + case 1: + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[0]].character, 0); + fn_1_1BA78(0x33000D, -1, -1); + break; + case 2: + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[0]].character, 0); + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[1]].character, 1); + fn_1_1BA78(0x33000E, -1, -1); + break; + case 3: + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[0]].character, 0); + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[1]].character, 1); + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[2]].character, 2); + fn_1_1BA78(0x33000F, -1, -1); + break; + case 4: + fn_1_1BA78(0x330010, -1, -1); + break; + } + fn_1_1B9F4(); +} + +void fn_1_9F10(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = 30.0 * sind(8.0f * (lbl_1_bss_B8 + (var_r31 * 0x78))); + Hu3DModelPosSet(object->model[var_r31 + 1], -200.0f + (200.0f * var_r31), 850.0f, 0.0f); + Hu3DModelRotSet(object->model[var_r31 + 1], 0.0f, 0.0f, var_f31); + Hu3DModelScaleSet(object->model[var_r31 + 1], 1.5f, 2.0f, 1.5f); + } + lbl_1_bss_B8 += 0.5f; +} + +void fn_1_A0E4(omObjData *object, MpexDllUnkStruct4 *arg_1) +{ + float var_f31; + float var_f30; + s32 var_r30; + + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelTPLvlSet(object->model[2], 0.0f); + for (var_r30 = 0; var_r30 <= 0xF; var_r30++) { + fn_1_1B7D0(1); + var_f30 = fn_1_1B52C(0.0f, 0.5f, var_r30, 15.0f); + var_f31 = fn_1_1B52C(0.0f, 1.5f, var_r30, 15.0f); + Hu3DModelPosSet(object->model[2], Hu3DData[object->model[1]].pos.x, 850.0f, Hu3DData[object->model[1]].pos.z); + Hu3DModelScaleSet(object->model[2], var_f31, 2.0f, var_f31); + Hu3DModelTPLvlSet(object->model[2], var_f30); + } + arg_1->unk_04 = NULL; +} + +void fn_1_A2AC(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + s32 var_r30; + + for (var_r30 = 0; var_r30 <= 0xF; var_r30++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B52C(0.5f, 0.0f, var_r30, 15.0f); + Hu3DModelTPLvlSet(object->model[2], var_f31); + } + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelTPLvlSet(object->model[2], 0.0f); + arg1->unk_04 = NULL; +} + +void fn_1_A3A4(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + + lbl_1_bss_3B0.unk_04 = (MpexDllUnkFunc2)fn_1_9F10; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 1); + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 0.0f); + } + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B52C(0.0f, 0.5f, var_r31, 60.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r30 + 1], var_f31); + } + } + fn_1_1B7D0(0x5A); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B52C(0.5f, 0.0f, var_r31, 60.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r30 + 1], var_f31); + } + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 1); + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 0.0f); + } + lbl_1_bss_3B0.unk_04 = NULL; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_A608(void) +{ + s32 var_r31; + s32 var_r29; + + fn_1_9740(lbl_1_bss_1B0); + OSReport("CNT:%d, WIN:%d %d %d %d\n", lbl_1_bss_B4, lbl_1_data_2B4[0], lbl_1_data_2B4[1], lbl_1_data_2B4[2], lbl_1_data_2B4[3]); + fn_1_9890(); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 1, 0x1F4); + } + HuPrcChildCreate(fn_1_A3A4, 0x3E8, 0x1000, 0, HuPrcCurrentGet()); + fn_1_1B7D0(0xF); + HuAudFXPlay(0x9E); + fn_1_1B7D0(0xA5); + HuAudFXPlay(0x9F); + HuAudFXPlay(0xA8); + HuAudFXPlay(0x9A); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 0, 0x7D0); + } + if ((lbl_1_bss_B4 >= 1) && (lbl_1_data_2C4 != 0)) { + for (var_r31 = 0; var_r31 < lbl_1_bss_B4; var_r31++) { + lbl_1_bss_1B8[lbl_1_data_2B4[var_r31]].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4; + OSReport("CNT:%d, WIN:%d %d %d %d\n", lbl_1_bss_B4, lbl_1_data_2B4[0], lbl_1_data_2B4[1], lbl_1_data_2B4[2], lbl_1_data_2B4[3]); + } + fn_1_9D6C(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r31 == lbl_1_data_2B4[var_r29]) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 4, 0xF, 0); + break; + } + } + if (var_r29 == 4) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 5, 0xF, 0); + } + } + } + else { + fn_1_1B834(); + fn_1_25C4(lbl_1_bss_2D8->unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(lbl_1_bss_1B0 + MAKE_MESSID(0x33, 0x96), -1, -1); + fn_1_25C4(lbl_1_bss_2D8->unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 5, 0xF, 0); + } + } + fn_1_1B7D0(0x3C); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 1, 0xF, 1); + } + fn_1_B004(); + fn_1_1B7D0(1); + fn_1_B870(lbl_1_bss_1B0); + fn_1_1B7D0(0x3C); + fn_1_1B7D0(0x3C); + fn_1_1BD00(0x240007, 1); + do { + fn_1_1B7D0(1); + } while ((HuPadBtnDown[0] & 0x100) == 0); + HuAudFXPlay(2); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1B8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_A2AC; + } + fn_1_1C120(); + fn_1_B9A8(lbl_1_bss_1B0); + fn_1_1B7D0(1); + fn_1_B210(); +} + +void fn_1_AD34(void) +{ + fn_1_9908(); + fn_1_1B7D0(0x3C); + fn_1_9988(lbl_1_bss_1B0); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 1, 0x1F4); + } + fn_1_1B7D0(0xF); + HuAudFXPlay(0x9E); + fn_1_1B7D0(0xA5); + lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4; + if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (lbl_1_bss_1B0 == 4))) { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0); + } + else { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0); + } + fn_1_BC18(); + fn_1_1B7D0(1); + HuAudFXPlay(0x9F); + HuAudFXPlay(0xA8); + HuAudFXPlay(0x9A); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 0, 0x7D0); + } + fn_1_C0DC(lbl_1_bss_1B0, rand8()); + fn_1_1B7D0(0x3C); + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 1, 0xF, 1); + fn_1_9CD4(lbl_1_bss_1B0); + lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A2AC; + fn_1_C4D4(lbl_1_bss_1B0); + fn_1_1B7D0(1); + fn_1_BCD8(); +} + +void fn_1_B004(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r29 = HuSprGrpCreate(0x1B); + lbl_1_bss_10C = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x37)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x38)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 1, var_r30); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x3E)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 2, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3B)); + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xA, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3C)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x16, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3D)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0x1A, var_r30); + fn_1_B2E4(0); + fn_1_B7F4(0); +} + +void fn_1_B210(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_10C; + HuSprGrpKill(var_r31); +} + +s32 fn_1_B248(s32 arg0, s32 arg1) +{ + s32 var_r31 = 0; + if (lbl_1_bss_1B0 <= 1) { + var_r31 = GWPlayer[arg1].coins; + } + else { + var_r31 = GWPlayerCoinWinGet(arg1); + OSReport("########## %d:%d\n", arg1, var_r31); + } + return var_r31; +} + +void fn_1_B2E4(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r24; + + var_r30 = lbl_1_bss_10C; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != -1) { + HuSprAttrReset(var_r30, 0, 4); + HuSprPosSet(var_r30, 0, 288.0f, 148.0f); + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 288.0f, 156.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, GWPlayerCfg[var_r31].character + 2, 4); + HuSprPosSet(var_r30, GWPlayerCfg[var_r31].character + 2, 201.0f, (var_r31 * 0x2A) + 0x60); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r29 = 0; var_r29 < 3; var_r29++) { + HuSprAttrReset(var_r30, 0xA + var_r29 + (var_r31 * 3), 4); + HuSprPosSet(var_r30, 0xA + var_r29 + (var_r31 * 3), (var_r29 * 0x1C) + 0xF7, (var_r31 * 0x2A) + 0x60); + } + var_r24 = fn_1_B248(0, var_r31); + var_r28 = var_r24 / 100; + if (var_r28 == 0) { + HuSprAttrSet(var_r30, (var_r31 * 3) + 0xA, 4); + } + HuSprBankSet(var_r30, (var_r31 * 3) + 0xA, var_r28); + var_r28 = (var_r24 % 100) / 10; + if ((var_r28 == 0) && ((var_r24 / 100) == 0)) { + HuSprAttrSet(var_r30, (var_r31 * 3) + 0xB, 4); + } + HuSprBankSet(var_r30, (var_r31 * 3) + 0xB, var_r28); + var_r28 = var_r24 % 10; + HuSprBankSet(var_r30, (var_r31 * 3) + 0xC, var_r28); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprPosSet(var_r30, var_r31 + 0x16, 358.0f, (var_r31 * 0x2A) + 0x60); + switch (arg0) { + case 0: + case 1: + HuSprBankSet(var_r30, var_r31 + 0x16, 0); + break; + case 3: + HuSprBankSet(var_r30, var_r31 + 0x16, 1); + break; + case 2: + break; + } + } + HuSprAttrReset(var_r30, 0x1A, 4); + HuSprPosSet(var_r30, 0x1A, 288.0f, 55.0f); + switch (arg0) { + case 2: + break; + case 0: + HuSprBankSet(var_r30, 0x1A, 0); + break; + case 1: + HuSprBankSet(var_r30, 0x1A, 1); + break; + case 3: + HuSprBankSet(var_r30, 0x1A, 2); + break; + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); + } + (void)var_r29; +} + +void fn_1_B7F4(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_10C; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_B870(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30 = lbl_1_bss_10C; + + fn_1_B2E4(arg0); + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r30, 0.0f, var_f31); + } +} + +void fn_1_B9A8(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_10C; + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r28, 0.0f, var_f31); + } + var_r29 = lbl_1_bss_10C; + for (var_r30 = 0; var_r30 < 0x1B; var_r30++) { + HuSprAttrSet(var_r29, var_r30, 4); + } + HuSprGrpPosSet(var_r29, 0.0f, -500.0f); +} + +void fn_1_BB34(s32 arg0, s32 arg1) +{ + float sp10[2]; + s32 var_r31; + HuSprGrp *var_r30; + HuSprite *var_r29; + + var_r30 = &HuSprGrpData[winData[arg0].group]; + HuWinMesMaxSizeGet(1, sp10, arg1); + for (var_r31 = 0; var_r31 < var_r30->capacity; var_r31++) { + var_r29 = &HuSprData[var_r30->members[var_r31]]; + var_r29->x -= sp10[0] / 2; + var_r29->y -= 30.0f; + } +} + +void fn_1_BC18(void) +{ + s32 var_r31; + s32 var_r30 = HuSprGrpCreate(2); + + lbl_1_bss_108 = var_r30; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x39)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3A)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 1, var_r31); + fn_1_BD78(-1, 0); +} + +void fn_1_BCD8(void) +{ + s32 var_r31 = lbl_1_bss_108; + HuSprGrpKill(var_r31); +} + +u32 fn_1_BD10(s32 arg0, s32 arg1) +{ + s32 var_r31 = fn_1_C898(arg1, arg0, lbl_1_bss_1AC, 0); + return ((arg0 - 4) * 0xA) + MAKE_MESSID(0x33, 0x00) + var_r31 + 0x51; +} + +void fn_1_BD78(s32 arg0, s32 arg1) +{ + float sp10[2]; + s32 var_r31; + s32 var_r30; + u32 var_r25; + + var_r31 = lbl_1_bss_108; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + HuSprAttrSet(var_r31, var_r30, 4); + } + if (arg0 != -1) { + HuSprAttrReset(var_r31, 0, 4); + HuSprAttrReset(var_r31, 1, 4); + HuSprBankSet(var_r31, 1, arg0 - 4); + HuSprGrpPosSet(var_r31, 288.0f, 100.0f); + HuSprGrpScaleSet(var_r31, 0.0f, 0.0f); + OSReport("#################### SCORE(%d-%d) : %d\n", arg0, lbl_1_bss_1AC, mgRecordExtra); + var_r25 = fn_1_BD10(arg0, mgRecordExtra); + HuWinMesMaxSizeGet(1, sp10, var_r25); + lbl_1_bss_104 = HuWinCreate(0.0f, 0.0f, sp10[0], sp10[1], 0); + HuWinBGTPLvlSet(lbl_1_bss_104, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_104, 0); + HuWinDispOn(lbl_1_bss_104); + fn_1_BB34(lbl_1_bss_104, var_r25); + HuWinMesSet(lbl_1_bss_104, var_r25); + HuWinPosSet(lbl_1_bss_104, 296.0f, 100.0f); + } +} + +void fn_1_C06C(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_108; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuWinKill(lbl_1_bss_104); +} + +void fn_1_C0DC(s32 arg0, s32 arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r24; + s32 var_r22; + + var_r30 = 0; + var_r22 = lbl_1_bss_108; + var_f30 = 1.5f; + fn_1_BD78(arg0, arg1); + for (var_r24 = 0; var_r24 < 0xA; var_r24++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(var_f30, 1.0f, var_r30, 5.0f); + if (++var_r30 == 5) { + if (var_f30 > 1.0f) { + var_f30 -= 0.1f; + } + var_r30 = 0; + } + HuSprGrpScaleSet(var_r22, var_f31, var_f31); + HuWinScaleSet(lbl_1_bss_104, var_f31, var_f31); + } +} + +void fn_1_C4D4(s32 arg0) +{ + fn_1_C06C(); +} + +s32 lbl_1_data_324 = 0xFFFFFFFF; +s32 lbl_1_data_328 = -1; +s32 lbl_1_data_32C[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }; + +void fn_1_C544(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r29 = HuSprGrpCreate(0x25); + lbl_1_data_324 = var_r29; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1B)), 0x1388, 0); + HuSprGrpMemberSet(var_r29, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1C)), 0x1388, 0); + HuSprGrpMemberSet(var_r29, 0x23, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1D)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 1, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1E)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 2, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1F)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 3, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x20)), 0x76C, 0); + HuSprGrpMemberSet(var_r29, 4, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x21)), 0x834, 0); + HuSprGrpMemberSet(var_r29, 6, var_r31); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r31 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MPEX, 0x2F)), 0xA, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 7, var_r31); + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r31 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MPEX, 0x32)), 0xA, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0xA, var_r31); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x35)); + for (var_r30 = 0; var_r30 < 0x15; var_r30++) { + var_r31 = HuSprCreate(var_r28, 9, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0xD, var_r31); + } + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x15)), 8, 0); + HuSprGrpMemberSet(var_r29, 0x22, var_r31); + fn_1_CF10(-1); + fn_1_D3AC(-1); +} + +void fn_1_C860(void) +{ + s32 var_r31 = lbl_1_data_324; + HuSprGrpKill(var_r31); +} + +s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 sp88[5][9] = { + { 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E, 0x168 }, + { 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 }, + { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0xE10, 0x1C20, 0x2A30, 0x3840, 0x4650, 0x5460, 0x6270, 0x7080, 0x7E90 }, + { 0x0A, 0x14, 0x1E, 0x23, 0x28, 0x2D, 0x32, 0x35, 0x37 }, + }; + s32 sp1C[3][9] = { + { 0x4650, 0x3840, 0x2A30, 0x1C20, 0x0E10, 0, 0, 0, 0 }, + { 0x4650, 0x3840, 0x2A30, 0x1C20, 0x1770, 0x12C0, 0x0E10, 0, 0 }, + { 0x4650, 0x3840, 0x2A30, 0x2328, 0x1C20, 0x19C8, 0x1770, 0x1644, 0x1518 }, + }; + s32 sp10[3]; + s32 var_r31; + s32 var_r30; + + if (arg1 >= 5) { + for (var_r31 = 0; var_r31 < 9; var_r31++) { + if (arg0 < sp88[arg1 - 5][var_r31]) { + break; + } + } + } + else if (arg3 != 0) { + for (var_r30 = 0; var_r30 < 3; var_r30++) { + OSReport("#################### HI-SCORE(%d-%d) : %d\n", arg1, var_r30, GWGameStat.mg_record[var_r30 + 6]); + arg0 = GWGameStat.mg_record[var_r30 + 6]; + for (var_r31 = 0; var_r31 < 9; var_r31++) { + if (arg0 >= sp1C[var_r30][var_r31]) { + break; + } + } + sp10[var_r30] = var_r31; + } + if (sp10[0] <= sp10[1]) { + var_r31 = sp10[1]; + } + else { + var_r31 = sp10[0]; + } + if (var_r31 <= sp10[2]) { + var_r31 = sp10[2]; + } + } + else { + for (var_r31 = 0; var_r31 < 9; var_r31++) { + if (arg0 >= sp1C[arg2][var_r31]) { + break; + } + } + } + return var_r31; +} + +void fn_1_CA98(s32 arg0, u32 arg1) +{ + s32 sp8[11] = { + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0x00000009, + 0xFFFFFFFF, + 0x00000004, + 0x0000000B, + 0x0000000C, + 0x0000000D, + 0x0000000E, + 0xFFFFFFFF, + }; + s32 var_r31; + u32 var_r29; + u32 var_r28; + + switch (arg1) { + case 0: + case 1: + case 2: + case 10: + break; + case 4: + var_r31 = fn_1_C898(-1, arg1, 0, 1); + HuWinInsertMesSet(arg0, ((arg1 - 4) * 0xA) + 0x330000 + var_r31 + 0x51, 3); + break; + case 5: + case 6: + case 7: + case 9: + var_r31 = fn_1_C898(GWGameStat.mg_record[sp8[arg1]], arg1, 0, 0); + HuWinInsertMesSet(arg0, ((arg1 - 4) * 0xA) + 0x330000 + var_r31 + 0x51, 3); + case 3: + OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); + var_r31 = GWGameStat.mg_record[sp8[arg1]]; + if (var_r31 < 0xA) { + sprintf(lbl_1_bss_FC, " %d", var_r31); + } + else if (var_r31 < 0x64) { + sprintf(lbl_1_bss_FC, " %d", var_r31); + } + else { + sprintf(lbl_1_bss_FC, "%d", var_r31); + } + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_FC, 0); + break; + case 8: + OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); + var_r31 = GWGameStat.mg_record[sp8[arg1]]; + var_r29 = var_r31 / 36000; + var_r31 -= var_r29 * 36000; + var_r28 = var_r31 / 3600; + var_r31 -= var_r28 * 3600; + sprintf(lbl_1_bss_F4, " %d", var_r28); + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_F4, 0); + var_r29 = var_r31 / 600; + var_r31 -= var_r29 * 600; + var_r28 = var_r31 / 60; + var_r31 -= var_r28 * 60; + sprintf(lbl_1_bss_EC, "%d%d", var_r29, var_r28); + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_EC, 1); + var_r31 = 1.6916666666666667 * (float)var_r31; + var_r29 = var_r31 / 10; + var_r31 -= var_r29 * 0xA; + var_r28 = var_r31; + if (GWGameStat.mg_record[sp8[arg1]] >= 0x8C9F) { + sprintf(lbl_1_bss_E4, "99"); + } + else { + sprintf(lbl_1_bss_E4, "%d%d", var_r29, var_r28); + } + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_E4, 2); + var_r31 = fn_1_C898(GWGameStat.mg_record[sp8[arg1]], arg1, 0, 0); + HuWinInsertMesSet(arg0, ((arg1 - 4) * 0xA) + 0x330000 + var_r31 + 0x51, 3); + break; + default: + break; + } +} + +void fn_1_CF10(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r28; + + var_r31 = lbl_1_data_324; + for (var_r30 = 0; var_r30 < 0x25; var_r30++) { + HuSprAttrSet(var_r31, var_r30, 4); + } + if (arg0 != -1) { + s32 sp8[11][4] = { + { 0x00370000, 0x00370001, 0x00370002, 0x0017003E }, + { 0x00370003, 0x00370004, 0x00370005, 0x0017003F }, + { 0x00370006, 0x00370007, 0x00370008, 0x0017003D }, + { 0x00370009, 0x0037000A, 0x0037000B, 0x00170034 }, + { 0x0037000C, 0x0037000D, 0x0037000E, 0x00170033 }, + { 0x0037000F, 0x00370010, 0x00370011, 0x0017002A }, + { 0x00370012, 0x00370013, 0x00370014, 0x00170039 }, + { 0x00370015, 0x00370016, 0x00370017, 0x0017003A }, + { 0x00370018, 0x00370019, 0x0037001A, 0x0017003B }, + { 0x0037001B, 0x0037001C, 0x0037001D, 0x0017003C }, + { 0x0037001E, 0x0037001F, 0x00370020, 0x00170021 }, + }; + var_r28 = HuSprCreate(HuSprAnimReadFile(arg0 + DATA_MAKE_NUM(DATADIR_MPEX, 0x22)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 5, var_r28); + lbl_1_data_328 = fn_1_1D02C(sp8[arg0][3]); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, -437.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + lbl_1_data_32C[var_r30] = HuWinCreate(0.0f, 0.0f, 0x136, 0x78, 0); + HuWinBGTPLvlSet(lbl_1_data_32C[var_r30], 0.0f); + HuWinMesSpeedSet(lbl_1_data_32C[var_r30], 0); + HuWinDispOn(lbl_1_data_32C[var_r30]); + if (sp8[arg0][var_r30] != -1) { + if (var_r30 == 2) { + fn_1_CA98(lbl_1_data_32C[2], arg0); + } + HuWinMesSet(lbl_1_data_32C[var_r30], sp8[arg0][var_r30]); + } + HuWinPosSet(lbl_1_data_32C[var_r30], -485.0f, (var_r30 << 7) + 0x70); + } + if (arg0 != 0xA) { + HuSprAttrReset(var_r31, 0, 4); + HuSprPosSet(var_r31, 0, 288.0f, 240.0f); + HuSprTPLvlSet(var_r31, 0, 0.0f); + } + else { + HuSprAttrReset(var_r31, 0x23, 4); + HuSprPosSet(var_r31, 0x23, 288.0f, 240.0f); + HuSprTPLvlSet(var_r31, 0x23, 0.0f); + } + HuSprAttrReset(var_r31, 1, 4); + HuSprPosSet(var_r31, 1, -331.0f, 272.0f); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 2, 452.0f, 911.0f); + HuSprAttrReset(var_r31, 3, 4); + HuSprPosSet(var_r31, 3, 288.0f, -437.0f); + HuSprAttrReset(var_r31, 4, 4); + HuSprPosSet(var_r31, 4, 952.0f, 212.0f); + HuSprAttrReset(var_r31, 5, 4); + HuSprPosSet(var_r31, 5, 952.0f, 212.0f); + HuSprScaleSet(var_r31, 5, 0.5f, 0.5f); + HuSprAttrReset(var_r31, 6, 4); + HuSprPosSet(var_r31, 6, 952.0f, 212.0f); + } +} + +void fn_1_D3AC(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_data_324; + for (var_r31 = 0; var_r31 < 0x25; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != -1) { + HuSprGrpMemberKill(var_r30, 5); + HuSprGrpKill(lbl_1_data_328); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuWinKill(lbl_1_data_32C[var_r31]); + } + } +} + +void fn_1_D468(s32 arg0) +{ + s32 var_r28; + s32 var_r30; + s32 var_r31; + + var_r31 = lbl_1_data_324; + fn_1_CF10(arg0); + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r31, 0, 1.0f); + } + else { + HuSprTPLvlSet(var_r31, 0x23, 1.0f); + } + HuSprPosSet(var_r31, 3, 288.0f, 63.0f); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, 63.0f); + HuSprPosSet(var_r31, 1, 169.0f, 272.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuWinPosSet(lbl_1_data_32C[var_r30], 14.0f, (var_r30 << 7) + 0x70); + } + HuSprPosSet(var_r31, 4, 452.0f, 212.0f); + HuSprPosSet(var_r31, 5, 452.0f, 212.0f); + HuSprPosSet(var_r31, 6, 452.0f, 212.0f); + HuSprPosSet(var_r31, 2, 452.0f, 411.0f); + var_r28 = lbl_1_bss_63C[2]; + if (arg0 <= 3) { + fn_1_1A5A4(0); + } + else { + fn_1_1A5A4(1); + } + HuSprGrpPosSet(var_r28, 452.0f, 355.0f); +} + +void fn_1_D6AC(s32 arg0) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + + var_r30 = lbl_1_data_324; + fn_1_CF10(arg0); + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(0.0f, 1.0f, var_r31, 30.0f); + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, var_f31); + } + else { + HuSprTPLvlSet(var_r30, 0x23, var_f31); + } + } + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, 1.0f); + } + else { + HuSprTPLvlSet(var_r30, 0x23, 1.0f); + } + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_r29 = fn_1_1B64C(-500.0f, 0.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 3, 288.0f, var_r29 + 0x3F); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, var_r29 + 0x3F); + HuSprPosSet(var_r30, 1, var_r29 + 0xA9, 272.0f); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + HuWinPosSet(lbl_1_data_32C[var_r28], var_r29 + 0xE, (var_r28 << 7) + 0x70); + } + var_r29 = fn_1_1B64C(500.0f, 0.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 4, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 5, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 6, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 2, 452.0f, var_r29 + 0x19B); + if (arg0 != 0xA) { + var_r26 = lbl_1_bss_63C[2]; + var_f30 = fn_1_1B64C(112.0f, 452.0f, var_r31, 30.0f); + var_f29 = fn_1_1B64C(72.0f, 355.0f, var_r31, 30.0f); + HuSprGrpPosSet(var_r26, var_f30, var_f29); + } + } +} + +void fn_1_DBD0(s32 arg0) +{ + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r25; + s32 var_r24; + + var_r30 = lbl_1_data_324; + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_r29 = fn_1_1B574(0.0f, -500.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 3, 288.0f, var_r29 + 0x3F); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, var_r29 + 0x3F); + HuSprPosSet(var_r30, 1, var_r29 + 0xA9, 272.0f); + for (var_r27 = 0; var_r27 < 3; var_r27++) { + HuWinPosSet(lbl_1_data_32C[var_r27], var_r29 + 0xE, (var_r27 << 7) + 0x70); + } + var_r29 = fn_1_1B574(0.0f, 500.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 4, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 5, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 6, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 2, 452.0f, var_r29 + 0x19B); + if (arg0 != 0xA) { + var_r24 = lbl_1_bss_63C[2]; + var_f30 = fn_1_1B574(452.0f, 112.0f, var_r31, 30.0f); + var_f29 = fn_1_1B574(355.0f, 72.0f, var_r31, 30.0f); + HuSprGrpPosSet(var_r24, var_f30, var_f29); + } + } + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B574(1.0f, 0.0f, var_r31, 30.0f); + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, var_f31); + } + else { + HuSprTPLvlSet(var_r30, 0x23, var_f31); + } + } + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, 0.0f); + } + else { + HuSprTPLvlSet(var_r30, 0x23, 0.0f); + } + var_r25 = lbl_1_data_324; + for (var_r28 = 0; var_r28 < 0x25; var_r28++) { + HuSprAttrSet(var_r25, var_r28, 4); + } + if (arg0 != -1) { + HuSprGrpMemberKill(var_r25, 5); + HuSprGrpKill(lbl_1_data_328); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + HuWinKill(lbl_1_data_32C[var_r28]); + } + } +} + +void fn_1_E174(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_data_324; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 7, 4); + HuSprPosSet(var_r30, var_r31 + 7, 788.0f, (var_r31 * 0x38) + 0xB8); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B64C(1000.0f, 0.0f, var_r29, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r30, var_r31 + 7, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + } + } + HuSprAttrReset(var_r30, 0x22, 4); + HuSprPosSet(var_r30, 0x22, 185.0f, (lbl_1_bss_3B0.unk_10 * 0x38) + 0xA0); +} + +void fn_1_E384(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_data_324; + HuSprAttrSet(var_r30, 0x22, 4); + HuSprPosSet(var_r30, 0x22, 125.0f, 190.0f); + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B574(0.0f, -1000.0f, var_r29, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r30, var_r31 + 7, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + } + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31 + 7, 4); + HuSprPosSet(var_r30, var_r31 + 7, 288.0f, (var_r31 * 0x38) + 0xB8); + } +} + +void fn_1_E568(void) +{ + s32 sp10; + s32 spC; + s32 sp8; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + u32 var_r27; + u32 var_r26; + s32 var_r25; + + var_r29 = lbl_1_data_324; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + sp10 = rand8() % 10; + spC = rand8() % 60; + sp8 = rand8() % 100; + HuSprAttrReset(var_r29, var_r31 + 0xA, 4); + HuSprPosSet(var_r29, var_r31 + 0xA, 1288.0f, (var_r31 * 0x38) + 0xB8); + for (var_r28 = 0; var_r28 < 7; var_r28++) { + HuSprAttrReset(var_r29, 0xD + var_r28 + (var_r31 * 7), 4); + HuSprPosSet(var_r29, 0x0D + var_r28 + (var_r31 * 7), (var_r28 * 0x14) + 0x512, (var_r31 * 0x38) + 0xBA); + } + var_r30 = GWGameStat.mg_record[var_r31 + 6]; + var_r27 = var_r30 / 36000; + var_r30 -= var_r27 * 36000; + var_r26 = var_r30 / 3600; + var_r30 -= var_r26 * 3600; + HuSprBankSet(var_r29, (var_r31 * 7) + 0xD, var_r26); + HuSprBankSet(var_r29, (var_r31 * 7) + 0xE, 0xA); + var_r27 = var_r30 / 600; + var_r30 -= var_r27 * 600; + var_r26 = var_r30 / 60; + var_r30 -= var_r26 * 60; + HuSprBankSet(var_r29, (var_r31 * 7) + 0xF, var_r27); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x10, var_r26); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x11, 0xB); + var_r30 = 1.6666666666666667 * (float)var_r30; + var_r27 = var_r30 / 10; + var_r30 -= var_r27 * 0xA; + var_r26 = var_r30; + if (GWGameStat.mg_record[var_r31 + 6] == 0x8C9F) { + HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, 9); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, 9); + } + else { + HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, var_r27); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, var_r26); + } + } + for (var_r25 = 0; var_r25 <= 0x3C; var_r25++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B64C(1000.0f, 0.0f, var_r25, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r29, var_r31 + 0xA, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + for (var_r28 = 0; var_r28 < 7; var_r28++) { + HuSprPosSet(var_r29, 0xD + var_r28 + (var_r31 * 7), var_f31 + ((var_r28 * 0x14) + 0x12A), (var_r31 * 0x38) + 0xBA); + } + } + } + HuSprAttrReset(var_r29, 0x22, 4); + HuSprPosSet(var_r29, 0x22, 110.0f, (lbl_1_bss_3B0.unk_10 * 0x38) + 0xA0); +} + +void fn_1_EB1C(void) +{ + float var_f31; + s32 var_r28; + s32 var_r29; + s32 var_r30; + s32 var_r31; + + var_r29 = lbl_1_data_324; + HuSprAttrSet(var_r29, 0x22, 4); + HuSprPosSet(var_r29, 0x22, 125.0f, 184.0f); + for (var_r28 = 0; var_r28 <= 0x3C; var_r28++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B574(0.0f, -1000.0f, var_r28, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r29, var_r31 + 0xA, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + for (var_r30 = 0; var_r30 < 7; var_r30++) { + HuSprPosSet(var_r29, 0xD + var_r30 + (var_r31 * 7), var_f31 + ((var_r30 * 0x14) + 0x12A), (var_r31 * 0x38) + 0xBA); + } + } + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r29, var_r31 + 0xA, 4); + for (var_r30 = 0; var_r30 < 7; var_r30++) { + HuSprAttrSet(var_r29, 0xD + var_r30 + (var_r31 * 7), 4); + } + } +} + +void fn_1_ED78(s32 arg0, s32 arg1) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_data_324; + { + s32 spC[3] = { 4, 11, 12 }; + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 5) { + var_f30 = fn_1_1B64C(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f30 = fn_1_1B64C(0.0f, 1.0f, var_r31, var_r31 - 5); + } + if (lbl_1_bss_1B0 == 4) { + HuSprTPLvlSet(var_r30, 5, var_f30); + } + var_f31 = fn_1_1B64C((arg1 * 0x38) + 0xA0, (arg0 * 0x38) + 0xA0, var_r31, 10.0f); + if (lbl_1_bss_1B0 == 4) { + HuSprPosSet(var_r30, 0x22, 110.0f, var_f31); + } + else { + HuSprPosSet(var_r30, 0x22, 185.0f, var_f31); + } + if ((lbl_1_bss_1B0 == 4) && (var_r31 == 5)) { + HuSprGrpMemberKill(var_r30, 5); + var_r29 = HuSprCreate(HuSprAnimReadFile(spC[arg0] + DATA_MAKE_NUM(DATADIR_MPEX, 0x22)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 5, var_r29); + HuSprPosSet(var_r30, 5, 452.0f, 212.0f); + HuSprScaleSet(var_r30, 5, 0.5f, 0.5f); + HuSprTPLvlSet(var_r30, 5, 0.0f); + } + } + } +} + +void fn_1_F0C0(void) +{ + float sp8[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = HuSprGrpCreate(3); + lbl_1_bss_E0 = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x16)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 88.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x18)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 1, var_r29); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 2, var_r29); + HuSprPosSet(var_r30, 2, 0.0f, 0.0f); + HuSprScaleSet(var_r30, 2, 0.9f, 0.65f); + HuSprTPLvlSet(var_r30, 2, 0.8f); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x2F)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x30)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x31)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x32)); + lbl_1_bss_C8[var_r31] = HuWinCreate(0.0f, 0.0f, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(lbl_1_bss_C8[var_r31], 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C8[var_r31], 0); + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinPosSet(lbl_1_bss_C8[var_r31], 304.0f, 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + fn_1_F47C(); + fn_1_F730(); +} + +void fn_1_F40C(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_E0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinKill(lbl_1_bss_C8[var_r31]); + } + HuSprGrpKill(var_r30); +} + +void fn_1_F47C(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_E0; + lbl_1_bss_3B0.unk_0C = 0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprPosSet(var_r30, 0, 0.0f, 92.0f); + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r30, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x2F)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x30)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_F730(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_E0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x30)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_F8A4(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + s32 var_r27 = lbl_1_bss_E0; + sp10[0] = sp10[1] = 0.0f; + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2F)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x30)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x31)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x32)); + var_r30 = lbl_1_bss_E0; + lbl_1_bss_3B0.unk_0C = 0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprPosSet(var_r30, 0, 0.0f, 92.0f); + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r30, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x2F)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, 0x330030); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); + for (var_r29 = 0; var_r29 < 0x3C; var_r29++) { + fn_1_1B7D0(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuWinPosSet(lbl_1_bss_C8[var_r28], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r28 * 0x1F))))); + } + } +} + +void fn_1_FDA0(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + s32 var_r27 = lbl_1_bss_E0; + sp10[0] = sp10[1] = 0.0f; + + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2F)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x30)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x31)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x32)); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r30, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r30 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + HuWinPosSet(lbl_1_bss_C8[var_r29], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r29 * 0x1F))))); + } + } + var_r28 = lbl_1_bss_E0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r28, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x30)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r28, 288.0f, -460.0f); +} + +void fn_1_1015C(void) +{ + float sp8[2]; + s32 var_r31 = lbl_1_bss_E0; + HuWinMesMaxSizeGet(1, sp8, 0x330030); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 2, 0.0f, 40.0f + ((60.0f - sp8[1]) + (lbl_1_bss_3B0.unk_0C * 0x1F))); +} + +void fn_1_10228(void) +{ + s32 var_r31 = lbl_1_bss_E0; + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_10268(s32 arg0) +{ + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + s32 var_r28 = lbl_1_bss_E0; + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x33, 0x30)); + var_r29 = lbl_1_bss_3B0.unk_0C; + var_r31 = lbl_1_bss_3B0.unk_0C + arg0; + if (var_r31 > 3) { + var_r31 = 0; + } + else if (var_r31 < 0) { + var_r31 = 3; + } + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + var_f31 = 40.0f + ((60.0f - spC[1]) + (var_r29 * 0x1F)); + var_f30 = 40.0f + ((60.0f - spC[1]) + (var_r31 * 0x1F)); + var_f29 = fn_1_1B64C(var_f31, var_f30, var_r30, 5.0f); + HuSprPosSet(var_r28, 2, -4.0f, var_f29); + } + lbl_1_bss_3B0.unk_0C = var_r31; +} + +void fn_1_1045C(void) +{ + float sp8[2]; + s32 var_r31; + s32 var_r29; + + s32 var_r30 = HuSprGrpCreate(3); + lbl_1_bss_C4 = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x17)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 118.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x19)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 1, var_r29); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 2, var_r29); + HuSprPosSet(var_r30, 2, 0.0f, 0.0f); + HuSprPosSet(var_r30, 2, 0.0f, 0.0f); + HuSprScaleSet(var_r30, 2, 0.9f, 0.65f); + HuSprTPLvlSet(var_r30, 2, 0.8f); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x33)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x34)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x35)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x36)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x37)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x38)); + lbl_1_bss_C8[var_r31] = HuWinCreate(0.0f, 0.0f, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(lbl_1_bss_C8[var_r31], 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C8[var_r31], 0); + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinPosSet(lbl_1_bss_C8[var_r31], 304.0f, 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + fn_1_1085C(); + fn_1_10ABC(); + (void)var_r31; +} + +void fn_1_107EC(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinKill(lbl_1_bss_C8[var_r31]); + } + HuSprGrpKill(var_r30); +} + +void fn_1_1085C(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 1, 4); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r30, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31 + 4] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x33)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_10ABC(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_10C30(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r27 = lbl_1_bss_C4; + sp10[0] = sp10[1] = 0.0f; + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x33)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x34)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x35)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x36)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x37)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x38)); + var_r28 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r28, var_r31, 4); + } + HuSprAttrReset(var_r28, 0, 4); + HuSprAttrReset(var_r28, 1, 4); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r28, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31 + 4] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x33)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r28, 288.0f, -460.0f); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r29 = 0; var_r29 < 6; var_r29++) { + HuWinPosSet(lbl_1_bss_C8[var_r29], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r29 * 0x1D))))); + } + } +} + +void fn_1_110F8(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r27 = lbl_1_bss_C4; + sp10[0] = sp10[1] = 0.0f; + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x33)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x34)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x35)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x36)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x37)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x38)); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r30, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r30 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r29 = 0; var_r29 < 6; var_r29++) { + HuWinPosSet(lbl_1_bss_C8[var_r29], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r29 * 0x1D))))); + } + } + var_r28 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r28, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r28, 288.0f, -460.0f); +} + +void fn_1_114D4(void) +{ + float sp8[2]; + s32 var_r31 = lbl_1_bss_C4; + HuWinMesMaxSizeGet(1, sp8, 0x330033); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 2, 0.0f, 40.0f + ((60.0f - sp8[1]) + (lbl_1_bss_3B0.unk_0C * 0x1D))); +} + +void fn_1_115A0(void) +{ + s32 var_r31 = lbl_1_bss_C4; + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_115E0(s32 arg0) +{ + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_C4; + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x33, 0x33)); + var_r29 = lbl_1_bss_3B0.unk_0C; + var_r31 = lbl_1_bss_3B0.unk_0C + arg0; + if (var_r31 > 5) { + var_r31 = 0; + } + else if (var_r31 < 0) { + var_r31 = 5; + } + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + var_f31 = 40.0f + ((60.0f - spC[1]) + (var_r29 * 0x1D)); + var_f30 = 40.0f + ((60.0f - spC[1]) + (var_r31 * 0x1D)); + var_f29 = fn_1_1B64C(var_f31, var_f30, var_r30, 5.0f); + HuSprPosSet(var_r28, 2, -4.0f, var_f29); + } + lbl_1_bss_3B0.unk_0C = var_r31; +} + +void fn_1_117D4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = HuSprGrpCreate(3); + lbl_1_bss_C0 = var_r30; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x12)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x13)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 1, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x14)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 2, var_r31); + var_r29 = HuSprGrpCreate(1); + lbl_1_bss_BC = var_r29; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x15)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r31); + HuSprAttrSet(var_r29, 0, 4); + fn_1_11984(); + fn_1_119E0(); +} + +void fn_1_11930(void) +{ + s32 var_r31 = lbl_1_bss_C0; + s32 var_r30 = lbl_1_bss_BC; + HuSprGrpKill(var_r31); + HuSprGrpKill(var_r30); +} + +void fn_1_11984(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_C0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } +} + +void fn_1_119E0(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_C0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } +} + +void fn_1_11A3C(s32 arg0) +{ + float var_f31; + float var_f30; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + + var_r29 = lbl_1_bss_C0; + var_r28 = lbl_1_bss_BC; + { + s32 sp8[3][2] = { + { 0x72, 0xFA }, + { 0x144, 0xE1 }, + { 0xEF, 0x5A }, + }; + var_r26 = lbl_1_bss_C0; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuSprAttrSet(var_r26, var_r30, 4); + } + if (lbl_1_bss_3B0.unk_08 != 2) { + HuSprAttrReset(var_r29, lbl_1_bss_3B0.unk_08, 4); + } + HuSprGrpScaleSet(var_r29, 0.0f, 0.0f); + for (var_r31 = 0; var_r31 <= 0xF; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 1.0f, var_r31, 10.0f); + var_f30 = 0.01f; + } + else { + var_f31 = 1.0f; + var_f30 = fn_1_1B64C(0.01f, 1.0f, var_r31 - 0xA, 5.0f); + } + HuSprGrpScaleSet(var_r29, var_f31, var_f30); + if (arg0 != -1) { + var_f31 = fn_1_1B64C(sp8[arg0][0], sp8[lbl_1_bss_3B0.unk_08][0], var_r31, 15.0f); + var_f30 = fn_1_1B64C(sp8[arg0][1], sp8[lbl_1_bss_3B0.unk_08][1], var_r31, 15.0f); + HuSprGrpPosSet(var_r28, var_f31, var_f30); + } + } + HuSprAttrReset(var_r28, 0, 4); + if (arg0 == -1) { + HuSprGrpPosSet(var_r28, sp8[0][0], sp8[0][1]); + } + } +} + +void fn_1_11E28(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = lbl_1_bss_C0; + var_r28 = lbl_1_bss_BC; + HuSprAttrSet(var_r28, 0, 4); + for (var_r31 = 0; var_r31 <= 0xF; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f30 = fn_1_1B64C(1.0f, 0.01f, var_r31, 10.0f); + var_f31 = 1.0f; + } + else { + var_f30 = 0.01f; + var_f31 = fn_1_1B64C(1.0f, 0.01f, var_r31 - 0xA, 5.0f); + } + HuSprGrpScaleSet(var_r29, var_f31, var_f30); + } + var_r27 = lbl_1_bss_C0; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuSprAttrSet(var_r27, var_r30, 4); + } +} + +void fn_1_11FC0(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + Vec sp20; + Vec sp14; + + s32 var_r31 = lbl_1_bss_C0; + s32 sp8[3] = { 0x64, 0x64, 0xE1 }; + sp20.x = Hu3DData[lbl_1_bss_2D8[lbl_1_bss_3B0.unk_08].unk_00->model[1]].pos.x; + sp20.y = 0.0f; + sp20.z = Hu3DData[lbl_1_bss_2D8[lbl_1_bss_3B0.unk_08].unk_00->model[1]].pos.z; + Hu3D3Dto2D(&sp20, 1, &sp14); + sp14.y = fn_1_1B714(sp8[lbl_1_bss_3B0.unk_08], 10.0f + sp8[lbl_1_bss_3B0.unk_08], lbl_1_bss_3B0.unk_28++, 360.0f); + if (lbl_1_bss_3B0.unk_28 >= 0x168) { + lbl_1_bss_3B0.unk_28 = 0; + } + HuSprGrpPosSet(var_r31, sp14.x, (s32)sp14.y); +} + +void fn_1_121E8(void) +{ + OSReport("\n\n####################### HI SCORE #######################\n"); + OSReport("HIScore 453(0-99):%d\n", GWGameStat.mg_record[9]); + if (GWGameStat.mg_record[9] == 0) { + GWGameStat.mg_record[9] = 0; + } + else if (GWGameStat.mg_record[9] >= 0x63) { + GWGameStat.mg_record[9] = 0x63; + } + OSReport("HIScore 451A(0-35999):%d\n", GWGameStat.mg_record[6]); + if (GWGameStat.mg_record[6] == 0) { + GWGameStat.mg_record[6] = 0; + } + else if (GWGameStat.mg_record[6] >= 0x8C9F) { + GWGameStat.mg_record[6] = 0x8C9F; + } + OSReport("HIScore 451B(0-35999):%d\n", GWGameStat.mg_record[7]); + if (GWGameStat.mg_record[7] == 0) { + GWGameStat.mg_record[7] = 0; + } + else if (GWGameStat.mg_record[7] >= 0x8C9F) { + GWGameStat.mg_record[7] = 0x8C9F; + } + OSReport("HIScore 451C(0-35999):%d\n", GWGameStat.mg_record[8]); + if (GWGameStat.mg_record[8] == 0) { + GWGameStat.mg_record[8] = 0; + } + else if (GWGameStat.mg_record[8] >= 0x8C9F) { + GWGameStat.mg_record[8] = 0x8C9F; + } + OSReport("HIScore 442(0-999):%d\n", GWGameStat.mg_record[4]); + if (GWGameStat.mg_record[4] == 0) { + GWGameStat.mg_record[4] = 0; + } + else if (GWGameStat.mg_record[4] >= 0x3E7) { + GWGameStat.mg_record[4] = 0x3E7; + } + OSReport("HIScore 459(0-99):%d\n", GWGameStat.mg_record[0xB]); + if (GWGameStat.mg_record[0xB] == 0) { + GWGameStat.mg_record[0xB] = 0; + } + else if (GWGameStat.mg_record[0xB] >= 0x63) { + GWGameStat.mg_record[0xB] = 0x63; + } + OSReport("HIScore 460(0-99):%d\n", GWGameStat.mg_record[0xC]); + if (GWGameStat.mg_record[0xC] == 0) { + GWGameStat.mg_record[0xC] = 0; + } + else if (GWGameStat.mg_record[0xC] >= 0x63) { + GWGameStat.mg_record[0xC] = 0x63; + } + OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[0xD]); + if (GWGameStat.mg_record[0xD] == 0) { + GWGameStat.mg_record[0xD] = 0; + } + else if (GWGameStat.mg_record[0xD] >= 0x8C9F) { + GWGameStat.mg_record[0xD] = 0x8C9F; + } + OSReport("HIScore 462(0-99):%d\n", GWGameStat.mg_record[0xE]); + if (GWGameStat.mg_record[0xE] == 0) { + GWGameStat.mg_record[0xE] = 0; + } + else if (GWGameStat.mg_record[0xE] >= 0x63) { + GWGameStat.mg_record[0xE] = 0x63; + } + OSReport("########################################################\n\n"); +} + +void fn_1_125DC(float *arg0, s32 arg1) +{ + float spC[2]; + + HuWinMesMaxSizeGet(1, spC, arg1); + if (spC[0] > arg0[0]) { + arg0[0] = spC[0]; + } + if (spC[1] > arg0[1]) { + arg0[1] = spC[1]; + } +} diff --git a/src/game/objmain.c b/src/game/objmain.c index f802d287..39bc9e12 100644 --- a/src/game/objmain.c +++ b/src/game/objmain.c @@ -38,7 +38,7 @@ s32 omcurdll; s32 omovlhisidx; s32 omovlevtno; s32 omnextovlevtno; -s32 omovlstat; +u32 omovlstat; static s32 omnextovlstat; char omUPauseFlag; s16 omSysExitReq; @@ -568,4 +568,4 @@ char omPauseChk(void) OverlayID omCurrentOvlGet(void) { return omcurovl; -} \ No newline at end of file +} diff --git a/src/game/objsub.c b/src/game/objsub.c index d982fff6..b00631c4 100644 --- a/src/game/objsub.c +++ b/src/game/objsub.c @@ -1166,7 +1166,7 @@ s16 mgTypeCurr; s16 mgBattleStar[4]; s16 mgBattleStarMax; u8 lbl_801D3E94; -s32 mgRecordExtra; +u32 mgRecordExtra; s32 mgQuitExtraF; s32 mgPracticeEnableF; s32 mgInstExitEnableF; From ce005e042877dc67620b9501092403e92bfa7142 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 29 Oct 2024 21:21:54 +0100 Subject: [PATCH 2/2] Corrected the type of lbl_1_data_240 in mpexDll/mpex.c --- config/GMPE01_00/rels/mpexDll/symbols.txt | 2 +- src/REL/mpexDll/mpex.c | 44 +++++++++++------------ 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index 21ef6f1a..bc7d5ab0 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -392,7 +392,7 @@ lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 scope:local data:str lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A scope:local data:string lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A scope:local data:string lbl_1_data_232 = .data:0x00000232; // type:object size:0xE scope:local data:string -lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 data:float lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 scope:local data:string diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index d8d8e422..7067c1c6 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -115,28 +115,28 @@ void fn_1_F730(void); void fn_1_F8A4(void); void fn_1_FDA0(void); -s32 lbl_1_data_240[21] = { - 0x00000000, - 0x00000000, - 0x00000000, - 0xC37A0000, - 0x00000000, - 0x00000000, - 0x437A0000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x43FA0000, - 0x00000000, - 0xC47A0000, - 0x00000000, - 0x00000000, - 0x447A0000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x447A0000, - 0x00000000, +float lbl_1_data_240[21] = { + 0.0f, + 0.0f, + 0.0f, + -250.0f, + 0.0f, + 0.0f, + 250.0f, + 0.0f, + 0.0f, + 0.0f, + 500.0f, + 0.0f, + -1000.0f, + 0.0f, + 0.0f, + 1000.0f, + 0.0f, + 0.0f, + 0.0f, + 1000.0f, + 0.0f, }; MpexDllUnkStruct4 lbl_1_bss_3F8;