#include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/audio.h" #include "game/chrman.h" #include "game/esprite.h" #include "game/window.h" #include "game/wipe.h" #include "game/board/ui.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "REL/m444dll.h" #include "ext_math.h" #include "math.h" #include "rel_sqrt_consts.h" typedef struct camera_view_params { Vec rot; Vec pos; float zoom; } CameraViewParams; CameraViewParams lbl_1_data_0[] = { { { -55, 0, 0 }, { 0, 60, -57 }, 806 }, { { -71, 0, 0 }, { 0, 100, -131 }, 900 }, { { -87, 0, 0 }, { 0, 46, -117 }, 566 }, { { -87, 0, 0 }, { 0, 46, -117 }, 566 }, { { -90, 0, 0 }, { -22, 39, -153 }, 432 }, { { -40, 0, 0 }, { 0, 130, -186 }, 6530 }, { { -23, 0, 0 }, { -9, 1, -70 }, 1318 }, { { -25, 0, 0 }, { 0, 242, 90 }, 343 }, { { -30, 0, 0 }, { 0, 223, -60 }, 505 }, { { -23, 0, 0 }, { 0, 65, -97 }, 1318 }, }; DataListSprite lbl_1_data_118[] = { { DATA_MAKE_NUM(DATADIR_M444, 0x22), 0, 10, 288, -200, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; float lbl_1_data_140[] = { 90, 250, 420 }; Vec lbl_1_data_14C[] = { { -75, -300, 0 }, { 25, -300, 0 }, { -75, -300, 0 }, { 25, -300, 0 }, { -25, -400, 0 }, }; s16 lbl_1_data_188[] = { 1, 1, 2, 2, 2 }; s32 lbl_1_data_194[] = { DATA_MAKE_NUM(DATADIR_M444, 0x24), DATA_MAKE_NUM(DATADIR_M444, 0x25), DATA_MAKE_NUM(DATADIR_M444, 0x26), DATA_MAKE_NUM(DATADIR_M444, 0x27), DATA_MAKE_NUM(DATADIR_M444, 0x28), DATA_MAKE_NUM(DATADIR_M444, 0x29), DATA_MAKE_NUM(DATADIR_M444, 0x2A), DATA_MAKE_NUM(DATADIR_M444, 0x2B), }; omObjData *lbl_1_bss_30C; Process *lbl_1_bss_308; s32 lbl_1_bss_300[2]; s32 lbl_1_bss_2FC; Vec lbl_1_bss_2F0; Vec lbl_1_bss_2E4; float lbl_1_bss_2E0; s16 lbl_1_bss_2DC; s16 lbl_1_bss_2DA; s16 lbl_1_bss_2D8; s16 lbl_1_bss_2D6; s16 lbl_1_bss_2D4; s16 lbl_1_bss_2D2; s16 lbl_1_bss_2D0; s16 lbl_1_bss_2C0[8]; Vec lbl_1_bss_2A8[2]; Vec lbl_1_bss_290[2]; float lbl_1_bss_288[2]; s16 lbl_1_bss_148[20][8]; s16 lbl_1_bss_8[20][8]; s16 lbl_1_bss_4; s32 lbl_1_bss_0; void fn_1_470(void); void fn_1_6E3C(void); void fn_1_6EDC(omObjData *object); void fn_1_7290(omObjData *object); void ObjectSetup(void) { s32 light; OSReport("******* M444 ObjectSetup *********\n"); lbl_1_bss_308 = omInitObjMan(50, 8192); omGameSysInit(lbl_1_bss_308); lbl_1_bss_2A8[0].x = -70; lbl_1_bss_2A8[0].y = 0; lbl_1_bss_2A8[0].z = 0; lbl_1_bss_290[0].x = 0; lbl_1_bss_290[0].y = 130; lbl_1_bss_290[0].z = -186; lbl_1_bss_288[0] = 1360; lbl_1_bss_2F0 = lbl_1_bss_2A8[0]; lbl_1_bss_2E4 = lbl_1_bss_290[0]; lbl_1_bss_2E0 = lbl_1_bss_288[0]; lbl_1_bss_2FC = 0; lbl_1_bss_2D6 = -2; lbl_1_bss_2D4 = -2; lbl_1_bss_2D2 = -2; Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2f); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); light = Hu3DGLightCreate(-1000, 1000, 0, 1, -1, 0, 255, 255, 255); Hu3DGLightInfinitytSet(light); Hu3DGLightStaticSet(light, 1); light = Hu3DGLightCreate(0, 50, 1000, 0, -0.05f, -1, 96, 96, 96); Hu3DGLightInfinitytSet(light); HuPrcChildCreate(fn_1_470, 100, 12288, 0, lbl_1_bss_308); HuPrcChildCreate(fn_1_6E3C, 200, 4096, 0, lbl_1_bss_308); lbl_1_bss_30C = omAddObjEx(lbl_1_bss_308, 32730, 0, 0, -1, fn_1_6EDC); omAddObjEx(lbl_1_bss_308, 0, 32, 32, -1, fn_1_7290); Hu3DBGColorSet(0, 0, 0); HuWinInit(1); BoardStatusCreate(); } void fn_1_3B7C(void); void fn_1_4DEC(void); void fn_1_655C(void); void fn_1_6D80(s16 window); void fn_1_8180(s16 view); void fn_1_8210(s16 view); float fn_1_82FC(void); void fn_1_470(void) { float temp_f31; float temp_f30; s16 temp_r31; s16 temp_r30; s16 temp_r29; u32 temp_r28; s16 temp_r27; s16 temp_r26; s16 temp_r25; u32 temp_r24; ModelData *temp_r23; Vec sp1C; Vec sp10; float sp8[2]; for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { if (GWPlayerCfg[temp_r31].group == 0) { break; } } lbl_1_bss_2DC = temp_r31; lbl_1_bss_2D8 = GWPlayerCfg[temp_r31].pad_idx; lbl_1_bss_2DA = GWPlayerCfg[temp_r31].character; fn_1_655C(); fn_1_8210(5); fn_1_8180(6); Hu3DModelPosSet(lbl_1_bss_2D0, 0, 0, 250); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); HuAudSeqPlay(76); while (WipeStatGet()) { HuPrcVSleep(); } while (fn_1_82FC() > 10.0f) { HuPrcVSleep(); } Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { if (temp_r31 <= 30) { espPosSet(lbl_1_bss_1990A[0], 288, (200.0 * sind(3.0 * temp_r31)) - 100.0); } Hu3DModelPosSet(lbl_1_bss_199C2[18], (-300.0 * cosd(1.5 * temp_r31)) + (-160.0), 0, 155); HuPrcVSleep(); } for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 20) { Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, (30.0 * (1.0 - (temp_r31 / 20.0f))) + 60.0, 0); } if (temp_r31 > 10) { temp_r29 = temp_r31 - 10; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (-(temp_r29 / 20.0f)) * 120.0f, 0); } if (temp_r31 == 10) { Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 16, 0x40000001); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); } HuPrcVSleep(); } CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 8, 0x40000001); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x00)); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); HuWinMesPalSet(temp_r30, 7, 0, 0, 0); fn_1_6D80(temp_r30); HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x00)); HuWinMesWait(temp_r30); HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { HuPrcVSleep(); } for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 10) { Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, 30.0f - ((temp_r31 / 10.0f) * 120.0f), 0); } if (temp_r31 <= 20) { espPosSet(lbl_1_bss_1990A[0], 288, (200.0 * cosd(temp_r31 * 4.5)) - 100.0); } Hu3DModelPosSet(lbl_1_bss_199C2[18], ((1.0 - cosd(temp_r31 * 3.0)) * -200.0) + -160.0, 0, 155); HuPrcVSleep(); } Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0 * cosd(1.5 * temp_r31)) + (-160.0), 0, 155); if (temp_r31 > 20) { temp_r29 = temp_r31 - 40; Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (30.0 * (1.0 - (temp_r29 / 20.0f))) + 60.0, 0); } if (temp_r31 == 50) { Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); } if (temp_r31 > 40) { temp_r29 = temp_r31 - 40; for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { lbl_1_bss_34C[temp_r27].y = (180.0 * sind(4.5 * temp_r29)) - 100.0; } } HuPrcVSleep(); } HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x01)); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); HuWinMesPalSet(temp_r30, 7, 0, 0, 0); fn_1_6D80(temp_r30); HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x01)); HuWinMesWait(temp_r30); HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); HuAudFXPlay(1854); Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (150.0f * temp_f31) + 30.0f, 0); HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_2D0, 0, -120.0f - (60.0f * temp_f31), 0); HuPrcVSleep(); } HuAudFXPlay(1855); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); while (Hu3DMotionEndCheck(lbl_1_bss_199C2[11]) == 0) { HuPrcVSleep(); } HuAudFXPlay(1856); fn_1_861C(0); Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); HuAudFXPlay(1863); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[0]) { HuPrcVSleep(); } HuAudFXPlay(1857); Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[0]); Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); HuPrcSleep(20); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); sp1C.x = 124; sp1C.y = 0; sp1C.z = -180; for (temp_r31 = 0; temp_r31 <= 40; temp_r31++) { temp_f31 = temp_r31 / 40.0f; Hu3DModelPosSet(lbl_1_bss_2D0, temp_f31 * sp1C.x, temp_f31 * sp1C.y, (temp_f31 * sp1C.z) + 250.0f); if (temp_r31 <= 20) { temp_f30 = atan2d(sp1C.x, sp1C.z) - 180.0; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f30 * (temp_r31 / 20.0)) + 180.0, 0); } if (temp_r31 > 30) { temp_r29 = temp_r31 - 30; temp_f30 = atan2d(sp1C.x, sp1C.z) - 180.0; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f30 * (1.0 - (temp_r29 / 10.0))) + 180.0, 0); } HuPrcVSleep(); } lbl_1_bss_2D6 = -1; fn_1_9418(0); temp_r26 = fn_1_8DD0(0); lbl_1_bss_2D6 = lbl_1_bss_320[temp_r26]; HuAudFXPlay(1859); fn_1_9CAC(0, temp_r26); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { lbl_1_bss_328[0].x = lbl_1_bss_328[0].y = lbl_1_bss_328[0].z = (0.1 * sind(temp_r31 * 18.0)) + 0.3; HuPrcVSleep(); } HuPrcSleep(40); Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); fn_1_8180(9); Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 10) { Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); } if (temp_r31 == 10) { CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); } if (temp_r31 > 10 && temp_r31 <= 25) { temp_r29 = temp_r31 - 10; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); } if (temp_r31 == 25) { CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); } Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); HuPrcVSleep(); } Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { Hu3DModelPosSet(lbl_1_bss_199C2[26], (-300.0 * cosd(1.5 * temp_r31)) + (-160.0), 0, 155); if (temp_r31 == 50) { Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); } HuPrcVSleep(); } HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x02)); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); HuWinMesPalSet(temp_r30, 7, 0, 0, 0); fn_1_6D80(temp_r30); HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x02)); HuWinMesWait(temp_r30); HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31 * 90.0f) + 90.0f, 0); HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); fn_1_861C(1); Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); HuAudFXPlay(1862); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = 1.0 - (temp_r31 / 20.0f); Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31 * 90.0f) + 180.0f, 0); HuPrcVSleep(); } CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[1]) { if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 128.0f) { HuAudFXPlay(1850); } if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 200.0f) { HuAudFXPlay(1863); } HuPrcVSleep(); } HuAudFXPlay(1857); Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[1]); Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); HuPrcSleep(20); lbl_1_bss_2D4 = -1; fn_1_9418(1); temp_r26 = fn_1_8DD0(1); lbl_1_bss_2D4 = lbl_1_bss_320[temp_r26]; HuAudFXPlay(1860); fn_1_9CAC(1, temp_r26); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { lbl_1_bss_328[1].x = lbl_1_bss_328[1].y = lbl_1_bss_328[1].z = (0.1 * sind(temp_r31 * 18.0)) + 0.3; HuPrcVSleep(); } HuPrcSleep(40); Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); fn_1_8180(9); Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 10) { Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); } if (temp_r31 == 10) { CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); } if (temp_r31 > 10 && temp_r31 <= 25) { temp_r29 = temp_r31 - 10; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); } if (temp_r31 == 25) { CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); } Hu3DModelPosSet(lbl_1_bss_199C2[26], (-400.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); HuPrcVSleep(); } Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0 * cosd(1.5 * temp_r31)) + (-160.0), 100, 155); if (temp_r31 == 50) { Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); } HuPrcVSleep(); } HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x03)); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); HuWinMesPalSet(temp_r30, 7, 0, 0, 0); fn_1_6D80(temp_r30); HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D4].character, 2); HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x03)); HuWinMesWait(temp_r30); HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31 * 90.0f) + 90.0f, 0); HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); fn_1_861C(2); Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); HuAudFXPlay(1862); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = 1.0 - (temp_r31 / 20.0f); Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31 * 90.0f) + 180.0f, 0); HuPrcVSleep(); } CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[2]) { if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 300.0f) { HuAudFXPlay(1850); } if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 372.0f) { HuAudFXPlay(1863); } HuPrcVSleep(); } HuAudFXPlay(1857); Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[2]); Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); HuPrcSleep(20); lbl_1_bss_2D2 = -1; fn_1_9418(2); temp_r26 = fn_1_8DD0(2); lbl_1_bss_2D2 = temp_r26; HuAudFXPlay(1861); fn_1_9CAC(2, temp_r26); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { lbl_1_bss_328[2].x = lbl_1_bss_328[2].y = lbl_1_bss_328[2].z = (0.1 * sind(temp_r31 * 18.0)) + 0.3; HuPrcVSleep(); } HuPrcSleep(40); Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); fn_1_8180(9); Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 10) { Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); } if (temp_r31 == 10) { CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); } if (temp_r31 > 10 && temp_r31 <= 25) { temp_r29 = temp_r31 - 10; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); } if (temp_r31 == 25) { CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); } Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 100, 155); HuPrcVSleep(); } HuAudFXPlay(1862); Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); while (Hu3DMotionEndCheck(lbl_1_bss_199C2[9]) == 0) { HuPrcVSleep(); } Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); HuAudFXPlay(1855); Hu3DModelAttrSet(lbl_1_bss_199C2[11], 0x40000004); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) > 0.0f) { if (Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) == 25.0f) { HuAudFXPlay(1854); } HuPrcVSleep(); } HuAudFXPlay(1856); Hu3DModelAttrReset(lbl_1_bss_199C2[34], 1); Hu3DMotionSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36]); Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { Hu3DModelPosSet(lbl_1_bss_199C2[34], -154.0 + (-500.0 * (1.0 - (temp_r31 / 60.0f))), 0, -403); if (temp_r31 > 20) { temp_r29 = temp_r31 - 40; Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0 * (1.0 - (temp_r29 / 20.0f))) + 60.0, 0); } if (temp_r31 == 50) { Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); } if (temp_r31 == 40) { CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); } if (temp_r31 >= 40) { temp_r29 = temp_r31 - 40; Hu3DModelRotSet(lbl_1_bss_2D0, 0, -90.0 - (45.0 * (temp_r29 / 20.0)), 0); } HuPrcVSleep(); } fn_1_8180(7); temp_r23 = &Hu3DData[lbl_1_bss_2D0]; sp1C.x = 0; sp1C.y = 0; sp1C.z = -200; sp10 = temp_r23->pos; VECSubtract(&sp1C, &sp10, &sp1C); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { temp_f31 = temp_r31 / 30.0; Hu3DModelPosSet(lbl_1_bss_2D0, (temp_f31 * sp1C.x) + sp10.x, (temp_f31 * sp1C.y) + sp10.y, (temp_f31 * sp1C.z) + sp10.z); HuPrcVSleep(); } CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); BoardStatusShowSet(lbl_1_bss_2D6, 1); BoardStatusShowSet(lbl_1_bss_2D4, 1); sp1C.x = -112; sp1C.y = 200; sp1C.z = 0; BoardStatusPosSet(lbl_1_bss_2D6, &sp1C); sp1C.x = 688; sp1C.y = 200; sp1C.z = 0; BoardStatusPosSet(lbl_1_bss_2D4, &sp1C); for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { if (temp_r31 > 10) { temp_r29 = temp_r31 - 10; sp1C.x = 138.0 - (250.0 * cosd(temp_r29 * 9.0)); sp1C.y = 200; sp1C.z = 0; BoardStatusTargetPosSet(lbl_1_bss_2D6, &sp1C); sp1C.x = 438.0 + (250.0 * cosd(temp_r29 * 9.0)); sp1C.y = 200; sp1C.z = 0; BoardStatusTargetPosSet(lbl_1_bss_2D4, &sp1C); } HuPrcVSleep(); } temp_r25 = 1; switch (lbl_1_bss_2D2) { case 0: if (GWPlayer[lbl_1_bss_2D6].coins <= 0 && GWPlayer[lbl_1_bss_2D4].coins <= 0) { temp_r28 = MAKE_MESSID(0x1C, 0x16); temp_r25 = 0; } else { temp_r28 = MAKE_MESSID(0x1C, 0x06); } temp_r24 = MAKE_MESSID(0x1C, 0x09); break; case 1: if (GWPlayer[lbl_1_bss_2D6].coins <= 0 && GWPlayer[lbl_1_bss_2D4].coins <= 0 && GWPlayer[lbl_1_bss_2D6].stars <= 0 && GWPlayer[lbl_1_bss_2D4].stars <= 0) { temp_r25 = 0; temp_r28 = MAKE_MESSID(0x1C, 0x17); } else { temp_r28 = MAKE_MESSID(0x1C, 0x06); } temp_r24 = MAKE_MESSID(0x1C, 0x0D); break; case 2: if (GWPlayer[lbl_1_bss_2D6].stars > 0) { temp_r28 = MAKE_MESSID(0x1C, 0x04); } else { temp_r28 = MAKE_MESSID(0x1C, 0x08); temp_r25 = 0; } temp_r24 = MAKE_MESSID(0x1C, 0x0A); break; case 3: if (GWPlayer[lbl_1_bss_2D6].stars <= 0 && GWPlayer[lbl_1_bss_2D4].stars <= 0) { temp_r25 = 0; temp_r28 = MAKE_MESSID(0x1C, 0x15); } else { temp_r28 = MAKE_MESSID(0x1C, 0x06); } temp_r24 = MAKE_MESSID(0x1C, 0x0E); break; case 4: if (GWPlayer[lbl_1_bss_2D6].stars > 0) { temp_r28 = MAKE_MESSID(0x1C, 0x04); } else { temp_r28 = MAKE_MESSID(0x1C, 0x08); temp_r25 = 0; } temp_r24 = MAKE_MESSID(0x1C, 0x0C); break; case 5: case 6: if (GWPlayer[lbl_1_bss_2D6].coins > 0) { temp_r28 = MAKE_MESSID(0x1C, 0x04); } else { temp_r28 = MAKE_MESSID(0x1C, 0x07); temp_r25 = 0; } temp_r24 = MAKE_MESSID(0x1C, 0x0B); break; default: break; } HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D6].character, 0); HuWinInsertMesSizeGet(temp_r24, 1); HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D4].character, 2); HuWinMesMaxSizeGet(1, sp8, temp_r28); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); HuWinMesPalSet(temp_r30, 7, 0, 0, 0); HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); HuWinInsertMesSet(temp_r30, temp_r24, 1); HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D4].character, 2); fn_1_6D80(temp_r30); HuWinMesSet(temp_r30, temp_r28); HuWinMesWait(temp_r30); HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); if (temp_r25) { fn_1_4DEC(); HuPrcSleep(60); } else { HuPrcSleep(30); } sp1C.x = -112; sp1C.y = 200; sp1C.z = 0; BoardStatusTargetPosSet(lbl_1_bss_2D6, &sp1C); sp1C.x = 688; sp1C.y = 200; sp1C.z = 0; BoardStatusTargetPosSet(lbl_1_bss_2D4, &sp1C); while (!BoardStatusStopCheck(lbl_1_bss_2D6)) { HuPrcVSleep(); } for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { lbl_1_bss_34C[temp_r27].y = (180.0 * cosd(4.5 * temp_r29)) - 100.0; } HuPrcVSleep(); } fn_1_3B7C(); lbl_1_bss_2FC = 1; while (1) { lbl_1_bss_288[0] += 10.0f; HuPrcVSleep(); } } void fn_1_3B7C(void) { float temp_f31; s16 temp_r31; s16 temp_r30; s16 temp_r29; s16 temp_r28; float sp8[2]; fn_1_8180(8); for (temp_r30 = 0; temp_r30 < 100; temp_r30++) { temp_r31 = temp_r30; if (temp_r31 == 0) { Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 10, 0x40000001); } if (temp_r31 <= 20) { Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0 * (temp_r31 / 20.0)) + 60.0, 0); } if (temp_r31 > 10 && temp_r31 <= 60) { temp_r29 = temp_r31 - 10; Hu3DModelPosSet(lbl_1_bss_199C2[34], -154.0f + (354.0 * (temp_r29 / 50.0)), 0, -403); } if (temp_r31 > 50 && temp_r31 <= 70) { temp_r29 = temp_r31 - 50; Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (110.0 * (1.0 - (temp_r29 / 20.0))) + -20.0, 0); } if (temp_r31 == 70) { Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); } temp_r31 = temp_r30; if (temp_r31 == 0) { Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); temp_f31 = atan2d(400.0, 200.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31, 0); Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); } if (temp_r31 <= 50) { Hu3DModelPosSet(lbl_1_bss_199C2[18], 400.0 * (1.0 - (temp_r31 / 50.0)), 0, -553.0 + (200.0 * (1.0 - (temp_r31 / 50.0)))); } if (temp_r31 > 40 && temp_r31 <= 60) { temp_r29 = temp_r31 - 40; temp_f31 = atan2d(400.0, 200.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31 * (1.0 - (temp_r29 / 20.0)), 0); } if (temp_r31 == 60) { Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 10, 0x40000001); } if (temp_r30 >= 20) { temp_r31 = temp_r30 - 20; if (temp_r31 == 0) { Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); temp_f31 = atan2d(-300.0, 200.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, temp_f31, 0); Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); } if (temp_r31 <= 40) { Hu3DModelPosSet(lbl_1_bss_199C2[26], -100.0 + (-300.0 * (1.0 - (temp_r31 / 40.0))), 0, -478.0 + (200.0 * (1.0 - (temp_r31 / 40.0)))); } if (temp_r31 > 30 && temp_r31 <= 50) { temp_r29 = temp_r31 - 30; temp_f31 = atan2d(-300.0, 200.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31 - 10.0f) * (1.0 - (temp_r29 / 20.0)) + 10.0, 0); } if (temp_r31 == 50) { Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); } } if (temp_r30 >= 30) { temp_r31 = temp_r30 - 30; if (temp_r31 == 0) { Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); temp_f31 = atan2d(200.0, 500.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, temp_f31, 0); Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); } if (temp_r31 <= 40) { Hu3DModelPosSet(lbl_1_bss_199C2[30], 100.0 + (200.0 * (1.0 - (temp_r31 / 40.0))), 100, -478.0 + (500.0 * (1.0 - (temp_r31 / 40.0)))); } if (temp_r31 > 30 && temp_r31 <= 50) { temp_r29 = temp_r31 - 30; temp_f31 = atan2d(200.0, 500.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31 - -10.0f) * (1.0 - (temp_r29 / 20.0)) + -10.0, 0); } if (temp_r31 == 50) { Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); } } if (temp_r30 >= 40) { temp_r31 = temp_r30 - 40; if (temp_r31 == 0) { Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); temp_f31 = atan2d(-300.0, 100.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, temp_f31, 0); Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); } if (temp_r31 <= 40) { Hu3DModelPosSet(lbl_1_bss_199C2[22], -200.0 + (-300.0 * (1.0 - (temp_r31 / 40.0))), 0, -403.0 + (100.0 * (1.0 - (temp_r31 / 40.0)))); } if (temp_r31 > 30 && temp_r31 <= 50) { temp_r29 = temp_r31 - 30; temp_f31 = atan2d(-300.0, 100.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (temp_f31 - 20.0f) * (1.0 - (temp_r29 / 20.0)) + 20.0, 0); } if (temp_r31 == 50) { Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); } } if (temp_r30 >= 30) { temp_r31 = temp_r30 - 30; if (temp_r31 == 0) { Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[1], 0, 10, 0x40000001); } if (temp_r31 <= 20) { Hu3DModelRotSet(lbl_1_bss_2D0, 0, -135.0 - (45.0 * (temp_r31 / 20.0)), 0); } if (temp_r31 == 20) { Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[0], 0, 10, 0x40000001); } } HuPrcVSleep(); } HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x05)); temp_r28 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r28); HuWinMesPalSet(temp_r28, 7, 0, 0, 0); fn_1_6D80(temp_r28); HuAudFXPlay(55); HuAudFXPlay(64); HuAudFXPlay(67); HuAudFXPlay(70); HuAudFXPlay(75); HuWinMesSet(temp_r28, MAKE_MESSID(0x1C, 0x05)); HuWinMesWait(temp_r28); HuWinExAnimOut(temp_r28); HuWinExCleanup(temp_r28); HuWinComKeyReset(); Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[21], 0, 10, 0x40000001); HuPrcSleep(5); Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[25], 0, 10, 0x40000001); Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[29], 0, 10, 0x40000001); HuPrcSleep(10); Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[33], 0, 10, 0x40000001); HuPrcSleep(10); Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[37], 0, 10, 0x40000001); } void fn_1_55B0(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4); void fn_1_4DEC(void) { s16 coins; s16 stars; switch (lbl_1_bss_2D2) { case 0: lbl_1_bss_4 = 2; if (GWPlayer[lbl_1_bss_2D6].coins >= GWPlayer[lbl_1_bss_2D4].coins) { fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 1); fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 0); } else { fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 0); fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 1); } break; case 1: lbl_1_bss_4 = 2; if (GWPlayer[lbl_1_bss_2D6].coins >= GWPlayer[lbl_1_bss_2D4].coins) { fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 1); fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 0); } else { fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 0); fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 1); } while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } lbl_1_bss_4 = 2; if (GWPlayer[lbl_1_bss_2D6].stars >= GWPlayer[lbl_1_bss_2D4].stars) { fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 1); fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 0); } else { fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 0); fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 1); } break; case 2: lbl_1_bss_4 = 1; fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, 1, 1); break; case 3: lbl_1_bss_4 = 2; if (GWPlayer[lbl_1_bss_2D6].stars >= GWPlayer[lbl_1_bss_2D4].stars) { fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 1); fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 0); } else { fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 0); fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 1); } break; case 4: lbl_1_bss_4 = 1; if (GWPlayer[lbl_1_bss_2D6].stars < 2) { stars = GWPlayer[lbl_1_bss_2D6].stars; } else { stars = 2; } fn_1_55B0(1, lbl_1_bss_2D6, lbl_1_bss_2D4, stars, 1); break; case 5: case 6: lbl_1_bss_4 = 1; if (GWPlayer[lbl_1_bss_2D6].coins < 20) { coins = GWPlayer[lbl_1_bss_2D6].coins; } else { coins = 20; } fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, coins, 1); break; default: break; } while (lbl_1_bss_4 > 0) { HuPrcVSleep(); } } typedef struct work_5774 { s16 unk0; s16 unk2; s16 unk4; s16 unk6[20]; s16 unk2E[20]; float unk58; s32 unk5C; } Work5774; void fn_1_5774(void); void fn_1_5E68(void); void fn_1_55B0(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { Work5774 *work; Process *newProcess; float temp_f31; if (arg3 == 0) { lbl_1_bss_4--; return; } switch (arg0) { case 0: newProcess = HuPrcChildCreate(fn_1_5774, 100, 8192, 0, lbl_1_bss_308); temp_f31 = -100; break; case 1: newProcess = HuPrcChildCreate(fn_1_5774, 100, 8192, 0, lbl_1_bss_308); temp_f31 = -50; break; case 2: newProcess = HuPrcChildCreate(fn_1_5E68, 100, 8192, 0, lbl_1_bss_308); temp_f31 = -100; break; case 3: newProcess = HuPrcChildCreate(fn_1_5E68, 100, 8192, 0, lbl_1_bss_308); temp_f31 = -50; break; } work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5774), MEMORY_DEFAULT_NUM); newProcess->user_data = work; work->unk0 = arg1; work->unk2 = arg2; work->unk4 = arg3; work->unk58 = temp_f31; work->unk5C = arg4; } void fn_1_5774(void) { float temp_f31; float temp_f30; Work5774 *temp_r31; s16 temp_r30; s16 temp_r29; Process *temp_r28; s16 temp_r27; s16 temp_r26; s16 temp_r25; s16 temp_r24; s16 temp_r23; s32 temp_r22; s32 temp_r21; Vec sp20; Vec sp14; Vec sp8; temp_r28 = HuPrcCurrentGet(); temp_r31 = temp_r28->user_data; temp_r23 = 0; BoardStatusPosGet(temp_r31->unk0, &sp20); BoardStatusPosGet(temp_r31->unk2, &sp14); for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { temp_r31->unk6[temp_r30] = -1; } temp_r25 = temp_r31->unk4; temp_r27 = temp_r25; temp_f31 = 300 / temp_r27; if (temp_f31 < 15.0f) { temp_r24 = 1; } else { temp_r24 = 3; } temp_f31 -= temp_r24 + 1; if (temp_f31 < 15.0f) { temp_f31 = 15.0f; } if (temp_f31 > 40.0f) { temp_f31 = 40.0f; } if (temp_r31->unk5C) { temp_r22 = HuAudFXPlay(1864); temp_r21 = HuAudFXPlay(24); } while (1) { if (temp_r25 > 0) { if (((temp_r23++) & temp_r24) == 0) { for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { if (lbl_1_bss_148[temp_r30][1] == 0) { break; } } if (temp_r30 != 20) { for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { if (temp_r31->unk6[temp_r29] == -1) { lbl_1_bss_148[temp_r30][1] = 1; temp_r31->unk6[temp_r29] = temp_r30; temp_r31->unk2E[temp_r29] = 0; GWStarsSet(temp_r31->unk0, GWPlayer[temp_r31->unk0].stars - 1); temp_r25--; break; } } } } } for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { if (temp_r31->unk6[temp_r30] == -1) { continue; } temp_r26 = lbl_1_bss_148[temp_r31->unk6[temp_r30]][0]; Hu3DModelAttrReset(temp_r26, 1); temp_r31->unk2E[temp_r30]++; if (temp_r31->unk2E[temp_r30] > temp_f31) { Hu3DModelAttrSet(temp_r26, 1); lbl_1_bss_148[temp_r31->unk6[temp_r30]][1] = 0; temp_r31->unk6[temp_r30] = -1; GWStarsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].stars + 1); temp_r27--; } else { temp_f30 = 0.1f; if (temp_r31->unk2E[temp_r30] < temp_f31 / 2.0f) { temp_f30 = 0.1 * sind((90.0 / (temp_f31 / 2.0f)) * temp_r31->unk2E[temp_r30]); } if (temp_r31->unk2E[temp_r30] > temp_f31 / 2.0f) { temp_f30 = 0.1 * cosd((90.0 / (temp_f31 / 2.0f)) * (temp_r31->unk2E[temp_r30] - (temp_f31 / 2.0f))); } Hu3DModelScaleSet(temp_r26, temp_f30, temp_f30, temp_f30); sp8.x = (sp14.x - sp20.x) * (temp_r31->unk2E[temp_r30] / temp_f31) + sp20.x; sp8.y = sp20.y + (temp_r31->unk58 * sind((180.0 / temp_f31) * temp_r31->unk2E[temp_r30])); sp8.z = 200; Hu3D2Dto3D(&sp8, 1, &sp8); Hu3DModelPosSetV(temp_r26, &sp8); } } if (temp_r27 <= 0) { break; } HuPrcVSleep(); } HuAudFXPlay(8); if (temp_r31->unk5C) { HuAudFXStop(temp_r22); HuAudFXStop(temp_r21); } lbl_1_bss_4--; HuMemDirectFree(temp_r28->user_data); HuPrcEnd(); while (1) { HuPrcVSleep(); } } void fn_1_5E68(void) { float temp_f31; float temp_f30; Work5774 *temp_r31; s16 temp_r30; s16 temp_r29; Process *temp_r28; s16 temp_r27; s16 temp_r26; s16 temp_r25; s16 temp_r24; s16 temp_r23; s32 temp_r22; s32 temp_r21; Vec sp20; Vec sp14; Vec sp8; temp_r28 = HuPrcCurrentGet(); temp_r31 = temp_r28->user_data; temp_r23 = 0; BoardStatusPosGet(temp_r31->unk0, &sp20); BoardStatusPosGet(temp_r31->unk2, &sp14); for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { temp_r31->unk6[temp_r30] = -1; } temp_r25 = temp_r31->unk4; temp_r27 = temp_r25; temp_f31 = 300 / temp_r27; if (temp_f31 < 15.0f) { temp_r24 = 1; } else { temp_r24 = 3; } temp_f31 -= temp_r24 + 1; if (temp_f31 < 15.0f) { temp_f31 = 15.0f; } if (temp_f31 > 40.0f) { temp_f31 = 40.0f; } if (temp_r31->unk5C) { temp_r22 = HuAudFXPlay(1864); temp_r21 = HuAudFXPlay(23); } while (1) { if (temp_r25 > 0) { if (((temp_r23++) & temp_r24) == 0) { for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { if (lbl_1_bss_8[temp_r30][1] == 0) { break; } } if (temp_r30 != 20) { for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { if (temp_r31->unk6[temp_r29] == -1) { lbl_1_bss_8[temp_r30][1] = 1; temp_r31->unk6[temp_r29] = temp_r30; temp_r31->unk2E[temp_r29] = 0; GWCoinsSet(temp_r31->unk0, GWPlayer[temp_r31->unk0].coins - 1); temp_r25--; break; } } } } } for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { if (temp_r31->unk6[temp_r30] == -1) { continue; } temp_r26 = lbl_1_bss_8[temp_r31->unk6[temp_r30]][0]; Hu3DModelAttrReset(temp_r26, 1); temp_r31->unk2E[temp_r30]++; if (temp_r31->unk2E[temp_r30] > temp_f31) { Hu3DModelAttrSet(temp_r26, 1); lbl_1_bss_8[temp_r31->unk6[temp_r30]][1] = 0; temp_r31->unk6[temp_r30] = -1; GWCoinsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].coins + 1); temp_r27--; } else { temp_f30 = 0.1f; if (temp_r31->unk2E[temp_r30] < temp_f31 / 2.0f) { temp_f30 = 0.1 * sind((90.0 / (temp_f31 / 2.0f)) * temp_r31->unk2E[temp_r30]); } if (temp_r31->unk2E[temp_r30] > temp_f31 / 2.0f) { temp_f30 = 0.1 * cosd((90.0 / (temp_f31 / 2.0f)) * (temp_r31->unk2E[temp_r30] - (temp_f31 / 2.0f))); } Hu3DModelScaleSet(temp_r26, temp_f30, temp_f30, temp_f30); sp8.x = (sp14.x - sp20.x) * (temp_r31->unk2E[temp_r30] / temp_f31) + sp20.x; sp8.y = sp20.y + (temp_r31->unk58 * sind((180.0 / temp_f31) * temp_r31->unk2E[temp_r30])); sp8.z = 200; Hu3D2Dto3D(&sp8, 1, &sp8); Hu3DModelPosSetV(temp_r26, &sp8); } } if (temp_r27 <= 0) { break; } HuPrcVSleep(); } HuAudFXPlay(7); if (temp_r31->unk5C) { HuAudFXStop(temp_r22); HuAudFXStop(temp_r21); } lbl_1_bss_4--; HuMemDirectFree(temp_r28->user_data); HuPrcEnd(); while (1) { HuPrcVSleep(); } } void fn_1_655C(void) { s16 i; s16 model; Vec pos; Vec target; Vec up; Hu3DShadowCreate(20, 100, 5000); Hu3DShadowTPLvlSet(0.3f); Hu3DShadowSizeSet(192); target.x = target.y = target.z = 0; pos.x = -800; pos.z = 1600; pos.y = 3200; up.x = 0; up.y = 1; up.z = 0; Hu3DShadowPosSet(&pos, &up, &target); Hu3DReflectMapSet(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M444, 0x23), MEMORY_DEFAULT_NUM, HEAP_DATA)); for (i = 0; i < 4; i++) { lbl_1_data_470[i + 47].datanum = lbl_1_data_470[i + 51].datanum = lbl_1_data_194[GWPlayerCfg[i].character]; } fn_1_D588(lbl_1_data_470); fn_1_D818(lbl_1_data_118); Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook1", lbl_1_bss_199C2[3]); Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook2", lbl_1_bss_199C2[5]); Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook3", lbl_1_bss_199C2[7]); Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook1", lbl_1_bss_199C2[47]); Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook2", lbl_1_bss_199C2[48]); Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook3", lbl_1_bss_199C2[49]); Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook4", lbl_1_bss_199C2[50]); Hu3DModelHookSet(lbl_1_bss_199C2[11], "L_itemhook", lbl_1_bss_199C2[13]); Hu3DModelHookSet(lbl_1_bss_199C2[11], "R_itemhook", lbl_1_bss_199C2[14]); Hu3DModelAttrSet(lbl_1_bss_199C2[13], 0x40000001); Hu3DModelAttrSet(lbl_1_bss_199C2[14], 0x40000001); for (i = 0; i < 4; i++) { Hu3DModelAttrSet(lbl_1_bss_199C2[i + 51], 1); } fn_1_D1E0(lbl_1_bss_199C2[4]); model = CharModelCreate(lbl_1_bss_2DA, 2); lbl_1_bss_2D0 = model; lbl_1_bss_2C0[0] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); lbl_1_bss_2C0[1] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M444, 0x45)); lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M444, 0x4D)); CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0]); Hu3DModelPosSet(model, 0, 0, 200); Hu3DModelAttrSet(model, 0x40000001); Hu3DModelShadowSet(model); HuPrcChildCreate(fn_1_C214, 50, 12288, 0, lbl_1_bss_308); HuPrcChildCreate(fn_1_A060, 50, 12288, 0, lbl_1_bss_308); Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); Hu3DModelShadowSet(lbl_1_bss_199C2[18]); Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); Hu3DModelShadowSet(lbl_1_bss_199C2[26]); Hu3DModelAttrSet(lbl_1_bss_199C2[30], 1); Hu3DModelShadowSet(lbl_1_bss_199C2[30]); Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); Hu3DModelShadowSet(lbl_1_bss_199C2[22]); Hu3DModelAttrSet(lbl_1_bss_199C2[34], 1); Hu3DModelShadowSet(lbl_1_bss_199C2[34]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[15]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[9]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[11]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[3]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[5]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[7]); CharModelLayerSetAll(1); CharModelEffectNpcInit(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 9); CharModelEffectNpcInit(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10); CharModelEffectNpcInit(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 14); CharModelEffectNpcInit(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 12); fn_1_8424(); for (i = 0; i < 20; i++) { if (i == 0) { model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M444, 0x13)); } else { model = Hu3DModelLink(lbl_1_bss_148[0][0]); } lbl_1_bss_148[i][0] = model; lbl_1_bss_148[i][1] = 0; Hu3DModelAttrSet(model, 1); Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); Hu3DModelLayerSet(model, 7); } for (i = 0; i < 20; i++) { if (i == 0) { model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M444, 0x12)); } else { model = Hu3DModelLink(lbl_1_bss_8[0][0]); } lbl_1_bss_8[i][0] = model; lbl_1_bss_8[i][1] = 0; Hu3DModelAttrSet(model, 1); Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); Hu3DModelLayerSet(model, 7); } fn_1_D9C8(); } void fn_1_6D80(s16 window) { s16 i; WindowData *winPtr = &winData[window]; winPtr->active_pad = 1 << lbl_1_bss_2D8; if (GWPlayerCfg[lbl_1_bss_2DC].iscom) { for (i = 0; i < 10; i++) { HuWinComKeyWait(256, 256, 256, 256, GWMessDelayGet()); } } } void fn_1_6E3C(void) { while (1) { if (lbl_1_bss_2FC || omSysExitReq) { break; } HuPrcVSleep(); } WipeColorSet(255, 255, 255); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); HuAudFadeOut(1000); while (WipeStatGet()) { HuPrcVSleep(); } BoardStatusKill(); omOvlReturnEx(1, 1); HuPrcEnd(); } u16 lbl_1_data_240[] = { 1, 2 }; void fn_1_6EDC(omObjData *object) { s16 i; for (i = 0; i < 1; i++) { Vec pos, target, up; float x, y, z; x = lbl_1_bss_2A8[i].x; y = lbl_1_bss_2A8[i].y; z = lbl_1_bss_2A8[i].z; pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_288[i]) + lbl_1_bss_290[i].x); pos.y = (-sind(x) * lbl_1_bss_288[i]) + lbl_1_bss_290[i].y; pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_288[i]) + lbl_1_bss_290[i].z; target.x = lbl_1_bss_290[i].x; target.y = lbl_1_bss_290[i].y; target.z = lbl_1_bss_290[i].z; up.x = sind(y) * sind(x); up.y = cosd(x); up.z = cosd(y) * sind(x); Hu3DCameraPosSet(lbl_1_data_240[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } } void fn_1_7EBC(void); void fn_1_7290(omObjData *object) { Vec pos; Vec offset; Vec dir; Vec y_offset; f32 z_rot; s8 stick_pos; if (lbl_1_bss_0 == 0) { fn_1_7EBC(); return; } lbl_1_bss_2A8[0].y += 0.1f * HuPadStkX[0]; lbl_1_bss_2A8[0].x += 0.1f * HuPadStkY[0]; lbl_1_bss_288[0] += HuPadTrigL[0] / 2; lbl_1_bss_288[0] -= HuPadTrigR[0] / 2; if (HuPadBtnDown[0] & PAD_BUTTON_B) { OSReport("%f,%f,%f\n", lbl_1_bss_2A8[0].x, lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); OSReport("%f,%f,%f\n", lbl_1_bss_290[0].x, lbl_1_bss_290[0].y, lbl_1_bss_290[0].z); OSReport("%f\n", lbl_1_bss_288[0]); } if (lbl_1_bss_288[0] < 100.0f) { lbl_1_bss_288[0] = 100.0f; } pos.x = lbl_1_bss_290[0].x + (lbl_1_bss_288[0] * (sind(lbl_1_bss_2A8[0].y) * cosd(lbl_1_bss_2A8[0].x))); pos.y = (lbl_1_bss_290[0].y + (lbl_1_bss_288[0] * -sind(lbl_1_bss_2A8[0].x))); pos.z = (lbl_1_bss_290[0].z + (lbl_1_bss_288[0] * (cosd(lbl_1_bss_2A8[0].y) * cosd(lbl_1_bss_2A8[0].x)))); offset.x = lbl_1_bss_290[0].x - pos.x; offset.y = lbl_1_bss_290[0].y - pos.y; offset.z = lbl_1_bss_290[0].z - pos.z; dir.x = (sind(lbl_1_bss_2A8[0].y) * sind(lbl_1_bss_2A8[0].x)); dir.y = cosd(lbl_1_bss_2A8[0].x); dir.z = (cosd(lbl_1_bss_2A8[0].y) * sind(lbl_1_bss_2A8[0].x)); z_rot = lbl_1_bss_2A8[0].z; y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); PSVECCrossProduct(&dir, &offset, &offset); PSVECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); lbl_1_bss_290[0].y += 0.05f * (offset.y * stick_pos); lbl_1_bss_290[0].z += 0.05f * (offset.z * stick_pos); } PSVECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); lbl_1_bss_290[0].y += 0.05f * (offset.y * stick_pos); lbl_1_bss_290[0].z += 0.05f * (offset.z * stick_pos); } } void fn_1_7EBC(void) { Vec dist; float dist_zoom; if (lbl_1_bss_2FC != 0) { return; } VECSubtract(&lbl_1_bss_2F0, &lbl_1_bss_2A8[0], &dist); if (VECMag(&dist) > 0.2) { VECScale(&dist, &dist, 0.05f); VECAdd(&lbl_1_bss_2A8[0], &dist, &lbl_1_bss_2A8[0]); } else { lbl_1_bss_2A8[0] = lbl_1_bss_2F0; } VECSubtract(&lbl_1_bss_2E4, &lbl_1_bss_290[0], &dist); if (VECMag(&dist) > 0.2) { VECScale(&dist, &dist, 0.05f); VECAdd(&lbl_1_bss_290[0], &dist, &lbl_1_bss_290[0]); } else { lbl_1_bss_290[0] = lbl_1_bss_2E4; } dist_zoom = lbl_1_bss_2E0 - lbl_1_bss_288[0]; if (sqrtf(dist_zoom * dist_zoom) > 0.2) { dist_zoom *= 0.05f; lbl_1_bss_288[0] += dist_zoom; } else { lbl_1_bss_288[0] = lbl_1_bss_2E0; } } void fn_1_8180(s16 view) { lbl_1_bss_2F0 = lbl_1_data_0[view].rot; lbl_1_bss_2E4 = lbl_1_data_0[view].pos; lbl_1_bss_2E0 = lbl_1_data_0[view].zoom; } void fn_1_8210(s16 view) { lbl_1_bss_2A8[0] = lbl_1_data_0[view].rot; lbl_1_bss_2F0 = lbl_1_bss_2A8[0]; lbl_1_bss_290[0] = lbl_1_data_0[view].pos; lbl_1_bss_2E4 = lbl_1_bss_290[0]; lbl_1_bss_2E0 = lbl_1_bss_288[0] = lbl_1_data_0[view].zoom; } float fn_1_82FC(void) { float zoom = lbl_1_bss_2E0 - lbl_1_bss_288[0]; return sqrtf(zoom * zoom); }