#include "REL/mstoryDll.h" #include "game/chrman.h" #include "game/gamework_data.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/printfunc.h" #include "game/window.h" #include "game/wipe.h" typedef struct { /* 0x00 */ s32 unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ char unk0C[4]; /* 0x10 */ s32 unk10; /* 0x14 */ s32 unk14; /* 0x18 */ char unk18[0x1C]; /* 0x34 */ StructFn352C unk34[4]; } StructBss1C4; // Size 0x104 void fn_1_8A44(void); void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1); void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1); void fn_1_8F68(void); void fn_1_92D4(s32 arg0); void fn_1_9718(omObjData* arg0, StructBss19C* arg1); void fn_1_98A4(omObjData* arg0, StructBss19C* arg1); void fn_1_992C(void); void fn_1_A008(omObjData* arg0, StructBss19C* arg1); void fn_1_A0EC(void); void fn_1_A478(void); void fn_1_A504(void); void fn_1_A5F4(void); StructBss1C4 lbl_1_bss_1C4; StructBss19C lbl_1_bss_19C; StructBss19C lbl_1_bss_174; StructBss19C lbl_1_bss_D4[4]; StructBss19C lbl_1_bss_AC; Process* lbl_1_bss_A8; s32 lbl_1_data_190[][4] = { { MAKE_MESSID(30, 17), MAKE_MESSID(30, 23), MAKE_MESSID(30, 62), MAKE_MESSID(30, 63) }, { MAKE_MESSID(30, 18), MAKE_MESSID(30, 24), MAKE_MESSID(30, 64), MAKE_MESSID(30, 65) }, { MAKE_MESSID(30, 19), MAKE_MESSID(30, 25), MAKE_MESSID(30, 66), MAKE_MESSID(30, 67) }, { MAKE_MESSID(30, 20), MAKE_MESSID(30, 26), MAKE_MESSID(30, 68), MAKE_MESSID(30, 69) }, { MAKE_MESSID(30, 21), MAKE_MESSID(30, 27), MAKE_MESSID(30, 70), MAKE_MESSID(30, 71) } }; s32 lbl_1_data_1E0[][3] = { { MAKE_MESSID(30, 101), MAKE_MESSID(30, 102), MAKE_MESSID(30, 103) }, { MAKE_MESSID(30, 104), MAKE_MESSID(30, 105), MAKE_MESSID(30, 106) }, { MAKE_MESSID(30, 107), MAKE_MESSID(30, 108), MAKE_MESSID(30, 109) }, { MAKE_MESSID(30, 110), MAKE_MESSID(30, 111), MAKE_MESSID(30, 112) }, { MAKE_MESSID(30, 113), MAKE_MESSID(30, 114), MAKE_MESSID(30, 115) } }; void fn_1_7090(s32 arg0, StructBss19C* arg1) { fn_1_BAC(10); fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 5, 15, 0); fn_1_BAC(5); HuAudCharVoicePlay(lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0x128); fn_1_BAC(25); arg1->unk04 = 0; } void fn_1_7134(s32 arg0, StructBss19C* arg1) { float temp_f31; float temp_f30; float temp_f29; s32 i; temp_f29 = Hu3DData[lbl_1_bss_174.unk00->model[7]].pos.y; for (i = 0; i <= 30; i++) { fn_1_B8C(); temp_f31 = fn_1_870(temp_f29, 1000.0f, i, 30.0f); temp_f30 = fn_1_870(0.0f, 1800.0f, i, 30.0f); Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f); Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f); Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f); } arg1->unk04 = 0; } void fn_1_731C(s32 arg0) { float temp_f31; float temp_f30; s32 var_r30; s32 i; var_r30 = arg0; Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF); for (i = 0; i < 4; i++) { if (lbl_1_bss_1C4.unk34[i].unk00 != lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk00) { Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[1], HU3D_ATTR_DISPOFF); } Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[2], HU3D_ATTR_DISPOFF); } lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][0]); fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); fn_1_1A64(lbl_1_bss_1C4.unk08); Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, 1000.0f, 640.0f); Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[7], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[8], HU3D_ATTR_DISPOFF); for (i = 0; i <= 180; i++) { fn_1_B8C(); temp_f31 = fn_1_948(1000.0f, 150.0f, i, 180.0f); temp_f30 = fn_1_948(1800.0f, 0.0f, i, 180.0f); Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f); Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f); Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f); } lbl_1_bss_174.unk04 = (void*) fn_1_8E6C; fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0); lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4; fn_1_BAC(40); HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); fn_1_BAC(50); lbl_1_bss_58[1] = HuAudSeqPlay(0x35); lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][1]); fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); fn_1_1A64(lbl_1_bss_1C4.unk08); fn_1_BAC(30); fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0); lbl_1_bss_174.unk04 = (void*) fn_1_8DC0; fn_1_BAC(30); lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090; fn_1_BAC(90); lbl_1_bss_AC.unk04 = (void*) fn_1_7134; lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 5, 15, 1); fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[lbl_1_bss_1C4.unk00][2]); fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); fn_1_1A64(lbl_1_bss_1C4.unk08); HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]); } void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2) { s32 i; lbl_1_bss_A8 = arg0; lbl_1_bss_1C4.unk00 = arg1; lbl_1_bss_1C4.unk10 = arg2; fn_1_BF4(); fn_1_3618(0xFF); fn_1_27E8(lbl_1_bss_A8, fn_1_A478); fn_1_3704(); fn_1_92D4(arg2); HuPrcChildCreate(fn_1_8F68, 100, 0x2000, 0, HuPrcCurrentGet()); HuPrcChildCreate(fn_1_A0EC, 100, 0x2000, 0, HuPrcCurrentGet()); for (i = 0; i < 4; i++) { HuPrcChildCreate(fn_1_992C, 100, 0x2000, 0, HuPrcCurrentGet()); } HuPrcChildCreate(fn_1_8A44, 100, 0x2000, 0, HuPrcCurrentGet()); } void fn_1_7AE0(void) { s32 var_r30 = 16; s32 var_r29 = 40; GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; s32 i; while (TRUE) { fn_1_B8C(); fontcolor = FONT_COLOR_WHITE; printWin(var_r30, var_r29, 220, 150, &sp10); if (lbl_1_bss_19C.unk04 == NULL) { print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); } else { print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); } if (lbl_1_bss_174.unk04 == NULL) { print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); } else { print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); } for (i = 0; i < 4; i++) { if (lbl_1_bss_D4[i].unk04 == NULL) { print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> FALSE", i); } else { print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> TRUE", i); } } if (lbl_1_bss_AC.unk04 == NULL) { print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> FALSE"); } else { print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> TRUE"); } print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1C4.unk00, lbl_1_bss_1C4.unk04, lbl_1_bss_1C4.unk10); print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); for (i = 0; i < 4; i++) { print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_1C4.unk34[i].unk00, lbl_1_bss_1C4.unk34[i].unk04, lbl_1_bss_1C4.unk34[i].unk08, lbl_1_bss_1C4.unk34[i].unk0C, lbl_1_bss_1C4.unk34[i].unk14, lbl_1_bss_1C4.unk34[i].unk10); } } } void fn_1_7E70(void) { lbl_1_bss_58[0] = HuAudSeqPlay(0x33); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); do { fn_1_B8C(); } while (WipeStatGet() != 0); fn_1_BAC(60); } void fn_1_7ECC(void) { s32 spC = 0; s32 sp8 = 0; lbl_1_bss_1C4.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_1C4.unk10); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); fn_1_1D1C(lbl_1_bss_1C4.unk08, lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0); fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][0]); fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); fn_1_1A64(lbl_1_bss_1C4.unk08); lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_9718; fn_1_3804(&lbl_1_bss_4); fn_1_2710(fn_1_A504); do { fn_1_B8C(); } while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL); do { fn_1_B8C(); } while (lbl_1_bss_AC.unk04 != NULL); } void fn_1_8090(void) { lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][2]); fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); fn_1_1A64(lbl_1_bss_1C4.unk08); fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0); lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4; Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF); fn_1_BAC(180); HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0); fn_1_BAC(75); lbl_1_bss_58[1] = HuAudSeqPlay(0x35); lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 4, 15, 1); fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][3]); lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = NULL; lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090; fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]); fn_1_1A64(lbl_1_bss_1C4.unk08); do { fn_1_B8C(); } while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL); } void fn_1_83B0(void) { fn_1_BAC(60); HuAudSeqFadeOut(lbl_1_bss_58[1], 3000); fn_1_3804(&lbl_1_bss_4); fn_1_2710(fn_1_A5F4); fn_1_BAC(150); } void fn_1_8408(void) { omOvlHisData* var_r30; u16 sp8[] = { 53, 56, 55, 54, 57 }; s32 sp14[] = { 9, 14, 10, 11, 12 }; s32 var_r29; s32 var_r28; s32 i; WipeColorSet(0xFF, 0xFF, 0xFF); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); do { fn_1_B8C(); } while (WipeStatGet() != 0); CharModelKill(-1); MGSeqKillAll(); var_r29 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10; var_r28 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk14; GWPlayerCfg[lbl_1_bss_1C4.unk04].character = GWPlayerCfg->character; GWPlayerCfg[lbl_1_bss_1C4.unk04].pad_idx = GWPlayerCfg->pad_idx; GWPlayerCfg[lbl_1_bss_1C4.unk04].group = GWPlayerCfg->group; GWPlayerCfg[lbl_1_bss_1C4.unk04].iscom = GWPlayerCfg->iscom; GWPlayerCfg->character = var_r29; GWPlayerCfg->pad_idx = var_r28; GWPlayerCfg->group = 0; GWPlayerCfg->iscom = 0; for (i = 0; i < 4; i++) { GWPlayer[i].character = GWPlayerCfg[i].character; GWPlayer[i].port = GWPlayerCfg[i].pad_idx; GWPlayer[i].com = GWPlayerCfg[i].iscom; GWPlayer[i].team = GWPlayerCfg[i].group; } GWPlayerCfg[1].character = sp14[GWSystem.board]; for (i = 1; i < 4; i++) { GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1; } var_r30 = omOvlHisGet(0); omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat); OSReport("########## dllno - %d\n", sp8[GWSystem.board], GWSystem.board); HuAudSeqAllFadeOut(1000); HuAudSStreamAllFadeOut(1000); omOvlCallEx(sp8[GWSystem.board], 1, 0, 0); while (TRUE) { fn_1_B8C(); } } void fn_1_87DC(s32 arg0, StructBss19C* arg1) { fn_1_7E70(); fn_1_7ECC(); fn_1_731C(lbl_1_bss_1C4.unk00); fn_1_83B0(); fn_1_8408(); arg1->unk04 = NULL; } void fn_1_8A44(void) { omObjData* var_r31; var_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); lbl_1_bss_19C.unk00 = var_r31; lbl_1_bss_19C.unk04 = (void*) fn_1_87DC; while (TRUE) { fn_1_B8C(); if (lbl_1_bss_19C.unk04 != NULL) { lbl_1_bss_19C.unk04(var_r31, &lbl_1_bss_19C); } } } void fn_1_8AE0(omObjData* arg0) { arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); fn_1_1DCC(arg0, 1, 0, 0, 2); Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); fn_1_1DCC(arg0, 2, 2, 0, 2); arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 76 + lbl_1_bss_1C4.unk00)); arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f); Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(arg0->model[5]); fn_1_1DCC(arg0, 5, 5, 0, 2); arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75)); arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]); Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); fn_1_1DCC(arg0, 6, 6, 0, 2); arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81)); Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF); arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96)); arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); fn_1_1DCC(arg0, 8, 8, 0, 1); } void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1) { Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg0->work[0]++, 360.0f); if (arg0->work[0] >= 360) { arg0->work[0] = 0; } } void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1) { Hu3DData[arg0->model[7]].pos.y += fn_1_ACC(0.0f, 0.25f, arg0->work[0]++, 360.0f); Hu3DData[arg0->model[8]].pos.y = Hu3DData[arg0->model[7]].pos.y + 15.0f; if (arg0->work[0] >= 360) { arg0->work[0] = 0; } } void fn_1_8F68(void) { omObjData* temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); lbl_1_bss_174.unk00 = temp_r31; lbl_1_bss_174.unk04 = (void*) fn_1_8DC0; lbl_1_bss_174.unk00->data = &lbl_1_bss_174; fn_1_8AE0(temp_r31); while (TRUE) { fn_1_B8C(); if (lbl_1_bss_174.unk04 != NULL) { lbl_1_bss_174.unk04(temp_r31, &lbl_1_bss_174); } } } void fn_1_92D4(s32 arg0) { s32 spC[4]; s32 i; spC[0] = 0; for (i = 1; i < 4; i++) { spC[i] = spC[i - 1] + 1; if (spC[i] >= 4) { spC[i] = 0; } if (arg0 == spC[i]) { lbl_1_bss_1C4.unk04 = i; } } for (i = 0; i < 4; i++) { fn_1_352C(&lbl_1_bss_1C4.unk34[i], spC[i]); } for (i = 0; i < 4; i++) { lbl_1_bss_1C4.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1; } } Vec lbl_1_data_354[] = { { -300.0f, 0.0f, 460.0f }, { -100.0f, -30.0f, 460.0f }, { 100.0f, -60.0f, 460.0f }, { 300.0f, -90.0f, 460.0f } }; void fn_1_9408(omObjData* arg0, s32 arg1) { s32 var_r30; s32 temp_r29; var_r30 = arg1; temp_r29 = lbl_1_bss_1C4.unk34[var_r30].unk10; arg0->model[1] = CharModelCreate(temp_r29, 4); arg0->motion[1] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); arg0->motion[2] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); arg0->motion[3] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 48 + temp_r29)); arg0->motion[5] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109)); arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 40 + temp_r29)); CharModelMotionDataClose(temp_r29); Hu3DModelPosSet(arg0->model[1], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y + 90.0f, lbl_1_data_354[var_r30].z - 15.0f); Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); Hu3DModelShadowSet(arg0->model[1]); fn_1_1DCC(arg0, 1, 1, 0, 1); arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62)); Hu3DModelPosSet(arg0->model[2], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y, lbl_1_data_354[var_r30].z); if (lbl_1_bss_1C4.unk34[var_r30].unk18 == 4) { Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); } Hu3DModelShadowMapSet(arg0->model[2]); Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); } void fn_1_9718(omObjData* arg0, StructBss19C* arg1) { Vec sp20 = { 120.0f, 0.0f, 670.0f }; fn_1_2908(arg0, 1, sp20, -1.0f, 30.0f, 10.0f); lbl_1_bss_AC.unk04 = (void*) fn_1_A008; fn_1_1DCC(lbl_1_bss_174.unk00, 2, 2, 0, 0); fn_1_1DCC(arg0, 1, 2, 15, 1); fn_1_2CB0(arg0, 1, sp20, -45.0f, 30.0f, 10.0f); fn_1_1DCC(arg0, 1, 1, 15, 1); fn_1_2224(lbl_1_bss_174.unk00, 2, 2, 0); arg1->unk04 = 0; } void fn_1_98A4(omObjData* arg0, StructBss19C* arg1) { if (arg0->motion[6] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) { fn_1_1DCC(arg0, 1, 4, 15, 1); arg1->unk04 = 0; } } void fn_1_992C(void) { omObjData* temp_r3; s32 temp_r30; temp_r30 = lbl_1_bss_1C4.unk14++; temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); lbl_1_bss_D4[temp_r30].unk00 = temp_r3; lbl_1_bss_D4[temp_r30].unk04 = NULL; lbl_1_bss_D4[temp_r30].unk00->data = &lbl_1_bss_D4[temp_r30]; fn_1_9408(temp_r3, temp_r30); while (TRUE) { fn_1_B8C(); if (lbl_1_bss_D4[temp_r30].unk04 != NULL) { lbl_1_bss_D4[temp_r30].unk04(temp_r3, &lbl_1_bss_D4[temp_r30]); } } } void fn_1_9D08(omObjData* arg0, s32 arg1) { s32 sp1C[] = { DATA_MAKE_NUM(DATADIR_MSTORY, 97), DATA_MAKE_NUM(DATADIR_MSTORY, 108), DATA_MAKE_NUM(DATADIR_MSTORY, 116), DATA_MAKE_NUM(DATADIR_MSTORY, 124), DATA_MAKE_NUM(DATADIR_MSTORY, 131) }; s32 sp30[][5] = { { DATA_MAKE_NUM(DATADIR_MSTORY, 98), DATA_MAKE_NUM(DATADIR_MSTORY, 100), DATA_MAKE_NUM(DATADIR_MSTORY, 101), DATA_MAKE_NUM(DATADIR_MSTORY, 103), DATA_MAKE_NUM(DATADIR_MSTORY, 104) }, { DATA_MAKE_NUM(DATADIR_MSTORY, 109), DATA_MAKE_NUM(DATADIR_MSTORY, 111), DATA_MAKE_NUM(DATADIR_MSTORY, 112), DATA_MAKE_NUM(DATADIR_MSTORY, 114), DATA_MAKE_NUM(DATADIR_MSTORY, 115) }, { DATA_MAKE_NUM(DATADIR_MSTORY, 117), DATA_MAKE_NUM(DATADIR_MSTORY, 119), DATA_MAKE_NUM(DATADIR_MSTORY, 120), DATA_MAKE_NUM(DATADIR_MSTORY, 122), DATA_MAKE_NUM(DATADIR_MSTORY, 123) }, { DATA_MAKE_NUM(DATADIR_MSTORY, 125), DATA_MAKE_NUM(DATADIR_MSTORY, 126), DATA_MAKE_NUM(DATADIR_MSTORY, 127), DATA_MAKE_NUM(DATADIR_MSTORY, 129), DATA_MAKE_NUM(DATADIR_MSTORY, 130) }, { DATA_MAKE_NUM(DATADIR_MSTORY, 132), DATA_MAKE_NUM(DATADIR_MSTORY, 134), DATA_MAKE_NUM(DATADIR_MSTORY, 135), DATA_MAKE_NUM(DATADIR_MSTORY, 137), DATA_MAKE_NUM(DATADIR_MSTORY, 138) } }; arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]); arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]); arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]); arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]); arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]); arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]); Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f); Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f); Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); if (arg1 == 3) { Hu3DData[arg0->model[1]].pos.y = 50.0f; } Hu3DModelShadowSet(arg0->model[1]); fn_1_1DCC(arg0, 1, 5, 0, 1); { s32 sp8[] = { 9, 14, 10, 11, 12 }; if (arg1 != 3) { CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); } } } void fn_1_A008(omObjData* arg0, StructBss19C* arg1) { Vec sp14 = { -120.0f, 0.0f, 670.0f }; fn_1_1DCC(arg0, 1, 2, 15, 1); fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f); fn_1_1DCC(arg0, 1, 1, 15, 1); arg1->unk04 = 0; } void fn_1_A0EC(void) { omObjData* temp_r3; s32 temp_r30; temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); lbl_1_bss_AC.unk00 = temp_r3; lbl_1_bss_AC.unk04 = NULL; lbl_1_bss_AC.unk00->data = &lbl_1_bss_AC; temp_r30 = lbl_1_bss_1C4.unk00; fn_1_9D08(temp_r3, temp_r30); while (TRUE) { fn_1_B8C(); if (lbl_1_bss_AC.unk04 != NULL) { lbl_1_bss_AC.unk04(temp_r3, &lbl_1_bss_AC); } } } void fn_1_A478(void) { StructBss4* var_r31; var_r31 = &lbl_1_bss_4; var_r31->unk08.x = 0.0f; var_r31->unk08.y = 170.0f; var_r31->unk08.z = 0.0f; var_r31->unk20.x = -5.0f; var_r31->unk20.y = 0.0f; var_r31->unk20.z = 0.0f; var_r31->unk38 = 1700.0f; } void fn_1_A504(void) { StructBss4* var_r31; StructBss4 sp8; var_r31 = &lbl_1_bss_4; sp8.unk08.x = 0.0f; sp8.unk08.y = 125.0f; sp8.unk08.z = 0.0f; sp8.unk20.x = -5.0f; sp8.unk20.y = 0.0f; sp8.unk20.z = 0.0f; sp8.unk38 = 1750.0f; fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); } void fn_1_A5F4(void) { StructBss4* var_r31; StructBss4 sp8; var_r31 = &lbl_1_bss_4; if (var_r31->unk40 == 50) { fn_1_1DCC(lbl_1_bss_174.unk00, 5, 5, 0, 0); fn_1_1DCC(lbl_1_bss_174.unk00, 6, 6, 0, 0); HuAudFXPlay(0xA1); } sp8.unk08.x = 0.0f; sp8.unk08.y = 130.0f; sp8.unk08.z = 460.0f; sp8.unk20.x = 0.0f; sp8.unk20.y = 0.0f; sp8.unk20.z = 0.0f; sp8.unk38 = 150.0f; fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f); if (var_r31->unk40++ >= 90) { if (var_r31->unk40 == 91) { lbl_1_bss_68 = HuAudFXPlay(0x21); } var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f); Hu3DData[lbl_1_bss_174.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f); } }