#include "dolphin.h" #include "game/armem.h" #include "game/audio.h" #include "game/board/player.h" #include "game/data.h" #include "game/frand.h" #include "game/gamework.h" #include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" #include "game/saveload.h" #include "game/window.h" #include "game/wipe.h" #include "math.h" #include "REL/resultdll.h" DataListModel lbl_1_data_0[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x01), 1, 0, -1, -1, { 148, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x02), 1, 0, -1, -1, { 148, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x03), 1, 0, -1, -1, { 148, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 0, -1, -1, { 230, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 4, -1, { 230, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 4, -1, { 230, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 4, -1, { 230, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x05), 0, 0, -1, -1, { 410, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; DataListSprite lbl_1_data_2A4[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), 0, 10, 288, 60, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 132, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 132, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 217, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 217, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 302, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 302, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 387, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 387, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; s16 lbl_1_data_380 = -1; omObjData *lbl_1_bss_188; omObjData *lbl_1_bss_184; Process *lbl_1_bss_180; s16 lbl_1_bss_17C; s32 lbl_1_bss_178; s32 lbl_1_bss_174; s16 lbl_1_bss_172; s16 lbl_1_bss_170; s16 lbl_1_bss_168[4]; s16 lbl_1_bss_158[8]; AnimData *lbl_1_bss_144[5]; AnimData *lbl_1_bss_E4[8][3]; AnimData *lbl_1_bss_E0; s16 lbl_1_bss_CE[9]; s16 lbl_1_bss_9E[8][3]; s16 lbl_1_bss_9C; s16 lbl_1_bss_5C[8][4]; s16 lbl_1_bss_54[4]; s16 lbl_1_bss_52; s16 lbl_1_bss_4A[4]; s16 lbl_1_bss_42[4]; s16 lbl_1_bss_3A[4]; s16 lbl_1_bss_12[4][5]; s16 lbl_1_bss_A[4]; s16 lbl_1_bss_8; s32 lbl_1_bss_4; s32 lbl_1_bss_0; void fn_1_4D8(void); void fn_1_888(void); void fn_1_B78(void); void fn_1_1F4C(void); void fn_1_2ADC(void); void fn_1_461C(void); void fn_1_47FC(void); void ObjectSetup(void) { s32 i; s32 light; OSReport("******* RESULT ObjectSetup *********\n"); lbl_1_bss_180 = omInitObjMan(50, 8192); lbl_1_bss_17C = GWSystem.mg_next; if (mgInfoTbl[lbl_1_bss_17C].ovl == OVL_M430) { for (i = 0; i < 4; i++) { GWPlayerCfg[i].group = GWPlayerCfg[i].group / 2; } } HuDataDirClose(mgInfoTbl[lbl_1_bss_17C].data_dir); if (mgInfoTbl[lbl_1_bss_17C].type == 3 || mgInfoTbl[lbl_1_bss_17C].type == 5 || mgInfoTbl[lbl_1_bss_17C].type == 6 || !_CheckFlag(FLAG_ID_MAKE(1, 0))) { if (_CheckFlag(0x10000)) { HuAR_DVDtoARAM(DATADIR_BOARD); while (HuARDMACheck()) ; } omOvlReturnEx(1, 1); return; } CRot.x = 0.0f; CRot.y = 0.0f; CRot.z = 0.0f; Center.x = 0.0f; Center.y = 0.0f; Center.z = 0.0f; CZoom = 500.0f; Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); Hu3DGLightInfinitytSet(light); lbl_1_bss_174 = 0; if (mgInfoTbl[GWSystem.mg_next].type != 4) { HuPrcChildCreate(fn_1_4D8, 100, 12288, 0, lbl_1_bss_180); } else { HuPrcChildCreate(fn_1_6490, 100, 12288, 0, lbl_1_bss_180); } lbl_1_bss_184 = omAddObjEx(lbl_1_bss_180, 32730, 0, 0, -1, omOutView); HuWinInit(1); lbl_1_bss_172 = frandmod(4); } void fn_1_4D8(void) { s16 player; s16 i; s16 window; s16 button; Process *process_curr = HuPrcCurrentGet(); HuAudSeqPlay(57); for (i = player = 0; i < 4; i++) { if (GWPlayerCfg[i].iscom) { player++; } } if (player == 4) { lbl_1_bss_4 = 1; } else { lbl_1_bss_4 = 0; } fn_1_B78(); HuPrcChildCreate(fn_1_888, 100, 8192, 0, lbl_1_bss_180); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { HuPrcVSleep(); } HuDataDirClose(DATADIR_RESULT); lbl_1_bss_178 = 0; HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, lbl_1_bss_180); HuPrcSleep(10); if (!lbl_1_bss_174) { HuPrcSleep(20); } fn_1_1F4C(); fn_1_40DC(); fn_1_2ADC(); window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); HuWinMesSpeedSet(window, 0); HuWinBGTPLvlSet(window, 0); HuWinPriSet(window, 5); HuWinAttrSet(window, 0x800); HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); HuPrcSleep(4); i = 0; while (1) { if (!lbl_1_bss_4 || i <= 120) { for (player = button = 0; player < 4; player++) { if (!GWPlayerCfg[player].iscom) { button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; } } if (button & PAD_BUTTON_A) { HuAudFXPlay(28); break; } HuPrcVSleep(); i++; } else { break; } } HuWinKill(window); if (GWTeamGet()) { fn_1_47FC(); } while (!lbl_1_bss_178) { HuPrcVSleep(); } HuAudSeqAllFadeOut(1000); WipeColorSet(255, 255, 255); if (GWSaveModeGet() != 1 && SLSaveFlagGet()) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet()) { HuPrcVSleep(); } fn_1_461C(); } else { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); while (WipeStatGet()) { HuPrcVSleep(); } } omSysPauseEnable(1); omOvlReturnEx(1, 1); HuPrcEnd(); while (1) { HuPrcVSleep(); } } void fn_1_888(void) { f32 var_f29; f32 var_f31; f32 var_f30; var_f31 = 0.0f; var_f30 = 0.0f; var_f29 = 0.0f; lbl_1_bss_0 = 0; while (1) { if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_4 != 0) { lbl_1_bss_174 = 1; } else { lbl_1_bss_174 = 0; } Hu3DModelRotSet(lbl_1_bss_1A9C[4], 0.0f, var_f31, 0.0f); Hu3DModelRotSet(lbl_1_bss_1A9C[5], 0.0f, -var_f31, 0.0f); Hu3DModelRotSet(lbl_1_bss_1A9C[6], 0.0f, var_f31, 0.0f); Hu3DModelRotSet(lbl_1_bss_1A9C[7], 0.0f, -var_f31, 0.0f); var_f31 += 0.2; if (var_f31 >= 360.0f) { var_f31 -= 360.0f; } if (lbl_1_bss_0 != 0) { Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0.0f, var_f30, 0.0f); Hu3DModelRotSet(lbl_1_bss_1A9C[9], 0.0f, -var_f30, 0.0f); Hu3DModelRotSet(lbl_1_bss_1A9C[10], 0.0f, var_f30, 0.0f); Hu3DModelRotSet(lbl_1_bss_1A9C[11], 0.0f, -var_f30, 0.0f); var_f29 += 0.001; if (var_f29 > 0.1) { var_f29 = 0.1f; } var_f30 += var_f29; if (var_f30 >= 360.0f) { var_f30 -= 360.0f; } } HuPrcVSleep(); } } s32 lbl_1_data_3A8[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x10), DATA_MAKE_NUM(DATADIR_RESULT, 0x11), DATA_MAKE_NUM(DATADIR_RESULT, 0x12), DATA_MAKE_NUM(DATADIR_RESULT, 0x13), DATA_MAKE_NUM(DATADIR_RESULT, 0x14), DATA_MAKE_NUM(DATADIR_RESULT, 0x15), }; s32 lbl_1_data_3C0[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), DATA_MAKE_NUM(DATADIR_RESULT, 0x1E), DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), DATA_MAKE_NUM(DATADIR_RESULT, 0x21), DATA_MAKE_NUM(DATADIR_RESULT, 0x20), DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), }; s16 lbl_1_data_3D8[] = { 320, 132, 500, 132, 320, 217, 500, 217, 320, 302, 500, 302, 320, 387, 500, 387, }; s16 lbl_1_data_3F8[] = { 74, 132, 74, 217, 74, 302, 74, 387 }; Vec lbl_1_data_408[4] = { { 148, 132, 500 }, { 148, 217, 500 }, { 148, 302, 500 }, { 148, 387, 500 } }; s16 lbl_1_data_438[] = { 164, 148, 164, 233, 164, 318, 164, 403 }; void fn_1_3B50(s16 group, s16 value); void fn_1_3CAC(s16 group, s16 value); void fn_1_3E08(void); void fn_1_B78(void) { Vec pos; s16 sp8[5]; s16 i; s16 j; s16 character; AnimData *anim; s16 sprite; s16 group; s16 model; AnimData *anim2; AnimData *anim3; AnimData *anim4; fn_1_8FF8(lbl_1_data_0); lbl_1_data_2A4[0].datanum = lbl_1_data_3A8[mgInfoTbl[lbl_1_bss_17C].type]; lbl_1_data_2A4[1].datanum = lbl_1_data_3C0[mgInfoTbl[lbl_1_bss_17C].type]; fn_1_927C(lbl_1_data_2A4); espDrawNoSet(lbl_1_bss_1A1A[0], 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1B)); for (i = 0; i < 8; i++) { lbl_1_bss_CE[i] = HuSprGrpCreate(3); lbl_1_bss_9E[i][0] = HuSprCreate(anim, 0, 0); HuSprGrpMemberSet(lbl_1_bss_CE[i], 0, lbl_1_bss_9E[i][0]); HuSprPosSet(lbl_1_bss_CE[i], 0, -28.0f, 0.0f); lbl_1_bss_9E[i][1] = HuSprCreate(anim, 0, 0); HuSprGrpMemberSet(lbl_1_bss_CE[i], 1, lbl_1_bss_9E[i][1]); HuSprPosSet(lbl_1_bss_CE[i], 1, 0.0f, 0.0f); lbl_1_bss_9E[i][2] = HuSprCreate(anim, 0, 0); HuSprGrpMemberSet(lbl_1_bss_CE[i], 2, lbl_1_bss_9E[i][2]); HuSprPosSet(lbl_1_bss_CE[i], 2, 28.0f, 0.0f); HuSprGrpPosSet(lbl_1_bss_CE[i], lbl_1_data_3D8[(i * 2)], lbl_1_data_3D8[(i * 2) + 1]); fn_1_3B50(lbl_1_bss_CE[i], 999); } fn_1_3E08(); fn_1_423C(sp8); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3A)); anim3 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B)); anim2 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C)); anim4 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3E)); for (i = 0; i < 4; i++) { lbl_1_bss_3A[i] = HuSprGrpCreate(5); if (sp8[lbl_1_bss_4A[i]] < 100) { lbl_1_bss_12[i][0] = HuSprCreate(anim, 10, 0); HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); HuSprPosSet(lbl_1_bss_3A[i], 0, 30.0f, -25.0f); } else { lbl_1_bss_12[i][0] = HuSprCreate(anim4, 10, 0); HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); HuSprPosSet(lbl_1_bss_3A[i], 0, 40.0f, -21.0f); } lbl_1_bss_12[i][1] = HuSprCreate(anim3, 0, 0); HuSprGrpMemberSet(lbl_1_bss_3A[i], 1, lbl_1_bss_12[i][1]); HuSprPosSet(lbl_1_bss_3A[i], 1, 12.0f, -25.0f); lbl_1_bss_12[i][2] = HuSprCreate(anim2, 0, 0); HuSprGrpMemberSet(lbl_1_bss_3A[i], 2, lbl_1_bss_12[i][2]); HuSprPosSet(lbl_1_bss_3A[i], 2, 28.0f, -25.0f); lbl_1_bss_12[i][3] = HuSprCreate(anim2, 0, 0); HuSprGrpMemberSet(lbl_1_bss_3A[i], 3, lbl_1_bss_12[i][3]); HuSprPosSet(lbl_1_bss_3A[i], 3, 44.0f, -25.0f); lbl_1_bss_12[i][4] = HuSprCreate(anim2, 0, 0); HuSprGrpMemberSet(lbl_1_bss_3A[i], 4, lbl_1_bss_12[i][4]); HuSprPosSet(lbl_1_bss_3A[i], 4, 60.0f, -25.0f); HuSprGrpPosSet(lbl_1_bss_3A[i], lbl_1_data_438[(i * 2)], lbl_1_data_438[(i * 2) + 1]); fn_1_3CAC(lbl_1_bss_3A[i], 9); HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); } for (i = 0; i < 4; i++) { character = GWPlayerCfg[i].character; lbl_1_bss_E4[character][0] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x22) + (character * 3)); lbl_1_bss_E4[character][1] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x23) + (character * 3)); lbl_1_bss_E4[character][2] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x24) + (character * 3)); for (j = 0; j < 4; j++) { lbl_1_bss_5C[character][j] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x00) + j); Hu3DModelScaleSet(lbl_1_bss_5C[character][j], 1.1f, 1.1f, 1.1f); Hu3DAnimCreate(lbl_1_bss_E4[character][0], lbl_1_bss_5C[character][j], "ys22"); Hu3DModelAttrSet(lbl_1_bss_5C[character][j], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { lbl_1_bss_144[i] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + i); } lbl_1_bss_52 = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { sprite = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); HuSprGrpMemberSet(lbl_1_bss_52, i, sprite); HuSprPosSet(lbl_1_bss_52, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); character = GWPlayerCfg[lbl_1_bss_4A[i]].character; Hu3D2Dto3D(&lbl_1_data_408[i], 1, &pos); Hu3DModelPosSetV(lbl_1_bss_5C[character][lbl_1_bss_42[i]], &pos); Hu3DModelAttrReset(lbl_1_bss_5C[character][lbl_1_bss_42[i]], HU3D_ATTR_DISPOFF); } for (i = 4; i <= 11; i++) { Hu3D2Dto3D(&lbl_1_data_0[i].pos, 1, &pos); Hu3DModelPosSetV(lbl_1_bss_1A9C[i], &pos); Hu3D3Dto2D(&pos, 1, &pos); } model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x04)); for (i = 0; i < 4; i++) { j = Hu3DModelLink(model); lbl_1_bss_168[i] = j; pos = lbl_1_data_408[i]; pos.x += 5.0f; pos.y += 3.0f; pos.z += 200.0f; Hu3D2Dto3D(&pos, 1, &pos); Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x07)); for (i = 0; i < 8; i++) { j = Hu3DModelLink(model); lbl_1_bss_158[i] = j; pos = lbl_1_data_0[i + 4].pos; pos.x += 5.0f; pos.y += 3.0f; pos.z += 200.0f; Hu3D2Dto3D(&pos, 1, &pos); Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); lbl_1_bss_E0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1C)); lbl_1_bss_9C = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { sprite = HuSprCreate(lbl_1_bss_E0, i, 0); HuSprGrpMemberSet(lbl_1_bss_9C, i, sprite); HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); HuSprPosSet(lbl_1_bss_9C, i, lbl_1_data_408[i].x - 4.0f, lbl_1_data_408[i].y - 35.0f); HuSprAttrSet(lbl_1_bss_9C, i, 4); } group = HuSprGrpCreate(4); lbl_1_bss_170 = group; anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3F)); sprite = HuSprCreate(anim, 100, 0); HuSprGrpMemberSet(group, 0, sprite); HuSprAttrSet(group, 0, 4); HuSprDrawNoSet(group, 0, 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x40)); sprite = HuSprCreate(anim, 90, 0); HuSprGrpMemberSet(group, 1, sprite); HuSprAttrSet(group, 1, 4); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x41)); sprite = HuSprCreate(anim, 80, 0); HuSprGrpMemberSet(group, 2, sprite); HuSprAttrSet(group, 2, 4); HuSprDrawNoSet(group, 2, 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x42)); sprite = HuSprCreate(anim, 80, 0); HuSprGrpMemberSet(group, 3, sprite); HuSprAttrSet(group, 3, 4); HuSprDrawNoSet(group, 3, 127); (void)sprite; } void fn_1_1F4C(void) { float temp_f31; float temp_f30; s16 i; s16 temp_r30; s16 temp_r29; s16 temp_r28; s32 status; s32 temp_r26; s32 sp24[4]; float sp14[4]; s16 sp8[5]; fn_1_423C(sp8); for (i = 0; i < 4; i++) { fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]); sp24[i] = 0; } temp_r29 = (lbl_1_bss_174) ? 3 : 10; for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { temp_f31 = sin(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); for (i = 0; i < 4; i++) { HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { HuSprGrpScaleSet(lbl_1_bss_3A[i], 1.0f, 1.0f); } for (temp_r28 = 0; temp_r28 <= 14;) { for (i = 0; i < 4; i++) { if (GWPlayerCoinWinGet(lbl_1_bss_4A[i]) >= 10) { HuSprAttrReset(lbl_1_bss_9C, i, 4); } HuSprScaleSet(lbl_1_bss_9C, i, sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), 0.8 * (sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (1.0 / sin((M_PI * 2) / 3)))); } temp_r28 += (lbl_1_bss_174) ? 2 : 1; HuPrcVSleep(); } if (!lbl_1_bss_174) { HuPrcSleep(15); } for (i = 0; i < 4; i++) { sp14[i] = 0.0f; } for (i = temp_r30 = 0; i < 4; i++) { temp_r30 += sp8[i]; } status = -1; if (temp_r30) { status = HuAudFXPlay(23); } temp_r30 = 0; temp_f30 = temp_r30; temp_r30 = 0; while (1) { temp_r26 = 0; temp_f30 += (lbl_1_bss_174) ? 1.0f : 0.2f; temp_r30 = temp_f30; for (i = temp_r29 = 0; i < 4; i++) { if (sp8[lbl_1_bss_4A[i]] - temp_r30 <= 0) { if (!sp24[lbl_1_bss_4A[i]] && sp8[lbl_1_bss_4A[i]] != 0) { sp24[lbl_1_bss_4A[i]] = 1; if (!temp_r26) { HuAudFXPlay(9); temp_r26 = 1; } } temp_r29++; fn_1_3CAC(lbl_1_bss_3A[i], 0); fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], sp8[lbl_1_bss_4A[i]] + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); if (!sp14[i]) { continue; } sp14[i] += 20.0f; if (sp14[i] >= 360.0f) { sp14[i] -= 360.0f; } Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); } else { fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]] - temp_r30); fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], (s32)temp_r30 + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); sp14[i] += 20.0f; if (sp14[i] >= 360.0f) { sp14[i] -= 360.0f; } Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); } } if (temp_r29 == 4) { break; } HuPrcVSleep(); } if (status != -1) { HuAudFXStop(status); } temp_r29 = 0; while (1) { for (i = temp_r30 = 0; i < 4; i++) { if (sp14[i]) { sp14[i] += 20.0f; if (sp14[i] >= 360.0f) { sp14[i] -= 360.0f; } Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); } else { temp_r30++; } } if (temp_r30 >= 4) { break; } HuPrcVSleep(); temp_r29++; } if (temp_r29 < 30) { HuPrcSleep(30 - temp_r29); } temp_r29 = (lbl_1_bss_174) ? 3 : 10; for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { temp_f31 = cos(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); for (i = 0; i < 4; i++) { HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); } } void fn_1_2ADC(void) { float temp_f31; s16 i; s16 temp_r30; s16 temp_r29; s16 temp_r28; s16 temp_r27; s16 temp_r26; s16 temp_r25; s16 temp_r24; float sp54[4]; Vec sp48; s32 sp38[4] = { -1, -1, -1, -1 }; s16 sp30[4]; s16 sp28[4]; s16 sp20[4]; s16 sp18[4]; s16 sp10[4]; s16 sp8[4]; for (i = 0; i < 4; i++) { sp30[i] = sp28[i] = lbl_1_bss_4A[i]; sp18[i] = sp20[i] = lbl_1_bss_42[i]; sp10[i] = BoardPlayerCoinsGet(lbl_1_bss_4A[i]); sp8[i] = GWStarsGet(lbl_1_bss_4A[i]); } fn_1_3E08(); for (i = 0; i < 4; i++) { if (sp30[i] != lbl_1_bss_4A[i] || sp18[i] != lbl_1_bss_42[i]) { break; } } if (i == 4) { lbl_1_bss_0 = 1; return; } lbl_1_data_380 = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { temp_r24 = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); HuSprGrpMemberSet(lbl_1_data_380, i, temp_r24); HuSprPosSet(lbl_1_data_380, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); HuSprAttrSet(lbl_1_data_380, i, 4); temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; lbl_1_bss_54[i] = lbl_1_bss_A[i] = Hu3DModelLink(lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]]); Hu3D2Dto3D(&lbl_1_data_408[i], 1, &sp48); Hu3DModelPosSetV(lbl_1_bss_A[i], &sp48); if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); } else { Hu3DModelAttrSet(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { sp54[i] = 0; } temp_r25 = 0; temp_r28 = 0; while (1) { for (temp_r26 = i = 0; i < 4; i++) { if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { temp_r26++; fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); } else { if (temp_r28 > (i * 20)) { temp_r27 = temp_r28 - (i * 20); if (temp_r27 <= 20) { if (temp_r27 <= 10) { HuSprScaleSet(lbl_1_bss_52, i, 1.0f, cos(M_PI * (9.0f * temp_r27) / 180.0)); } else { HuSprAttrSet(lbl_1_bss_52, i, 4); HuSprAttrReset(lbl_1_data_380, i, 4); HuSprScaleSet(lbl_1_data_380, i, 1.0f, sin(M_PI * (9.0f * (temp_r27 - 10)) / 180.0)); } temp_f31 = temp_r27 / 20.0f; temp_r29 = GWStarsGet(sp28[i]) + (temp_f31 * (GWStarsGet(lbl_1_bss_4A[i]) - GWStarsGet(sp28[i]))); fn_1_3B50(lbl_1_bss_CE[(i * 2)], temp_r29); temp_r29 = BoardPlayerCoinsGet(sp28[i]) + (temp_f31 * (BoardPlayerCoinsGet(lbl_1_bss_4A[i]) - BoardPlayerCoinsGet(sp28[i]))); fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], temp_r29); } else { temp_r30 = GWPlayerCfg[sp28[i]].character; Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { if (sp28[temp_r29] == lbl_1_bss_4A[i]) { break; } } if (lbl_1_bss_42[i] != sp20[temp_r29]) { if (lbl_1_bss_42[i] < sp20[temp_r29]) { Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][1], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); } else { Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][2], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); } if (lbl_1_bss_42[i] == 0) { sp38[lbl_1_bss_4A[i]] = HuAudPlayerVoicePlay(lbl_1_bss_4A[i], 293); } if (!temp_r25) { temp_r25 = 1; HuAudFXPlay(27); } } sp30[i] = lbl_1_bss_4A[i]; sp18[i] = lbl_1_bss_42[i]; } } sp54[i] += 20.0f; if (sp54[i] >= 360.0f) { sp54[i] -= 360.0f; } temp_r30 = GWPlayerCfg[sp28[i]].character; Hu3DModelRotSet(lbl_1_bss_5C[temp_r30][sp18[i]], sp54[i] / (4 - i), sp54[i], 0.0f); } } if (temp_r28 <= 10) { for (i = 0; i < 4; i++) { HuSprScaleSet(lbl_1_bss_9C, i, cos(M_PI * (9.0f * temp_r28) / 180.0), cos(M_PI * (9.0f * temp_r28) / 180.0)); } } else { for (i = 0; i < 4; i++) { HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); } } if (temp_r26 >= 4) { break; } if (lbl_1_bss_174) { temp_r28 += 2; } HuPrcVSleep(); temp_r28++; } for (i = 0; i < 4; i++) { HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); } lbl_1_bss_0 = 1; } void fn_1_3B50(s16 group, s16 value) { s16 digit; s16 digit_value; if (value > 999) { value = 999; } digit = 0; digit_value = value / 100; if (digit_value != 0) { HuSprBankSet(group, digit, digit_value); HuSprAttrReset(group, digit, 4); digit++; } value -= digit_value * 100; digit_value = value / 10; if (digit_value != 0 || digit == 1) { HuSprBankSet(group, digit, digit_value); HuSprAttrReset(group, digit, 4); digit++; } value -= digit_value * 10; HuSprBankSet(group, digit, value); HuSprAttrReset(group, digit, 4); digit++; for (digit_value = digit; digit_value < 3; digit_value++) { HuSprAttrSet(group, digit_value, 4); } } void fn_1_3CAC(s16 group, s16 value) { s16 digit; s16 digit_value; if (value > 999) { value = 999; } digit = 2; digit_value = value / 100; if (digit_value != 0) { HuSprBankSet(group, digit, digit_value); HuSprAttrReset(group, digit, 4); digit++; } value -= digit_value * 100; digit_value = value / 10; if (digit_value != 0 || digit == 3) { HuSprBankSet(group, digit, digit_value); HuSprAttrReset(group, digit, 4); digit++; } value -= digit_value * 10; HuSprBankSet(group, digit, value); HuSprAttrReset(group, digit, 4); digit++; for (digit_value = digit; digit_value < 5; digit_value++) { HuSprAttrSet(group, digit_value, 4); } } void fn_1_3E08(void) { s16 i; s16 j; for (i = 0; i < 4; i++) { lbl_1_bss_42[i] = BoardPlayerRankCalc(i); lbl_1_bss_4A[i] = i; } for (j = 1; j < 4; j++) { for (i = 0; i < 4 - j; i++) { if (lbl_1_bss_42[i] > lbl_1_bss_42[i + 1]) { s16 temp = lbl_1_bss_42[i]; lbl_1_bss_42[i] = lbl_1_bss_42[i + 1]; lbl_1_bss_42[i + 1] = temp; temp = lbl_1_bss_4A[i]; lbl_1_bss_4A[i] = lbl_1_bss_4A[i + 1]; lbl_1_bss_4A[i + 1] = temp; } } } } s32 lbl_1_data_450[] = { DATADIR_W01, DATADIR_W02, DATADIR_W03, DATADIR_W04, DATADIR_W05, DATADIR_W06 }; void fn_1_3FD8(void) { s32 status; u32 ardma; if (!_CheckFlag(0x10000)) { lbl_1_bss_178 = 1; HuPrcEnd(); while (1) { HuPrcVSleep(); } } status = HuDataDirReadAsync(DATADIR_BOARD); if (status != -1) { while (!HuDataGetAsyncStat(status)) { HuPrcVSleep(); } } ardma = HuAR_MRAMtoARAM(DATADIR_BOARD); if (ardma) { while (HuARDMACheck()) { HuPrcVSleep(); } } HuDataDirClose(DATADIR_BOARD); status = HuDataDirReadAsync(lbl_1_data_450[GWSystem.board]); if (status != -1) { while (!HuDataGetAsyncStat(status)) { HuPrcVSleep(); } } lbl_1_bss_178 = 1; HuPrcEnd(); while (1) { HuPrcVSleep(); } } void fn_1_40DC(void) { s16 i; s16 sp8[5]; fn_1_423C(sp8); sp8[lbl_1_bss_172] += sp8[4]; for (i = 0; i < 4; i++) { GWCoinsAdd(i, sp8[i]); GWPlayerCoinWinSet(i, 0); GWPlayerCoinCollectSet(i, 0); if (mgInfoTbl[GWSystem.mg_next].type != 4) { GWPlayer[i].coins_mg += sp8[i]; if (GWPlayer[i].coins_mg > 9999) { GWPlayer[i].coins_mg = 9999; } } } } void fn_1_423C(s16 *data) { s16 i; s32 coin; u32 mul_coin; u32 coin_battle; s16 temp_r26; s16 mgtype; float sp10[4]; s16 sp8[4]; mgtype = mgInfoTbl[GWSystem.mg_next].type; switch (mgtype) { case 4: temp_r26 = 0; for (i = coin_battle = 0; i < 4; i++) { coin_battle += GWPlayerCoinBattleGet(i); } sp8[0] = sp8[1] = sp8[2] = sp8[3] = 0; for (i = 0; i < 4; i++) { sp8[GWPlayerCoinWinGet(i)]++; } sp10[0] = sp10[1] = sp10[2] = sp10[3] = 0; if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 1) { sp10[0] = 0.7f; sp10[1] = 0.3f; } else if (sp8[0] == 2) { sp10[0] = 0.5f; } else if (sp8[0] == 3) { sp10[0] = 0.3333333f; } else if (sp8[0] == 1 && sp8[1] == 2) { sp10[0] = 0.6f; sp10[1] = 0.2f; } else if (sp8[0] == 1 && sp8[1] == 3) { sp10[0] = 0.7f; sp10[1] = 0.1f; } else if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 2) { sp10[0] = 0.7f; sp10[1] = 0.3f; } else if (sp8[0] == 4) { sp10[0] = 0.25f; } else { temp_r26 = 1; } for (i = coin = 0; i < 4; i++) { if (!temp_r26) { mul_coin = coin_battle * sp10[GWPlayerCoinWinGet(i)]; } else { mul_coin = GWPlayerCoinBattleGet(i); } data[i] = mul_coin; coin += mul_coin; } if (coin < coin_battle) { data[4] = coin_battle - coin; } else { data[4] = 0; } break; default: for (i = 0; i < 4; i++) { coin = GWPlayerCoinWinGet(i) + GWPlayerCoinCollectGet(i); mul_coin = GWLuckyValueGet(); if (mul_coin == 0) { mul_coin = 1; } coin *= mul_coin; data[i] = coin; } break; } } void fn_1_461C(void) { s16 sprite; Hu3DAllKill(); HuSprClose(); HuSprInit(); espInit(); HuPrcVSleep(); sprite = espEntry(0x860020, 5000, 0); espPosSet(sprite, 288.0, 240.0); espAttrReset(sprite, HUSPR_ATTR_DISPOFF); Hu3DBGColorSet(0, 0, 0); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { HuPrcVSleep(); } if (GWSaveModeGet() == 2) { GWSaveModeSet(1); } if (GWPartyGet() == 1) { GWGameStat.party_continue = 1; SLSaveBoard(); } else { GWGameStat.story_continue = 1; SLSaveBoardStory(); } SLCommonSet(); if (SLSave()) { saveExecF = 1; } else { GWSaveModeSet(1); } WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { HuPrcVSleep(); } } s32 lbl_1_data_468[] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, DATADIR_DAISYMDL1, DATADIR_WALUIGIMDL1 }; Vec lbl_1_data_488[] = { { 160, 185, 500 }, { 240, 185, 500 }, { 160, 355, 500 }, { 240, 355, 500 }, }; void fn_1_47FC(void) { s16 temp_r31; s16 temp_r24; s16 temp_r21; s16 temp_r20; s16 temp_r19; s16 temp_r18; s16 temp_r17; Vec sp40; Vec sp34; s16 sp2C[4]; s16 sp28[2]; s16 sp24[2]; s16 sp20[2]; s16 sp1C[2]; s16 sp18[2]; AnimData *sp14; s32 sp10; s16 spC; s16 spA; s16 sp8; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } espAttrSet(lbl_1_bss_1A1A[0], HUSPR_ATTR_DISPOFF); espAttrSet(lbl_1_bss_1A1A[1], HUSPR_ATTR_DISPOFF); for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 6], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 10], HU3D_ATTR_DISPOFF); } for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { espAttrSet(lbl_1_bss_1A1A[temp_r31 + 6], HUSPR_ATTR_DISPOFF); } for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], HU3D_ATTR_DISPOFF); } for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { HuSprGrpTPLvlSet(lbl_1_bss_CE[temp_r31], 0.0f); } for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { for (temp_r19 = 0; temp_r19 < 4; temp_r19++) { Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], HU3D_ATTR_DISPOFF); } Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], HU3D_ATTR_DISPOFF); } HuSprGrpKill(lbl_1_bss_9C); HuSprGrpKill(lbl_1_bss_52); if (lbl_1_data_380 != -1) { HuSprGrpKill(lbl_1_data_380); } sp28[0] = sp28[1] = 0; sp24[0] = sp24[1] = 0; sp1C[0] = 0; sp1C[1] = 2; for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { temp_r17 = GWPlayer[temp_r31].team; sp28[temp_r17] += BoardPlayerCoinsGet(temp_r31); sp24[temp_r17] += GWStarsGet(temp_r31); sp2C[sp1C[temp_r17]++] = GWPlayerCfg[temp_r31].character; } sp18[0] = 0; sp18[1] = 1; if (sp24[0] > sp24[1]) { lbl_1_bss_8 = 0; } else { if (sp24[0] == sp24[1]) { if (sp28[0] > sp28[1]) { lbl_1_bss_8 = 0; } else if (sp28[0] == sp28[1]) { sp18[0] = sp18[1] = 0; lbl_1_bss_8 = 0; } else { lbl_1_bss_8 = 1; } } else { lbl_1_bss_8 = 1; } } HuSprAttrReset(lbl_1_bss_170, 0, 4); HuSprAttrReset(lbl_1_bss_170, 1, 4); HuSprPosSet(lbl_1_bss_170, 1, 0, -180); HuSprAttrReset(lbl_1_bss_170, 2, 4); HuSprAttrReset(lbl_1_bss_170, 3, 4); if (lbl_1_bss_8 == 0) { sp20[0] = -55; sp20[1] = 115; } else { sp20[0] = 115; sp20[1] = -55; temp_r24 = sp2C[0]; sp2C[0] = sp2C[2]; sp2C[2] = temp_r24; temp_r24 = sp2C[1]; sp2C[1] = sp2C[3]; sp2C[3] = temp_r24; temp_r24 = sp28[0]; sp28[0] = sp28[1]; sp28[1] = temp_r24; temp_r24 = sp24[0]; sp24[0] = sp24[1]; sp24[1] = temp_r24; } HuSprPosSet(lbl_1_bss_170, 2, 0, sp20[0]); HuSprPosSet(lbl_1_bss_170, 3, 0, sp20[1]); HuSprGrpPosSet(lbl_1_bss_170, 288, 240); for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { if (temp_r31 < 2) { sp10 = 0; } else { sp10 = 1; } temp_r18 = lbl_1_bss_5C[sp2C[temp_r31]][sp10]; Hu3DAnimCreate(lbl_1_bss_E4[sp2C[temp_r31]][0], temp_r18, "ys22"); Hu3DModelAttrReset(temp_r18, HU3D_ATTR_DISPOFF); Hu3D2Dto3D(&lbl_1_data_488[temp_r31], 1, &sp40); Hu3DModelPosSetV(temp_r18, &sp40); Hu3DModelRotSet(temp_r18, 0, 0, 0); sp34 = lbl_1_data_488[temp_r31]; sp34.y += 5.0f; sp34.x += 3.0f; sp34.z += 200.0f; Hu3D2Dto3D(&sp34, 1, &sp40); Hu3DModelPosSetV(lbl_1_bss_168[temp_r31], &sp40); } spC = HuSprGrpCreate(2); for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { sp14 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + sp18[temp_r31]); spA = HuSprCreate(sp14, temp_r31, 0); HuSprGrpMemberSet(spC, temp_r31, spA); HuSprPosSet(spC, temp_r31, (lbl_1_data_488[temp_r31 * 2].x) - 80.0f, lbl_1_data_488[temp_r31 * 2].y); sp34 = lbl_1_data_488[temp_r31 * 2]; sp34.x += 180.0f; sp34.y -= 35.0f; Hu3D2Dto3D(&sp34, 1, &sp40); Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 4], &sp40); sp34.y += 5.0f; sp34.x += 3.0f; sp34.z += 200.0f; Hu3D2Dto3D(&sp34, 1, &sp40); Hu3DModelPosSetV(lbl_1_bss_158[temp_r31 * 2], &sp40); espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 2], 230.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); fn_1_3B50(lbl_1_bss_CE[temp_r31 * 2], sp24[temp_r31]); HuSprGrpPosSet(lbl_1_bss_CE[temp_r31 * 2], 320.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); sp34 = lbl_1_data_488[temp_r31 * 2]; sp34.x += 180.0f; sp34.y += 35.0f; Hu3D2Dto3D(&sp34, 1, &sp40); Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 8], &sp40); sp34.y += 5.0f; sp34.x += 3.0f; sp34.z += 200.0f; Hu3D2Dto3D(&sp34, 1, &sp40); Hu3DModelPosSetV(lbl_1_bss_158[(temp_r31 * 2) + 1], &sp40); espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 3], 230.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); fn_1_3B50(lbl_1_bss_CE[(temp_r31 * 2) + 1], sp28[temp_r31]); HuSprGrpPosSet(lbl_1_bss_CE[(temp_r31 * 2) + 1], 320.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); } WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } temp_r21 = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); HuWinMesSpeedSet(temp_r21, 0); HuWinBGTPLvlSet(temp_r21, 0); HuWinPriSet(temp_r21, 5); HuWinAttrSet(temp_r21, 0x800); HuWinMesSet(temp_r21, MAKE_MESSID(0x24, 0x07)); HuPrcSleep(4); temp_r31 = 0; while (1) { if (lbl_1_bss_4 && temp_r31 > 120) { break; } for (temp_r20 = sp8 = 0; temp_r20 < 4; temp_r20++) { if (!GWPlayerCfg[temp_r20].iscom) { sp8 |= HuPadBtnDown[GWPlayerCfg[temp_r20].pad_idx]; } } if (sp8 & PAD_BUTTON_A) { HuAudFXPlay(28); break; } HuPrcVSleep(); temp_r31++; } HuWinKill(temp_r21); } void fn_1_5880(omObjData *object) { Vec pos; Vec offset; Vec dir; Vec y_offset; f32 z_rot; s8 stick_pos; if (HuPadBtn[0] & PAD_BUTTON_UP) { CRot.x += 2.0f; } if (HuPadBtn[0] & PAD_BUTTON_DOWN) { CRot.x -= 2.0f; } if (HuPadBtn[0] & PAD_BUTTON_LEFT) { CRot.y += 2.0f; } if (HuPadBtn[0] & PAD_BUTTON_RIGHT) { CRot.y -= 2.0f; } if (HuPadBtnDown[0] & PAD_BUTTON_B) { OSReport("CRot %f,%f,%f\n", CRot.x, CRot.y, CRot.z); OSReport("Center %f,%f,%f\n", Center.x, Center.y, Center.z); OSReport("CZoom %f\n", CZoom); } CZoom += HuPadTrigL[0] / 2; CZoom -= HuPadTrigR[0] / 2; pos.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); pos.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); pos.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); offset.x = Center.x - pos.x; offset.y = Center.y - pos.y; offset.z = Center.z - pos.z; dir.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); dir.y = cos((M_PI * CRot.x) / 180.0); dir.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); z_rot = CRot.z; y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { Center.x += 0.05f * (offset.x * stick_pos); Center.y += 0.05f * (offset.y * stick_pos); Center.z += 0.05f * (offset.z * stick_pos); } VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { Center.x += 0.05f * (offset.x * stick_pos); Center.y += 0.05f * (offset.y * stick_pos); Center.z += 0.05f * (offset.z * stick_pos); } }