#include "ext_math.h" #include "game/chrman.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" #include "REL/ztardll.h" extern s32 charVoiceGroupStat[8]; void fn_1_1774(void); void fn_1_1CF0(void); void fn_1_1DA0(void); void fn_1_2350(void); void fn_1_33B0(void); void fn_1_40E4(void); void fn_1_424(void); void fn_1_4374(void); void fn_1_4948(void); void fn_1_51BC(s16 arg0); s32 fn_1_524C(s32 arg0); void fn_1_66F8(void); void fn_1_7414(ModelData *model, Mtx matrix); omObjData *lbl_1_bss_6C; Process *lbl_1_bss_68; s32 lbl_1_bss_64; s32 lbl_1_bss_60; s16 lbl_1_bss_5E; s16 lbl_1_bss_5C; s16 lbl_1_bss_5A; s16 lbl_1_bss_58; s32 lbl_1_bss_54; s16 lbl_1_bss_52; s16 lbl_1_bss_50; s16 lbl_1_bss_4C[2]; s16 lbl_1_bss_4A; s16 lbl_1_bss_48; s16 lbl_1_bss_46; s16 lbl_1_bss_44; s16 lbl_1_bss_42; s16 lbl_1_bss_3E[2]; s16 lbl_1_bss_36[4]; s16 lbl_1_bss_E[4][5]; s16 lbl_1_bss_C; Process *lbl_1_bss_8; s16 lbl_1_bss_4; s32 lbl_1_bss_0; void ObjectSetup(void) { s32 var_r31; s32 var_r30; OSReport("******* ZP ObjectSetup *********\n"); lbl_1_bss_68 = omInitObjMan(0x32, 0x2000); lbl_1_bss_60 = 0; lbl_1_bss_58 = omovlevtno; _ClearFlag(0x10000); _ClearFlag(0x10008); GWSystem.mg_type = -1; GWSystem.player_curr = 0; lbl_1_bss_5E = -1; mgBoardHostEnableF = 1; var_r30 = omMgIndexGet(0x29); lbl_1_bss_54 = GWMGAvailGet(var_r30 + 0x191); Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); CRot.x = 0.0f; CRot.y = 0.0f; CRot.z = 0.0f; Center.x = 0.0f; Center.y = 90.0f; Center.z = 30.0f; CZoom = 1220.0f; var_r31 = Hu3DGLightCreate(0.0f, 100.0f, 1000.0f, 0.0f, -0.5f, -1.0f, 0xFF, 0xFF, 0xFF); Hu3DGLightInfinitytSet(var_r31); HuPrcChildCreate(fn_1_424, 0x64, 0x3000, 0, lbl_1_bss_68); HuPrcChildCreate(fn_1_66F8, 0xC8, 0x1000, 0, lbl_1_bss_68); lbl_1_bss_6C = omAddObjEx(lbl_1_bss_68, 0x7FDA, 0, 0, -1, omOutView); Hu3DBGColorSet(0, 0, 0); HuWinInit(1); if (lbl_1_bss_58 == 1) { HuAudVoiceInit(-1); } if (lbl_1_bss_58 != 0) { HuAudSndGrpSetSet(4); HuAudSeqPlay(0x2E); } GWSystem.mg_type = -1; mgPracticeEnableF = 1; } s16 lbl_1_data_22[4] = { 0x3A, 0xC8, 0x166, 0xC8 }; void fn_1_424(void) { Vec sp2C; Vec sp20; Vec sp14; Vec sp8; float var_f31; float var_f30; s16 var_r31; s16 var_r30; s16 var_r29; s16 var_r28; s16 var_r27; s16 var_r26; var_r26 = 0; var_r27 = 0; fn_1_7D6C(lbl_1_bss_68); HuPrcVSleep(); HuDataDirClose(DATADIR_MPEX); lbl_1_bss_5A = 0; if (mgQuitExtraF != 0) { mgQuitExtraF = 0; var_r26 = 1; lbl_1_bss_58 = 0; } else { if (lbl_1_bss_58 == 1) { lbl_1_bss_5A = 0; goto block_92; } if (lbl_1_bss_58 == 2) { lbl_1_bss_5A = 1; goto block_93; } GWPlayerCfg[0].group = GWPlayerCfg[1].group = 0; GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; } block_7: fn_1_1774(); if (lbl_1_bss_54 == 0) { HuSprTPLvlSet(lbl_1_bss_4C[1], 0, 0.5f); HuSprTPLvlSet(lbl_1_bss_4C[1], 2, 0.5f); } if (var_r26 == 0) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); HuPrcSleep(0xA); sp2C.x = 510.0f; sp2C.y = 80.0f; sp2C.z = 1500.0f; Hu3D2Dto3D(&sp2C, 1, &sp8); sp2C.x = 200.0f; sp2C.y = 400.0f; sp2C.z = 100.0f; Hu3D2Dto3D(&sp2C, 1, &sp20); VECSubtract(&sp8, &sp20, &sp14); for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { if (var_r31 <= 0x14) { var_f31 = var_r31 / 20.0; HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31))))); HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31))))); HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0 - (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f); HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0 + (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f); } var_f31 = var_r31 / 30.0; VECScale(&sp14, &sp2C, var_f31); VECAdd(&sp2C, &sp20, &sp2C); Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); HuPrcVSleep(); } } else { sp2C.x = 510.0f; sp2C.y = 80.0f; sp2C.z = 1500.0f; Hu3D2Dto3D(&sp2C, 1, &sp20); Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); Hu3DModelPosSetV(lbl_1_bss_42, &sp20); var_f31 = var_r31 / 20.0; HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0f); HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0f); HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0f, 240.0f); HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0f, 240.0f); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } } loop_19: fn_1_11020(); fn_1_11264(MAKE_MESSID(0x33, 0x24), 0, 0); if (lbl_1_bss_5A == 0) { fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1); } else { fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1); } fn_1_11708(MAKE_MESSID(0x33, 0x8D)); for (var_r31 = 0; var_r31 <= 0x0A; var_r31++) { var_f31 = var_r31 / 10.0; HuSprTPLvlSet(lbl_1_bss_4A, 0, var_f31); HuSprGrpPosSet(lbl_1_bss_4A, lbl_1_data_22[lbl_1_bss_5A * 2], lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]); HuPrcVSleep(); } while (TRUE) { HuPrcVSleep(); if ((HuPadStkX[0] / 10) != 0) { var_r29 = lbl_1_bss_5A; if (HuPadStkX[0] < 0 && lbl_1_bss_5A > 0) { lbl_1_bss_5A--; } if (HuPadStkX[0] > 0 && lbl_1_bss_5A < 1) { lbl_1_bss_5A++; } if (lbl_1_bss_5A != var_r29) { HuAudFXPlay(0); for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { var_f31 = sind((90.0 * (var_r31 / 10.0))); var_f30 = lbl_1_data_22[var_r29 * 2] + (var_f31 * (lbl_1_data_22[lbl_1_bss_5A * 2] - lbl_1_data_22[var_r29 * 2])); HuSprGrpPosSet(lbl_1_bss_4A, var_f30, lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]); HuPrcVSleep(); } if (lbl_1_bss_5A == 0) { fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1); } else { fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1); } } } if (HuPadBtnDown[0] & PAD_BUTTON_B) { HuAudFXPlay(3); fn_1_111E0(); fn_1_1190C(); lbl_1_bss_60 = 1; while (TRUE) { HuPrcVSleep(); } } if (HuPadBtnDown[0] & PAD_BUTTON_A) { if (lbl_1_bss_5A != 1 || lbl_1_bss_54 != 0) { break; } HuAudFXPlay(4); } } HuAudFXPlay(2); fn_1_111E0(); fn_1_1190C(); lbl_1_bss_5E = -1; var_r29 = lbl_1_bss_5A ^ 1; for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { if (var_r31 <= 0xA) { var_f31 = var_r31 / 10.0; HuSprTPLvlSet(lbl_1_bss_4A, 0, 1.0 - var_f31); } var_f31 = 1.0 - (var_r31 / 20.0); HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31); if (lbl_1_bss_5A == 0) { var_f31 = -var_f31; } HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f + (150.0f * var_f31), 240.0f); HuPrcVSleep(); } for (var_r27 = 0;;) { if (lbl_1_bss_5A == 0) { var_r30 = fn_1_97D0(2, var_r27); } else { var_r30 = fn_1_97D0(3, var_r27); if (var_r30 != 0) { mgTypeCurr = 2; var_r30 = fn_1_524C(1); if (var_r30 == 0) { var_r27 = 1; continue; } } } if (var_r30 == 0) { for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { var_f31 = var_r31 / 20.0; HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31); if (lbl_1_bss_5A != 0) { var_f31 = -var_f31; } HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f - (150.0f * var_f31), 240.0f); var_f31 = var_r31 / 20.0; if (lbl_1_bss_5A == 0) { var_r28 = -1; } else { var_r28 = 1; } HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - cosd((90.0f * var_f31))))), 340.0f); HuPrcVSleep(); } goto loop_19; } var_r27 = 1; fn_1_1DA0(); for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { var_f31 = var_r31 / 20.0; if (lbl_1_bss_5A == 0) { var_r28 = -1; } else { var_r28 = 1; } HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - sind((90.0f * var_f31))))), 340.0f); HuPrcVSleep(); } if (lbl_1_bss_5A == 0) { fn_1_40E4(); } if (lbl_1_bss_4 == 0) { lbl_1_bss_4 = 1; HuPrcChildCreate(fn_1_7C00, 0x64, 0x2000, 0, lbl_1_bss_68); } fn_1_11020(); fn_1_11264(MAKE_MESSID(0x33, 0x2C), 0, 0); var_r30 = fn_1_11390(0); if (var_r30 != -1) { if (var_r30 != 1) { break; } } fn_1_111E0(); for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { var_f31 = cosd((90.0 * (var_r31 / 10.0))); HuSprGrpScaleSet(lbl_1_bss_46, 1.0f, var_f31); HuPrcVSleep(); } HuSprGrpKill(lbl_1_bss_46); } fn_1_111E0(); fn_1_1190C(); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } mgBattleStarMax = 0; HuSprGrpKill(lbl_1_bss_48); HuSprGrpKill(lbl_1_bss_52); HuSprGrpKill(lbl_1_bss_50); HuSprGrpKill(lbl_1_bss_4C[0]); HuSprGrpKill(lbl_1_bss_4C[1]); HuSprGrpKill(lbl_1_bss_4A); HuSprGrpKill(lbl_1_bss_46); Hu3DModelKill(lbl_1_bss_42); HuPrcKill(lbl_1_bss_8); while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } if (lbl_1_bss_5A == 0) { block_92: fn_1_2350(); } else { block_93: fn_1_4374(); } var_r26 = 1; goto block_7; } void fn_1_1774(void) { SeqWork work; s16 var_r31; s16 var_r30; char *var_r29; s16 var_r28; AnimData *var_r27; char *var_r26; AnimData *var_r25; AnimData *var_r24; AnimData *var_r23; var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); lbl_1_bss_48 = HuSprGrpCreate(1); var_r31 = HuSprCreate(var_r27, 0xC8, 0); HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r31); HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); for (var_r30 = 0; var_r30 < 0x10; var_r30++) { work.sprite[var_r30] = work.spr_grp[var_r30] = -1; } var_r29 = MessData_MesPtrGet(messDataPtr, MAKE_MESSID(0x17, 0x21)); for (var_r26 = var_r29; *var_r29 != 0; var_r29++) { if (*var_r29 == 0xA) { *var_r29 = 0x10; } } lbl_1_bss_52 = work.spr_grp[fn_1_7754(&work, var_r26)]; HuSprGrpPosSet(lbl_1_bss_52, 288.0f, -300.0f); HuSprGrpDrawNoSet(lbl_1_bss_52, 0x7F); var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 4)); lbl_1_bss_50 = HuSprGrpCreate(1); var_r31 = HuSprCreate(var_r27, 0x64, 0); HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r31); HuSprGrpPosSet(lbl_1_bss_50, 288.0f, -300.0f); HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 5)); var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 14)); var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 64)); var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 15)); for (var_r30 = 0; var_r30 < 2; var_r30++) { var_r28 = HuSprGrpCreate(4); lbl_1_bss_4C[var_r30] = var_r28; var_r31 = HuSprCreate(var_r27, 0x64, var_r30); HuSprGrpMemberSet(var_r28, 0, var_r31); var_r31 = HuSprCreate(var_r25, 0x6E, 0); HuSprGrpMemberSet(var_r28, 1, var_r31); var_r31 = HuSprCreate(var_r24, 0x78, 0); HuSprGrpMemberSet(var_r28, 2, var_r31); HuSprScaleSet(var_r28, 2, 0.5f, 0.5f); var_r31 = HuSprCreate(var_r23, 0x82, 0); HuSprGrpMemberSet(var_r28, 3, var_r31); HuSprGrpPosSet(var_r28, 288.0f, -300.0f); HuSprGrpDrawNoSet(var_r28, 0x7F); } var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 6)); lbl_1_bss_4A = HuSprGrpCreate(1); var_r31 = HuSprCreate(var_r27, 0x32, 0); HuSprGrpMemberSet(lbl_1_bss_4A, 0, var_r31); HuSprGrpPosSet(lbl_1_bss_4A, 288.0f, -300.0f); lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP); Hu3DModelPosSet(lbl_1_bss_42, 0.0f, 1000.0f, 0.0f); lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); } void fn_1_1CF0(void) { float var_f31 = 0.0f; ModelData *var_r31 = &Hu3DData[lbl_1_bss_42]; while (TRUE) { var_r31->pos.y += sind(var_f31); var_f31 += 3.0f; if (var_f31 > 360.0f) { var_f31 -= 360.0f; } HuPrcVSleep(); } } void fn_1_1DA0(void) { s16 spC[4]; s16 sp8[2]; s16 var_r31; AnimData *var_r30; s16 var_r29; s16 var_r28; s16 var_r27; sp8[0] = 0; sp8[1] = 2; for (var_r31 = 0; var_r31 < 4; var_r31++) { spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; } if (lbl_1_bss_5A == 0) { var_r28 = HuSprGrpCreate(5); lbl_1_bss_46 = var_r28; var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 17)); var_r29 = HuSprCreate(var_r30, 0x78, 0); HuSprGrpMemberSet(var_r28, 0, var_r29); for (var_r31 = 0; var_r31 < 2; var_r31++) { var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18)); var_r29 = HuSprCreate(var_r30, 0x6E, 0); HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29); HuSprPosSet(var_r28, (var_r31 * 2) + 1, (var_r31 * 0x30) - 0x18, -4.0f); if (GWPlayerCfg[spC[var_r31]].iscom == 0) { var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32)); var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]); } else { var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33)); var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff); } HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29); HuSprPosSet(var_r28, (var_r31 * 2) + 2, (var_r31 * 0x30) - 0x18, 20.0f); } } else { var_r28 = HuSprGrpCreate(0xA); lbl_1_bss_46 = var_r28; var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 16)); var_r29 = HuSprCreate(var_r30, 0x78, 0); HuSprGrpMemberSet(var_r28, 0, var_r29); var_r27 = -0x4B; for (var_r31 = 0; var_r31 < 4; var_r31++) { var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18)); var_r29 = HuSprCreate(var_r30, 0x6E, 0); HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29); HuSprPosSet(var_r28, (var_r31 * 2) + 1, var_r27, 0.0f); if (GWPlayerCfg[spC[var_r31]].iscom == 0) { var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32)); var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]); } else { var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33)); var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff); } HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29); HuSprPosSet(var_r28, (var_r31 * 2) + 2, var_r27, 22.0f); var_r27 += 0x2A; if (var_r31 == 1) { var_r27 += 0x18; } } var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 10)); var_r29 = HuSprCreate(var_r30, 0x5A, 0); HuSprGrpMemberSet(var_r28, 9, var_r29); } HuSprGrpPosSet(var_r28, 0.0f, -100.0f); } void fn_1_2350(void) { s16 spC[4]; s16 sp8[2]; float var_f31; s16 var_r31; sp8[0] = 0; sp8[1] = 2; for (var_r31 = 0; var_r31 < 4; var_r31++) { spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; } if (lbl_1_bss_58 != 0) { if (GWPlayerCoinWinGet(spC[0]) > 0) { mgBattleStarMax++; } } fn_1_33B0(); Hu3DModelPosSet(lbl_1_bss_36[2], 500.0f, 0.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_36[3], 500.0f, 0.0f, 0.0f); HuSprScaleSet(lbl_1_bss_50, 2, 0.0f, 0.0f); if (lbl_1_bss_58 != 0) { if (GWPlayerCoinWinGet(spC[0]) == 0) { mgBattleStarMax++; } HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax); HuSprScaleSet(lbl_1_bss_50, 1, 1.0f, 1.0f); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } HuPrcSleep(0x1E); if (GWPlayerCoinWinGet(spC[0]) > 0) { HuSprAttrReset(lbl_1_bss_44, 6, 4); HuSprPosSet(lbl_1_bss_44, 6, ((mgBattleStarMax - 1) << 5) + 0x46, 340.0f); for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { var_f31 = var_r31 / 60.0; HuSprTPLvlSet(lbl_1_bss_44, 6, var_f31); var_f31 = 1.0 + (5.0 * cosd((90.0f * var_f31))); HuSprScaleSet(lbl_1_bss_44, 6, var_f31, var_f31); if (var_r31 == 0x14) { HuAudFXPlay(0x9A); if (mgBattleStarMax < 6) { Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } else { Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } } HuPrcVSleep(); } HuAudFXPlay(8); if (mgBattleStarMax >= 6) { HuPrcSleep(0x3C); var_r31 = omMgIndexGet(0x29); lbl_1_bss_54 = 1; fn_1_11020(); fn_1_11338(GWPlayerCfg[spC[0]].character, 0); fn_1_11338(GWPlayerCfg[spC[1]].character, 1); fn_1_11264(MAKE_MESSID(0x33, 0xA0), 0, 0); if (GWMGAvailGet(var_r31 + 0x191) == 0) { GWMGAvailSet(var_r31 + 0x191); GWGameStat.present[0x37] = 1; fn_1_11264(MAKE_MESSID(0x33, 0x29), 0, 0); } fn_1_111E0(); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } } else { Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { var_f31 = 1.0 - (var_r31 / 10.0); HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); HuPrcVSleep(); } HuPrcSleep(0x3C); goto block_39; } } else { Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(0xB4); WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } } } else { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } HuPrcSleep(0x1E); block_39: Hu3DMotionSet(lbl_1_bss_36[2], lbl_1_bss_E[2][1]); Hu3DMotionSet(lbl_1_bss_36[3], lbl_1_bss_E[3][1]); Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, -90.0f, 0.0f); Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, -90.0f, 0.0f); HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax + 1); for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { var_f31 = 1.0 - sind((90.0 * (var_r31 / 30.0))); Hu3DModelPosSet(lbl_1_bss_36[2], 125.0f + (400.0f * var_f31), 0.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_36[3], 275.0f + (400.0f * var_f31), 0.0f, 0.0f); if (var_r31 == 0x19) { Hu3DMotionShiftSet(lbl_1_bss_36[2], lbl_1_bss_E[2][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(lbl_1_bss_36[3], lbl_1_bss_E[3][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } if ((GWPlayerCfg[2].character < 8) && ((var_r31 % 5) == 0)) { HuAudFXPlay(GWPlayerCfg[2].character + 0xD5); } if ((GWPlayerCfg[3].character < 8) && (((var_r31 + 3) % 5) == 0)) { HuAudFXPlay(GWPlayerCfg[3].character + 0xD5); } if (var_r31 > 0x14) { var_f31 = 1.0 - ((var_r31 - 0x14) / 10.0); Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, 90.0f * -var_f31, 0.0f); Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, 90.0f * -var_f31, 0.0f); } if (var_r31 <= 0x14) { var_f31 = 1.2 * sind((90.0 * (var_r31 / 20.0))); HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); } else if (var_r31 > 0x14) { var_f31 = 1.0 + (0.2 * cosd((90.0 * ((var_r31 - 0x14) / 10.0)))); HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); } HuPrcVSleep(); } HuAudFXPlay(0x355); for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0)))); HuSprScaleSet(lbl_1_bss_50, 2, var_f31, var_f31); HuSprTPLvlSet(lbl_1_bss_50, 2, var_r31 / 20.0); HuPrcVSleep(); } fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1); while (TRUE) { if ((*HuPadBtnDown & 0x100) != 0) { HuAudFXPlay(2); if (mgBattleStarMax >= 5) { GWSystem.mg_type = 0; } fn_1_51BC(1); } if ((*HuPadBtnDown & 0x200) != 0) { break; } HuPrcVSleep(); } HuAudFXPlay(3); fn_1_1190C(); WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } } HuSprGrpKill(lbl_1_bss_48); HuSprGrpKill(lbl_1_bss_50); HuSprGrpKill(lbl_1_bss_44); Hu3DModelKill(lbl_1_bss_42); HuPrcKill(lbl_1_bss_8); Hu3DModelKill(lbl_1_bss_C); CharModelKill(-1); for (var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[spC[var_r31]].character >= 8) { Hu3DModelKill(lbl_1_bss_36[var_r31]); Hu3DMotionKill(lbl_1_bss_E[var_r31][0]); Hu3DMotionKill(lbl_1_bss_E[var_r31][1]); } } lbl_1_bss_58 = 0; lbl_1_bss_5A = 0; } s32 lbl_1_data_2C[6] = { DATA_MAKE_NUM(DATADIR_ZTAR, 59), DATA_MAKE_NUM(DATADIR_ZTAR, 34), DATA_MAKE_NUM(DATADIR_ZTAR, 39), DATA_MAKE_NUM(DATADIR_ZTAR, 44), DATA_MAKE_NUM(DATADIR_ZTAR, 49), DATA_MAKE_NUM(DATADIR_ZTAR, 54), }; u8 lbl_1_data_44[6] = { 0, 1, 1, 2, 2, 3 }; void fn_1_33B0(void) { Vec sp38; Vec sp2C; Vec sp20; Vec sp14; s16 spC[4]; s16 sp8[2]; s16 var_r31; s16 var_r30; AnimData *var_r29; s16 var_r28; s16 var_r27; s16 var_r26; s16 var_r25; s16 var_r24; AnimData *var_r23; sp8[0] = 0; sp8[1] = 2; for (var_r31 = 0; var_r31 < 4; var_r31++) { spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; } var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); lbl_1_bss_48 = HuSprGrpCreate(1); var_r30 = HuSprCreate(var_r29, 0xC8, 0); HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r30); HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); lbl_1_bss_50 = HuSprGrpCreate(3); var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 12)); var_r30 = HuSprCreate(var_r29, 0x78, 0); HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r30); HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f); var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 11)); if ((mgBattleStarMax + 1) >= 7) { var_r30 = HuSprCreate(var_r29, 0x64, 6); } else { var_r30 = HuSprCreate(var_r29, 0x64, mgBattleStarMax + 1); } HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r30); HuSprPosSet(lbl_1_bss_50, 1, VERSION_JP ? 234.0f : 342.0f, 80.0f); HuSprScaleSet(lbl_1_bss_50, 1, 0.0f, 0.0f); HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); var_r30 = HuSprCreate(var_r29, 0x64, 0); HuSprGrpMemberSet(lbl_1_bss_50, 2, var_r30); HuSprPosSet(lbl_1_bss_50, 2, 288.0f, 240.0f); HuSprDrawNoSet(lbl_1_bss_50, 2, 0); HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f); var_r27 = HuSprGrpCreate(7); lbl_1_bss_44 = var_r27; var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 8)); var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 7)); var_r24 = mgBattleStarMax; if (GWPlayerCoinWinGet(spC[0]) > 0) { var_r24--; } for (var_r31 = 0; var_r31 < 6; var_r31++) { if (var_r31 >= var_r24) { var_r30 = HuSprCreate(var_r23, 0x64, 0); } else { var_r30 = HuSprCreate(var_r29, 0x64, 0); } HuSprGrpMemberSet(var_r27, var_r31, var_r30); HuSprPosSet(var_r27, var_r31, (var_r31 << 5) + 0x46, 340.0f); } var_r30 = HuSprCreate(var_r29, 0x5A, 0); HuSprGrpMemberSet(var_r27, 6, var_r30); HuSprAttrSet(var_r27, 6, 4); HuSprGrpPosSet(var_r27, 0.0f, 0.0f); sp38.x = 510.0f; sp38.y = 80.0f; sp38.z = 1500.0f; Hu3D2Dto3D(&sp38, 1, &sp2C); lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP); Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); GWPlayerCfg[spC[2]].character = mgIndexList[mgBattleStarMax * 2]; GWPlayerCfg[spC[3]].character = mgIndexList[mgBattleStarMax * 2 + 1]; GWPlayerCfg[spC[0]].group = GWPlayerCfg[spC[1]].group = 0; GWPlayerCfg[spC[2]].group = GWPlayerCfg[spC[3]].group = 1; GWPlayerCfg[spC[2]].iscom = GWPlayerCfg[spC[3]].iscom = 1; GWPlayerCfg[spC[2]].diff = GWPlayerCfg[spC[3]].diff = lbl_1_data_44[mgBattleStarMax]; var_r26 = -0x113; if (lbl_1_bss_58 != 0) { CharKill(-1); for (var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[spC[var_r31]].character < 8) { CharARAMOpen(GWPlayerCfg[spC[var_r31]].character); } } } for (var_r31 = 0; var_r31 < 4; var_r31++) { var_r28 = GWPlayerCfg[spC[var_r31]].character; if (var_r28 != 0xFF) { if (var_r28 < 8) { lbl_1_bss_36[var_r31] = CharModelCreate(var_r28, 2); lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); if (var_r31 < 2) { lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); } CharModelVoiceEnableSet(GWPlayerCfg[spC[var_r31]].character, lbl_1_bss_E[var_r31][1], 0); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } else { var_r25 = var_r28 - 8; lbl_1_bss_36[var_r31] = Hu3DModelCreateFile(lbl_1_data_2C[var_r25]); lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 1); lbl_1_bss_E[var_r31][1] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 2); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_36[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r26, 0.0f, 0.0f); Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); var_r26 += 0x96; if (var_r31 == 1) { var_r26 += 0x64; } } } CharModelDataClose(-1); Hu3DShadowCreate(20.0f, 500.0f, 8000.0f); Hu3DShadowTPLvlSet(0.5f); Hu3DShadowSizeSet(0xC0); sp20.x = sp20.y = sp20.z = 0.0f; sp38.x = sp38.z = 100.0f; sp38.y = 2000.0f; sp14.x = sp14.y = 0.0f; sp14.z = 1.0f; Hu3DShadowPosSet(&sp38, &sp14, &sp20); lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414); Hu3DModelLayerSet(lbl_1_bss_C, 1); } void fn_1_40E4(void) { s16 sp14[4]; s16 spC[4]; s16 sp8[2]; s16 var_r31; s16 var_r30; s16 var_r29; s16 var_r28; sp8[0] = 0; sp8[1] = 2; for (var_r31 = 0; var_r31 < 4; var_r31++) { spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; } var_r30 = 0; for (var_r31 = var_r30; var_r31 < 8; var_r31++) { if ((var_r31 != GWPlayerCfg[spC[0]].character) && (var_r31 != GWPlayerCfg[spC[1]].character)) { sp14[var_r30++] = var_r31; } } for (var_r31 = 0; var_r31 < 0x1E; var_r31++) { var_r30 = frandmod(6); var_r29 = frandmod(6); var_r28 = sp14[var_r30]; sp14[var_r30] = sp14[var_r29]; sp14[var_r29] = var_r28; } for (var_r31 = 0; var_r31 < 6; var_r31++) { mgIndexList[var_r31] = sp14[var_r31]; } mgIndexList[6] = 0xC; mgIndexList[7] = 9; mgIndexList[8] = 0xB; mgIndexList[9] = 0xA; mgIndexList[0xA] = 8; mgIndexList[0xB] = 0xD; mgIndexList[0xC] = mgIndexList[0xD] = 0xFF; GWPlayerCfg[spC[2]].character = mgIndexList[0]; GWPlayerCfg[spC[3]].character = mgIndexList[1]; } s16 lbl_1_data_4A[6] = { 0x3A, 0x36, 0x40, 0x4B, 0x46, 0x3E }; s16 lbl_1_data_56[7] = { 0x3B, 0x38, 0x42, 0x4D, 0x48, 0x3F, 0 }; void fn_1_4374(void) { s16 spC[4]; s16 sp8[2]; float var_f31; s16 var_r31; s16 var_r30; sp8[0] = 0; sp8[1] = 2; for (var_r31 = 0; var_r31 < 4; var_r31++) { spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; } fn_1_4948(); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } HuPrcSleep(0x1E); if (lbl_1_bss_58 != 0) { var_r30 = 0; for (var_r31 = var_r30; var_r31 < 4; var_r31++) { if (GWPlayerCoinWinGet(spC[var_r31]) > 0) { if (var_r30 == 0) { HuAudFXPlay(0x9A); } if (GWPlayerCfg[spC[var_r31]].character >= 8) { HuAudFXPlay(lbl_1_data_4A[GWPlayerCfg[spC[var_r31]].character - 8]); } Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); var_r30++; } else { if (GWPlayerCfg[spC[var_r31]].character >= 8) { HuAudFXPlay(lbl_1_data_56[GWPlayerCfg[spC[var_r31]].character - 8]); } Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } } HuSprAttrReset(lbl_1_bss_50, 1, 4); HuPrcSleep(0x78); } else { HuAudFXPlay(0x355); HuSprAttrReset(lbl_1_bss_50, 1, 4); for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0)))); HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); HuSprTPLvlSet(lbl_1_bss_50, 1, var_r31 / 20.0); HuPrcVSleep(); } } fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1); while (TRUE) { if (HuPadBtnDown[0] & PAD_BUTTON_A) { HuAudFXPlay(2); fn_1_51BC(2); } if (HuPadBtnDown[0] & PAD_BUTTON_B) { break; } HuPrcVSleep(); } HuAudFXPlay(3); fn_1_1190C(); WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } HuSprGrpKill(lbl_1_bss_48); HuSprGrpKill(lbl_1_bss_50); Hu3DModelKill(lbl_1_bss_42); HuPrcKill(lbl_1_bss_8); Hu3DModelKill(lbl_1_bss_C); CharModelKill(-1); for (var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[spC[var_r31]].character >= 8) { Hu3DModelKill(lbl_1_bss_36[var_r31]); Hu3DMotionKill(lbl_1_bss_E[var_r31][0]); Hu3DMotionKill(lbl_1_bss_E[var_r31][1]); } } lbl_1_bss_58 = 0; lbl_1_bss_5A = 0; } void fn_1_4948(void) { Vec sp38; Vec sp2C; Vec sp20; Vec sp14; s16 spC[4]; s16 sp8[2]; s16 var_r31; s16 var_r30; s16 var_r29; s16 var_r28; AnimData *var_r27; s16 var_r26; s16 var_r25; sp8[0] = 0; sp8[1] = 2; for (var_r31 = 0; var_r31 < 4; var_r31++) { spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; } var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); lbl_1_bss_48 = HuSprGrpCreate(1); var_r29 = HuSprCreate(var_r27, 0xC8, 0); HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r29); HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); lbl_1_bss_50 = HuSprGrpCreate(2); var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 13)); var_r29 = HuSprCreate(var_r27, 0x78, 0); HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r29); HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f); HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f); HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); var_r29 = HuSprCreate(var_r27, 0x64, 0); HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r29); HuSprPosSet(lbl_1_bss_50, 1, 288.0f, 240.0f); HuSprAttrSet(lbl_1_bss_50, 1, 4); HuSprDrawNoSet(lbl_1_bss_50, 1, 0); sp38.x = 510.0f; sp38.y = 80.0f; sp38.z = 1500.0f; Hu3D2Dto3D(&sp38, 1, &sp2C); lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP); Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); var_r28 = -0x113; for (var_r31 = 0; var_r31 < 4; var_r31++) { var_r30 = GWPlayerCfg[spC[var_r31]].character; if (var_r30 < 8) { lbl_1_bss_36[var_r31] = CharModelCreate(var_r30, 2); lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } else { var_r26 = var_r30 - 8; var_r25 = Hu3DModelCreateFile(lbl_1_data_2C[var_r26]); lbl_1_bss_36[var_r31] = var_r25; lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 1); lbl_1_bss_E[var_r31][3] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 3); lbl_1_bss_E[var_r31][4] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 4); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_36[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r28, 0.0f, 0.0f); Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); var_r28 += 0x96; if (var_r31 == 1) { var_r28 += 0x64; } } CharModelDataClose(-1); Hu3DShadowCreate(20.0f, 500.0f, 8000.0f); Hu3DShadowTPLvlSet(0.5f); Hu3DShadowSizeSet(0xC0); sp20.x = sp20.y = sp20.z = 0.0f; sp38.x = sp38.z = 100.0f; sp38.y = 2000.0f; sp14.x = sp14.y = 0.0f; sp14.z = 1.0f; Hu3DShadowPosSet(&sp38, &sp14, &sp20); lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414); Hu3DModelLayerSet(lbl_1_bss_C, 1); } void fn_1_51BC(s16 arg0) { s16 var_r31; omOvlHisData *var_r30; u32 var_r29; WipeColorSet(0xFF, 0xFF, 0xFF); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); HuAudSeqAllFadeOut(0x3E8); while (WipeStatGet() != 0) { HuPrcVSleep(); } #if !VERSION_ENG if ((GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8)) { msmMusStopAll(1, 0); msmSeStopAll(1, 0); var_r29 = OSGetTick(); while (TRUE) { if ((msmMusGetNumPlay(1) != 0) || (msmSeGetNumPlay(1) != 0)) { if (((OSGetTick() - var_r29) / (*((u32 *)0x800000F8) / 4 / 1000)) >= 0x1F4) { break; } } else { break; } } msmSysDelGroupBase(0); #if VERSION_PAL for (var_r31 = 0; var_r31 < 8; var_r31++) { charVoiceGroupStat[var_r31] = 0; } #endif } #endif var_r30 = omOvlHisGet(0); omOvlHisChg(0, OVL_ZTAR, arg0, var_r30->stat); omOvlCallEx(OVL_M433, 1, 0, 0); while (TRUE) { HuPrcVSleep(); } } float lbl_1_data_64[8] = { -132.0f, -12.0f, 60.0f, 132.0f, -132.0f, -60.0f, 60.0f, 132.0f, }; u8 lbl_1_data_84[16] = { 0, 1, 2, 3, 1, 0, 2, 3, 2, 0, 1, 3, 3, 0, 1, 2 }; u8 lbl_1_data_94[12] = { 0, 1, 2, 3, 0, 2, 1, 3, 0, 3, 1, 2 }; s32 fn_1_524C(s32 arg0) { s16 spC; float var_f31; float var_f30; float var_f29; s16 var_r31; s16 var_r30; float *var_r29; s16 var_r28; s16 var_r27; AnimData *var_r26; s16 var_r25; s16 var_r24; s16 var_r23; WindowData *var_r22; if (mgTypeCurr == 1) { var_r29 = lbl_1_data_64; var_f29 = 216.0f; } else { var_r29 = &lbl_1_data_64[4]; var_f29 = 288.0f; } var_r28 = HuSprGrpCreate(0x10); for (var_r31 = 0; var_r31 < 4; var_r31++) { var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].character + DATA_MAKE_NUM(DATADIR_ZTAR, 69)); var_r25 = HuSprCreate(var_r26, 4, 0); HuSprGrpMemberSet(var_r28, var_r31 * 4, var_r25); HuSprPosSet(var_r28, var_r31 * 4, var_r29[var_r31], 0.0f); if (mgTypeCurr == 1) { if (var_r31 == 0) { var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89)); } else { var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90)); } } else if (var_r31 < 2) { var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89)); } else { var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90)); } var_r25 = HuSprCreate(var_r26, 3, 0); HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 1, var_r25); HuSprPosSet(var_r28, (var_r31 * 4) + 1, var_r29[var_r31], 0.0f); if (GWPlayerCfg[var_r31].iscom != 0) { var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 87)); } else { var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].pad_idx + DATA_MAKE_NUM(DATADIR_ZTAR, 83)); } var_r25 = HuSprCreate(var_r26, 2, 1); HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 2, var_r25); HuSprPosSet(var_r28, (var_r31 * 4) + 2, var_r29[var_r31], 0.0f); var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 88)); var_r25 = HuSprCreate(var_r26, 2, GWPlayerCfg[var_r31].diff); HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 3, var_r25); HuSprPosSet(var_r28, (var_r31 * 4) + 3, var_r29[var_r31], 38.0f); if (GWPlayerCfg[var_r31].iscom == 0) { HuSprAttrSet(var_r28, (var_r31 * 4) + 3, 4); } } var_r27 = HuSprGrpCreate(5); var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 67), MEMORY_DEFAULT_NUM)); var_r25 = HuSprCreate(var_r26, 0x32, 0); HuSprGrpMemberSet(var_r27, 0, var_r25); HuSprTPLvlSet(var_r27, 0, 0.9f); HuSprPosSet(var_r27, 0, 0.0f, 0.0f); HuSprScaleSet(var_r27, 0, 1.1f, 1.0f); var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 65), MEMORY_DEFAULT_NUM)); var_r25 = HuSprCreate(var_r26, 0x28, 0); HuSprGrpMemberSet(var_r27, 1, var_r25); HuSprPosSet(var_r27, 1, 0.0f, -90.0f); var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 66), MEMORY_DEFAULT_NUM)); var_r25 = HuSprCreate(var_r26, 0x28, 0); HuSprGrpMemberSet(var_r27, 2, var_r25); HuSprPosSet(var_r27, 2, 0.0f, 0.0f); var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM)); var_r25 = HuSprCreate(var_r26, 0x28, 1); HuSprGrpMemberSet(var_r27, 3, var_r25); HuSprPosSet(var_r27, 3, 180.0f, 0.0f); var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM)); var_r25 = HuSprCreate(var_r26, 0x28, 0); HuSprGrpMemberSet(var_r27, 4, var_r25); HuSprPosSet(var_r27, 4, -180.0f, 0.0f); HuSprGrpPosSet(var_r27, 288.0f, 240.0f); for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { if (var_r31 <= 0x32) { var_f31 = var_r31 / 50.0; var_f30 = -300.0 + (560.0 * sind((90.0f * var_f31))); HuSprGrpPosSet(var_r27, 288.0f, var_f30); HuSprGrpPosSet(var_r28, 288.0f, var_f30); } else { var_f31 = (var_r31 - 0x32) / 10.0; var_f30 = 240.0 + (20.0 * cosd((90.0f * var_f31))); var_f30 = var_f30; HuSprGrpPosSet(var_r27, 288.0f, var_f30); HuSprGrpPosSet(var_r28, 288.0f, var_f30); } HuPrcVSleep(); } var_r24 = HuWinCreate(0.0f, 0.0f, 0x1E0, 0x28, 0); HuWinMesSpeedSet(var_r24, 0); HuWinBGTPLvlSet(var_r24, 0.0f); HuWinMesSet(var_r24, MAKE_MESSID(0x1A, 0x20)); var_r22 = &winData[var_r24]; HuWinPriSet(var_r24, 5); HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f); #if VERSION_PAL HuWinScaleSet(var_r24, 0.95f, 1.0f); #endif HuWinAttrSet(var_r24, 0x800); var_r30 = 0; var_r23 = 0; while (TRUE) { HuPrcVSleep(); if (HuPadBtnDown[0] & PAD_BUTTON_B) { HuAudFXPlay(3); goto block_89; } spC = 0; if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) { HuAudFXPlay(0x304); for (var_r31 = 0; var_r31 <= 5; var_r31++) { var_f31 = var_r31 / 5.0; HuSprPosSet(var_r27, 4, -180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f); HuPrcVSleep(); } var_r30--; if (mgTypeCurr == 1) { if (var_r30 < 0) { var_r30 = 3; } if (var_r30 >= 4) { var_r30 = 0; } for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f); } } else { if (var_r30 < 0) { var_r30 = 2; } if (var_r30 >= 3) { var_r30 = 0; } for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f); } } for (var_r31 = 0; var_r31 <= 5; var_r31++) { var_f31 = var_r31 / 5.0; HuSprPosSet(var_r27, 4, -180.0 - (10.0 * cosd((90.0f * var_f31))), 0.0f); HuPrcVSleep(); } } else { if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { HuAudFXPlay(0x304); for (var_r31 = 0; var_r31 <= 5; var_r31++) { var_f31 = var_r31 / 5.0; HuSprPosSet(var_r27, 3, 180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f); HuPrcVSleep(); } var_r30++; if (mgTypeCurr == 1) { if (var_r30 < 0) { var_r30 = 3; } if (var_r30 >= 4) { var_r30 = 0; } for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f); } } else { if (var_r30 < 0) { var_r30 = 2; } if (var_r30 >= 3) { var_r30 = 0; } for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f); HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f); } } for (var_r31 = 0; var_r31 <= 5; var_r31++) { var_f31 = var_r31 / 5.0; HuSprPosSet(var_r27, 3, 180.0 + (10.0 * cosd((90.0f * var_f31))), 0.0f); HuPrcVSleep(); } } } if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { HuAudFXPlay(0x305); if (mgTypeCurr == 1) { GWPlayerCfg[lbl_1_data_84[var_r30 * 4]].group = 0; for (var_r31 = 1; var_r31 < 4; var_r31++) { GWPlayerCfg[lbl_1_data_84[var_r30 * 4 + var_r31]].group = 1; } } else { for (var_r31 = 0; var_r31 < 2; var_r31++) { GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 0; } for (var_r31 = 2; var_r31 < 4; var_r31++) { GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 1; } } if (arg0 != 0) { var_r23 = 1; } else { return 1; } block_89: HuWinKill(var_r24); for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { if (var_r31 <= 0xA) { var_f31 = var_r31 / 10.0; var_f30 = 240.0 + (20.0 * sind((90.0f * var_f31))); HuSprGrpPosSet(var_r27, 288.0f, var_f30); HuSprGrpPosSet(var_r28, 288.0f, var_f30); } else { var_f31 = (var_r31 - 0xA) / 50.0; var_f30 = -300.0 + (560.0 * cosd(90.0f * var_f31)); HuSprGrpPosSet(var_r27, 288.0f, var_f30); HuSprGrpPosSet(var_r28, 288.0f, var_f30); } HuPrcVSleep(); } HuSprGrpKill(var_r28); HuSprGrpKill(var_r27); return var_r23; } } } void fn_1_66F8(void) { s16 var_r31; while (TRUE) { if (lbl_1_bss_60 != 0 || omSysExitReq) { break; } HuPrcVSleep(); } WipeColorSet(0xFF, 0xFF, 0xFF); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); while (WipeStatGet() != 0) { HuPrcVSleep(); } HuDataDirClose(DATADIR_INSTPIC); while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } CharModelDataClose(-1); for (var_r31 = 0; var_r31 < 4; var_r31++) { GWPlayerCfg[var_r31].character = -1; } #if VERSION_PAL for (var_r31 = 0; var_r31 < 8; var_r31++) { charVoiceGroupStat[var_r31] = 0; } #endif mgPracticeEnableF = 0; omOvlReturnEx(1, 1); HuPrcEnd(); } void fn_1_6804(void) { Vec sp2C; Vec sp20; Vec sp14; Vec sp8; float var_f31; float var_f30; float var_f29; s8 var_r31; CRot.y += 0.1f * HuPadStkX[0]; CRot.x += 0.1f * HuPadStkY[0]; CZoom += HuPadTrigL[0] / 2; CZoom -= HuPadTrigR[0] / 2; if (HuPadBtnDown[0] & PAD_BUTTON_B) { OSReport("%f,%f,%f\n", CRot.x, CRot.y, CRot.z); OSReport("%f,%f,%f\n", Center.x, Center.y, Center.z); OSReport("%f\n", CZoom); } if (CZoom < 100.0f) { CZoom = 100.0f; } sp2C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp2C.y = Center.y + (CZoom * -sind(CRot.x)); sp2C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); sp20.x = Center.x - sp2C.x; sp20.y = Center.y - sp2C.y; sp20.z = Center.z - sp2C.z; sp14.x = sind(CRot.y) * sind(CRot.x); sp14.y = cosd(CRot.x); sp14.z = cosd(CRot.y) * sind(CRot.x); var_f31 = CRot.z; sp8.x = sp14.x * ((sp20.x * sp20.x) + ((1.0f - (sp20.x * sp20.x)) * cosd(var_f31))) + sp14.y * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) - sp20.z * sind(var_f31)) + sp14.z * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) + sp20.y * sind(var_f31)); sp8.y = sp14.y * ((sp20.y * sp20.y) + ((1.0f - (sp20.y * sp20.y)) * cosd(var_f31))) + sp14.x * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) + sp20.z * sind(var_f31)) + sp14.z * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) - sp20.x * sind(var_f31)); sp8.z = sp14.z * ((sp20.z * sp20.z) + ((1.0f - (sp20.z * sp20.z)) * cosd(var_f31))) + (sp14.x * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) - sp20.y * sind(var_f31)) + sp14.y * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) + sp20.x * sind(var_f31))); VECCrossProduct(&sp14, &sp20, &sp20); VECNormalize(&sp20, &sp20); var_r31 = HuPadSubStkX[0] & 0xF8; if (var_r31 != 0) { Center.x += 0.05f * (sp20.x * var_r31); Center.y += 0.05f * (sp20.y * var_r31); Center.z += 0.05f * (sp20.z * var_r31); } VECNormalize(&sp8, &sp20); var_r31 = -(HuPadSubStkY[0] & 0xF8); if (var_r31 != 0) { Center.x += 0.05f * (sp20.x * var_r31); Center.y += 0.05f * (sp20.y * var_r31); Center.z += 0.05f * (sp20.z * var_r31); } } void fn_1_7414(ModelData *model, Mtx matrix) { Mtx sp8C; Mtx sp5C; Mtx sp2C; GXTexObj spC; s32 sp8; sp8 = 0; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&spC, GX_TEXMAP0); MTXInverse(Hu3DCameraMtx, sp5C); MTXConcat(sp5C, matrix, sp8C); MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); MTXConcat(sp2C, sp8C, sp8C); GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); GXSetNumTexGens(1); GXSetNumTevStages(1); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE); GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); GXSetZMode(1, GX_LEQUAL, GX_FALSE); GXLoadPosMtxImm(matrix, 0); GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3f32(-500.0f, 0.0f, -500.0f); GXPosition3f32(500.0f, 0.0f, -500.0f); GXPosition3f32(500.0f, 0.0f, 500.0f); GXPosition3f32(-500.0f, 0.0f, 500.0f); }