diff --git a/src/REL/m407dll/m407dll.h b/include/REL/m407dll.h similarity index 100% rename from src/REL/m407dll/m407dll.h rename to include/REL/m407dll.h diff --git a/src/REL/E3setupDLL/main.c b/src/REL/E3setupDLL/main.c index 8794d41c..a080e2de 100644 --- a/src/REL/E3setupDLL/main.c +++ b/src/REL/E3setupDLL/main.c @@ -453,10 +453,10 @@ static s16 lbl_2_data_31E[] = { }; static u32 playerCntMessTbl[] = { - 0x00220002, - 0x00220003, - 0x00220004, - 0x00220001 + MAKE_MESSID(0x22, 0x02), + MAKE_MESSID(0x22, 0x03), + MAKE_MESSID(0x22, 0x04), + MAKE_MESSID(0x22, 0x01) }; static void UpdatePlayerCnt(omObjData *object) @@ -602,16 +602,16 @@ static void InitPlayerCnt(omObjData *object) HuSprAttrSet(group, index, HUSPR_ATTR_DISPOFF); HuSprAttrSet(index2, index, HUSPR_ATTR_DISPOFF); } - HuWinMesMaxSizeGet(1, sizeMax, 0x220000); + HuWinMesMaxSizeGet(1, sizeMax, MAKE_MESSID(0x22, 0x00)); index2 = HuWinCreate(-10000, 26, sizeMax[0], sizeMax[1], 0); work->winHeader = index2; HuWinMesColSet(index2, 4); HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesSet(index2, 0x220000); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x00)); work->playerCntOld = work->playerCnt = configE3.playerCnt; mess = playerCntMessTbl[work->playerCnt]; - HuWinMesMaxSizeGet(4, sizeMax, 0x220001, 0x220002, 0x220003, 0x220004); + HuWinMesMaxSizeGet(4, sizeMax, MAKE_MESSID(0x22, 0x01), MAKE_MESSID(0x22, 0x02), MAKE_MESSID(0x22, 0x03), MAKE_MESSID(0x22, 0x04)); index2 = HuWinCreate(-10000, 58, sizeMax[0], sizeMax[1], 0); work->winPlayer = index2; work->winSize = *(Vec2f *)(sizeMax); //FIXME: Remove Cast @@ -1143,8 +1143,8 @@ typedef struct e3_rumble_cfg_work { } E3RumbleCfgWork; static u32 rumbleMess[] = { - 0x220008, - 0x220007 + MAKE_MESSID(0x22, 0x08), + MAKE_MESSID(0x22, 0x07) }; static void UpdateRumbleCfg(omObjData *object) @@ -1283,16 +1283,16 @@ static void InitRumbleCfg(omObjData *object) HuSprAttrSet(group, index, HUSPR_ATTR_DISPOFF); HuSprAttrSet(index2, index, HUSPR_ATTR_DISPOFF); } - HuWinMesMaxSizeGet(1, sizeMax, 0x220006); + HuWinMesMaxSizeGet(1, sizeMax, MAKE_MESSID(0x22, 0x06)); index2 = HuWinCreate(-10000, 267, sizeMax[0], sizeMax[1], 0); work->winHeader = index2; HuWinMesColSet(index2, 4); HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesSet(index2, 0x220006); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x06)); work->rumbleValOld = work->rumbleVal = configE3.rumble; mess = rumbleMess[work->rumbleVal]; - HuWinMesMaxSizeGet(2, sizeMax, 0x220007, 0x220008); + HuWinMesMaxSizeGet(2, sizeMax, MAKE_MESSID(0x22, 0x07), MAKE_MESSID(0x22, 0x08)); index2 = HuWinCreate(-10000, 299, sizeMax[0], sizeMax[1], 0); work->winValue = index2; work->winSize = *(Vec2f *)(sizeMax); //FIXME: Remove Cast @@ -1366,12 +1366,12 @@ static void UpdateModeSel(omObjData *object) object->work[2] = 2; work->boardOld = -1; HuWinMesColSet(work->winMode, 4); - HuWinMesMaxSizeGet(1, winSize, 0x22000F); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x0F)); HuWinCenterPosSet(work->winMode, (work->winSizeMode.x-winSize[0])/-2.0f, (work->winSizeMode.y-winSize[1])/-2.0f); - HuWinMesSet(work->winMode, 0x22000F); - HuWinMesMaxSizeGet(1, winSize, 0x220010); + HuWinMesSet(work->winMode, MAKE_MESSID(0x22, 0x0F)); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x10)); HuWinCenterPosSet(work->winBoard, (work->winSizeBoard.x-winSize[0])/-2.0f, (work->winSizeBoard.y-winSize[1])/-2.0f); - HuWinMesSet(work->winBoard, 0x220010); + HuWinMesSet(work->winBoard, MAKE_MESSID(0x22, 0x10)); } } else if(btnDown & PAD_BUTTON_B) { HuAudFXPlay(3); @@ -1405,12 +1405,12 @@ static void UpdateModeSel(omObjData *object) work->modeOld = -1; object->work[2] = 1; HuWinMesColSet(work->winMode, 4); - HuWinMesMaxSizeGet(1, winSize, 0x220009); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x09)); HuWinCenterPosSet(work->winMode, (work->winSizeMode.x-winSize[0])/-2.0f, (work->winSizeMode.y-winSize[1])/-2.0f); - HuWinMesSet(work->winMode, 0x220009); - HuWinMesMaxSizeGet(1, winSize, 0x22000A); + HuWinMesSet(work->winMode, MAKE_MESSID(0x22, 0x09)); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x0A)); HuWinCenterPosSet(work->winBoard, (work->winSizeBoard.x-winSize[0])/-2.0f, (work->winSizeBoard.y-winSize[1])/-2.0f); - HuWinMesSet(work->winBoard, 0x22000A); + HuWinMesSet(work->winBoard, MAKE_MESSID(0x22, 0x0A)); } else if(btnDown & PAD_BUTTON_LEFT) { HuAudFXPlay(0); work->board--; @@ -1504,23 +1504,23 @@ static void InitModeSel(omObjData *object) index++; HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - HuWinMesMaxSizeGet(2, &work->winSizeMode.x, 0x220009, 0x22000F); + HuWinMesMaxSizeGet(2, &work->winSizeMode.x, MAKE_MESSID(0x22, 0x09), MAKE_MESSID(0x22, 0x0F)); index2 = HuWinCreate(-10000, 350, work->winSizeMode.x, work->winSizeMode.y, 0); work->winMode = index2; HuWinMesColSet(index2, 4); HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesMaxSizeGet(1, size, 0x220009); + HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x22, 0x09)); HuWinCenterPosSet(index2, (work->winSizeMode.x-size[0])/-2.0f, (work->winSizeMode.y-size[1])/-2.0f); - HuWinMesSet(index2, 0x220009); - HuWinMesMaxSizeGet(2, &work->winSizeBoard.x, 0x22000A, 0x220010); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x09)); + HuWinMesMaxSizeGet(2, &work->winSizeBoard.x, MAKE_MESSID(0x22, 0x0A), MAKE_MESSID(0x22, 0x10)); index2 = HuWinCreate(-10000, 390, work->winSizeBoard.x, work->winSizeBoard.y, 0); work->winBoard = index2; HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesMaxSizeGet(1, size, 0x22000A); + HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x22, 0x0A)); HuWinCenterPosSet(index2, (work->winSizeBoard.x-size[0])/-2.0f, (work->winSizeBoard.y-size[1])/-2.0f); - HuWinMesSet(index2, 0x22000A); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x0A)); object->work[0] = 0; object->work[1] = 0; object->work[2] = 0; diff --git a/src/REL/E3setupDLL/mgselect.c b/src/REL/E3setupDLL/mgselect.c index ba636a75..ece67721 100644 --- a/src/REL/E3setupDLL/mgselect.c +++ b/src/REL/E3setupDLL/mgselect.c @@ -94,19 +94,19 @@ static s16 mgOvlTbl[] = { static s16 mgIdTbl[] = { 403, 404, 407, 410, 412, 415, 418, 419, 425, 426, 431, 436, 438, 0 }; static s32 mgNameTbl[] = { - 0x00170003, - 0x00170004, - 0x00170007, - 0x0017000A, - 0x0017000C, - 0x0017000F, - 0x00170012, - 0x00170013, - 0x00170019, - 0x0017001A, - 0x0017001F, - 0x00170024, - 0x00170026, + MAKE_MESSID(0x17, 0x03), + MAKE_MESSID(0x17, 0x04), + MAKE_MESSID(0x17, 0x07), + MAKE_MESSID(0x17, 0x0A), + MAKE_MESSID(0x17, 0x0C), + MAKE_MESSID(0x17, 0x0F), + MAKE_MESSID(0x17, 0x12), + MAKE_MESSID(0x17, 0x13), + MAKE_MESSID(0x17, 0x19), + MAKE_MESSID(0x17, 0x1A), + MAKE_MESSID(0x17, 0x1F), + MAKE_MESSID(0x17, 0x24), + MAKE_MESSID(0x17, 0x26), }; char lbl_2_data_A8[] = "\013TEST MINIGAME NAME01\n test"; @@ -332,12 +332,12 @@ static void CreateMGSelect(omObjData *object) temp_r30 = HuSprGrpCreate(3); temp_r31->unk_1C = temp_r30; HuSprGrpPosSet(temp_r30, 174.0f, 271.0f); - temp_r25 = HuSprAnimRead(HuDataReadNum(0x21, MEMORY_DEFAULT_NUM)); + temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x21), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2] = temp_r25; temp_r29 = HuSprCreate(temp_r25, 0x7540, 0); HuSprGrpMemberSet(temp_r30, index2, temp_r29); index2++; - temp_r25 = HuSprAnimRead(HuDataReadNum(0x27, MEMORY_DEFAULT_NUM)); + temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x27), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2] = temp_r25; temp_r29 = HuSprCreate(temp_r25, 0x64, 0); HuSprGrpMemberSet(temp_r30, index2, temp_r29); @@ -346,9 +346,9 @@ static void CreateMGSelect(omObjData *object) temp_r31->unk_42 = 0; HuSprPosSet(temp_r30, index2, 0.0f, cursorYOfsTbl[temp_r31->unk_42]); index2++; - temp_r25 = HuSprAnimRead(HuDataReadNum(0x35, MEMORY_DEFAULT_NUM)); + temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x35), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2++] = temp_r25; - temp_r23 = HuSprAnimRead(HuDataReadNum(0x36, MEMORY_DEFAULT_NUM)); + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x36), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2++] = temp_r23; temp_r30 = HuSprGrpCreate(2); temp_r31->unk_1E = temp_r30; @@ -449,7 +449,7 @@ static void CreateMGPic(omObjData *object) HuSprAttrSet(temp_r3, var_r30, 4); } index2 = var_r30; - temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x22, MEMORY_DEFAULT_NUM)); + temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x22), MEMORY_DEFAULT_NUM)); temp_r28->unk_00[index2] = temp_r3_2; group = HuSprCreate(temp_r3_2, 0x7540, 0); HuSprGrpMemberSet(temp_r3, index2, group); @@ -478,7 +478,7 @@ static void CreateMGInterface(omObjData *object) group = HuSprGrpCreate(1); unkStruct->group = group; HuSprGrpPosSet(group, 288.0f, 64.0f); - temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x24, MEMORY_DEFAULT_NUM)); + temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x24), MEMORY_DEFAULT_NUM)); unkStruct->unk_00[index2] = temp_r3_2; index = HuSprCreate(temp_r3_2, 0x2710, 0); HuSprGrpMemberSet(group, 0, index); @@ -486,7 +486,7 @@ static void CreateMGInterface(omObjData *object) group = HuSprGrpCreate(1); unkStruct->group2 = group; HuSprGrpPosSet(group, 444.0f, 384.0f); - temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x23, MEMORY_DEFAULT_NUM)); + temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x23), MEMORY_DEFAULT_NUM)); unkStruct->unk_00[index2] = temp_r3_2; index = HuSprCreate(temp_r3_2, 0x271A, 0); HuSprGrpMemberSet(group, 0, index); diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 8c212fd2..07ee15ac 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -840,7 +840,7 @@ static void fn_1_2FA0(void) HuSprGrpPosSet(temp_r24, 1000, 186); HuSprPriSet(temp_r24, 0, 1000); sp10[0] = HuWinCreate(1000, 186, 456, 42, 0); - HuWinMesSet(sp10[0], 0x240000+lbl_1_bss_10); + HuWinMesSet(sp10[0], MAKE_MESSID(0x24, lbl_1_bss_10)); HuWinBGTPLvlSet(sp10[0], 0.0f); temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17)); temp_r23 = HuSprGrpCreate(1); @@ -849,11 +849,11 @@ static void fn_1_2FA0(void) HuSprGrpPosSet(temp_r23, 1000, 242); HuSprPriSet(temp_r23, 0, 1000); sp10[1] = HuWinCreate(1000, 242, 456, 42, 0); - HuWinMesSet(sp10[1], lbl_1_bss_10+0x240001); + HuWinMesSet(sp10[1], lbl_1_bss_10+MAKE_MESSID(0x24, 0x01)); HuWinBGTPLvlSet(sp10[1], 0.0f); temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); sp10[2] = HuWinCreate(1000, 292, 456, 42, 0); - HuWinMesSet(sp10[2], lbl_1_bss_10+0x240002); + HuWinMesSet(sp10[2], lbl_1_bss_10+MAKE_MESSID(0x24, 0x02)); HuWinBGTPLvlSet(sp10[2], 0.0f); HuWinMesSpeedSet(sp10[2], 0); temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, 201, 18); @@ -861,7 +861,7 @@ static void fn_1_2FA0(void) temp_r27 = HuWinCreate(1000, 292, 456, 42, 0); HuWinBGTPLvlSet(temp_r27, 0.0f); HuWinMesSpeedSet(temp_r27, 0); - HuWinMesSet(temp_r27, lbl_1_bss_10+0x240002); + HuWinMesSet(temp_r27, lbl_1_bss_10+MAKE_MESSID(0x24, 0x02)); temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, 201, 18); HuWinPriSet(temp_r27, 10); HuWinSprPriSet(temp_r27, temp_r31, 11); @@ -908,16 +908,16 @@ static void fn_1_2FA0(void) while(lbl_1_data_0 != 3) { if(temp_r21 != lbl_1_bss_6) { temp_f31 = 16.0f+(lbl_1_data_124[6]-217.0f); - HuWinMesSet(temp_r27, 0x240002+lbl_1_bss_10+temp_r21); + HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+temp_r21); temp_r21 = lbl_1_bss_6; if(lbl_1_bss_6 == 1) { if(mgInfoTbl[lbl_1_bss_14].inst_mess[2]) { - HuWinMesSet(sp10[2], 0x240002+lbl_1_bss_10+lbl_1_bss_6); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6); } else { - HuWinMesSet(sp10[2], 0x240006+lbl_1_bss_10); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06)+lbl_1_bss_10); } } else { - HuWinMesSet(sp10[2], 0x240002+lbl_1_bss_10+lbl_1_bss_6); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6); } for(temp_r31=0; temp_r31<=10; temp_r31++) { HuWinPosSet(temp_r27, 30.0*sind(temp_r31*9.0f)+temp_f31, 200.0*(1.0-cosd(temp_r31*9.0f))+274.0); diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index 40820a67..2e4c13d9 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -1,54 +1,39 @@ -#include "game/object.h" -#include "game/memory.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/frand.h" +#include "game/gamework_data.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/objsub.h" +#include "game/memory.h" #include "game/minigame_seq.h" -#include "game/gamework_data.h" -#include "game/wipe.h" -#include "game/esprite.h" -#include "game/sprite.h" -#include "game/frand.h" -#include "game/chrman.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" #include "game/printfunc.h" +#include "game/sprite.h" +#include "game/wipe.h" #include "REL/m401Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" #include "rel_sqrt_consts.h" float lbl_2_data_0 = -7.1875f; -s16 lbl_2_data_4[] = { - 0, 1, 2, 3, - 4, 5, 6, 7 -}; +s16 lbl_2_data_4[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -Vec lbl_2_data_14 = { - 1500, 2500, 1500 -}; +Vec lbl_2_data_14 = { 1500, 2500, 1500 }; -Vec lbl_2_data_20 = { - 0, -1, 0 -}; +Vec lbl_2_data_20 = { 0, -1, 0 }; -GXColor lbl_2_data_2C = { - 255, 255, 255, 255 -}; +GXColor lbl_2_data_2C = { 255, 255, 255, 255 }; -Vec lbl_2_data_30 = { - 0, 2500, 0 -}; +Vec lbl_2_data_30 = { 0, 2500, 0 }; -Vec lbl_2_data_3C = { - 0, 1, -1 -}; +Vec lbl_2_data_3C = { 0, 1, -1 }; -Vec lbl_2_data_48 = { - 0, 0, 0 -}; +Vec lbl_2_data_48 = { 0, 0, 0 }; s32 lbl_2_bss_11C; omObjData **lbl_2_bss_118; @@ -122,386 +107,374 @@ void fn_2_DBCC(s16 arg0); void ObjectSetup(void) { - s32 i; - omObjData *object; - CameraData *camera; - LightData *light; - OSReport("**** M401ObjectSetup ****\n"); - HuMemHeapDump(HuMemHeapPtrGet(HEAP_SYSTEM), -1); - HuMemHeapDump(HuMemHeapPtrGet(HEAP_DATA), -1); - HuMemHeapDump(HuMemHeapPtrGet(HEAP_DVD), -1); - lbl_2_bss_1C = omInitObjMan(60, 8192); - omGameSysInit(lbl_2_bss_1C); - lbl_2_bss_A8 = Hu3DGLightCreateV(&lbl_2_data_14, &lbl_2_data_20, &lbl_2_data_2C); - Hu3DGLightInfinitytSet(lbl_2_bss_A8); - light = &Hu3DGlobalLight[lbl_2_bss_A8]; - light->unk_00 |= 0x8000; - Hu3DCameraCreate(1); - camera = &Hu3DCamera[0]; - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_2_bss_114 = omAddObjEx(lbl_2_bss_1C, 1000, 3, 0, -1, fn_2_BD90); - lbl_2_bss_114->work[0] = 0; - lbl_2_bss_110 = omAddObjEx(lbl_2_bss_1C, 10, 0, 0, -1, fn_2_70C); - omMakeGroupEx(lbl_2_bss_1C, 0, 4); - lbl_2_bss_118 = omGetGroupMemberListEx(lbl_2_bss_1C, 0); - omMakeGroupEx(lbl_2_bss_1C, 1, 28); - for(i=0; i<4; i++) { - object = omAddObjEx(lbl_2_bss_1C, 1200, 4, 10, 0, fn_2_3B24); - object->work[0] = i; - } - lbl_2_bss_12C = 60; - lbl_2_bss_128 = 50; - lbl_2_bss_124 = 25000; - Hu3DShadowCreate(30, 20, 5000); - Hu3DShadowTPLvlSet(0.35f); - lbl_2_data_30.y = lbl_2_bss_60.y + 1500.0f; - lbl_2_data_30.z = lbl_2_bss_60.z + 500.0f; - lbl_2_data_48.y = lbl_2_bss_60.y; - lbl_2_data_48.z = lbl_2_bss_60.z + 500.0f; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - lbl_2_bss_10C = omAddObjEx(lbl_2_bss_1C, 500, 12, 3, -1, fn_2_2FA4); - lbl_2_bss_108 = omAddObjEx(lbl_2_bss_1C, 1100, 1, 1, -1, fn_2_7CB4); - lbl_2_bss_100[0] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); - lbl_2_bss_100[1] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); - lbl_2_bss_FC = omAddObjEx(lbl_2_bss_1C, 1120, 1, 2, -1, fn_2_95E4); - lbl_2_bss_C8 = omAddObjEx(lbl_2_bss_1C, 100, 0, 0, -1, fn_2_D088); - lbl_2_bss_E0 = omAddObjEx(lbl_2_bss_1C, 1500, 0, 0, -1, fn_2_C1C); - fn_2_DBCC(90); - lbl_2_bss_F8 = omAddObjEx(lbl_2_bss_1C, 500, 9, 0, -1, fn_2_C6DC); - fn_2_9D00(lbl_2_bss_1C); - fn_2_1041C(); - fn_2_1079C(); - lbl_2_bss_F4 = fn_2_14640(lbl_2_bss_1C); - lbl_2_bss_50 = 0; - lbl_2_bss_54 = camera->pos; - Hu3DReflectNoSet(0); - lbl_2_bss_120 = 0; - lbl_2_bss_BE = 0; - lbl_2_bss_BA = 0; - Hu3DFogSet(3000, 10000, 10, 60, 160); - Hu3DBGColorSet(10, 60, 160); - lbl_2_bss_88 = 3000; - lbl_2_bss_84 = 142000; - lbl_2_bss_11C = HuAudFXPlay(1290); + s32 i; + omObjData *object; + CameraData *camera; + LightData *light; + OSReport("**** M401ObjectSetup ****\n"); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_SYSTEM), -1); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_DATA), -1); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_DVD), -1); + lbl_2_bss_1C = omInitObjMan(60, 8192); + omGameSysInit(lbl_2_bss_1C); + lbl_2_bss_A8 = Hu3DGLightCreateV(&lbl_2_data_14, &lbl_2_data_20, &lbl_2_data_2C); + Hu3DGLightInfinitytSet(lbl_2_bss_A8); + light = &Hu3DGlobalLight[lbl_2_bss_A8]; + light->unk_00 |= 0x8000; + Hu3DCameraCreate(1); + camera = &Hu3DCamera[0]; + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_2_bss_114 = omAddObjEx(lbl_2_bss_1C, 1000, 3, 0, -1, fn_2_BD90); + lbl_2_bss_114->work[0] = 0; + lbl_2_bss_110 = omAddObjEx(lbl_2_bss_1C, 10, 0, 0, -1, fn_2_70C); + omMakeGroupEx(lbl_2_bss_1C, 0, 4); + lbl_2_bss_118 = omGetGroupMemberListEx(lbl_2_bss_1C, 0); + omMakeGroupEx(lbl_2_bss_1C, 1, 28); + for (i = 0; i < 4; i++) { + object = omAddObjEx(lbl_2_bss_1C, 1200, 4, 10, 0, fn_2_3B24); + object->work[0] = i; + } + lbl_2_bss_12C = 60; + lbl_2_bss_128 = 50; + lbl_2_bss_124 = 25000; + Hu3DShadowCreate(30, 20, 5000); + Hu3DShadowTPLvlSet(0.35f); + lbl_2_data_30.y = lbl_2_bss_60.y + 1500.0f; + lbl_2_data_30.z = lbl_2_bss_60.z + 500.0f; + lbl_2_data_48.y = lbl_2_bss_60.y; + lbl_2_data_48.z = lbl_2_bss_60.z + 500.0f; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + lbl_2_bss_10C = omAddObjEx(lbl_2_bss_1C, 500, 12, 3, -1, fn_2_2FA4); + lbl_2_bss_108 = omAddObjEx(lbl_2_bss_1C, 1100, 1, 1, -1, fn_2_7CB4); + lbl_2_bss_100[0] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); + lbl_2_bss_100[1] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); + lbl_2_bss_FC = omAddObjEx(lbl_2_bss_1C, 1120, 1, 2, -1, fn_2_95E4); + lbl_2_bss_C8 = omAddObjEx(lbl_2_bss_1C, 100, 0, 0, -1, fn_2_D088); + lbl_2_bss_E0 = omAddObjEx(lbl_2_bss_1C, 1500, 0, 0, -1, fn_2_C1C); + fn_2_DBCC(90); + lbl_2_bss_F8 = omAddObjEx(lbl_2_bss_1C, 500, 9, 0, -1, fn_2_C6DC); + fn_2_9D00(lbl_2_bss_1C); + fn_2_1041C(); + fn_2_1079C(); + lbl_2_bss_F4 = fn_2_14640(lbl_2_bss_1C); + lbl_2_bss_50 = 0; + lbl_2_bss_54 = camera->pos; + Hu3DReflectNoSet(0); + lbl_2_bss_120 = 0; + lbl_2_bss_BE = 0; + lbl_2_bss_BA = 0; + Hu3DFogSet(3000, 10000, 10, 60, 160); + Hu3DBGColorSet(10, 60, 160); + lbl_2_bss_88 = 3000; + lbl_2_bss_84 = 142000; + lbl_2_bss_11C = HuAudFXPlay(1290); } void fn_2_70C(omObjData *object) { - s32 temp_r31; - M401WorkPlayer *temp_r30; - s16 temp_r29; - switch(lbl_2_bss_120) { - case 0: - break; - - case 1: - if(lbl_2_bss_BE == 1) { - lbl_2_bss_120 = 2; - lbl_2_bss_C0 = MGSeqFinishCreate(); - HuAudSeqFadeOut(lbl_2_bss_A4, 100); - } - break; - - case 2: - if(lbl_2_bss_114 == NULL) { - lbl_2_bss_114 = omAddObjEx(HuPrcCurrentGet(), 1000, 0, 0, -1, fn_2_C130); - lbl_2_bss_114->work[0] = 0; - temp_r29 = 0; - lbl_2_bss_BA = 0; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_2_bss_118[temp_r31]->data; - lbl_2_bss_118[temp_r31]->func = fn_2_48A0; - temp_r30->unk0 = 5; - temp_r30->unk68 = 0; - if(temp_r30->unk72 > temp_r29) { - temp_r29 = temp_r30->unk72; - } - lbl_2_bss_B2[temp_r31] = -1; - lbl_2_bss_AA[temp_r31] = -1; - } - if(temp_r29 > 0) { - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_2_bss_118[temp_r31]->data; - if(temp_r30->unk72 == temp_r29) { - lbl_2_bss_AA[lbl_2_bss_BA] = GWPlayerCfg[temp_r31].character; - lbl_2_bss_B2[lbl_2_bss_BA++] = temp_r31; - temp_r30->unk68 = 1; - } - } - } - OSReport("winnercnt:%d\n", lbl_2_bss_BA); - } - break; - } - if(omSysExitReq) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqFadeOut(lbl_2_bss_A4, 100); - HuAudFXStop(lbl_2_bss_11C); - object->func = fn_2_A10; - } + s32 temp_r31; + M401WorkPlayer *temp_r30; + s16 temp_r29; + switch (lbl_2_bss_120) { + case 0: + break; + + case 1: + if (lbl_2_bss_BE == 1) { + lbl_2_bss_120 = 2; + lbl_2_bss_C0 = MGSeqFinishCreate(); + HuAudSeqFadeOut(lbl_2_bss_A4, 100); + } + break; + + case 2: + if (lbl_2_bss_114 == NULL) { + lbl_2_bss_114 = omAddObjEx(HuPrcCurrentGet(), 1000, 0, 0, -1, fn_2_C130); + lbl_2_bss_114->work[0] = 0; + temp_r29 = 0; + lbl_2_bss_BA = 0; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_2_bss_118[temp_r31]->data; + lbl_2_bss_118[temp_r31]->func = fn_2_48A0; + temp_r30->unk0 = 5; + temp_r30->unk68 = 0; + if (temp_r30->unk72 > temp_r29) { + temp_r29 = temp_r30->unk72; + } + lbl_2_bss_B2[temp_r31] = -1; + lbl_2_bss_AA[temp_r31] = -1; + } + if (temp_r29 > 0) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_2_bss_118[temp_r31]->data; + if (temp_r30->unk72 == temp_r29) { + lbl_2_bss_AA[lbl_2_bss_BA] = GWPlayerCfg[temp_r31].character; + lbl_2_bss_B2[lbl_2_bss_BA++] = temp_r31; + temp_r30->unk68 = 1; + } + } + } + OSReport("winnercnt:%d\n", lbl_2_bss_BA); + } + break; + } + if (omSysExitReq) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqFadeOut(lbl_2_bss_A4, 100); + HuAudFXStop(lbl_2_bss_11C); + object->func = fn_2_A10; + } } void fn_2_A10(omObjData *object) { - s32 i; - if(!WipeStatGet()) { - fn_2_10710(); - for(i=0; i<4; i++) { - CharModelKill(lbl_2_data_4[GWPlayerCfg[i].character]); - } - HuAudFXListnerKill(); - omOvlReturnEx(1, 1); - } + s32 i; + if (!WipeStatGet()) { + fn_2_10710(); + for (i = 0; i < 4; i++) { + CharModelKill(lbl_2_data_4[GWPlayerCfg[i].character]); + } + HuAudFXListnerKill(); + omOvlReturnEx(1, 1); + } } void fn_2_A98(void) { - Hu3DFogSet(3000, 10000, 10, 60, 160); - Hu3DBGColorSet(10, 60, 160); + Hu3DFogSet(3000, 10000, 10, 60, 160); + Hu3DBGColorSet(10, 60, 160); } typedef struct m401_work_2d { - s16 unk0[4]; - s16 unk8[4][3]; - u8 unk20[0x30]; - s16 unk50[4][3]; - s16 unk68[4][3]; - s16 unk80[4]; - s16 unk88[4]; - float unk90[4]; - float unkA0[4]; - float unkB0[4]; - float unkC0[4]; - float unkD0[4]; - float unkE0[4]; - float unkF0[4]; - float unk100[4]; - float unk110[4]; - float unk120[4]; - s16 unk130[4]; - s16 unk138[4]; - s16 unk140[4]; + s16 unk0[4]; + s16 unk8[4][3]; + u8 unk20[0x30]; + s16 unk50[4][3]; + s16 unk68[4][3]; + s16 unk80[4]; + s16 unk88[4]; + float unk90[4]; + float unkA0[4]; + float unkB0[4]; + float unkC0[4]; + float unkD0[4]; + float unkE0[4]; + float unkF0[4]; + float unk100[4]; + float unk110[4]; + float unk120[4]; + s16 unk130[4]; + s16 unk138[4]; + s16 unk140[4]; } M401Work2D; void fn_2_AEC(s16 arg0) { - M401Work2D *temp_r31; - s32 i; - s32 j; - temp_r31 = lbl_2_bss_E0->data; - if(arg0) { - for(i=0; i<4; i++) { - espDispOn(temp_r31->unk0[i]); - espDispOn(temp_r31->unk80[i]); - espDispOn(temp_r31->unk88[i]); - for(j=0; j<2; j++) { - espDispOn(temp_r31->unk8[i][j]); - } - } - } else { - for(i=0; i<4; i++) { - espDispOff(temp_r31->unk0[i]); - espDispOff(temp_r31->unk80[i]); - espDispOff(temp_r31->unk88[i]); - for(j=0; j<2; j++) { - espDispOff(temp_r31->unk8[i][j]); - } - } - } + M401Work2D *temp_r31; + s32 i; + s32 j; + temp_r31 = lbl_2_bss_E0->data; + if (arg0) { + for (i = 0; i < 4; i++) { + espDispOn(temp_r31->unk0[i]); + espDispOn(temp_r31->unk80[i]); + espDispOn(temp_r31->unk88[i]); + for (j = 0; j < 2; j++) { + espDispOn(temp_r31->unk8[i][j]); + } + } + } + else { + for (i = 0; i < 4; i++) { + espDispOff(temp_r31->unk0[i]); + espDispOff(temp_r31->unk80[i]); + espDispOff(temp_r31->unk88[i]); + for (j = 0; j < 2; j++) { + espDispOff(temp_r31->unk8[i][j]); + } + } + } } s32 lbl_2_data_80[] = { - 0x610000, - 0x610001, - 0x610002, - 0x610003, - 0x610004, - 0x610005, - 0x610006, - 0x610007 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), }; -#define PLAYER_POS_X(index, left, width) ((((index)&1)*width)+left) -#define PLAYER_POS_Y(index, top, height) ((((index)>1)*height)+top) +#define PLAYER_POS_X(index, left, width) ((((index)&1) * width) + left) +#define PLAYER_POS_Y(index, top, height) ((((index) > 1) * height) + top) void fn_2_C1C(omObjData *object) { - M401Work2D *temp_r31; - s32 i; - s32 j; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401Work2D), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - for(i=0; i<4; i++) { - temp_r31->unk0[i] = espEntry(lbl_2_data_80[GWPlayerCfg[i].character], 2, 0); - espDispOff(temp_r31->unk0[i]); - espDrawNoSet(temp_r31->unk0[i], 0); - espPosSet(temp_r31->unk0[i], PLAYER_POS_X(i, 37, 438), PLAYER_POS_Y(i, 59, 358)); - temp_r31->unk80[i] = espEntry(0x20002F, 3, 0); - espDispOff(temp_r31->unk80[i]); - espDrawNoSet(temp_r31->unk80[i], 0); - espPosSet(temp_r31->unk80[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); - temp_r31->unk88[i] = espEntry(0x200030, 4, 0); - espDispOff(temp_r31->unk88[i]); - espDrawNoSet(temp_r31->unk88[i], 0); - espPosSet(temp_r31->unk88[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); - espColorSet(temp_r31->unk88[i], 0, 0, 0); - espTPLvlSet(temp_r31->unk88[i], 0.5f); - for(j=0; j<2; j++) { - temp_r31->unk8[i][j] = espEntry(0x20002E, 1, 0); - espDispOff(temp_r31->unk8[i][j]); - espDrawNoSet(temp_r31->unk8[i][j], 0); - espPosSet(temp_r31->unk8[i][j], PLAYER_POS_X(i, 69+(j*20), 438), PLAYER_POS_Y(i, 63, 358)); - espAttrSet(temp_r31->unk8[i][j], HUSPR_ATTR_NOANIM); - } - for(j=0; j<3; j++) { - temp_r31->unk50[i][j] = espEntry(0x20002D, 0, 0); - espDispOff(temp_r31->unk50[i][j]); - espDrawNoSet(temp_r31->unk50[i][j], 0); - espAttrSet(temp_r31->unk50[i][j], HUSPR_ATTR_NOANIM); - temp_r31->unk68[i][j] = espEntry(0x20002D, 0, 0); - espDispOff(temp_r31->unk68[i][j]); - espDrawNoSet(temp_r31->unk68[i][j], 0); - espAttrSet(temp_r31->unk68[i][j], HUSPR_ATTR_NOANIM); - } - espBankSet(temp_r31->unk50[i][0], 10); - espBankSet(temp_r31->unk68[i][0], 11); - temp_r31->unk90[i] = 1.0f; - temp_r31->unkA0[i] = 1.0f; - temp_r31->unk130[i] = 0; - temp_r31->unk138[i] = 0; - } - object->func = fn_2_11D0; + M401Work2D *temp_r31; + s32 i; + s32 j; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401Work2D), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + for (i = 0; i < 4; i++) { + temp_r31->unk0[i] = espEntry(lbl_2_data_80[GWPlayerCfg[i].character], 2, 0); + espDispOff(temp_r31->unk0[i]); + espDrawNoSet(temp_r31->unk0[i], 0); + espPosSet(temp_r31->unk0[i], PLAYER_POS_X(i, 37, 438), PLAYER_POS_Y(i, 59, 358)); + temp_r31->unk80[i] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2F), 3, 0); + espDispOff(temp_r31->unk80[i]); + espDrawNoSet(temp_r31->unk80[i], 0); + espPosSet(temp_r31->unk80[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); + temp_r31->unk88[i] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x30), 4, 0); + espDispOff(temp_r31->unk88[i]); + espDrawNoSet(temp_r31->unk88[i], 0); + espPosSet(temp_r31->unk88[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); + espColorSet(temp_r31->unk88[i], 0, 0, 0); + espTPLvlSet(temp_r31->unk88[i], 0.5f); + for (j = 0; j < 2; j++) { + temp_r31->unk8[i][j] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2E), 1, 0); + espDispOff(temp_r31->unk8[i][j]); + espDrawNoSet(temp_r31->unk8[i][j], 0); + espPosSet(temp_r31->unk8[i][j], PLAYER_POS_X(i, 69 + (j * 20), 438), PLAYER_POS_Y(i, 63, 358)); + espAttrSet(temp_r31->unk8[i][j], HUSPR_ATTR_NOANIM); + } + for (j = 0; j < 3; j++) { + temp_r31->unk50[i][j] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2D), 0, 0); + espDispOff(temp_r31->unk50[i][j]); + espDrawNoSet(temp_r31->unk50[i][j], 0); + espAttrSet(temp_r31->unk50[i][j], HUSPR_ATTR_NOANIM); + temp_r31->unk68[i][j] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2D), 0, 0); + espDispOff(temp_r31->unk68[i][j]); + espDrawNoSet(temp_r31->unk68[i][j], 0); + espAttrSet(temp_r31->unk68[i][j], HUSPR_ATTR_NOANIM); + } + espBankSet(temp_r31->unk50[i][0], 10); + espBankSet(temp_r31->unk68[i][0], 11); + temp_r31->unk90[i] = 1.0f; + temp_r31->unkA0[i] = 1.0f; + temp_r31->unk130[i] = 0; + temp_r31->unk138[i] = 0; + } + object->func = fn_2_11D0; } void fn_2_15C4(s16 arg0); void fn_2_11D0(omObjData *object) { - M401Work2D *temp_r31; - s32 i; - s32 j; - omObjData *temp_r28; - Vec sp18; - Vec spC; - M401WorkPlayer *sp8; - temp_r31 = object->data; - for(i=0; i<4; i++) { - sp8 = lbl_2_bss_118[i]->data; - if(temp_r31->unk130[i]) { - temp_r28 = lbl_2_bss_118[i]; - sp18.x = temp_r28->trans.x; - sp18.y = temp_r28->trans.y; - sp18.z = temp_r28->trans.z; - fn_2_10240(&sp18, &spC); - for(j=0; j<3; j++) { - espPosSet(temp_r31->unk50[i][j], (-20.0f+spC.x+temp_r31->unkF0[i])+(j*16), 20.0f+spC.y+temp_r31->unk100[i]); - espTPLvlSet(temp_r31->unk50[i][j], temp_r31->unk90[i]); - } - temp_r31->unkC0[i] -= 0.5f; - temp_r31->unk100[i] -= 1.0f; - if(temp_r31->unk130[i] < 15) { - temp_r31->unk90[i] -= 1.0f/15.0f; - } - if(--temp_r31->unk130[i] == 0) { - espDispOff(temp_r31->unk50[i][0]); - espDispOff(temp_r31->unk50[i][1]); - } - } - if(temp_r31->unk138[i]) { - temp_r28 = lbl_2_bss_118[i]; - sp18.x = temp_r28->trans.x; - sp18.y = temp_r28->trans.y; - sp18.z = temp_r28->trans.z; - fn_2_10240(&sp18, &spC); - for(j=0; j<2; j++) { - espPosSet(temp_r31->unk68[i][j], (-20.0f+spC.x+temp_r31->unk110[i])+(j*16), -20.0f+spC.y+temp_r31->unk120[i]); - espTPLvlSet(temp_r31->unk68[i][j], temp_r31->unkA0[i]); - } - temp_r31->unkE0[i] += 0.5f; - temp_r31->unk120[i] += 1.0f; - if(temp_r31->unk138[i] < 15) { - temp_r31->unkA0[i] -= 1.0f/15.0f; - } - if(--temp_r31->unk138[i] == 0) { - espDispOff(temp_r31->unk68[i][0]); - espDispOff(temp_r31->unk68[i][1]); - } - } - fn_2_15C4(i); - } + M401Work2D *temp_r31; + s32 i; + s32 j; + omObjData *temp_r28; + Vec sp18; + Vec spC; + M401WorkPlayer *sp8; + temp_r31 = object->data; + for (i = 0; i < 4; i++) { + sp8 = lbl_2_bss_118[i]->data; + if (temp_r31->unk130[i]) { + temp_r28 = lbl_2_bss_118[i]; + sp18.x = temp_r28->trans.x; + sp18.y = temp_r28->trans.y; + sp18.z = temp_r28->trans.z; + fn_2_10240(&sp18, &spC); + for (j = 0; j < 3; j++) { + espPosSet(temp_r31->unk50[i][j], (-20.0f + spC.x + temp_r31->unkF0[i]) + (j * 16), 20.0f + spC.y + temp_r31->unk100[i]); + espTPLvlSet(temp_r31->unk50[i][j], temp_r31->unk90[i]); + } + temp_r31->unkC0[i] -= 0.5f; + temp_r31->unk100[i] -= 1.0f; + if (temp_r31->unk130[i] < 15) { + temp_r31->unk90[i] -= 1.0f / 15.0f; + } + if (--temp_r31->unk130[i] == 0) { + espDispOff(temp_r31->unk50[i][0]); + espDispOff(temp_r31->unk50[i][1]); + } + } + if (temp_r31->unk138[i]) { + temp_r28 = lbl_2_bss_118[i]; + sp18.x = temp_r28->trans.x; + sp18.y = temp_r28->trans.y; + sp18.z = temp_r28->trans.z; + fn_2_10240(&sp18, &spC); + for (j = 0; j < 2; j++) { + espPosSet(temp_r31->unk68[i][j], (-20.0f + spC.x + temp_r31->unk110[i]) + (j * 16), -20.0f + spC.y + temp_r31->unk120[i]); + espTPLvlSet(temp_r31->unk68[i][j], temp_r31->unkA0[i]); + } + temp_r31->unkE0[i] += 0.5f; + temp_r31->unk120[i] += 1.0f; + if (temp_r31->unk138[i] < 15) { + temp_r31->unkA0[i] -= 1.0f / 15.0f; + } + if (--temp_r31->unk138[i] == 0) { + espDispOff(temp_r31->unk68[i][0]); + espDispOff(temp_r31->unk68[i][1]); + } + } + fn_2_15C4(i); + } } void fn_2_15C4(s16 arg0) { - M401Work2D *temp_r31; - s32 temp_r30; - M401WorkPlayer *temp_r29; - temp_r31 = lbl_2_bss_E0->data; - temp_r29 = lbl_2_bss_118[arg0]->data; - temp_r30 = temp_r29->unk72; - espBankSet(temp_r31->unk8[arg0][0], temp_r30/10); - espBankSet(temp_r31->unk8[arg0][1], temp_r30%10); + M401Work2D *temp_r31; + s32 temp_r30; + M401WorkPlayer *temp_r29; + temp_r31 = lbl_2_bss_E0->data; + temp_r29 = lbl_2_bss_118[arg0]->data; + temp_r30 = temp_r29->unk72; + espBankSet(temp_r31->unk8[arg0][0], temp_r30 / 10); + espBankSet(temp_r31->unk8[arg0][1], temp_r30 % 10); } void fn_2_169C(s16 arg0) { - M401Work2D *temp_r31; - s32 i; - M401WorkPlayer *temp_r28; - temp_r31 = lbl_2_bss_E0->data; - temp_r28 = lbl_2_bss_118[arg0]->data; - for(i=0; i<2; i++ ){ - espDispOn(temp_r31->unk50[arg0][i]); - } - temp_r31->unk90[arg0] = 1; - temp_r31->unkC0[arg0] = PLAYER_POS_Y(arg0, 52, 398); - temp_r31->unkB0[arg0] = PLAYER_POS_X(arg0, 41, 442); - temp_r31->unk100[arg0] = 0; - temp_r31->unkF0[arg0] = 0; - espBankSet(temp_r31->unk50[arg0][1], temp_r28->unk74); - temp_r31->unk130[arg0] = 45; + M401Work2D *temp_r31; + s32 i; + M401WorkPlayer *temp_r28; + temp_r31 = lbl_2_bss_E0->data; + temp_r28 = lbl_2_bss_118[arg0]->data; + for (i = 0; i < 2; i++) { + espDispOn(temp_r31->unk50[arg0][i]); + } + temp_r31->unk90[arg0] = 1; + temp_r31->unkC0[arg0] = PLAYER_POS_Y(arg0, 52, 398); + temp_r31->unkB0[arg0] = PLAYER_POS_X(arg0, 41, 442); + temp_r31->unk100[arg0] = 0; + temp_r31->unkF0[arg0] = 0; + espBankSet(temp_r31->unk50[arg0][1], temp_r28->unk74); + temp_r31->unk130[arg0] = 45; } void fn_2_1858(s16 arg0, s16 arg1) { - M401Work2D *temp_r31; - M401WorkPlayer *temp_r29; - s32 i; - temp_r31 = lbl_2_bss_E0->data; - temp_r29 = lbl_2_bss_118[arg0]->data; - for(i=0; i<2; i++ ){ - espDispOn(temp_r31->unk68[arg0][i]); - } - temp_r31->unkA0[arg0] = 1; - temp_r31->unkE0[arg0] = PLAYER_POS_Y(arg0, 20, 398); - temp_r31->unkD0[arg0] = PLAYER_POS_X(arg0, 41, 442); - temp_r31->unk120[arg0] = 0; - temp_r31->unk110[arg0] = 0; - espBankSet(temp_r31->unk68[arg0][1], arg1); - temp_r31->unk138[arg0] = 45; - temp_r31->unk140[arg0] = arg1; - temp_r29->unk72 -= arg1; - if(temp_r29->unk72 < 0) { - temp_r29->unk72 = 0; - } + M401Work2D *temp_r31; + M401WorkPlayer *temp_r29; + s32 i; + temp_r31 = lbl_2_bss_E0->data; + temp_r29 = lbl_2_bss_118[arg0]->data; + for (i = 0; i < 2; i++) { + espDispOn(temp_r31->unk68[arg0][i]); + } + temp_r31->unkA0[arg0] = 1; + temp_r31->unkE0[arg0] = PLAYER_POS_Y(arg0, 20, 398); + temp_r31->unkD0[arg0] = PLAYER_POS_X(arg0, 41, 442); + temp_r31->unk120[arg0] = 0; + temp_r31->unk110[arg0] = 0; + espBankSet(temp_r31->unk68[arg0][1], arg1); + temp_r31->unk138[arg0] = 45; + temp_r31->unk140[arg0] = arg1; + temp_r29->unk72 -= arg1; + if (temp_r29->unk72 < 0) { + temp_r29->unk72 = 0; + } } -float lbl_2_data_A0[] = { - -500, - -8500, - -17500, - -26500, - -99000 -}; +float lbl_2_data_A0[] = { -500, -8500, -17500, -26500, -99000 }; -float lbl_2_data_B4[] = { - -9100, - -18100, - -27100, - -36100, - -45100, - -100000 -}; +float lbl_2_data_B4[] = { -9100, -18100, -27100, -36100, -45100, -100000 }; void fn_2_1A38(omObjData *object); void fn_2_1B80(omObjData *object); @@ -514,36 +487,19 @@ void fn_2_2DCC(omObjData *object); void fn_2_2E20(omObjData *object); void fn_2_2ED0(omObjData *object); -omObjFunc lbl_2_data_CC[][2] = { - fn_2_1A38, - fn_2_2CBC, - fn_2_1B80, - fn_2_2D64, - fn_2_1CF0, - fn_2_2DCC, - fn_2_1DE8, - fn_2_2E20, - fn_2_20B0, - fn_2_2ED0 -}; +omObjFunc lbl_2_data_CC[][2] = { fn_2_1A38, fn_2_2CBC, fn_2_1B80, fn_2_2D64, fn_2_1CF0, fn_2_2DCC, fn_2_1DE8, fn_2_2E20, fn_2_20B0, fn_2_2ED0 }; -char *lbl_2_data_124[] = { - "kaitei01", - "kaitei02", - "kaitei03", - "kaitei04", - "kaitei05" -}; +char *lbl_2_data_124[] = { "kaitei01", "kaitei02", "kaitei03", "kaitei04", "kaitei05" }; s32 lbl_2_data_138[] = { - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), }; omObjData *fn_2_FC40(s16 arg0, Vec *arg1, Vec *arg2, Vec *arg3); @@ -551,604 +507,617 @@ void fn_2_E6BC(omObjData *object, float arg2, float arg3, float arg4, float arg5 void fn_2_1A38(omObjData *object) { - Vec sp20; - Vec sp14; - Vec sp8; - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); - omObjData *temp_r30; - temp_r31->type = 2; - sp20.x = -2500; - sp20.y = 150; - sp20.z = -6800; - sp14.x = 50; - sp14.y = 50; - sp14.z = 50; - sp8.x = 1500; - sp8.y = 150; - sp8.z = -4800; - temp_r30 = fn_2_FC40(18, &sp20, &sp14, &sp8); - fn_2_E6BC((omObjData *)temp_r30->work[0], 5, 1.5, 0.2, 0.8, 3); + Vec sp20; + Vec sp14; + Vec sp8; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); + omObjData *temp_r30; + temp_r31->type = 2; + sp20.x = -2500; + sp20.y = 150; + sp20.z = -6800; + sp14.x = 50; + sp14.y = 50; + sp14.z = 50; + sp8.x = 1500; + sp8.y = 150; + sp8.z = -4800; + temp_r30 = fn_2_FC40(18, &sp20, &sp14, &sp8); + fn_2_E6BC((omObjData *)temp_r30->work[0], 5, 1.5, 0.2, 0.8, 3); } void fn_2_1B80(omObjData *object) { - Vec sp14; - Vec sp8; - omObjData *temp_r31; - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); - temp_r30->type = 2; - sp14.x = -1000; - sp14.y = 0; - sp14.z = -9100; - sp8.x = 150; - sp8.y = 100; - sp8.z = 100; - temp_r31 = fn_2_FC40(14, &sp14, &sp8, &sp14); - omSetRot(temp_r31, 3, 0, 0); - omSetSca(temp_r31, 0, 0, 50); - fn_2_E6BC((omObjData *)temp_r31->work[0], 4.5, 2.5, 0.08, 0.9, 1); + Vec sp14; + Vec sp8; + omObjData *temp_r31; + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); + temp_r30->type = 2; + sp14.x = -1000; + sp14.y = 0; + sp14.z = -9100; + sp8.x = 150; + sp8.y = 100; + sp8.z = 100; + temp_r31 = fn_2_FC40(14, &sp14, &sp8, &sp14); + omSetRot(temp_r31, 3, 0, 0); + omSetSca(temp_r31, 0, 0, 50); + fn_2_E6BC((omObjData *)temp_r31->work[0], 4.5, 2.5, 0.08, 0.9, 1); } void fn_2_1CF0(omObjData *object) { - Vec sp20; - Vec sp14; - Vec sp8; - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); - temp_r31->type = 2; - sp20.x = 500; - sp20.y = 0; - sp20.z = -24300; - sp14.x = 200; - sp14.y = 100; - sp14.z = 100; - sp8.x = 1000; - sp8.y = 0; - sp8.z = -16300; - fn_2_FC40(40, &sp20, &sp14, &sp8); + Vec sp20; + Vec sp14; + Vec sp8; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); + temp_r31->type = 2; + sp20.x = 500; + sp20.y = 0; + sp20.z = -24300; + sp14.x = 200; + sp14.y = 100; + sp14.z = 100; + sp8.x = 1000; + sp8.y = 0; + sp8.z = -16300; + fn_2_FC40(40, &sp20, &sp14, &sp8); } void fn_2_91AC(omObjData *object, Vec *pos); void fn_2_1DE8(omObjData *object) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - omObjData *temp_r31; - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); - temp_r30->type = 2; - sp2C.x = 0; - sp2C.y = -150.0f+((1.0f/255.0f)*(300.0f*frandu8())); - sp2C.z = -23000; - fn_2_91AC(lbl_2_bss_100[0], &sp2C); - sp2C.x = 0; - sp2C.y = -150.0f+((1.0f/255.0f)*(300.0f*frandu8())); - sp2C.z = -25000; - fn_2_91AC(lbl_2_bss_100[1], &sp2C); - sp2C.x = 5500; - sp2C.y = 0; - sp2C.z = -29800; - sp20.x = 100; - sp20.y = 100; - sp20.z = 100; - sp14.x = -1500; - sp14.y = 0; - sp14.z = -24900; - temp_r31 = fn_2_FC40(20, &sp2C, &sp20, &sp14); - fn_2_E6BC((omObjData *)temp_r31->work[0], 6, 1.5f, 0.2f, 0.8f, 3.5f); - sp8.x = -650; - sp8.y = -360; - sp8.z = -26300; - lbl_2_bss_D0 = fn_2_10A88(&sp8, 3); - lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp8); + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + omObjData *temp_r31; + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); + temp_r30->type = 2; + sp2C.x = 0; + sp2C.y = -150.0f + ((1.0f / 255.0f) * (300.0f * frandu8())); + sp2C.z = -23000; + fn_2_91AC(lbl_2_bss_100[0], &sp2C); + sp2C.x = 0; + sp2C.y = -150.0f + ((1.0f / 255.0f) * (300.0f * frandu8())); + sp2C.z = -25000; + fn_2_91AC(lbl_2_bss_100[1], &sp2C); + sp2C.x = 5500; + sp2C.y = 0; + sp2C.z = -29800; + sp20.x = 100; + sp20.y = 100; + sp20.z = 100; + sp14.x = -1500; + sp14.y = 0; + sp14.z = -24900; + temp_r31 = fn_2_FC40(20, &sp2C, &sp20, &sp14); + fn_2_E6BC((omObjData *)temp_r31->work[0], 6, 1.5f, 0.2f, 0.8f, 3.5f); + sp8.x = -650; + sp8.y = -360; + sp8.z = -26300; + lbl_2_bss_D0 = fn_2_10A88(&sp8, 3); + lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp8); } void fn_2_20B0(omObjData *object) { - Vec sp8; - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); - temp_r30->type = 2; - Hu3DModelAttrReset(object->model[7], 1); - sp8.x = 0; - sp8.y = -370; - sp8.z = -43000; - lbl_2_bss_8 = fn_2_10A88(&sp8, 3); - lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp8); - sp8.x = 380; - sp8.y = -440; - sp8.z = -32000; - lbl_2_bss_CC = fn_2_10A88(&sp8, 3); - lbl_2_bss_90[2] = HuAudFXEmiterPlay(1291, &sp8); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0xC0000001); + Vec sp8; + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); + temp_r30->type = 2; + Hu3DModelAttrReset(object->model[7], 1); + sp8.x = 0; + sp8.y = -370; + sp8.z = -43000; + lbl_2_bss_8 = fn_2_10A88(&sp8, 3); + lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp8); + sp8.x = 380; + sp8.y = -440; + sp8.z = -32000; + lbl_2_bss_CC = fn_2_10A88(&sp8, 3); + lbl_2_bss_90[2] = HuAudFXEmiterPlay(1291, &sp8); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0xC0000001); } void fn_2_21F8(omObjData *object) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - s32 temp_r30; - HsfObject *temp_r29 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); - s32 temp_r28; - temp_r29->type = 2; - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelAttrReset(object->model[1], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[1], 0x40000001); - Hu3DModelAttrReset(object->model[3], 1); - lbl_2_bss_44.x = 0; - lbl_2_bss_44.y = 100; - lbl_2_bss_44.z = 0; - lbl_2_bss_38.x = 0; - lbl_2_bss_38.y = 1000; - lbl_2_bss_38.z = -1500; - lbl_2_bss_2C.x = 0; - lbl_2_bss_2C.y = 1; - lbl_2_bss_2C.z = 0; - Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); - Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); - lbl_2_bss_54 = lbl_2_bss_44; - fn_2_D088(NULL); - sp20 = lbl_2_bss_44; - VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp2C); - VECNormalize(&sp2C, &sp2C); - HuAudFXListnerSetEX(&sp20, &sp2C, lbl_2_bss_88, lbl_2_bss_84, 300, 300, 300); - sp14.x = 300; - sp14.y = -450; - sp14.z = -3100; - lbl_2_bss_D8 = fn_2_10A88(&sp14, 3); - lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp14); - sp14.x = -300; - sp14.y = -340; - sp14.z = -4720; - lbl_2_bss_D4 = fn_2_10A88(&sp14, 3); - lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp14); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0xC0000001); - temp_r28 = 4; - for(temp_r30=0; temp_r30model[0], lbl_2_data_124[0]); + s32 temp_r28; + temp_r29->type = 2; + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[1], 0x40000001); + Hu3DModelAttrReset(object->model[3], 1); + lbl_2_bss_44.x = 0; + lbl_2_bss_44.y = 100; + lbl_2_bss_44.z = 0; + lbl_2_bss_38.x = 0; + lbl_2_bss_38.y = 1000; + lbl_2_bss_38.z = -1500; + lbl_2_bss_2C.x = 0; + lbl_2_bss_2C.y = 1; + lbl_2_bss_2C.z = 0; + Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); + Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); + lbl_2_bss_54 = lbl_2_bss_44; + fn_2_D088(NULL); + sp20 = lbl_2_bss_44; + VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp2C); + VECNormalize(&sp2C, &sp2C); + HuAudFXListnerSetEX(&sp20, &sp2C, lbl_2_bss_88, lbl_2_bss_84, 300, 300, 300); + sp14.x = 300; + sp14.y = -450; + sp14.z = -3100; + lbl_2_bss_D8 = fn_2_10A88(&sp14, 3); + lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp14); + sp14.x = -300; + sp14.y = -340; + sp14.z = -4720; + lbl_2_bss_D4 = fn_2_10A88(&sp14, 3); + lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp14); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0xC0000001); + temp_r28 = 4; + for (temp_r30 = 0; temp_r30 < temp_r28; temp_r30++) { + sp8.x = -340.0f + ((1.0f / 255.0f) * (680.0f * frandu8())); + sp8.y = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + sp8.z = ((-1550.0f - (temp_r30 * 260)) - 40.0f) + ((1.0f / 255.0f) * (80.0f * frandu8())); + fn_2_10A88(&sp8, 0); + } } typedef struct work_2FA4 { - s32 unk0; - float unk4; - Vec unk8; - Vec unk14[2]; - s16 unk2C; + s32 unk0; + float unk4; + Vec unk8; + Vec unk14[2]; + s16 unk2C; } Work2FA4; void fn_2_26E0(omObjData *object) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - Work2FA4 *temp_r30; - s32 temp_r29; - Hu3DModelAttrReset(object->model[4], 1); - Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); - Hu3DModelAttrReset(object->model[8], 1); - Hu3DModelAttrSet(object->model[8], 0x40000001); - Hu3DModelAttrSet(object->model[4], 0x40000001); - Hu3DModelShadowMapSet(object->model[4]); - Hu3DModelAttrReset(object->model[5], 1); - Hu3DModelPosSet(object->model[4], 0, 0, 0); - Hu3DModelAmbSet(object->model[4], 1, 1, 1); - Hu3DModelPosSet(object->model[5], 0, 0, 0); - Hu3DModelPosSet(object->model[6], 0, 0, 0); - temp_r30 = lbl_2_bss_10C->data; - if(lbl_2_bss_BA) { - temp_r30->unk14[0].x = 210; - temp_r30->unk14[0].y = 1018; - temp_r30->unk14[0].z = 0; - temp_r30->unk14[1].x = -160; - temp_r30->unk14[1].y = 1020; - temp_r30->unk14[1].z = -50; - for(temp_r29=0; temp_r29<2; temp_r29++) { - Hu3DModelPosSet(object->model[temp_r29+9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); - Hu3DModelAttrReset(object->model[temp_r29+9], 1); - } - Hu3DMotionSet(object->model[10], object->motion[0]); - Hu3DMotionSet(object->model[9], object->motion[2]); - } else { - temp_r30->unk14[0].x = 210; - temp_r30->unk14[0].y = 1018; - temp_r30->unk14[0].z = 0; - temp_r30->unk14[1].x = -160; - temp_r30->unk14[1].y = 1020; - temp_r30->unk14[1].z = -50; - for(temp_r29=0; temp_r29<2; temp_r29++) { - Hu3DModelPosSet(object->model[temp_r29+9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); - Hu3DModelAttrReset(object->model[temp_r29+9], 1); - } - Hu3DMotionSet(object->model[10], object->motion[1]); - Hu3DMotionSet(object->model[9], object->motion[2]); - } - Hu3DModelAttrSet(object->model[9], 0x40000001); - Hu3DModelAttrSet(object->model[10], 0x40000001); - Hu3DModelRotSet(object->model[9], 0, 90, 0); - Hu3DModelPosSet(object->model[11], 210, 1018, 0); - Hu3DModelRotSet(object->model[11], 0, 90, 0); - Hu3DModelAttrReset(object->model[11], 1); - Hu3DModelAttrSet(object->model[11], 0x40000001); - sp2C.x = 0; - sp2C.y = 1300; - sp2C.z = 1300; - sp20.x = 0; - sp20.y = 920; - sp20.z = -100; - sp14.x = 0; - sp14.y = 1; - sp14.z = 0; - Hu3DCameraPosSetV(1, &sp2C, &sp14, &sp20); - lbl_2_bss_12C = 45; - Hu3DShadowData.unk_08.x = lbl_2_bss_12C; - MTXLightPerspective(Hu3DShadowData.unk_68, lbl_2_bss_12C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); - VECSubtract(&sp20, &sp2C, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp2C, &sp8); + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + Work2FA4 *temp_r30; + s32 temp_r29; + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); + Hu3DModelAttrReset(object->model[8], 1); + Hu3DModelAttrSet(object->model[8], 0x40000001); + Hu3DModelAttrSet(object->model[4], 0x40000001); + Hu3DModelShadowMapSet(object->model[4]); + Hu3DModelAttrReset(object->model[5], 1); + Hu3DModelPosSet(object->model[4], 0, 0, 0); + Hu3DModelAmbSet(object->model[4], 1, 1, 1); + Hu3DModelPosSet(object->model[5], 0, 0, 0); + Hu3DModelPosSet(object->model[6], 0, 0, 0); + temp_r30 = lbl_2_bss_10C->data; + if (lbl_2_bss_BA) { + temp_r30->unk14[0].x = 210; + temp_r30->unk14[0].y = 1018; + temp_r30->unk14[0].z = 0; + temp_r30->unk14[1].x = -160; + temp_r30->unk14[1].y = 1020; + temp_r30->unk14[1].z = -50; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); + Hu3DModelAttrReset(object->model[temp_r29 + 9], 1); + } + Hu3DMotionSet(object->model[10], object->motion[0]); + Hu3DMotionSet(object->model[9], object->motion[2]); + } + else { + temp_r30->unk14[0].x = 210; + temp_r30->unk14[0].y = 1018; + temp_r30->unk14[0].z = 0; + temp_r30->unk14[1].x = -160; + temp_r30->unk14[1].y = 1020; + temp_r30->unk14[1].z = -50; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); + Hu3DModelAttrReset(object->model[temp_r29 + 9], 1); + } + Hu3DMotionSet(object->model[10], object->motion[1]); + Hu3DMotionSet(object->model[9], object->motion[2]); + } + Hu3DModelAttrSet(object->model[9], 0x40000001); + Hu3DModelAttrSet(object->model[10], 0x40000001); + Hu3DModelRotSet(object->model[9], 0, 90, 0); + Hu3DModelPosSet(object->model[11], 210, 1018, 0); + Hu3DModelRotSet(object->model[11], 0, 90, 0); + Hu3DModelAttrReset(object->model[11], 1); + Hu3DModelAttrSet(object->model[11], 0x40000001); + sp2C.x = 0; + sp2C.y = 1300; + sp2C.z = 1300; + sp20.x = 0; + sp20.y = 920; + sp20.z = -100; + sp14.x = 0; + sp14.y = 1; + sp14.z = 0; + Hu3DCameraPosSetV(1, &sp2C, &sp14, &sp20); + lbl_2_bss_12C = 45; + Hu3DShadowData.unk_08.x = lbl_2_bss_12C; + MTXLightPerspective(Hu3DShadowData.unk_68, lbl_2_bss_12C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); + VECSubtract(&sp20, &sp2C, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp2C, &sp8); } void fn_2_2CBC(omObjData *object) { - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); - temp_r30->type = -1; - Hu3DModelAttrSet(object->model[3], 1); - lbl_2_bss_D8->work[0] = 1; - Hu3DModelAttrSet(object->model[2], 1); - HuAudFXStop(lbl_2_bss_90[0]); - HuAudFXStop(lbl_2_bss_90[1]); + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); + temp_r30->type = -1; + Hu3DModelAttrSet(object->model[3], 1); + lbl_2_bss_D8->work[0] = 1; + Hu3DModelAttrSet(object->model[2], 1); + HuAudFXStop(lbl_2_bss_90[0]); + HuAudFXStop(lbl_2_bss_90[1]); } void fn_2_2D64(omObjData *object) { - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); - temp_r31->type = -1; - lbl_2_bss_D4->work[0] = 1; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); + temp_r31->type = -1; + lbl_2_bss_D4->work[0] = 1; } void fn_2_2DCC(omObjData *object) { - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); - temp_r31->type = -1; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); + temp_r31->type = -1; } void fn_2_2E20(omObjData *object) { - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); - temp_r30->type = -1; - Hu3DModelAttrSet(lbl_2_bss_100[0]->model[0], 1); - Hu3DModelAttrSet(lbl_2_bss_100[1]->model[0], 1); - lbl_2_bss_D0->work[0] = 1; - HuAudFXStop(lbl_2_bss_90[0]); + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); + temp_r30->type = -1; + Hu3DModelAttrSet(lbl_2_bss_100[0]->model[0], 1); + Hu3DModelAttrSet(lbl_2_bss_100[1]->model[0], 1); + lbl_2_bss_D0->work[0] = 1; + HuAudFXStop(lbl_2_bss_90[0]); } void fn_2_2ED0(omObjData *object) { - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); - temp_r30->type = -1; - Hu3DModelAttrSet(object->model[7], 1); - Hu3DModelAttrSet(object->model[0], 1); - lbl_2_bss_8->work[0] = 1; - lbl_2_bss_CC->work[0] = 1; - Hu3DModelAttrSet(object->model[2], 1); - HuAudFXStop(lbl_2_bss_90[1]); - HuAudFXStop(lbl_2_bss_90[2]); + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); + temp_r30->type = -1; + Hu3DModelAttrSet(object->model[7], 1); + Hu3DModelAttrSet(object->model[0], 1); + lbl_2_bss_8->work[0] = 1; + lbl_2_bss_CC->work[0] = 1; + Hu3DModelAttrSet(object->model[2], 1); + HuAudFXStop(lbl_2_bss_90[1]); + HuAudFXStop(lbl_2_bss_90[2]); } -void fn_2_2F9C(omObjData *object) -{ - -} +void fn_2_2F9C(omObjData *object) { } -void fn_2_2FA0(omObjData *object) -{ - -} +void fn_2_2FA0(omObjData *object) { } void fn_2_33B4(omObjData *object); void fn_2_2FA4(omObjData *object) { - Work2FA4 *temp_r30; - s32 temp_r29; - HsfObject *temp_r28; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FA4), MEMORY_DEFAULT_NUM); - temp_r30 = object->data; - fn_2_D088(NULL); - temp_r30->unk0 = 0; - temp_r30->unk8.x = 0; - temp_r30->unk8.y = 0; - temp_r30->unk8.z = 0; - temp_r30->unk2C = 0; - object->model[0] = Hu3DModelCreateFile(0x200000); - Hu3DModelAttrSet(object->model[0], 1); - object->model[1] = Hu3DModelCreateFile(0x200001); - Hu3DModelAttrSet(object->model[1], 1); - object->model[2] = Hu3DModelCreateFile(0x200007); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); - object->model[3] = Hu3DModelCreateFile(0x20001F); - Hu3DModelAttrSet(object->model[3], 1); - object->model[4] = Hu3DModelCreateFile(0x200020); - Hu3DModelAttrSet(object->model[4], 1); - object->model[11] = Hu3DModelCreateFile(0x20002C); - Hu3DModelAttrSet(object->model[11], 1); - object->model[7] = Hu3DModelCreateFile(0x200003); - Hu3DModelAttrSet(object->model[7], 1); - object->model[8] = Hu3DModelCreateFile(0x200023); - Hu3DModelAttrSet(object->model[8], 1); - object->model[9] = Hu3DModelCreateFile(0x200028); - Hu3DModelAttrSet(object->model[9], 1); - object->model[10] = Hu3DModelCreateFile(0x200028); - Hu3DModelAttrSet(object->model[10], 1); - Hu3DModelShadowSet(object->model[10]); - object->model[5] = Hu3DModelCreateFile(0x200021); - Hu3DModelAttrSet(object->model[5], 1); - object->model[6] = Hu3DModelCreateFile(0x200022); - Hu3DModelAttrSet(object->model[6], 1); - object->motion[0] = Hu3DJointMotionFile(object->model[10], 0x200029); - object->motion[1] = Hu3DJointMotionFile(object->model[10], 0x20002A); - object->motion[2] = Hu3DJointMotionFile(object->model[9], 0x20002B); - Hu3DModelPosSet(object->model[1], 0, 0, -1500); - Hu3DModelShadowMapSet(object->model[0]); - for(temp_r29=0; temp_r29<5; temp_r29++) { - temp_r28 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[temp_r29]); - temp_r28->type = -1; - } - fn_2_21F8(object); - object->func = fn_2_33B4; + Work2FA4 *temp_r30; + s32 temp_r29; + HsfObject *temp_r28; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FA4), MEMORY_DEFAULT_NUM); + temp_r30 = object->data; + fn_2_D088(NULL); + temp_r30->unk0 = 0; + temp_r30->unk8.x = 0; + temp_r30->unk8.y = 0; + temp_r30->unk8.z = 0; + temp_r30->unk2C = 0; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x00)); + Hu3DModelAttrSet(object->model[0], 1); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x01)); + Hu3DModelAttrSet(object->model[1], 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x07)); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0x40000001); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x1F)); + Hu3DModelAttrSet(object->model[3], 1); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x20)); + Hu3DModelAttrSet(object->model[4], 1); + object->model[11] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x2C)); + Hu3DModelAttrSet(object->model[11], 1); + object->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x03)); + Hu3DModelAttrSet(object->model[7], 1); + object->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x23)); + Hu3DModelAttrSet(object->model[8], 1); + object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x28)); + Hu3DModelAttrSet(object->model[9], 1); + object->model[10] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x28)); + Hu3DModelAttrSet(object->model[10], 1); + Hu3DModelShadowSet(object->model[10]); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x21)); + Hu3DModelAttrSet(object->model[5], 1); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x22)); + Hu3DModelAttrSet(object->model[6], 1); + object->motion[0] = Hu3DJointMotionFile(object->model[10], DATA_MAKE_NUM(DATADIR_M401, 0x29)); + object->motion[1] = Hu3DJointMotionFile(object->model[10], DATA_MAKE_NUM(DATADIR_M401, 0x2A)); + object->motion[2] = Hu3DJointMotionFile(object->model[9], DATA_MAKE_NUM(DATADIR_M401, 0x2B)); + Hu3DModelPosSet(object->model[1], 0, 0, -1500); + Hu3DModelShadowMapSet(object->model[0]); + for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { + temp_r28 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[temp_r29]); + temp_r28->type = -1; + } + fn_2_21F8(object); + object->func = fn_2_33B4; } void fn_2_33B4(omObjData *object) { - Hu3DModelPosSet(object->model[3], 110, 5.0*sind(lbl_2_bss_10), -1500); - lbl_2_bss_10 += 2.0f; - if(lbl_2_bss_10 >= 360.0f) { - lbl_2_bss_10 -= 360.0f; - } + Hu3DModelPosSet(object->model[3], 110, 5.0 * sind(lbl_2_bss_10), -1500); + lbl_2_bss_10 += 2.0f; + if (lbl_2_bss_10 >= 360.0f) { + lbl_2_bss_10 -= 360.0f; + } } void fn_2_9E28(float arg1, float arg2); void fn_2_34B8(omObjData *object) { - Vec sp8; - Work2FA4 *temp_r31; - s32 temp_r30; - s32 temp_r28; - temp_r31 = object->data; - if(lbl_2_bss_60.z < -5000.0f && temp_r31->unk0 == 0) { - temp_r31->unk0 = 1; - fn_2_9E28(-15500, -20000); - } - if(lbl_2_bss_6C.z <= lbl_2_data_A0[lbl_2_bss_C]) { - lbl_2_bss_C++; - lbl_2_data_CC[lbl_2_bss_C][0](object); - } - if(lbl_2_bss_6C.z <= lbl_2_data_B4[lbl_2_bss_E]) { - lbl_2_data_CC[lbl_2_bss_E][1](object); - lbl_2_bss_E++; - } - if(lbl_2_bss_6C.z <= -40000.0f) { - lbl_2_bss_BE = 1; - } - if(temp_r31->unk2C) { - temp_r31->unk2C--; - } else { - temp_r31->unk2C = 274; - if(lbl_2_bss_60.z > -31260.0f) { - temp_r28 = 4; - for(temp_r30=0; temp_r30data; + if (lbl_2_bss_60.z < -5000.0f && temp_r31->unk0 == 0) { + temp_r31->unk0 = 1; + fn_2_9E28(-15500, -20000); + } + if (lbl_2_bss_6C.z <= lbl_2_data_A0[lbl_2_bss_C]) { + lbl_2_bss_C++; + lbl_2_data_CC[lbl_2_bss_C][0](object); + } + if (lbl_2_bss_6C.z <= lbl_2_data_B4[lbl_2_bss_E]) { + lbl_2_data_CC[lbl_2_bss_E][1](object); + lbl_2_bss_E++; + } + if (lbl_2_bss_6C.z <= -40000.0f) { + lbl_2_bss_BE = 1; + } + if (temp_r31->unk2C) { + temp_r31->unk2C--; + } + else { + temp_r31->unk2C = 274; + if (lbl_2_bss_60.z > -31260.0f) { + temp_r28 = 4; + for (temp_r30 = 0; temp_r30 < temp_r28; temp_r30++) { + sp8.x = -340.0f + ((1.0f / 255.0f) * (680.0f * frandu8())); + sp8.y = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + sp8.z = ((-4000.0f - (temp_r30 * 240)) - 40.0f) + ((1.0f / 255.0f) * (80.0f * frandu8())); + fn_2_10A88(&sp8, 0); + } + } + } } void fn_2_3838(omObjData *object) { - Work2FA4 *temp_r31; - s32 temp_r29; - float temp_f31; - temp_r31 = object->data; - temp_r31->unk4 = 5.0*sind(temp_r31->unk8.x); - temp_r31->unk8.y += temp_r31->unk8.z; - Hu3DModelPosSet(object->model[4], temp_r31->unk8.y, temp_r31->unk4, 0); - Hu3DModelPosSet(object->model[5], temp_r31->unk8.y, 0, 0); - Hu3DModelScaleSet(object->model[5], 1.0f-(0.09f*(temp_r31->unk4/5.0f)), 1.0f, 1.0f-(0.09f*(temp_r31->unk4/5.0f))); - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_f31 = temp_r31->unk14[temp_r29].y+(5.0*sind(temp_r31->unk8.x)); - temp_r31->unk14[temp_r29].x += temp_r31->unk8.z; - Hu3DModelPosSet(object->model[temp_r29+9], temp_r31->unk14[temp_r29].x, temp_f31, temp_r31->unk14[temp_r29].z); - } - Hu3DModelPosSet(object->model[11], temp_r31->unk14[0].x, temp_f31, temp_r31->unk14[0].z); - temp_r31->unk8.z *= 1.04f; - if(temp_r31->unk8.z > 12.0f) { - temp_r31->unk8.z = 12.0f; - } - temp_r31->unk8.x += 2.0f; - if(temp_r31->unk8.x >= 360.0f) { - temp_r31->unk8.x -= 360.0f; - } - lbl_2_data_30.x = temp_r31->unk8.y; - lbl_2_data_48.x = temp_r31->unk8.y; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + Work2FA4 *temp_r31; + s32 temp_r29; + float temp_f31; + temp_r31 = object->data; + temp_r31->unk4 = 5.0 * sind(temp_r31->unk8.x); + temp_r31->unk8.y += temp_r31->unk8.z; + Hu3DModelPosSet(object->model[4], temp_r31->unk8.y, temp_r31->unk4, 0); + Hu3DModelPosSet(object->model[5], temp_r31->unk8.y, 0, 0); + Hu3DModelScaleSet(object->model[5], 1.0f - (0.09f * (temp_r31->unk4 / 5.0f)), 1.0f, 1.0f - (0.09f * (temp_r31->unk4 / 5.0f))); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_f31 = temp_r31->unk14[temp_r29].y + (5.0 * sind(temp_r31->unk8.x)); + temp_r31->unk14[temp_r29].x += temp_r31->unk8.z; + Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r31->unk14[temp_r29].x, temp_f31, temp_r31->unk14[temp_r29].z); + } + Hu3DModelPosSet(object->model[11], temp_r31->unk14[0].x, temp_f31, temp_r31->unk14[0].z); + temp_r31->unk8.z *= 1.04f; + if (temp_r31->unk8.z > 12.0f) { + temp_r31->unk8.z = 12.0f; + } + temp_r31->unk8.x += 2.0f; + if (temp_r31->unk8.x >= 360.0f) { + temp_r31->unk8.x -= 360.0f; + } + lbl_2_data_30.x = temp_r31->unk8.y; + lbl_2_data_48.x = temp_r31->unk8.y; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); } void fn_2_3F28(omObjData *object); s32 lbl_2_data_158[][10] = { - 0x005F002A, - 0x00200031, - 0x005F0000, - 0x005F002B, - 0x005F0005, - 0x005F0017, - 0x00200039, - 0x00200041, - 0x005F0022, - 0x00200049, - 0x001A002A, - 0x00200032, - 0x001A0000, - 0x001A002B, - 0x001A0005, - 0x001A0017, - 0x0020003A, - 0x00200042, - 0x001A0022, - 0x0020004A, - 0x006D002A, - 0x00200033, - 0x006D0000, - 0x006D002B, - 0x006D0005, - 0x006D0017, - 0x0020003B, - 0x00200043, - 0x006D0022, - 0x0020004B, - 0x008A002A, - 0x00200034, - 0x008A0000, - 0x008A002B, - 0x008A0005, - 0x008A0017, - 0x0020003C, - 0x00200044, - 0x008A0022, - 0x0020004C, - 0x0085002A, - 0x00200035, - 0x00850000, - 0x0085002B, - 0x00850005, - 0x00850017, - 0x0020003D, - 0x00200045, - 0x00850022, - 0x0020004D, - 0x0011002A, - 0x00200036, - 0x00110000, - 0x0011002B, - 0x00110005, - 0x00110017, - 0x0020003E, - 0x00200046, - 0x00110022, - 0x0020004E, - 0x000D002A, - 0x00200037, - 0x000D0000, - 0x000D002B, - 0x000D0005, - 0x000D0017, - 0x0020003F, - 0x00200047, - 0x000D0022, - 0x0020004F, - 0x0081002A, - 0x00200038, - 0x00810000, - 0x0081002B, - 0x00810005, - 0x00810017, - 0x00200040, - 0x00200048, - 0x00810022, - 0x00200050, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x31), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x39), + DATA_MAKE_NUM(DATADIR_M401, 0x41), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x49), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x32), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3A), + DATA_MAKE_NUM(DATADIR_M401, 0x42), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x33), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x05), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3B), + DATA_MAKE_NUM(DATADIR_M401, 0x43), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x34), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3C), + DATA_MAKE_NUM(DATADIR_M401, 0x44), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4C), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x35), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3D), + DATA_MAKE_NUM(DATADIR_M401, 0x45), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x36), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3E), + DATA_MAKE_NUM(DATADIR_M401, 0x46), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x37), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3F), + DATA_MAKE_NUM(DATADIR_M401, 0x47), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4F), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x38), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x40), + DATA_MAKE_NUM(DATADIR_M401, 0x48), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x50), }; Vec lbl_2_data_298[] = { - -150, 1250, -1400, - -50, 1250, -1400, - 50, 1250, -1400, - 150, 1250, -1400, + -150, + 1250, + -1400, + -50, + 1250, + -1400, + 50, + 1250, + -1400, + 150, + 1250, + -1400, }; Vec lbl_2_data_2C8[] = { - -300, 0, -1500, - -100, 0, -1500, - 100, 0, -1500, - 300, 0, -1500, + -300, + 0, + -1500, + -100, + 0, + -1500, + 100, + 0, + -1500, + 300, + 0, + -1500, }; void fn_2_3F28(omObjData *object); void fn_2_3B24(omObjData *object) { - M401WorkPlayer *temp_r31; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401WorkPlayer), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - temp_r29 = object->work[0]; - temp_r31->unk4 = temp_r29; - temp_r31->unk8 = GWPlayerCfg[temp_r29].pad_idx; - temp_r27 = GWPlayerCfg[temp_r29].character; - temp_r31->unk86 = lbl_2_data_4[temp_r27]; - object->model[0] = CharModelCreate(temp_r31->unk86, 4); - if(temp_r29 == 0) { - object->model[2] = Hu3DModelCreateFile(0x200025); - object->model[3] = Hu3DModelCreateFile(0x200027); - } else { - object->model[2] = Hu3DModelLink(lbl_2_bss_118[0]->model[2]); - object->model[3] = Hu3DModelCreateFile(0x200027); - } - Hu3DModelAttrSet(object->model[3], 0x40000002); - Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000002); - Hu3DModelLayerSet(object->model[3], 7); - for(temp_r28=0; temp_r28<10; temp_r28++) { - object->motion[temp_r28] = CharModelMotionCreate(lbl_2_data_4[temp_r27], lbl_2_data_158[temp_r27][temp_r28]); - } - CharModelMotionSet(temp_r31->unk86, object->motion[2]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); - Hu3DModelLayerSet(object->model[2], 2); - Hu3DModelAmbSet(object->model[0], 1, 1, 1); - Hu3DModelShadowSet(object->model[0]); - CharModelVoiceEnableSet(lbl_2_data_4[temp_r27], object->motion[4], 0); - temp_r31->unkC = lbl_2_data_2C8[temp_r29]; - temp_r31->unk58.z = 0; - omSetTra(object, lbl_2_data_298[temp_r29].x, lbl_2_data_298[temp_r29].y, lbl_2_data_298[temp_r29].z); - temp_r31->unk0 = 0; - temp_r31->unk6E = 70; - temp_r31->unk24.x = lbl_2_data_2C8[temp_r29].x; - temp_r31->unk24.y = lbl_2_data_2C8[temp_r29].y; - temp_r31->unk24.z = 800+lbl_2_data_2C8[temp_r29].z; - temp_r31->unk6A = 0; - temp_r31->unk72 = 0; - temp_r31->unk74 = 0; - temp_r31->unk78 = 0; - temp_r31->unk7A = 0; - temp_r31->unk7C = 0; - temp_r31->unk76 = 0; - temp_r31->unk88 = 0; - temp_r31->unk84 = 0; - temp_r31->unk8C = 0; - temp_r31->unk8E = 0; - temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; - temp_r31->unk90 = 0; - temp_r31->unkA0 = temp_r31->unkA1 = 0; - CharModelMotionDataClose(temp_r31->unk86); - object->func = fn_2_3F28; + M401WorkPlayer *temp_r31; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401WorkPlayer), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + temp_r29 = object->work[0]; + temp_r31->unk4 = temp_r29; + temp_r31->unk8 = GWPlayerCfg[temp_r29].pad_idx; + temp_r27 = GWPlayerCfg[temp_r29].character; + temp_r31->unk86 = lbl_2_data_4[temp_r27]; + object->model[0] = CharModelCreate(temp_r31->unk86, 4); + if (temp_r29 == 0) { + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x25)); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x27)); + } + else { + object->model[2] = Hu3DModelLink(lbl_2_bss_118[0]->model[2]); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x27)); + } + Hu3DModelAttrSet(object->model[3], 0x40000002); + Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000002); + Hu3DModelLayerSet(object->model[3], 7); + for (temp_r28 = 0; temp_r28 < 10; temp_r28++) { + object->motion[temp_r28] = CharModelMotionCreate(lbl_2_data_4[temp_r27], lbl_2_data_158[temp_r27][temp_r28]); + } + CharModelMotionSet(temp_r31->unk86, object->motion[2]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelLayerSet(object->model[2], 2); + Hu3DModelAmbSet(object->model[0], 1, 1, 1); + Hu3DModelShadowSet(object->model[0]); + CharModelVoiceEnableSet(lbl_2_data_4[temp_r27], object->motion[4], 0); + temp_r31->unkC = lbl_2_data_2C8[temp_r29]; + temp_r31->unk58.z = 0; + omSetTra(object, lbl_2_data_298[temp_r29].x, lbl_2_data_298[temp_r29].y, lbl_2_data_298[temp_r29].z); + temp_r31->unk0 = 0; + temp_r31->unk6E = 70; + temp_r31->unk24.x = lbl_2_data_2C8[temp_r29].x; + temp_r31->unk24.y = lbl_2_data_2C8[temp_r29].y; + temp_r31->unk24.z = 800 + lbl_2_data_2C8[temp_r29].z; + temp_r31->unk6A = 0; + temp_r31->unk72 = 0; + temp_r31->unk74 = 0; + temp_r31->unk78 = 0; + temp_r31->unk7A = 0; + temp_r31->unk7C = 0; + temp_r31->unk76 = 0; + temp_r31->unk88 = 0; + temp_r31->unk84 = 0; + temp_r31->unk8C = 0; + temp_r31->unk8E = 0; + temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; + temp_r31->unk90 = 0; + temp_r31->unkA0 = temp_r31->unkA1 = 0; + CharModelMotionDataClose(temp_r31->unk86); + object->func = fn_2_3F28; } void fn_2_6B44(omObjData *object); @@ -1156,395 +1125,403 @@ void fn_2_D3E8(omObjData *object); void fn_2_3F28(omObjData *object) { - Vec sp28; - Vec sp1C; - Vec sp10; - M401WorkPlayer *temp_r31; - CameraData *temp_r29; - omObjData *temp_r28; - UnkWork10A88 *temp_r27; - float temp_f27; - temp_r31 = object->data; - switch(temp_r31->unk0) { - case 0: - if(--temp_r31->unk6E == 0) { - temp_r31->unk0 = 1; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[4], 0, 20, 0); - temp_r31->unk58.x = 16; - temp_r31->unk58.y = 0; - } - break; - - case 1: - if(object->trans.y < 1100) { - temp_r31->unk0 = 2; - temp_f27 = VECMagPoint(object->trans.x-temp_r31->unk24.x, object->trans.y-temp_r31->unk24.y, object->trans.z-temp_r31->unk24.z); - temp_r31->unk58.z = temp_f27; - temp_r31->unk58.y = 0; - temp_r31->unk6E = 110; - temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 2); - temp_r31->unk50 = temp_r28; - temp_r27 = temp_r28->data; - temp_r27->unkC = object; - fn_2_6B44(object); - temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 4); - temp_r27 = temp_r28->data; - temp_r27->unkC = object; - temp_r31->unk4C = temp_r28; - temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 5); - temp_r27 = temp_r28->data; - temp_r27->unkC = object; - temp_r31->unk48 = temp_r28; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 80, 0x40000001); - temp_r31->unk30.x = object->trans.x; - temp_r31->unk30.y = object->trans.y; - temp_r31->unk30.z = object->trans.z; - Hu3DModelAttrReset(object->model[3], 1); - Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); - Hu3DModelPosSet(object->model[3], object->trans.x, 100, 100+object->trans.z); - Hu3DMotionTimeSet(object->model[3], 0); - if(temp_r31->unk4 == 0) { - HuAudFXPlay(1281); - } - omVibrate(temp_r31->unk4, 12, 4, 2); - } else { - object->trans.y += temp_r31->unk58.x-(0.07f*temp_r31->unk58.y*temp_r31->unk58.y); - object->trans.z += 2.0f; - temp_r31->unk58.y += 1.0f; - } - break; - - case 2: - temp_r29 = &Hu3DCamera[0]; - sp1C = temp_r31->unk24; - sp10 = temp_r31->unk30; - VECSubtract(&sp1C, &sp10, &sp28); - VECNormalize(&sp28, &sp28); - object->trans.x = temp_r31->unk30.x+(temp_r31->unk58.z*(sp28.x*sind(temp_r31->unk58.y))); - object->trans.y = temp_r31->unk30.y+(temp_r31->unk58.z*(sp28.y*sind(temp_r31->unk58.y))); - object->trans.z = temp_r31->unk30.z+(temp_r31->unk58.z*(sp28.z*sind(temp_r31->unk58.y))); - temp_r31->unk58.y += 9.0f/11.0f; - omSetRot(object, atan2d(sp28.y, sp28.z)+90.0, 0, 0); - temp_f27 = VECMagPoint(object->trans.x-sp1C.x, object->trans.y-sp1C.y, object->trans.z-sp1C.z); - if(--temp_r31->unk6E == 60 && temp_r31->unk4 == 0 && lbl_2_bss_4 == NULL) { - temp_r29 = &Hu3DCamera[0]; - lbl_2_bss_4 = omAddObjEx(HuPrcCurrentGet(), 1400, 0, 0, -1, fn_2_D3E8); - lbl_2_bss_4->trans.x = temp_r29->pos.x; - lbl_2_bss_4->trans.y = temp_r29->pos.y; - lbl_2_bss_4->trans.z = temp_r29->pos.z; - lbl_2_bss_4->rot.x = temp_r29->target.x; - lbl_2_bss_4->rot.y = temp_r29->target.y; - lbl_2_bss_4->rot.z = temp_r29->target.z; - lbl_2_bss_4->scale.x = 0; - } - if(temp_r31->unk6E == 0) { - temp_r31->unk0 = 3; - temp_r31->unk4C->work[0] = 1; - temp_r31->unk48->work[0] = 1; - } - fn_2_6B44(object); - break; - - case 3: - sp1C.x = lbl_2_bss_108->trans.x; - sp1C.y = lbl_2_data_298[temp_r31->unk4].y; - sp1C.z = lbl_2_bss_108->trans.z; - sp10.x = object->trans.x; - sp10.y = object->trans.y; - sp10.z = object->trans.z; - VECSubtract(&sp1C, &sp10, &sp28); - VECNormalize(&sp28, &sp28); - object->rot.x *= 0.95f; - if(object->rot.x < 1.0f) { - object->rot.x = 0.0f; - } - omSetRot(object, object->rot.x, atan2d(sp28.x, sp28.z), 0); - fn_2_6B44(object); - break; - } + Vec sp28; + Vec sp1C; + Vec sp10; + M401WorkPlayer *temp_r31; + CameraData *temp_r29; + omObjData *temp_r28; + UnkWork10A88 *temp_r27; + float temp_f27; + temp_r31 = object->data; + switch (temp_r31->unk0) { + case 0: + if (--temp_r31->unk6E == 0) { + temp_r31->unk0 = 1; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[4], 0, 20, 0); + temp_r31->unk58.x = 16; + temp_r31->unk58.y = 0; + } + break; + + case 1: + if (object->trans.y < 1100) { + temp_r31->unk0 = 2; + temp_f27 = VECMagPoint(object->trans.x - temp_r31->unk24.x, object->trans.y - temp_r31->unk24.y, object->trans.z - temp_r31->unk24.z); + temp_r31->unk58.z = temp_f27; + temp_r31->unk58.y = 0; + temp_r31->unk6E = 110; + temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 2); + temp_r31->unk50 = temp_r28; + temp_r27 = temp_r28->data; + temp_r27->unkC = object; + fn_2_6B44(object); + temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 4); + temp_r27 = temp_r28->data; + temp_r27->unkC = object; + temp_r31->unk4C = temp_r28; + temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 5); + temp_r27 = temp_r28->data; + temp_r27->unkC = object; + temp_r31->unk48 = temp_r28; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 80, 0x40000001); + temp_r31->unk30.x = object->trans.x; + temp_r31->unk30.y = object->trans.y; + temp_r31->unk30.z = object->trans.z; + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); + Hu3DModelPosSet(object->model[3], object->trans.x, 100, 100 + object->trans.z); + Hu3DMotionTimeSet(object->model[3], 0); + if (temp_r31->unk4 == 0) { + HuAudFXPlay(1281); + } + omVibrate(temp_r31->unk4, 12, 4, 2); + } + else { + object->trans.y += temp_r31->unk58.x - (0.07f * temp_r31->unk58.y * temp_r31->unk58.y); + object->trans.z += 2.0f; + temp_r31->unk58.y += 1.0f; + } + break; + + case 2: + temp_r29 = &Hu3DCamera[0]; + sp1C = temp_r31->unk24; + sp10 = temp_r31->unk30; + VECSubtract(&sp1C, &sp10, &sp28); + VECNormalize(&sp28, &sp28); + object->trans.x = temp_r31->unk30.x + (temp_r31->unk58.z * (sp28.x * sind(temp_r31->unk58.y))); + object->trans.y = temp_r31->unk30.y + (temp_r31->unk58.z * (sp28.y * sind(temp_r31->unk58.y))); + object->trans.z = temp_r31->unk30.z + (temp_r31->unk58.z * (sp28.z * sind(temp_r31->unk58.y))); + temp_r31->unk58.y += 9.0f / 11.0f; + omSetRot(object, atan2d(sp28.y, sp28.z) + 90.0, 0, 0); + temp_f27 = VECMagPoint(object->trans.x - sp1C.x, object->trans.y - sp1C.y, object->trans.z - sp1C.z); + if (--temp_r31->unk6E == 60 && temp_r31->unk4 == 0 && lbl_2_bss_4 == NULL) { + temp_r29 = &Hu3DCamera[0]; + lbl_2_bss_4 = omAddObjEx(HuPrcCurrentGet(), 1400, 0, 0, -1, fn_2_D3E8); + lbl_2_bss_4->trans.x = temp_r29->pos.x; + lbl_2_bss_4->trans.y = temp_r29->pos.y; + lbl_2_bss_4->trans.z = temp_r29->pos.z; + lbl_2_bss_4->rot.x = temp_r29->target.x; + lbl_2_bss_4->rot.y = temp_r29->target.y; + lbl_2_bss_4->rot.z = temp_r29->target.z; + lbl_2_bss_4->scale.x = 0; + } + if (temp_r31->unk6E == 0) { + temp_r31->unk0 = 3; + temp_r31->unk4C->work[0] = 1; + temp_r31->unk48->work[0] = 1; + } + fn_2_6B44(object); + break; + + case 3: + sp1C.x = lbl_2_bss_108->trans.x; + sp1C.y = lbl_2_data_298[temp_r31->unk4].y; + sp1C.z = lbl_2_bss_108->trans.z; + sp10.x = object->trans.x; + sp10.y = object->trans.y; + sp10.z = object->trans.z; + VECSubtract(&sp1C, &sp10, &sp28); + VECNormalize(&sp28, &sp28); + object->rot.x *= 0.95f; + if (object->rot.x < 1.0f) { + object->rot.x = 0.0f; + } + omSetRot(object, object->rot.x, atan2d(sp28.x, sp28.z), 0); + fn_2_6B44(object); + break; + } } void fn_2_6B44(omObjData *object); void fn_2_48A0(omObjData *object) { - M401WorkPlayer *temp_r31; - Work2FA4 *temp_r29; - float temp_f29; - Vec sp4C; - Vec sp40; - s32 sp30[] = { -10, -50, -80, -130 }; - Vec sp24; - Vec sp18; - Vec spC; - temp_r31 = object->data; - temp_r29 = lbl_2_bss_10C->data; - if(temp_r31->unk4 == 0) { - lbl_2_bss_1A--; - } - switch(temp_r31->unk0) { - case 5: - if(temp_r31->unk6A == 1) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk6A = 0; - } - omSetRot(object, 0, 180, 0); - object->trans.z -= 5.0f; - fn_2_6B44(object); - break; - - case 6: - object->trans.y += temp_r31->unk58.x; - if(object->trans.y >= 910.0f) { - if(temp_r31->unk6C == 0) { - temp_r31->unk6C = 1; - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); - Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30+object->trans.z); - Hu3DModelScaleSet(object->model[2], 1, 1, 1); - Hu3DMotionTimeSet(object->model[2], 0); - sp4C.x = object->trans.x; - sp4C.y = 950; - sp4C.z = 30+object->trans.z; - fn_2_10A88(&sp4C, 7); - HuAudFXEmiterPlay(1289, &sp4C); - } - temp_r31->unk58.x *= 0.7f; - if(temp_r31->unk58.x <= 0.5f) { - temp_r31->unk0 = 7; - temp_r31->unk58.x = -0.5f; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[0], 0, 30, 0x40000001); - temp_r31->unk80 = 0; - temp_r31->unk6C = 0; - } - } - - break; - - case 7: - object->trans.y += temp_r31->unk58.x; - if(object->trans.y <= 890) { - object->trans.y = 890; - if(lbl_2_bss_BA) { - if(temp_r31->unk68) { - temp_r31->unk0 = 16; - } else { - temp_r31->unk0 = 9; - } - } else { - temp_r31->unk0 = 8; - temp_r29->unk8.z = 0.5f; - temp_r31->unk6E = 0; - HuAudSStreamPlay(4); - lbl_2_bss_C0 = MGSeqDrawCreate(); - lbl_2_bss_1A = 210; - } - } - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - break; - - case 8: - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(temp_r31->unk6E == 13) { - Hu3DModelAttrReset(lbl_2_bss_10C->model[6], 1); - Hu3DMotionTimeSet(lbl_2_bss_10C->model[6], 0); - } else if(temp_r31->unk6E == 50) { - Hu3DMotionOverlaySet(object->model[0], object->motion[8]); - Hu3DMotionOverlayTimeSet(object->model[0], 31.0f); - Hu3DData[object->model[0]].unk_78 = 1; - } - if(temp_r31->unk6E >= 70) { - if(object->rot.y < 90.0f) { - object->rot.y += 2.25f; - } else { - object->rot.y = 90.0f; - } - } - temp_r31->unk6E++; - if(temp_r29->unk8.y >= 1500.0f) { - temp_r29->unk8.z = 0; - if(temp_r31->unk4 == 0) { - temp_r31->unk0 = 14; - } - } - break; - - case 16: - if(!temp_r31->unk6C) { - temp_r31->unk6C = 1; - HuAudPlayerVoicePlay(temp_r31->unk4, 292); - Hu3DMotionOverlaySet(object->model[0], object->motion[9]); - if(temp_r31->unk4 == lbl_2_bss_B2[0]) { - HuAudSStreamPlay(1); - lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], lbl_2_bss_AA[1], lbl_2_bss_AA[2], lbl_2_bss_AA[3]); - lbl_2_bss_1A = 210; - temp_r31->unk6E = 160; - temp_r31->unk0 = 13; - } - } - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - break; - - case 10: - object->trans.y += temp_r31->unk58.x; - if(object->trans.y >= 910.0f) { - if(temp_r31->unk6C == 0) { - temp_r31->unk6C = 1; - omVibrate(temp_r31->unk4, 12, 4, 2); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrReset(object->model[2], 0x40000002); - Hu3DModelAttrSet(object->model[2], 0x40000001); - Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30+object->trans.z); - Hu3DModelScaleSet(object->model[2], 1, 1, 1); - Hu3DMotionTimeSet(object->model[2], 0); - Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 1); - Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); - Hu3DModelPosSet(object->model[3], object->trans.x, 0, 30+object->trans.z); - Hu3DMotionTimeSet(object->model[3], 0); - sp4C.x = object->trans.x; - sp4C.y = 950; - sp4C.z = 30+object->trans.z; - fn_2_10A88(&sp4C, 7); - HuAudFXEmiterPlay(1289, &sp4C); - } - temp_r31->unk0 = 11; - temp_r31->unk24.x = sp30[temp_r31->unk4]; - temp_r31->unk24.y = 1030; - temp_r31->unk24.z = 40; - sp4C.x = object->trans.x; - sp4C.y = object->trans.y; - sp4C.z = object->trans.z; - VECSubtract(&temp_r31->unk24, &sp4C, &sp40); - VECNormalize(&sp40, &sp40); - temp_f29 = VECDistanceXZ(&temp_r31->unk24, &object->trans); - temp_r31->unk30.x = (sp40.x*temp_f29)/60.0f; - temp_r31->unk30.z = (sp40.z*temp_f29)/60.0f; - temp_r31->unk30.y = 18.75f; - temp_r31->unk58.y = 0; - } - break; - - case 11: - temp_f29 = temp_r31->unk30.y-(0.020833334f*temp_r31->unk58.y*temp_r31->unk58.y); - object->trans.x += temp_r31->unk30.x; - object->trans.z += temp_r31->unk30.z; - object->trans.y += temp_f29; - temp_r31->unk58.y += 1.0f; - if(object->trans.y <= 1030.0f && temp_f29 < 0) { - temp_r31->unk0 = 12; - object->trans.y = 1030+temp_r29->unk4; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[2], 0, 15, 0x40000001); - temp_r31->unk58.x = 0; - } - break; - - case 12: - object->trans.y = 1030+temp_r29->unk4; - sp24.x = (sind(temp_r31->unk58.x), 0.0); - sp24.y = -100*sind(temp_r31->unk58.x)+1300; - sp24.z = -500*sind(temp_r31->unk58.x)+1300; - sp18.x = (sind(temp_r31->unk58.x), 0.0); - sp18.y = 330*sind(temp_r31->unk58.x)+920; - sp18.z = (sind(temp_r31->unk58.x), 0.0) + -100.0; - spC.x = 0; - spC.y = 1; - spC.z = 0; - Hu3DCameraPosSetV(1, &sp24, &spC, &sp18); - temp_r31->unk58.x += 3.0f; - if(temp_r31->unk58.x > 90.0f) { - temp_r31->unk0 = 13; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[5], 0, 20, 0); - HuAudSStreamPlay(1); - lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], -1, -1, -1); - lbl_2_bss_1A = 210; - } - temp_r31->unk6E = 160; - break; - - case 13: - if(lbl_2_bss_BA == 1) { - object->trans.y = 1030+temp_r29->unk4; - } else { - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - } - if(--temp_r31->unk6E == 0) { - temp_r31->unk0 = 14; - } - - break; - - case 14: - if(temp_r31->unk68) { - if(lbl_2_bss_BA == 1) { - object->trans.y = 1030+temp_r29->unk4; - } else { - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - } - } - if(lbl_2_bss_1A <= 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqFadeOut(lbl_2_bss_A4, 100); - HuAudFXStop(lbl_2_bss_11C); - temp_r31->unk0 = 15; - } - break; - - case 15: - if(temp_r31->unk68) { - if(lbl_2_bss_BA == 1) { - object->trans.y = 1030+temp_r29->unk4; - } else { - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - } - } - if(!WipeStatGet()) { - lbl_2_bss_110->func = fn_2_A10; - } - break; - } + M401WorkPlayer *temp_r31; + Work2FA4 *temp_r29; + float temp_f29; + Vec sp4C; + Vec sp40; + s32 sp30[] = { -10, -50, -80, -130 }; + Vec sp24; + Vec sp18; + Vec spC; + temp_r31 = object->data; + temp_r29 = lbl_2_bss_10C->data; + if (temp_r31->unk4 == 0) { + lbl_2_bss_1A--; + } + switch (temp_r31->unk0) { + case 5: + if (temp_r31->unk6A == 1) { + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk6A = 0; + } + omSetRot(object, 0, 180, 0); + object->trans.z -= 5.0f; + fn_2_6B44(object); + break; + + case 6: + object->trans.y += temp_r31->unk58.x; + if (object->trans.y >= 910.0f) { + if (temp_r31->unk6C == 0) { + temp_r31->unk6C = 1; + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30 + object->trans.z); + Hu3DModelScaleSet(object->model[2], 1, 1, 1); + Hu3DMotionTimeSet(object->model[2], 0); + sp4C.x = object->trans.x; + sp4C.y = 950; + sp4C.z = 30 + object->trans.z; + fn_2_10A88(&sp4C, 7); + HuAudFXEmiterPlay(1289, &sp4C); + } + temp_r31->unk58.x *= 0.7f; + if (temp_r31->unk58.x <= 0.5f) { + temp_r31->unk0 = 7; + temp_r31->unk58.x = -0.5f; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[0], 0, 30, 0x40000001); + temp_r31->unk80 = 0; + temp_r31->unk6C = 0; + } + } + + break; + + case 7: + object->trans.y += temp_r31->unk58.x; + if (object->trans.y <= 890) { + object->trans.y = 890; + if (lbl_2_bss_BA) { + if (temp_r31->unk68) { + temp_r31->unk0 = 16; + } + else { + temp_r31->unk0 = 9; + } + } + else { + temp_r31->unk0 = 8; + temp_r29->unk8.z = 0.5f; + temp_r31->unk6E = 0; + HuAudSStreamPlay(4); + lbl_2_bss_C0 = MGSeqDrawCreate(); + lbl_2_bss_1A = 210; + } + } + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + break; + + case 8: + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (temp_r31->unk6E == 13) { + Hu3DModelAttrReset(lbl_2_bss_10C->model[6], 1); + Hu3DMotionTimeSet(lbl_2_bss_10C->model[6], 0); + } + else if (temp_r31->unk6E == 50) { + Hu3DMotionOverlaySet(object->model[0], object->motion[8]); + Hu3DMotionOverlayTimeSet(object->model[0], 31.0f); + Hu3DData[object->model[0]].unk_78 = 1; + } + if (temp_r31->unk6E >= 70) { + if (object->rot.y < 90.0f) { + object->rot.y += 2.25f; + } + else { + object->rot.y = 90.0f; + } + } + temp_r31->unk6E++; + if (temp_r29->unk8.y >= 1500.0f) { + temp_r29->unk8.z = 0; + if (temp_r31->unk4 == 0) { + temp_r31->unk0 = 14; + } + } + break; + + case 16: + if (!temp_r31->unk6C) { + temp_r31->unk6C = 1; + HuAudPlayerVoicePlay(temp_r31->unk4, 292); + Hu3DMotionOverlaySet(object->model[0], object->motion[9]); + if (temp_r31->unk4 == lbl_2_bss_B2[0]) { + HuAudSStreamPlay(1); + lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], lbl_2_bss_AA[1], lbl_2_bss_AA[2], lbl_2_bss_AA[3]); + lbl_2_bss_1A = 210; + temp_r31->unk6E = 160; + temp_r31->unk0 = 13; + } + } + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + break; + + case 10: + object->trans.y += temp_r31->unk58.x; + if (object->trans.y >= 910.0f) { + if (temp_r31->unk6C == 0) { + temp_r31->unk6C = 1; + omVibrate(temp_r31->unk4, 12, 4, 2); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], 0x40000002); + Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30 + object->trans.z); + Hu3DModelScaleSet(object->model[2], 1, 1, 1); + Hu3DMotionTimeSet(object->model[2], 0); + Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); + Hu3DModelPosSet(object->model[3], object->trans.x, 0, 30 + object->trans.z); + Hu3DMotionTimeSet(object->model[3], 0); + sp4C.x = object->trans.x; + sp4C.y = 950; + sp4C.z = 30 + object->trans.z; + fn_2_10A88(&sp4C, 7); + HuAudFXEmiterPlay(1289, &sp4C); + } + temp_r31->unk0 = 11; + temp_r31->unk24.x = sp30[temp_r31->unk4]; + temp_r31->unk24.y = 1030; + temp_r31->unk24.z = 40; + sp4C.x = object->trans.x; + sp4C.y = object->trans.y; + sp4C.z = object->trans.z; + VECSubtract(&temp_r31->unk24, &sp4C, &sp40); + VECNormalize(&sp40, &sp40); + temp_f29 = VECDistanceXZ(&temp_r31->unk24, &object->trans); + temp_r31->unk30.x = (sp40.x * temp_f29) / 60.0f; + temp_r31->unk30.z = (sp40.z * temp_f29) / 60.0f; + temp_r31->unk30.y = 18.75f; + temp_r31->unk58.y = 0; + } + break; + + case 11: + temp_f29 = temp_r31->unk30.y - (0.020833334f * temp_r31->unk58.y * temp_r31->unk58.y); + object->trans.x += temp_r31->unk30.x; + object->trans.z += temp_r31->unk30.z; + object->trans.y += temp_f29; + temp_r31->unk58.y += 1.0f; + if (object->trans.y <= 1030.0f && temp_f29 < 0) { + temp_r31->unk0 = 12; + object->trans.y = 1030 + temp_r29->unk4; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[2], 0, 15, 0x40000001); + temp_r31->unk58.x = 0; + } + break; + + case 12: + object->trans.y = 1030 + temp_r29->unk4; + sp24.x = (sind(temp_r31->unk58.x), 0.0); + sp24.y = -100 * sind(temp_r31->unk58.x) + 1300; + sp24.z = -500 * sind(temp_r31->unk58.x) + 1300; + sp18.x = (sind(temp_r31->unk58.x), 0.0); + sp18.y = 330 * sind(temp_r31->unk58.x) + 920; + sp18.z = (sind(temp_r31->unk58.x), 0.0) + -100.0; + spC.x = 0; + spC.y = 1; + spC.z = 0; + Hu3DCameraPosSetV(1, &sp24, &spC, &sp18); + temp_r31->unk58.x += 3.0f; + if (temp_r31->unk58.x > 90.0f) { + temp_r31->unk0 = 13; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[5], 0, 20, 0); + HuAudSStreamPlay(1); + lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], -1, -1, -1); + lbl_2_bss_1A = 210; + } + temp_r31->unk6E = 160; + break; + + case 13: + if (lbl_2_bss_BA == 1) { + object->trans.y = 1030 + temp_r29->unk4; + } + else { + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + } + if (--temp_r31->unk6E == 0) { + temp_r31->unk0 = 14; + } + + break; + + case 14: + if (temp_r31->unk68) { + if (lbl_2_bss_BA == 1) { + object->trans.y = 1030 + temp_r29->unk4; + } + else { + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + } + } + if (lbl_2_bss_1A <= 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqFadeOut(lbl_2_bss_A4, 100); + HuAudFXStop(lbl_2_bss_11C); + temp_r31->unk0 = 15; + } + break; + + case 15: + if (temp_r31->unk68) { + if (lbl_2_bss_BA == 1) { + object->trans.y = 1030 + temp_r29->unk4; + } + else { + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + } + } + if (!WipeStatGet()) { + lbl_2_bss_110->func = fn_2_A10; + } + break; + } } void fn_2_65FC(omObjData *object); @@ -1555,1278 +1532,1322 @@ void fn_2_6C94(omObjData *object, s8 *x, s8 *y, u16 *btn); void fn_2_5CC0(omObjData *object) { - M401WorkPlayer *temp_r31; - float temp_f29; - Vec sp20; - Vec sp14; - s32 sp10; - u16 spA; - s8 sp9; - s8 sp8; - temp_f29 = 0; - temp_r31 = object->data; - sp9 = sp8 = spA = 0; - if(temp_r31->unk78 == 0) { - if(GWPlayerCfg[temp_r31->unk4].iscom) { - fn_2_6C94(object, &sp9, &sp8, &spA); - } else { - sp9 = HuPadStkX[temp_r31->unk8]; - sp8 = HuPadStkY[temp_r31->unk8]; - spA = HuPadBtnDown[temp_r31->unk8]; - } - if(sp9 != 0 || sp8 != 0) { - temp_r31->unk58.z = sqrtf((sp9*sp9)+(sp8*sp8))/9.0f; - } - temp_r31->unk64 = atan2d(sp9, sp8); - if(spA & PAD_BUTTON_A) { - temp_r31->unk88 += 1.51f*lbl_2_data_0; - if(temp_r31->unk88 < 1.51f*lbl_2_data_0) { - temp_r31->unk88 = 1.51f*lbl_2_data_0; - } - } - if(temp_r31->unk88 >= 0.0f){ - temp_f29 = 0; - } else { - temp_f29 = fabs(temp_r31->unk88/(1.51f*lbl_2_data_0)); - } - if(temp_r31->unk84) { - if(--temp_r31->unk84 == 0) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk6A = 0; - } - } - } else { - temp_r31->unk84 = 0; - if(--temp_r31->unk7A == 0) { - sp10 = GWPlayerCfg[temp_r31->unk4].character; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk78 = 0; - temp_r31->unk6A = 0; - } - if(temp_r31->unk7A & 0x1) { - Hu3DModelAttrSet(object->model[0], 1); - } else { - Hu3DModelAttrReset(object->model[0], 1); - } - } - if(temp_f29 != 0) { - if(++temp_r31->unk8C > 15) { - temp_r31->unk8C = 15; - } - temp_r31->unk8E = 0; - } else { - if(++temp_r31->unk8E > 5) { - temp_r31->unk8E = 5; - temp_r31->unk8C = 0; - } - } - if(temp_r31->unk78 == 0 && temp_r31->unk84 == 0) { - if(temp_r31->unk58.z > 0 || temp_r31->unk8C >= 5) { - if(temp_r31->unk6A == 0) { - temp_r31->unk6A = 1; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[3], 0, 8, 0x40000001); - } - } else { - if(temp_r31->unk6A == 1) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk6A = 0; - } - } - } - CharModelMotionSpeedSet(temp_r31->unk86, 1.0f+temp_f29); - fn_2_65FC(object); - if(temp_r31->unk58.z > 0.1f) { - temp_r31->unk58.z *= 0.9f; - } else { - temp_r31->unk58.z = 0.0f; - } - temp_r31->unk88 -= 0.15f*lbl_2_data_0; - if(temp_r31->unk88 > -lbl_2_data_0) { - temp_r31->unk88 = -lbl_2_data_0; - } - sp20.x = object->trans.x; - sp20.y = object->trans.y; - sp20.z = object->trans.z; - omSetTra(object, temp_r31->unkC.x, temp_r31->unkC.y, lbl_2_bss_60.z+temp_r31->unkC.z); - sp14.x = object->trans.x; - sp14.y = object->trans.y; - sp14.z = object->trans.z; - if(sp8 != 0) { - object->rot.x -= 0.05f*sp8; - } else { - object->rot.x *= 0.8f; - if(object->rot.x < 0.01f) { - object->rot.x = 0; - } - } - if(sp9 != 0) { - object->rot.z -= 0.05f*sp9; - } else { - object->rot.z *= 0.8f; - if(object->rot.z < 0.01f) { - object->rot.z = 0; - } - } - if(object->rot.x < -30.0f) { - object->rot.x = -30.0f; - } - if(object->rot.x > 30.0f) { - object->rot.x = 30.0f; - } - if(object->rot.z < -30.0f) { - object->rot.z = -30.0f; - } - if(object->rot.z > 30.0f) { - object->rot.z = 30.0f; - } - object->rot.y = 180; - fn_2_6AF4(object); - fn_2_A940(object); - temp_r31->unk70 = 0; + M401WorkPlayer *temp_r31; + float temp_f29; + Vec sp20; + Vec sp14; + s32 sp10; + u16 spA; + s8 sp9; + s8 sp8; + temp_f29 = 0; + temp_r31 = object->data; + sp9 = sp8 = spA = 0; + if (temp_r31->unk78 == 0) { + if (GWPlayerCfg[temp_r31->unk4].iscom) { + fn_2_6C94(object, &sp9, &sp8, &spA); + } + else { + sp9 = HuPadStkX[temp_r31->unk8]; + sp8 = HuPadStkY[temp_r31->unk8]; + spA = HuPadBtnDown[temp_r31->unk8]; + } + if (sp9 != 0 || sp8 != 0) { + temp_r31->unk58.z = sqrtf((sp9 * sp9) + (sp8 * sp8)) / 9.0f; + } + temp_r31->unk64 = atan2d(sp9, sp8); + if (spA & PAD_BUTTON_A) { + temp_r31->unk88 += 1.51f * lbl_2_data_0; + if (temp_r31->unk88 < 1.51f * lbl_2_data_0) { + temp_r31->unk88 = 1.51f * lbl_2_data_0; + } + } + if (temp_r31->unk88 >= 0.0f) { + temp_f29 = 0; + } + else { + temp_f29 = fabs(temp_r31->unk88 / (1.51f * lbl_2_data_0)); + } + if (temp_r31->unk84) { + if (--temp_r31->unk84 == 0) { + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk6A = 0; + } + } + } + else { + temp_r31->unk84 = 0; + if (--temp_r31->unk7A == 0) { + sp10 = GWPlayerCfg[temp_r31->unk4].character; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk78 = 0; + temp_r31->unk6A = 0; + } + if (temp_r31->unk7A & 0x1) { + Hu3DModelAttrSet(object->model[0], 1); + } + else { + Hu3DModelAttrReset(object->model[0], 1); + } + } + if (temp_f29 != 0) { + if (++temp_r31->unk8C > 15) { + temp_r31->unk8C = 15; + } + temp_r31->unk8E = 0; + } + else { + if (++temp_r31->unk8E > 5) { + temp_r31->unk8E = 5; + temp_r31->unk8C = 0; + } + } + if (temp_r31->unk78 == 0 && temp_r31->unk84 == 0) { + if (temp_r31->unk58.z > 0 || temp_r31->unk8C >= 5) { + if (temp_r31->unk6A == 0) { + temp_r31->unk6A = 1; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[3], 0, 8, 0x40000001); + } + } + else { + if (temp_r31->unk6A == 1) { + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk6A = 0; + } + } + } + CharModelMotionSpeedSet(temp_r31->unk86, 1.0f + temp_f29); + fn_2_65FC(object); + if (temp_r31->unk58.z > 0.1f) { + temp_r31->unk58.z *= 0.9f; + } + else { + temp_r31->unk58.z = 0.0f; + } + temp_r31->unk88 -= 0.15f * lbl_2_data_0; + if (temp_r31->unk88 > -lbl_2_data_0) { + temp_r31->unk88 = -lbl_2_data_0; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + omSetTra(object, temp_r31->unkC.x, temp_r31->unkC.y, lbl_2_bss_60.z + temp_r31->unkC.z); + sp14.x = object->trans.x; + sp14.y = object->trans.y; + sp14.z = object->trans.z; + if (sp8 != 0) { + object->rot.x -= 0.05f * sp8; + } + else { + object->rot.x *= 0.8f; + if (object->rot.x < 0.01f) { + object->rot.x = 0; + } + } + if (sp9 != 0) { + object->rot.z -= 0.05f * sp9; + } + else { + object->rot.z *= 0.8f; + if (object->rot.z < 0.01f) { + object->rot.z = 0; + } + } + if (object->rot.x < -30.0f) { + object->rot.x = -30.0f; + } + if (object->rot.x > 30.0f) { + object->rot.x = 30.0f; + } + if (object->rot.z < -30.0f) { + object->rot.z = -30.0f; + } + if (object->rot.z > 30.0f) { + object->rot.z = 30.0f; + } + object->rot.y = 180; + fn_2_6AF4(object); + fn_2_A940(object); + temp_r31->unk70 = 0; } void fn_2_65FC(omObjData *object) { - M401WorkPlayer *temp_r31; - M401WorkPlayer *temp_r30; - s32 temp_r29; - omObjData *temp_r28; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f26; - float temp_f24; - - Vec sp24; - Vec sp18; - Vec spC; - temp_r30 = object->data; - temp_f26 = temp_r30->unk58.z; - sp24.x = sind(temp_r30->unk64); - sp24.y = cosd(temp_r30->unk64); - sp24.z = temp_r30->unk88+lbl_2_data_0; - VECNormalize(&sp24, &sp18); - sp24.x *= temp_f26; - sp24.y *= temp_f26; - sp24.z -= lbl_2_data_0; - temp_f31 = temp_r30->unkC.x+sp24.x; - temp_f30 = temp_r30->unkC.y+sp24.y; - temp_f29 = temp_r30->unkC.z+sp24.z; - if(temp_f31 < -400) { - temp_f31 = -400; - } - if(temp_f31 > 400) { - temp_f31 = 400; - } - if(temp_f30 < -300) { - temp_f30 = -300; - } - if(temp_f30 > 300) { - temp_f30 = 300; - } - if(temp_f29 < 400) { - temp_f29 = 400; - } - if(temp_f29 > 800) { - temp_f29 = 800; - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - if(lbl_2_bss_118[temp_r29] != object) { - temp_r28 = lbl_2_bss_118[temp_r29]; - temp_r31 = temp_r28->data; - temp_f24 = VECMagPoint(temp_f31-temp_r31->unkC.x, temp_f30-temp_r31->unkC.y, temp_f29-temp_r31->unkC.z); - if(temp_f24 < 127.0f) { - spC.x = temp_f31-temp_r31->unkC.x; - spC.y = temp_f30-temp_r31->unkC.y; - spC.z = temp_f29-temp_r31->unkC.z; - VECNormalize(&spC, &spC); - temp_f31 = temp_r31->unkC.x+127.0f*spC.x; - temp_f30 = temp_r31->unkC.y+127.0f*spC.y; - temp_f29 = temp_r31->unkC.z+127.0f*spC.z; - } - } - } - if(temp_f31 < -400) { - temp_f31 = -400; - } - if(temp_f31 > 400) { - temp_f31 = 400; - } - if(temp_f30 < -300) { - temp_f30 = -300; - } - if(temp_f30 > 300) { - temp_f30 = 300; - } - if(temp_f29 < 400) { - temp_f29 = 400; - } - if(temp_f29 > 800) { - temp_f29 = 800; - } - temp_r30->unkC.x = temp_f31; - temp_r30->unkC.y = temp_f30; - temp_r30->unkC.z = temp_f29; + M401WorkPlayer *temp_r31; + M401WorkPlayer *temp_r30; + s32 temp_r29; + omObjData *temp_r28; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f26; + float temp_f24; + + Vec sp24; + Vec sp18; + Vec spC; + temp_r30 = object->data; + temp_f26 = temp_r30->unk58.z; + sp24.x = sind(temp_r30->unk64); + sp24.y = cosd(temp_r30->unk64); + sp24.z = temp_r30->unk88 + lbl_2_data_0; + VECNormalize(&sp24, &sp18); + sp24.x *= temp_f26; + sp24.y *= temp_f26; + sp24.z -= lbl_2_data_0; + temp_f31 = temp_r30->unkC.x + sp24.x; + temp_f30 = temp_r30->unkC.y + sp24.y; + temp_f29 = temp_r30->unkC.z + sp24.z; + if (temp_f31 < -400) { + temp_f31 = -400; + } + if (temp_f31 > 400) { + temp_f31 = 400; + } + if (temp_f30 < -300) { + temp_f30 = -300; + } + if (temp_f30 > 300) { + temp_f30 = 300; + } + if (temp_f29 < 400) { + temp_f29 = 400; + } + if (temp_f29 > 800) { + temp_f29 = 800; + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (lbl_2_bss_118[temp_r29] != object) { + temp_r28 = lbl_2_bss_118[temp_r29]; + temp_r31 = temp_r28->data; + temp_f24 = VECMagPoint(temp_f31 - temp_r31->unkC.x, temp_f30 - temp_r31->unkC.y, temp_f29 - temp_r31->unkC.z); + if (temp_f24 < 127.0f) { + spC.x = temp_f31 - temp_r31->unkC.x; + spC.y = temp_f30 - temp_r31->unkC.y; + spC.z = temp_f29 - temp_r31->unkC.z; + VECNormalize(&spC, &spC); + temp_f31 = temp_r31->unkC.x + 127.0f * spC.x; + temp_f30 = temp_r31->unkC.y + 127.0f * spC.y; + temp_f29 = temp_r31->unkC.z + 127.0f * spC.z; + } + } + } + if (temp_f31 < -400) { + temp_f31 = -400; + } + if (temp_f31 > 400) { + temp_f31 = 400; + } + if (temp_f30 < -300) { + temp_f30 = -300; + } + if (temp_f30 > 300) { + temp_f30 = 300; + } + if (temp_f29 < 400) { + temp_f29 = 400; + } + if (temp_f29 > 800) { + temp_f29 = 800; + } + temp_r30->unkC.x = temp_f31; + temp_r30->unkC.y = temp_f30; + temp_r30->unkC.z = temp_f29; } void fn_2_6AF4(omObjData *object) { - M401WorkPlayer *temp_r31 = object->data; - temp_r31->unk18.x = temp_r31->unkC.x+lbl_2_bss_60.x; - temp_r31->unk18.y = object->trans.y; - temp_r31->unk18.z = 80+object->trans.z; + M401WorkPlayer *temp_r31 = object->data; + temp_r31->unk18.x = temp_r31->unkC.x + lbl_2_bss_60.x; + temp_r31->unk18.y = object->trans.y; + temp_r31->unk18.z = 80 + object->trans.z; } void fn_2_6B44(omObjData *object) { - M401WorkPlayer *temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - temp_r30 = object->data; - temp_f31 = 80.0*sind(object->rot.y+180.0f); - temp_f29 = 80.0*-cosd(object->rot.y); - temp_f30 = 80.0*sind(object->rot.x); - temp_r30->unk18.x = object->trans.x+temp_f31; - temp_r30->unk18.y = object->trans.y+temp_f30; - temp_r30->unk18.z = object->trans.z+temp_f29; + M401WorkPlayer *temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + temp_r30 = object->data; + temp_f31 = 80.0 * sind(object->rot.y + 180.0f); + temp_f29 = 80.0 * -cosd(object->rot.y); + temp_f30 = 80.0 * sind(object->rot.x); + temp_r30->unk18.x = object->trans.x + temp_f31; + temp_r30->unk18.y = object->trans.y + temp_f30; + temp_r30->unk18.z = object->trans.z + temp_f29; } omObjData *fn_2_792C(omObjData *object); void fn_2_6C94(omObjData *object, s8 *x, s8 *y, u16 *btn) { - M401WorkPlayer *temp_r31; - s32 temp_r30; - omObjData *temp_r28; - s32 temp_r27; - u16 temp_r26 = 0; - float temp_f31; - float temp_f30; - float temp_f29; - s16 sp50[][8] = { - 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - Vec sp44; - Vec sp38; - Vec sp2C; - Vec sp20; - s16 sp18[] = { - 50, 125, 200, 245 - }; - s16 sp10[] = { - 75, 150, 200, 250 - }; - s16 sp8[] = { - 9, 6, 4, 2 - }; - temp_r31 = object->data; - *x = *y = 0; - *btn = 0; - if(temp_r31->unk7C == 0) { - temp_r31->unk7E = sp50[GWPlayerCfg[temp_r31->unk4].diff][frand() & 0x7]; - temp_r31->unk7C = (frand()%60)+30; - temp_r31->unk92 = 0; - if(frandu8() < sp18[GWPlayerCfg[temp_r31->unk4].diff]) { - temp_r31->unk92 |= 1; - } - if(frandu8() < sp10[GWPlayerCfg[temp_r31->unk4].diff]) { - temp_r31->unk92 |= 2; - } - } else { - temp_r31->unk7C--; - } - temp_r26 = temp_r31->unk92; - sp44.x = sp44.y = sp44.z = 0; - switch(temp_r31->unk7E) { - case 0: - temp_r28 = fn_2_792C(object); - if(temp_r28) { - sp44.x = temp_r28->trans.x-object->trans.x; - sp44.y = temp_r28->trans.y-object->trans.y; - sp44.z = temp_r28->trans.z-object->trans.z; - } - break; - - case 2: - break; - } - if(temp_r26 & 0x1) { - sp38.x = object->trans.x; - sp38.y = object->trans.y; - sp38.z = object->trans.z; - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(lbl_2_bss_118[temp_r27] != object) { - sp20.x = lbl_2_bss_118[temp_r27]->trans.x; - sp20.y = lbl_2_bss_118[temp_r27]->trans.y; - sp20.z = lbl_2_bss_118[temp_r27]->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - temp_f31 = VECMag(&sp2C)-110.0f; - if(temp_f31 < 110.0f) { - temp_f31 -= 60.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - } - } - if(temp_r26 & 0x2) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - if(lbl_2_bss_E4[temp_r30]->func != NULL) { - sp20.x = lbl_2_bss_E4[temp_r30]->trans.x; - sp20.y = lbl_2_bss_E4[temp_r30]->trans.y; - sp20.z = lbl_2_bss_E4[temp_r30]->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - temp_f31 = VECMag(&sp2C)-110.0f; - if(temp_f31 < 110.0f) { - temp_f31 -= 60.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(lbl_2_bss_100[temp_r30]->func != NULL) { - sp20.x = lbl_2_bss_100[temp_r30]->trans.x; - sp20.y = lbl_2_bss_100[temp_r30]->trans.y; - sp20.z = lbl_2_bss_100[temp_r30]->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - temp_f31 = VECMag(&sp2C)-110.0f; - if(temp_f31 < 110.0f) { - temp_f31 -= 60.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - } - sp20.x = lbl_2_bss_FC->trans.x; - sp20.y = lbl_2_bss_FC->trans.y; - sp20.z = lbl_2_bss_FC->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - sp2C.x = 0; - temp_f31 = VECMag(&sp2C)-220.0f; - if(temp_f31 < 220.0f) { - temp_f31 -= 160.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - - if(sp44.z < 0.0f) { - if(temp_r31->unk90 == 0) { - *btn |= 0x100; - temp_r31->unk90 = (frand()%sp8[GWPlayerCfg[temp_r31->unk4].diff])+3; - } else { - temp_r31->unk90--; - } - } - sp44.z = 0; - temp_f30 = VECMag(&sp44); - temp_f30 *= 0.2f; - temp_f29 = atan2d(sp44.y, sp44.x); - if(temp_f30 > 72.0f) { - temp_f30 = 72.0f; - } - if(temp_f30 < 10.0f) { - temp_f30 = 0.0f; - } - *x = temp_f30*cosd(temp_f29); - *y = temp_f30*sind(temp_f29); + M401WorkPlayer *temp_r31; + s32 temp_r30; + omObjData *temp_r28; + s32 temp_r27; + u16 temp_r26 = 0; + float temp_f31; + float temp_f30; + float temp_f29; + s16 sp50[][8] = { + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + }; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + s16 sp18[] = { 50, 125, 200, 245 }; + s16 sp10[] = { 75, 150, 200, 250 }; + s16 sp8[] = { 9, 6, 4, 2 }; + temp_r31 = object->data; + *x = *y = 0; + *btn = 0; + if (temp_r31->unk7C == 0) { + temp_r31->unk7E = sp50[GWPlayerCfg[temp_r31->unk4].diff][frand() & 0x7]; + temp_r31->unk7C = (frand() % 60) + 30; + temp_r31->unk92 = 0; + if (frandu8() < sp18[GWPlayerCfg[temp_r31->unk4].diff]) { + temp_r31->unk92 |= 1; + } + if (frandu8() < sp10[GWPlayerCfg[temp_r31->unk4].diff]) { + temp_r31->unk92 |= 2; + } + } + else { + temp_r31->unk7C--; + } + temp_r26 = temp_r31->unk92; + sp44.x = sp44.y = sp44.z = 0; + switch (temp_r31->unk7E) { + case 0: + temp_r28 = fn_2_792C(object); + if (temp_r28) { + sp44.x = temp_r28->trans.x - object->trans.x; + sp44.y = temp_r28->trans.y - object->trans.y; + sp44.z = temp_r28->trans.z - object->trans.z; + } + break; + + case 2: + break; + } + if (temp_r26 & 0x1) { + sp38.x = object->trans.x; + sp38.y = object->trans.y; + sp38.z = object->trans.z; + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (lbl_2_bss_118[temp_r27] != object) { + sp20.x = lbl_2_bss_118[temp_r27]->trans.x; + sp20.y = lbl_2_bss_118[temp_r27]->trans.y; + sp20.z = lbl_2_bss_118[temp_r27]->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + temp_f31 = VECMag(&sp2C) - 110.0f; + if (temp_f31 < 110.0f) { + temp_f31 -= 60.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + } + } + if (temp_r26 & 0x2) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + if (lbl_2_bss_E4[temp_r30]->func != NULL) { + sp20.x = lbl_2_bss_E4[temp_r30]->trans.x; + sp20.y = lbl_2_bss_E4[temp_r30]->trans.y; + sp20.z = lbl_2_bss_E4[temp_r30]->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + temp_f31 = VECMag(&sp2C) - 110.0f; + if (temp_f31 < 110.0f) { + temp_f31 -= 60.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (lbl_2_bss_100[temp_r30]->func != NULL) { + sp20.x = lbl_2_bss_100[temp_r30]->trans.x; + sp20.y = lbl_2_bss_100[temp_r30]->trans.y; + sp20.z = lbl_2_bss_100[temp_r30]->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + temp_f31 = VECMag(&sp2C) - 110.0f; + if (temp_f31 < 110.0f) { + temp_f31 -= 60.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + } + sp20.x = lbl_2_bss_FC->trans.x; + sp20.y = lbl_2_bss_FC->trans.y; + sp20.z = lbl_2_bss_FC->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + sp2C.x = 0; + temp_f31 = VECMag(&sp2C) - 220.0f; + if (temp_f31 < 220.0f) { + temp_f31 -= 160.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + + if (sp44.z < 0.0f) { + if (temp_r31->unk90 == 0) { + *btn |= 0x100; + temp_r31->unk90 = (frand() % sp8[GWPlayerCfg[temp_r31->unk4].diff]) + 3; + } + else { + temp_r31->unk90--; + } + } + sp44.z = 0; + temp_f30 = VECMag(&sp44); + temp_f30 *= 0.2f; + temp_f29 = atan2d(sp44.y, sp44.x); + if (temp_f30 > 72.0f) { + temp_f30 = 72.0f; + } + if (temp_f30 < 10.0f) { + temp_f30 = 0.0f; + } + *x = temp_f30 * cosd(temp_f29); + *y = temp_f30 * sind(temp_f29); } s32 fn_2_AC2C(Vec *pos, float dist, omObjData **newobj); s32 fn_2_7640(omObjData *object, omObjData **newobj) { - Vec spC; - spC.x = object->trans.x; - spC.y = object->trans.y; - spC.z = object->trans.z-100.0f; - return fn_2_AC2C(&spC, 270.0f, newobj); + Vec spC; + spC.x = object->trans.x; + spC.y = object->trans.y; + spC.z = object->trans.z - 100.0f; + return fn_2_AC2C(&spC, 270.0f, newobj); } void fn_2_76AC(omObjData *object, s32 arg1) { - M401WorkPlayer *temp_r31; - if(arg1) { - temp_r31 = object->data; - temp_r31->unk7E = 1; - temp_r31->unk7C = 5; - switch(arg1) { - case 1: - temp_r31->unk80 = 180.0+atan2d(temp_r31->unk54->trans.x-object->trans.x, temp_r31->unk54->trans.y-object->trans.y); - break; - - case 2: - if(temp_r31->unkC.y > temp_r31->unk54->trans.y) { - temp_r31->unk80 = 80.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } else { - temp_r31->unk80 = 260.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } - break; - - case 3: - if(temp_r31->unkC.y > temp_r31->unk54->trans.y) { - temp_r31->unk80 = 80.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } else { - temp_r31->unk80 = 260.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } - break; - } - } + M401WorkPlayer *temp_r31; + if (arg1) { + temp_r31 = object->data; + temp_r31->unk7E = 1; + temp_r31->unk7C = 5; + switch (arg1) { + case 1: + temp_r31->unk80 = 180.0 + atan2d(temp_r31->unk54->trans.x - object->trans.x, temp_r31->unk54->trans.y - object->trans.y); + break; + + case 2: + if (temp_r31->unkC.y > temp_r31->unk54->trans.y) { + temp_r31->unk80 = 80.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + else { + temp_r31->unk80 = 260.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + break; + + case 3: + if (temp_r31->unkC.y > temp_r31->unk54->trans.y) { + temp_r31->unk80 = 80.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + else { + temp_r31->unk80 = 260.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + break; + } + } } omObjData *fn_2_792C(omObjData *object) { - omObjData **temp_r31; - s32 temp_r30; - omObjData *temp_r28; - float temp_f31, temp_f30, temp_f29; - float temp_f27, temp_f26; - temp_r31 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - temp_f26 = 100000; - temp_r28 = NULL; - for(temp_r30=0; temp_r30<28; temp_r30++) { - if(temp_r31[temp_r30] == NULL || temp_r31[temp_r30]->trans.z-lbl_2_bss_60.z > 850.0f || temp_r31[temp_r30]->trans.z-lbl_2_bss_60.z < -2500.0f) { - continue; - } - temp_f30 = temp_r31[temp_r30]->trans.x-object->trans.x; - temp_f29 = temp_r31[temp_r30]->trans.y-object->trans.y; - temp_f31 = temp_r31[temp_r30]->trans.z-object->trans.z; - temp_f31 *= 0.15f; - temp_f27 = VECMagPoint(temp_f30, temp_f29, temp_f31); - if(temp_f27 < temp_f26 && temp_f27 < 2000.0f) { - temp_f26 = temp_f27; - temp_r28 = temp_r31[temp_r30]; - } - } - return temp_r28; + omObjData **temp_r31; + s32 temp_r30; + omObjData *temp_r28; + float temp_f31, temp_f30, temp_f29; + float temp_f27, temp_f26; + temp_r31 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + temp_f26 = 100000; + temp_r28 = NULL; + for (temp_r30 = 0; temp_r30 < 28; temp_r30++) { + if (temp_r31[temp_r30] == NULL || temp_r31[temp_r30]->trans.z - lbl_2_bss_60.z > 850.0f + || temp_r31[temp_r30]->trans.z - lbl_2_bss_60.z < -2500.0f) { + continue; + } + temp_f30 = temp_r31[temp_r30]->trans.x - object->trans.x; + temp_f29 = temp_r31[temp_r30]->trans.y - object->trans.y; + temp_f31 = temp_r31[temp_r30]->trans.z - object->trans.z; + temp_f31 *= 0.15f; + temp_f27 = VECMagPoint(temp_f30, temp_f29, temp_f31); + if (temp_f27 < temp_f26 && temp_f27 < 2000.0f) { + temp_f26 = temp_f27; + temp_r28 = temp_r31[temp_r30]; + } + } + return temp_r28; } void fn_2_A914(s32 player); void fn_2_7C3C(omObjData *object) { - M401WorkPlayer *temp_r31 = object->data; - temp_r31->unk78 = 1; - temp_r31->unk7A = 120; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[7], 0, 10, 0); - fn_2_A914(temp_r31->unk4); + M401WorkPlayer *temp_r31 = object->data; + temp_r31->unk78 = 1; + temp_r31->unk7A = 120; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[7], 0, 10, 0); + fn_2_A914(temp_r31->unk4); } typedef struct work_7CB4 { - s16 unk0; - Vec unk4; - Vec unk10; - s16 unk1C; - s16 unk1E; - s16 unk20; - s16 unk22; - s16 unk24; - float unk28; - s16 unk2C; - s16 unk2E; - float unk30; + s16 unk0; + Vec unk4; + Vec unk10; + s16 unk1C; + s16 unk1E; + s16 unk20; + s16 unk22; + s16 unk24; + float unk28; + s16 unk2C; + s16 unk2E; + float unk30; } Work7CB4; void fn_2_7E6C(omObjData *object); void fn_2_7CB4(omObjData *object) { - Work7CB4 *temp_r31; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7CB4), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - temp_r31->unk10.x = 0; - temp_r31->unk10.y = 200; - temp_r31->unk10.z = 0; - temp_r31->unk1E = 0; - temp_r31->unk22 = 100; - temp_r31->unk4.x = 0; - temp_r31->unk4.y = 200; - temp_r31->unk24 = 0; - temp_r31->unk28 = 0; - object->model[0] = Hu3DModelCreateFile(0x20000B); - Hu3DModelClusterAttrSet(object->model[0], 0, 0xC0000001); - Hu3DModelAttrSet(object->model[0], 0x1); - Hu3DModelAmbSet(object->model[0], 0.6f, 0.6f, 0.6f); - Hu3DModelShadowSet(object->model[0]); - temp_r31->unk0 = 0; - temp_r31->unk22 = 180; - omSetTra(object, 0, 200, 200); - omSetRot(object, 0, 180, 0); - object->func = fn_2_7E6C; + Work7CB4 *temp_r31; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7CB4), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + temp_r31->unk10.x = 0; + temp_r31->unk10.y = 200; + temp_r31->unk10.z = 0; + temp_r31->unk1E = 0; + temp_r31->unk22 = 100; + temp_r31->unk4.x = 0; + temp_r31->unk4.y = 200; + temp_r31->unk24 = 0; + temp_r31->unk28 = 0; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x0B)); + Hu3DModelClusterAttrSet(object->model[0], 0, 0xC0000001); + Hu3DModelAttrSet(object->model[0], 0x1); + Hu3DModelAmbSet(object->model[0], 0.6f, 0.6f, 0.6f); + Hu3DModelShadowSet(object->model[0]); + temp_r31->unk0 = 0; + temp_r31->unk22 = 180; + omSetTra(object, 0, 200, 200); + omSetRot(object, 0, 180, 0); + object->func = fn_2_7E6C; } void fn_2_7E6C(omObjData *object) { - Work7CB4 *temp_r31; - temp_r31 = object->data; - switch(temp_r31->unk0) { - case 0: - if(--temp_r31->unk22 == 0) { - temp_r31->unk0 = 1; - } - break; - - case 1: - object->trans.z += -11.333333f; - break; - } + Work7CB4 *temp_r31; + temp_r31 = object->data; + switch (temp_r31->unk0) { + case 0: + if (--temp_r31->unk22 == 0) { + temp_r31->unk0 = 1; + } + break; + + case 1: + object->trans.z += -11.333333f; + break; + } } -s32 gap_04_00000328_data = 0x20000C; -s32 lbl_2_data_32C[] = { - 4, 6 -}; -Vec lbl_2_data_334[][10] = { - { - { 1400, -600, -21500 }, - { -100, 100, -22000 }, - { -1000, -200, -23000 }, - { -2000, -200, -23500 }, - { -2200, -200, -23500 }, - { -2300, -200, -23500 }, - }, - { - { -1000, 500, -29500 }, - { -300, 300, -31500 }, - { 300, -150, -32500 }, - { -200, 250, -34000 }, - { -300, 300, -35000 }, - { -600, 300, -36000 }, - { 1000, -180, -40000 }, - { 1000, -180, -40000 }, - } - +s32 gap_04_00000328_data = DATA_MAKE_NUM(DATADIR_M401, 0x0C); +s32 lbl_2_data_32C[] = { 4, 6 }; +Vec lbl_2_data_334[][10] = { { + { 1400, -600, -21500 }, + { -100, 100, -22000 }, + { -1000, -200, -23000 }, + { -2000, -200, -23500 }, + { -2200, -200, -23500 }, + { -2300, -200, -23500 }, + }, + { + { -1000, 500, -29500 }, + { -300, 300, -31500 }, + { 300, -150, -32500 }, + { -200, 250, -34000 }, + { -300, 300, -35000 }, + { -600, 300, -36000 }, + { 1000, -180, -40000 }, + { 1000, -180, -40000 }, + } + }; void fn_2_7EDC(s32 arg0, s32 arg1, float arg2, Vec *arg3) { - Vec *temp_r31; - Vec *temp_r30; - Vec *temp_r29; - Vec *temp_r28; - float temp_f31 = arg2*arg2; - if(arg1 == 0) { - temp_r31 = &lbl_2_data_334[arg0][arg1]; - temp_r30 = &lbl_2_data_334[arg0][arg1+1]; - temp_r29 = &lbl_2_data_334[arg0][arg1+2]; - temp_r28 = &lbl_2_data_334[arg0][arg1+3]; - arg3->x = (0.5f * ((2.0f * temp_r31->x) + ((temp_f31 * (temp_r29->x + (temp_r31->x - (2.0f * temp_r30->x)))) + (arg2 * (((-3.0f * temp_r31->x) + (4.0f * temp_r30->x)) - temp_r29->x))))); - arg3->y = (0.5f * ((2.0f * temp_r31->y) + ((temp_f31 * (temp_r29->y + (temp_r31->y - (2.0f * temp_r30->y)))) + (arg2 * (((-3.0f * temp_r31->y) + (4.0f * temp_r30->y)) - temp_r29->y))))); - arg3->z = (0.5f * ((2.0f * temp_r31->z) + ((temp_f31 * (temp_r29->z + (temp_r31->z - (2.0f * temp_r30->z)))) + (arg2 * (((-3.0f * temp_r31->z) + (4.0f * temp_r30->z)) - temp_r29->z))))); - } else { - temp_r31 = &lbl_2_data_334[arg0][arg1-1]; - temp_r30 = &lbl_2_data_334[arg0][arg1]; - temp_r29 = &lbl_2_data_334[arg0][arg1+1]; - temp_r28 = &lbl_2_data_334[arg0][arg1+2]; - arg3->x = (0.5f * ((2.0f * temp_r30->x) + ((arg2 * (-temp_r31->x + temp_r29->x)) + ((arg2 * (temp_f31 * (temp_r28->x + ((-temp_r31->x + (3.0f * temp_r30->x)) - (3.0f * temp_r29->x))))) + (temp_f31 * (((4.0f * temp_r29->x) + ((2.0f * temp_r31->x) - (5.0f * temp_r30->x))) - temp_r28->x)))))); - arg3->y = (0.5f * ((2.0f * temp_r30->y) + ((arg2 * (-temp_r31->y + temp_r29->y)) + ((arg2 * (temp_f31 * (temp_r28->y + ((-temp_r31->y + (3.0f * temp_r30->y)) - (3.0f * temp_r29->y))))) + (temp_f31 * (((4.0f * temp_r29->y) + ((2.0f * temp_r31->y) - (5.0f * temp_r30->y))) - temp_r28->y)))))); - arg3->z = (0.5f * ((2.0f * temp_r30->z) + ((arg2 * (-temp_r31->z + temp_r29->z)) + ((arg2 * (temp_f31 * (temp_r28->z + ((-temp_r31->z + (3.0f * temp_r30->z)) - (3.0f * temp_r29->z))))) + (temp_f31 * (((4.0f * temp_r29->z) + ((2.0f * temp_r31->z) - (5.0f * temp_r30->z))) - temp_r28->z)))))); - } + Vec *temp_r31; + Vec *temp_r30; + Vec *temp_r29; + Vec *temp_r28; + float temp_f31 = arg2 * arg2; + if (arg1 == 0) { + temp_r31 = &lbl_2_data_334[arg0][arg1]; + temp_r30 = &lbl_2_data_334[arg0][arg1 + 1]; + temp_r29 = &lbl_2_data_334[arg0][arg1 + 2]; + temp_r28 = &lbl_2_data_334[arg0][arg1 + 3]; + arg3->x = (0.5f + * ((2.0f * temp_r31->x) + + ((temp_f31 * (temp_r29->x + (temp_r31->x - (2.0f * temp_r30->x)))) + + (arg2 * (((-3.0f * temp_r31->x) + (4.0f * temp_r30->x)) - temp_r29->x))))); + arg3->y = (0.5f + * ((2.0f * temp_r31->y) + + ((temp_f31 * (temp_r29->y + (temp_r31->y - (2.0f * temp_r30->y)))) + + (arg2 * (((-3.0f * temp_r31->y) + (4.0f * temp_r30->y)) - temp_r29->y))))); + arg3->z = (0.5f + * ((2.0f * temp_r31->z) + + ((temp_f31 * (temp_r29->z + (temp_r31->z - (2.0f * temp_r30->z)))) + + (arg2 * (((-3.0f * temp_r31->z) + (4.0f * temp_r30->z)) - temp_r29->z))))); + } + else { + temp_r31 = &lbl_2_data_334[arg0][arg1 - 1]; + temp_r30 = &lbl_2_data_334[arg0][arg1]; + temp_r29 = &lbl_2_data_334[arg0][arg1 + 1]; + temp_r28 = &lbl_2_data_334[arg0][arg1 + 2]; + arg3->x = (0.5f + * ((2.0f * temp_r30->x) + + ((arg2 * (-temp_r31->x + temp_r29->x)) + + ((arg2 * (temp_f31 * (temp_r28->x + ((-temp_r31->x + (3.0f * temp_r30->x)) - (3.0f * temp_r29->x))))) + + (temp_f31 * (((4.0f * temp_r29->x) + ((2.0f * temp_r31->x) - (5.0f * temp_r30->x))) - temp_r28->x)))))); + arg3->y = (0.5f + * ((2.0f * temp_r30->y) + + ((arg2 * (-temp_r31->y + temp_r29->y)) + + ((arg2 * (temp_f31 * (temp_r28->y + ((-temp_r31->y + (3.0f * temp_r30->y)) - (3.0f * temp_r29->y))))) + + (temp_f31 * (((4.0f * temp_r29->y) + ((2.0f * temp_r31->y) - (5.0f * temp_r30->y))) - temp_r28->y)))))); + arg3->z = (0.5f + * ((2.0f * temp_r30->z) + + ((arg2 * (-temp_r31->z + temp_r29->z)) + + ((arg2 * (temp_f31 * (temp_r28->z + ((-temp_r31->z + (3.0f * temp_r30->z)) - (3.0f * temp_r29->z))))) + + (temp_f31 * (((4.0f * temp_r29->z) + ((2.0f * temp_r31->z) - (5.0f * temp_r30->z))) - temp_r28->z)))))); + } } s32 fn_2_8450(omObjData *object) { - Work7CB4 *temp_r31; - Vec *temp_r29; - Vec *temp_r28; - float temp_f29; - Vec sp18; - Vec spC; - temp_r31 = object->data; - while(1) { - if(temp_r31->unk2E == lbl_2_data_32C[temp_r31->unk2C]) { - return 1; - } - temp_r28 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E+1]; - temp_r29 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E]; - sp18.x = temp_r28->x - temp_r29->x; - sp18.y = temp_r28->y - temp_r29->y; - sp18.z = temp_r28->z - temp_r29->z; - temp_f29 = VECMagPoint(sp18.x, sp18.y, sp18.z); - if(temp_r31->unk30 > temp_f29) { - temp_r31->unk30 -= temp_f29; - temp_r31->unk2E++; - continue; - } - break; - } - fn_2_7EDC(temp_r31->unk2C, temp_r31->unk2E, temp_r31->unk30/temp_f29, &spC); - sp18.x = spC.x-object->trans.x; - sp18.y = spC.y-object->trans.y; - sp18.z = spC.z-object->trans.z; - VECNormalize(&sp18, &sp18); - object->trans.x = spC.x; - object->trans.y = spC.y; - object->trans.z = spC.z; - object->rot.y = atan2d(sp18.x, sp18.z); - object->rot.x = -90.0f*sp18.y; - return 0; + Work7CB4 *temp_r31; + Vec *temp_r29; + Vec *temp_r28; + float temp_f29; + Vec sp18; + Vec spC; + temp_r31 = object->data; + while (1) { + if (temp_r31->unk2E == lbl_2_data_32C[temp_r31->unk2C]) { + return 1; + } + temp_r28 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E + 1]; + temp_r29 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E]; + sp18.x = temp_r28->x - temp_r29->x; + sp18.y = temp_r28->y - temp_r29->y; + sp18.z = temp_r28->z - temp_r29->z; + temp_f29 = VECMagPoint(sp18.x, sp18.y, sp18.z); + if (temp_r31->unk30 > temp_f29) { + temp_r31->unk30 -= temp_f29; + temp_r31->unk2E++; + continue; + } + break; + } + fn_2_7EDC(temp_r31->unk2C, temp_r31->unk2E, temp_r31->unk30 / temp_f29, &spC); + sp18.x = spC.x - object->trans.x; + sp18.y = spC.y - object->trans.y; + sp18.z = spC.z - object->trans.z; + VECNormalize(&sp18, &sp18); + object->trans.x = spC.x; + object->trans.y = spC.y; + object->trans.z = spC.z; + object->rot.y = atan2d(sp18.x, sp18.z); + object->rot.x = -90.0f * sp18.y; + return 0; } s32 fn_2_873C(omObjData *object) { - Work7CB4 *temp_r30; - Vec sp8; - temp_r30 = object->data; - if(object->trans.x > -400.0f - && object->trans.x < 400.0f - && object->trans.z-lbl_2_bss_60.z < 300.0f - && object->trans.y > -300.0f - && object->trans.y < 300.0f) { - if(temp_r30->unk1E == 0) { - if(temp_r30->unk20 != 0) { - temp_r30->unk20--; - sp8.x = object->trans.x; - sp8.y = object->trans.y; - sp8.z = object->trans.z-lbl_2_bss_60.z; - fn_2_10A88(&sp8, 1); - return 1; - } - - } else { - temp_r30->unk1E--; - } - } - return 0; + Work7CB4 *temp_r30; + Vec sp8; + temp_r30 = object->data; + if (object->trans.x > -400.0f && object->trans.x < 400.0f && object->trans.z - lbl_2_bss_60.z < 300.0f && object->trans.y > -300.0f + && object->trans.y < 300.0f) { + if (temp_r30->unk1E == 0) { + if (temp_r30->unk20 != 0) { + temp_r30->unk20--; + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z - lbl_2_bss_60.z; + fn_2_10A88(&sp8, 1); + return 1; + } + } + else { + temp_r30->unk1E--; + } + } + return 0; } void fn_2_8968(omObjData *object); void fn_2_8868(omObjData *object) { - Work7CB4 *temp_r31; - temp_r31 = object->data; - if(lbl_2_bss_60.z < -20800.0f) { - Hu3DModelAttrReset(object->model[0], 1); - temp_r31->unk2C = 0; - temp_r31->unk2E = 0; - temp_r31->unk30 = 0; - temp_r31->unk1E = ((frand()%10)+13)*0.43478262f; - temp_r31->unk20 = 2; - fn_2_8450(object); - object->func = fn_2_8968; - } + Work7CB4 *temp_r31; + temp_r31 = object->data; + if (lbl_2_bss_60.z < -20800.0f) { + Hu3DModelAttrReset(object->model[0], 1); + temp_r31->unk2C = 0; + temp_r31->unk2E = 0; + temp_r31->unk30 = 0; + temp_r31->unk1E = ((frand() % 10) + 13) * 0.43478262f; + temp_r31->unk20 = 2; + fn_2_8450(object); + object->func = fn_2_8968; + } } void fn_2_8B58(omObjData *object); void fn_2_8968(omObjData *object) { - Work7CB4 *temp_r29; - temp_r29 = object->data; - temp_r29->unk30 += 25.875; - if(fn_2_873C(object)) { - temp_r29->unk1E = ((frand()%15)+22)*0.43478262f; - } - if(fn_2_8450(object)) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = fn_2_8B58; - } + Work7CB4 *temp_r29; + temp_r29 = object->data; + temp_r29->unk30 += 25.875; + if (fn_2_873C(object)) { + temp_r29->unk1E = ((frand() % 15) + 22) * 0.43478262f; + } + if (fn_2_8450(object)) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_2_8B58; + } } void fn_2_8C58(omObjData *object); void fn_2_8B58(omObjData *object) { - Work7CB4 *temp_r31; - temp_r31 = object->data; - if(lbl_2_bss_60.z < -30500.0f) { - Hu3DModelAttrReset(object->model[0], 1); - temp_r31->unk2C = 1; - temp_r31->unk2E = 0; - temp_r31->unk30 = 0; - temp_r31->unk1E = ((frand()%60)+50)*0.43478262f; - temp_r31->unk20 = 3; - fn_2_8450(object); - object->func = fn_2_8C58; - } + Work7CB4 *temp_r31; + temp_r31 = object->data; + if (lbl_2_bss_60.z < -30500.0f) { + Hu3DModelAttrReset(object->model[0], 1); + temp_r31->unk2C = 1; + temp_r31->unk2E = 0; + temp_r31->unk30 = 0; + temp_r31->unk1E = ((frand() % 60) + 50) * 0.43478262f; + temp_r31->unk20 = 3; + fn_2_8450(object); + object->func = fn_2_8C58; + } } -s32 lbl_2_data_424[] = { - 50, 95 -}; +s32 lbl_2_data_424[] = { 50, 95 }; void fn_2_8C58(omObjData *object) { - Work7CB4 *temp_r29; - temp_r29 = object->data; - temp_r29->unk30 += 25.875; - if(fn_2_873C(object)) { - temp_r29->unk1E = ((frand()%15)+lbl_2_data_424[lbl_2_bss_14++])*0.43478262f; - } - if(fn_2_8450(object)) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = NULL; - } + Work7CB4 *temp_r29; + temp_r29 = object->data; + temp_r29->unk30 += 25.875; + if (fn_2_873C(object)) { + temp_r29->unk1E = ((frand() % 15) + lbl_2_data_424[lbl_2_bss_14++]) * 0.43478262f; + } + if (fn_2_8450(object)) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = NULL; + } } typedef struct work_8E74 { - Vec unk0; - Vec unkC; - Vec unk18; - Vec unk24; - float unk30; - Vec unk34; + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; + float unk30; + Vec unk34; } Work8E74; void fn_2_9298(omObjData *object); void fn_2_8E74(omObjData *object) { - Work8E74 *temp_r31; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8E74), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - temp_r31->unk24.x = 6; - temp_r31->unk24.z = 90; - temp_r31->unk24.y = 100; - object->model[0] = Hu3DModelCreateFile(0x20000D); - object->motion[0] = Hu3DJointMotionFile(object->model[0], 0x200010); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[0], 1); - omSetTra(object, -1000, 0, -23000); - omSetRot(object, 0, 90, 0); - temp_r31->unkC.x = 1000.0f-object->trans.x; - temp_r31->unkC.y = temp_r31->unk24.y-object->trans.y; - temp_r31->unkC.z = 0; - temp_r31->unk34.x = 1000; - temp_r31->unk34.y = 30; - temp_r31->unk34.z = 360.0f+((1.0f/255.0f)*frandu8()); - temp_r31->unk30 = VECMagPoint(temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); - VECNormalize(&temp_r31->unkC, &temp_r31->unk0); - Hu3DModelShadowSet(object->model[0]); - object->work[3] = 2; - object->func = fn_2_9298; + Work8E74 *temp_r31; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8E74), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + temp_r31->unk24.x = 6; + temp_r31->unk24.z = 90; + temp_r31->unk24.y = 100; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x0D)); + object->motion[0] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M401, 0x10)); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], 1); + omSetTra(object, -1000, 0, -23000); + omSetRot(object, 0, 90, 0); + temp_r31->unkC.x = 1000.0f - object->trans.x; + temp_r31->unkC.y = temp_r31->unk24.y - object->trans.y; + temp_r31->unkC.z = 0; + temp_r31->unk34.x = 1000; + temp_r31->unk34.y = 30; + temp_r31->unk34.z = 360.0f + ((1.0f / 255.0f) * frandu8()); + temp_r31->unk30 = VECMagPoint(temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); + VECNormalize(&temp_r31->unkC, &temp_r31->unk0); + Hu3DModelShadowSet(object->model[0]); + object->work[3] = 2; + object->func = fn_2_9298; } void fn_2_91AC(omObjData *object, Vec *pos) { - Work8E74 *temp_r30; - temp_r30 = object->data; - temp_r30->unk18 = *pos; - temp_r30->unk34.z = (1.0f/255.0f)*(360.0f*frandu8()); - Hu3DModelAttrReset(object->model[0], 1); - omSetTra(object, pos->x, pos->y, pos->z); - object->work[2] = HuAudFXEmiterPlay(1284, &pos); - object->func = fn_2_9298; + Work8E74 *temp_r30; + temp_r30 = object->data; + temp_r30->unk18 = *pos; + temp_r30->unk34.z = (1.0f / 255.0f) * (360.0f * frandu8()); + Hu3DModelAttrReset(object->model[0], 1); + omSetTra(object, pos->x, pos->y, pos->z); + object->work[2] = HuAudFXEmiterPlay(1284, &pos); + object->func = fn_2_9298; } void fn_2_9298(omObjData *object) { - Work8E74 *temp_r31; - float temp_f29; - Vec spC; - temp_r31 = object->data; - object->trans.x = temp_r31->unk18.x+1000.0f*sind(temp_r31->unk34.z); - temp_f29 = (temp_r31->unk34.y/temp_r31->unk34.x)*sqrtf((temp_r31->unk34.x*temp_r31->unk34.x)-(object->trans.x*object->trans.x)); - if(temp_r31->unk34.z >= 90.0f && temp_r31->unk34.z <= 270.0f) { - temp_f29 = -temp_f29; - } - object->trans.z = temp_r31->unk18.z+temp_f29; - temp_r31->unk34.z += 0.6f+(0.6f*fabs(cosd(temp_r31->unk34.z))); - if(temp_r31->unk34.z >= 360.0f) { - temp_r31->unk34.z -= 360.0f; - } - omSetRot(object, 0, 90.0f+temp_r31->unk34.z , 0); - spC.x = object->trans.x; - spC.y = object->trans.y; - spC.z = object->trans.z; - HuAudFXEmiterUpDate(object->work[2], &spC); - if(object->trans.z > lbl_2_bss_6C.z-220.0f) { - Hu3DModelAttrSet(object->model[0], 1); - HuAudFXStop(object->work[2]); - object->func = NULL; - } + Work8E74 *temp_r31; + float temp_f29; + Vec spC; + temp_r31 = object->data; + object->trans.x = temp_r31->unk18.x + 1000.0f * sind(temp_r31->unk34.z); + temp_f29 = (temp_r31->unk34.y / temp_r31->unk34.x) * sqrtf((temp_r31->unk34.x * temp_r31->unk34.x) - (object->trans.x * object->trans.x)); + if (temp_r31->unk34.z >= 90.0f && temp_r31->unk34.z <= 270.0f) { + temp_f29 = -temp_f29; + } + object->trans.z = temp_r31->unk18.z + temp_f29; + temp_r31->unk34.z += 0.6f + (0.6f * fabs(cosd(temp_r31->unk34.z))); + if (temp_r31->unk34.z >= 360.0f) { + temp_r31->unk34.z -= 360.0f; + } + omSetRot(object, 0, 90.0f + temp_r31->unk34.z, 0); + spC.x = object->trans.x; + spC.y = object->trans.y; + spC.z = object->trans.z; + HuAudFXEmiterUpDate(object->work[2], &spC); + if (object->trans.z > lbl_2_bss_6C.z - 220.0f) { + Hu3DModelAttrSet(object->model[0], 1); + HuAudFXStop(object->work[2]); + object->func = NULL; + } } void fn_2_979C(omObjData *object); void fn_2_95E4(omObjData *object) { - object->model[0] = Hu3DModelCreateFile(0x200018); - object->motion[0] = Hu3DJointMotionFile(object->model[0], 0x200019); - object->motion[1] = Hu3DJointMotionFile(object->model[0], 0x20001A); - omSetTra(object, 3000, 0, -37000); - omSetRot(object, 0, 270, 0); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->work[3] = 3; - Hu3DModelShadowSet(object->model[0]); - object->func = fn_2_979C; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x18)); + object->motion[0] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M401, 0x19)); + object->motion[1] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M401, 0x1A)); + omSetTra(object, 3000, 0, -37000); + omSetRot(object, 0, 270, 0); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->work[3] = 3; + Hu3DModelShadowSet(object->model[0]); + object->func = fn_2_979C; } void fn_2_9734(s32 flag) { - if(flag) { - Hu3DModelAttrReset(lbl_2_bss_FC->model[0], 1); - } else { - Hu3DModelAttrSet(lbl_2_bss_FC->model[0], 1); - } + if (flag) { + Hu3DModelAttrReset(lbl_2_bss_FC->model[0], 1); + } + else { + Hu3DModelAttrSet(lbl_2_bss_FC->model[0], 1); + } } void fn_2_988C(omObjData *object); void fn_2_979C(omObjData *object) { - if(lbl_2_bss_60.z < -19000.0f) { - fn_2_9734(1); - omSetTra(object, -2500, -800, -21000); - omSetRot(object, 0, 125, 0); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->func = fn_2_988C; - } + if (lbl_2_bss_60.z < -19000.0f) { + fn_2_9734(1); + omSetTra(object, -2500, -800, -21000); + omSetRot(object, 0, 125, 0); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->func = fn_2_988C; + } } void fn_2_99A4(omObjData *object); void fn_2_988C(omObjData *object) { - object->trans.x += 2.3f*(26.0*sind(object->rot.y)); - object->trans.z += 2.3f*(26.0*cosd(object->rot.y)); - if(object->trans.x > 6000.0f) { - fn_2_9734(0); - object->func = fn_2_99A4; - } + object->trans.x += 2.3f * (26.0 * sind(object->rot.y)); + object->trans.z += 2.3f * (26.0 * cosd(object->rot.y)); + if (object->trans.x > 6000.0f) { + fn_2_9734(0); + object->func = fn_2_99A4; + } } void fn_2_9B90(omObjData *object); void fn_2_99A4(omObjData *object) { - float temp_f31; - if(lbl_2_bss_60.z <= -36200.0f+((1.0f/255.0f)*(200.0f*frandu8()))) { - temp_f31 = -250.0f+((1.0f/255.0f)*(500.0f*frandu8())); - fn_2_9734(1); - omSetTra(object, 3000, temp_f31, -37000); - omSetRot(object, 0, 270, 0); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->func = fn_2_9B90; - lbl_2_bss_78.x = object->trans.x; - lbl_2_bss_78.y = object->trans.y; - lbl_2_bss_78.z = object->trans.z; - lbl_2_bss_8C = HuAudFXEmiterPlay(1286, &lbl_2_bss_78); - } + float temp_f31; + if (lbl_2_bss_60.z <= -36200.0f + ((1.0f / 255.0f) * (200.0f * frandu8()))) { + temp_f31 = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + fn_2_9734(1); + omSetTra(object, 3000, temp_f31, -37000); + omSetRot(object, 0, 270, 0); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->func = fn_2_9B90; + lbl_2_bss_78.x = object->trans.x; + lbl_2_bss_78.y = object->trans.y; + lbl_2_bss_78.z = object->trans.z; + lbl_2_bss_8C = HuAudFXEmiterPlay(1286, &lbl_2_bss_78); + } } void fn_2_9B90(omObjData *object) { - object->trans.x += 2.3f*(17.0*sind(object->rot.y)); - object->trans.z += 2.3f*(17.0*cosd(object->rot.y)); - lbl_2_bss_78.x = object->trans.x; - lbl_2_bss_78.y = object->trans.y; - lbl_2_bss_78.z = object->trans.z; - HuAudFXEmiterUpDate(lbl_2_bss_8C, &lbl_2_bss_78); - if(object->trans.x <= -3000.0f) { - fn_2_9734(0); - object->func = NULL; - HuAudFXStop(lbl_2_bss_8C); - } + object->trans.x += 2.3f * (17.0 * sind(object->rot.y)); + object->trans.z += 2.3f * (17.0 * cosd(object->rot.y)); + lbl_2_bss_78.x = object->trans.x; + lbl_2_bss_78.y = object->trans.y; + lbl_2_bss_78.z = object->trans.z; + HuAudFXEmiterUpDate(lbl_2_bss_8C, &lbl_2_bss_78); + if (object->trans.x <= -3000.0f) { + fn_2_9734(0); + object->func = NULL; + HuAudFXStop(lbl_2_bss_8C); + } } typedef struct work_a318 { - Vec unk0; - s16 unkC; + Vec unk0; + s16 unkC; } WorkA318; -s32 lbl_2_data_42C[] = { - 0x20001C, - 0x20001D -}; +s32 lbl_2_data_42C[] = { DATA_MAKE_NUM(DATADIR_M401, 0x1C), DATA_MAKE_NUM(DATADIR_M401, 0x1D) }; void fn_2_9D00(Process *objman) { - omObjData *temp_r31; - s32 temp_r30; - s32 temp_r29; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r31 = omAddObjEx(objman, 1130, 1, 2, -1, NULL); - lbl_2_bss_E4[temp_r29] = temp_r31; - temp_r31->model[0] = Hu3DModelCreateFile(0x20001B); - for(temp_r30=0; temp_r30<2; temp_r30++) { - temp_r31->motion[temp_r30] = Hu3DJointMotionFile(temp_r31->model[0], lbl_2_data_42C[temp_r30]); - } - Hu3DModelAttrSet(temp_r31->model[0], 1); - temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA318), MEMORY_DEFAULT_NUM); - Hu3DModelShadowSet(temp_r31->model[0]); - temp_r31->work[3] = 1; - } + omObjData *temp_r31; + s32 temp_r30; + s32 temp_r29; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r31 = omAddObjEx(objman, 1130, 1, 2, -1, NULL); + lbl_2_bss_E4[temp_r29] = temp_r31; + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x1B)); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + temp_r31->motion[temp_r30] = Hu3DJointMotionFile(temp_r31->model[0], lbl_2_data_42C[temp_r30]); + } + Hu3DModelAttrSet(temp_r31->model[0], 1); + temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA318), MEMORY_DEFAULT_NUM); + Hu3DModelShadowSet(temp_r31->model[0]); + temp_r31->work[3] = 1; + } } void fn_2_A318(omObjData *object); - void fn_2_9E28(float arg1, float arg2) { - s32 temp_r31; - WorkA318 *temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - temp_f30 = (arg2-arg1)/4; - temp_f31 = arg1; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_2_bss_E4[temp_r31]->data; - Hu3DModelAttrReset(lbl_2_bss_E4[temp_r31]->model[0], 1); - temp_f29 = -400.0f+((1.0f/255.0f)*(800.0f*frandu8())); - temp_r30->unk0.x = -250.0f+((1.0f/255.0f)*(500.0f*frandu8())); - omSetTra(lbl_2_bss_E4[temp_r31], temp_f29, temp_r30->unk0.x+lbl_2_bss_60.y, temp_f31); - Hu3DMotionSet(lbl_2_bss_E4[temp_r31]->model[0], lbl_2_bss_E4[temp_r31]->motion[0]); - Hu3DModelAttrSet(lbl_2_bss_E4[temp_r31]->model[0], 0x40000001); - temp_f31 += temp_f30; - temp_r30->unkC = (frand()%30)+30; - temp_r30->unk0.z = 0; - lbl_2_bss_E4[temp_r31]->func = fn_2_A318; - } + s32 temp_r31; + WorkA318 *temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + temp_f30 = (arg2 - arg1) / 4; + temp_f31 = arg1; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_2_bss_E4[temp_r31]->data; + Hu3DModelAttrReset(lbl_2_bss_E4[temp_r31]->model[0], 1); + temp_f29 = -400.0f + ((1.0f / 255.0f) * (800.0f * frandu8())); + temp_r30->unk0.x = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + omSetTra(lbl_2_bss_E4[temp_r31], temp_f29, temp_r30->unk0.x + lbl_2_bss_60.y, temp_f31); + Hu3DMotionSet(lbl_2_bss_E4[temp_r31]->model[0], lbl_2_bss_E4[temp_r31]->motion[0]); + Hu3DModelAttrSet(lbl_2_bss_E4[temp_r31]->model[0], 0x40000001); + temp_f31 += temp_f30; + temp_r30->unkC = (frand() % 30) + 30; + temp_r30->unk0.z = 0; + lbl_2_bss_E4[temp_r31]->func = fn_2_A318; + } } omObjData *fn_2_A0B0(omObjData *object) { - omObjData *temp_r31; - s32 temp_r30; - omObjData *temp_r29; - M401WorkPlayer *spC; - - float temp_f27; - float temp_f26; - temp_f26 = 999999; - for(temp_r30=0; temp_r30<4; temp_r30++) { - float temp_f31; - float temp_f30; - float temp_f29; - temp_r31 = lbl_2_bss_118[temp_r30]; - spC = temp_r31->data; - temp_f31 = temp_r31->trans.x - object->trans.x; - temp_f30 = temp_r31->trans.y - object->trans.y; - temp_f29 = 0.4f*(temp_r31->trans.z - object->trans.z); - temp_f27 = VECMagPoint(temp_f31, temp_f30, temp_f29); - if(temp_f27 < temp_f26) { - temp_r29 = lbl_2_bss_118[temp_r30]; - temp_f26 = temp_f27; - } - } - return temp_r29; + omObjData *temp_r31; + s32 temp_r30; + omObjData *temp_r29; + M401WorkPlayer *spC; + + float temp_f27; + float temp_f26; + temp_f26 = 999999; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + float temp_f31; + float temp_f30; + float temp_f29; + temp_r31 = lbl_2_bss_118[temp_r30]; + spC = temp_r31->data; + temp_f31 = temp_r31->trans.x - object->trans.x; + temp_f30 = temp_r31->trans.y - object->trans.y; + temp_f29 = 0.4f * (temp_r31->trans.z - object->trans.z); + temp_f27 = VECMagPoint(temp_f31, temp_f30, temp_f29); + if (temp_f27 < temp_f26) { + temp_r29 = lbl_2_bss_118[temp_r30]; + temp_f26 = temp_f27; + } + } + return temp_r29; } void fn_2_A318(omObjData *object) { - WorkA318 *temp_r30; - omObjData *temp_r28; - M401WorkPlayer *sp10; - temp_r30 = object->data; - if(0.0f == temp_r30->unk0.z) { - if(temp_r30->unkC == 0) { - temp_r28 = fn_2_A0B0(object); - sp10 = temp_r28->data; - temp_r30->unk0.y = atan2d(temp_r28->trans.y - object->trans.y, temp_r28->trans.x - object->trans.x); - temp_r30->unk0.z = 8.0f+((1.0f/255.0f)*((9.0f*frandu8()))); - Hu3DMotionSet(object->model[0], object->motion[1]); - Hu3DModelAttrReset(object->model[0], 0x40000001); - lbl_2_bss_78.x = object->trans.x; - lbl_2_bss_78.y = object->trans.y; - lbl_2_bss_78.z = object->trans.z; - HuAudFXEmiterPlay(1282, &lbl_2_bss_78); - } else { - temp_r30->unkC--; - temp_r30->unk0.x -= 2.5f; - } - } else { - temp_r30->unk0.x = temp_r30->unk0.x+(temp_r30->unk0.z*sind(temp_r30->unk0.y)); - object->trans.x += temp_r30->unk0.z*cosd(temp_r30->unk0.y); - temp_r30->unk0.z *= 0.94f; - if(temp_r30->unk0.z < 0.1f) { - temp_r30->unk0.z = 0; - temp_r30->unkC = (frand()%30)+25; - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - } - } - if(temp_r30->unk0.x < -300.0f) { - temp_r30->unk0.x = -300.0f; - } - if(temp_r30->unk0.x > 300.0f) { - temp_r30->unk0.x = 300.0f; - } - if(object->trans.x < -400.0f) { - object->trans.x = -400.0f; - } - if(object->trans.x > 400.0f) { - object->trans.x = 400.0f; - } - omSetTra(object, object->trans.x, temp_r30->unk0.x+lbl_2_bss_60.y, object->trans.z); - if(object->trans.z > lbl_2_bss_6C.z-160.0f) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = NULL; - } + WorkA318 *temp_r30; + omObjData *temp_r28; + M401WorkPlayer *sp10; + temp_r30 = object->data; + if (0.0f == temp_r30->unk0.z) { + if (temp_r30->unkC == 0) { + temp_r28 = fn_2_A0B0(object); + sp10 = temp_r28->data; + temp_r30->unk0.y = atan2d(temp_r28->trans.y - object->trans.y, temp_r28->trans.x - object->trans.x); + temp_r30->unk0.z = 8.0f + ((1.0f / 255.0f) * ((9.0f * frandu8()))); + Hu3DMotionSet(object->model[0], object->motion[1]); + Hu3DModelAttrReset(object->model[0], 0x40000001); + lbl_2_bss_78.x = object->trans.x; + lbl_2_bss_78.y = object->trans.y; + lbl_2_bss_78.z = object->trans.z; + HuAudFXEmiterPlay(1282, &lbl_2_bss_78); + } + else { + temp_r30->unkC--; + temp_r30->unk0.x -= 2.5f; + } + } + else { + temp_r30->unk0.x = temp_r30->unk0.x + (temp_r30->unk0.z * sind(temp_r30->unk0.y)); + object->trans.x += temp_r30->unk0.z * cosd(temp_r30->unk0.y); + temp_r30->unk0.z *= 0.94f; + if (temp_r30->unk0.z < 0.1f) { + temp_r30->unk0.z = 0; + temp_r30->unkC = (frand() % 30) + 25; + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + } + } + if (temp_r30->unk0.x < -300.0f) { + temp_r30->unk0.x = -300.0f; + } + if (temp_r30->unk0.x > 300.0f) { + temp_r30->unk0.x = 300.0f; + } + if (object->trans.x < -400.0f) { + object->trans.x = -400.0f; + } + if (object->trans.x > 400.0f) { + object->trans.x = 400.0f; + } + omSetTra(object, object->trans.x, temp_r30->unk0.x + lbl_2_bss_60.y, object->trans.z); + if (object->trans.z > lbl_2_bss_6C.z - 160.0f) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = NULL; + } } void fn_2_A8A4(omObjData *object, float x, float y, float z) { - omSetTra(object, lbl_2_bss_60.x+x, lbl_2_bss_60.y+y, lbl_2_bss_60.z+z); + omSetTra(object, lbl_2_bss_60.x + x, lbl_2_bss_60.y + y, lbl_2_bss_60.z + z); } -s32 lbl_2_data_434[] = { - 0x12D, - 0x16D, - 0x1AD, - 0x1ED, - 0x22D, - 0x26D, - 0x2AD, - 0x2ED -}; +s32 lbl_2_data_434[] = { 0x12D, 0x16D, 0x1AD, 0x1ED, 0x22D, 0x26D, 0x2AD, 0x2ED }; void fn_2_A914(s32 player) { - HuAudPlayerVoicePlay(player, 301); + HuAudPlayerVoicePlay(player, 301); } void fn_2_A940(omObjData *object) { - Vec spC; - omObjData *sp8; - M401WorkPlayer *temp_r28; - s32 temp_r23; - temp_r28 = object->data; - if(temp_r28->unk78 != 0) { - return; - } - spC.x = object->trans.x; - spC.y = object->trans.y; - spC.z = object->trans.z; - if((temp_r23 = fn_2_AC2C(&spC, 90, &sp8)) != 0) { - if(temp_r23 == 1) { - omVibrate(temp_r28->unk4, 12, 4, 2); - } else if(temp_r23 == 3) { - omVibrate(temp_r28->unk4, 12, 4, 2); - } else { - omVibrate(temp_r28->unk4, 12, 12, 0); - } - fn_2_7C3C(object); - fn_2_1858(temp_r28->unk4, sp8->work[3]); - } - + Vec spC; + omObjData *sp8; + M401WorkPlayer *temp_r28; + s32 temp_r23; + temp_r28 = object->data; + if (temp_r28->unk78 != 0) { + return; + } + spC.x = object->trans.x; + spC.y = object->trans.y; + spC.z = object->trans.z; + if ((temp_r23 = fn_2_AC2C(&spC, 90, &sp8)) != 0) { + if (temp_r23 == 1) { + omVibrate(temp_r28->unk4, 12, 4, 2); + } + else if (temp_r23 == 3) { + omVibrate(temp_r28->unk4, 12, 4, 2); + } + else { + omVibrate(temp_r28->unk4, 12, 12, 0); + } + fn_2_7C3C(object); + fn_2_1858(temp_r28->unk4, sp8->work[3]); + } } s32 fn_2_AC2C(Vec *pos, float dist, omObjData **newobj) { - omObjData *temp_r30; - s32 temp_r29; - float temp_f20; - float temp_f19; - float temp_f18; - WorkA318 *sp70; - float sp6C; - - *newobj = NULL; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r30 = lbl_2_bss_E4[temp_r29]; - if(temp_r30->func != NULL) { - sp70 = temp_r30->data; - temp_f20 = VECMagPoint(pos->x-temp_r30->trans.x, pos->y-temp_r30->trans.y, pos->z-temp_r30->trans.z); - if(temp_f20 < sqrtf(1024.0f+(dist*dist))) { - *newobj = temp_r30; - return 1; - } - } - } - temp_r30 = lbl_2_bss_FC; - temp_f20 = VECDistanceZY(pos, &temp_r30->trans); - if(temp_f20 < sqrtf(6400.0f+(dist*dist)) - && temp_r30->trans.x < pos->x-(dist/2.0f) - && 1500.0f+temp_r30->trans.x > pos->x+(dist/2.0f)) { - *newobj = temp_r30; - return 2; - } - for(temp_r29=0; temp_r29<2; temp_r29++) { - if(lbl_2_bss_100[temp_r29]->func != NULL) { - temp_f19 = lbl_2_bss_100[temp_r29]->trans.x+(70.0*sind(lbl_2_bss_100[temp_r29]->rot.y)); - temp_f18 = lbl_2_bss_100[temp_r29]->trans.z+(70.0*cosd(lbl_2_bss_100[temp_r29]->rot.y)); - sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f; - temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18); - if(temp_f20 < sqrtf(4900.0f+(dist*dist))) { - *newobj = lbl_2_bss_100[temp_r29]; - return 3; - } - temp_f19 = lbl_2_bss_100[temp_r29]->trans.x; - temp_f18 = lbl_2_bss_100[temp_r29]->trans.z; - sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f; - temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18); - if(temp_f20 < sqrtf(4900.0f+(dist*dist))) { - *newobj = lbl_2_bss_100[temp_r29]; - return 3; - } - temp_f19 = lbl_2_bss_100[temp_r29]->trans.x+(70.0*sind(lbl_2_bss_100[temp_r29]->rot.y+180.0f)); - temp_f18 = lbl_2_bss_100[temp_r29]->trans.z+(70.0*cosd(lbl_2_bss_100[temp_r29]->rot.y+180.0f)); - sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f; - temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18); - if(temp_f20 < sqrtf(4410.0f+(dist*dist))) { - *newobj = lbl_2_bss_100[temp_r29]; - return 3; - } - } - } - return 0; + omObjData *temp_r30; + s32 temp_r29; + float temp_f20; + float temp_f19; + float temp_f18; + WorkA318 *sp70; + float sp6C; + + *newobj = NULL; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r30 = lbl_2_bss_E4[temp_r29]; + if (temp_r30->func != NULL) { + sp70 = temp_r30->data; + temp_f20 = VECMagPoint(pos->x - temp_r30->trans.x, pos->y - temp_r30->trans.y, pos->z - temp_r30->trans.z); + if (temp_f20 < sqrtf(1024.0f + (dist * dist))) { + *newobj = temp_r30; + return 1; + } + } + } + temp_r30 = lbl_2_bss_FC; + temp_f20 = VECDistanceZY(pos, &temp_r30->trans); + if (temp_f20 < sqrtf(6400.0f + (dist * dist)) && temp_r30->trans.x < pos->x - (dist / 2.0f) + && 1500.0f + temp_r30->trans.x > pos->x + (dist / 2.0f)) { + *newobj = temp_r30; + return 2; + } + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + if (lbl_2_bss_100[temp_r29]->func != NULL) { + temp_f19 = lbl_2_bss_100[temp_r29]->trans.x + (70.0 * sind(lbl_2_bss_100[temp_r29]->rot.y)); + temp_f18 = lbl_2_bss_100[temp_r29]->trans.z + (70.0 * cosd(lbl_2_bss_100[temp_r29]->rot.y)); + sp6C = lbl_2_bss_100[temp_r29]->trans.y - 10.0f; + temp_f20 = VECMagPoint(pos->x - temp_f19, pos->y - sp6C, pos->z - temp_f18); + if (temp_f20 < sqrtf(4900.0f + (dist * dist))) { + *newobj = lbl_2_bss_100[temp_r29]; + return 3; + } + temp_f19 = lbl_2_bss_100[temp_r29]->trans.x; + temp_f18 = lbl_2_bss_100[temp_r29]->trans.z; + sp6C = lbl_2_bss_100[temp_r29]->trans.y - 10.0f; + temp_f20 = VECMagPoint(pos->x - temp_f19, pos->y - sp6C, pos->z - temp_f18); + if (temp_f20 < sqrtf(4900.0f + (dist * dist))) { + *newobj = lbl_2_bss_100[temp_r29]; + return 3; + } + temp_f19 = lbl_2_bss_100[temp_r29]->trans.x + (70.0 * sind(lbl_2_bss_100[temp_r29]->rot.y + 180.0f)); + temp_f18 = lbl_2_bss_100[temp_r29]->trans.z + (70.0 * cosd(lbl_2_bss_100[temp_r29]->rot.y + 180.0f)); + sp6C = lbl_2_bss_100[temp_r29]->trans.y - 10.0f; + temp_f20 = VECMagPoint(pos->x - temp_f19, pos->y - sp6C, pos->z - temp_f18); + if (temp_f20 < sqrtf(4410.0f + (dist * dist))) { + *newobj = lbl_2_bss_100[temp_r29]; + return 3; + } + } + } + return 0; } void fn_2_D8CC(omObjData *object); void fn_2_BD90(omObjData *object) { - s32 temp_r27; - M401WorkPlayer *temp_r26; - switch(object->work[0]) { - case 0: - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);; - object->work[0] = 1; - break; - - case 1: - if(!WipeStatGet()) { - object->work[0] = 2; - object->work[1] = 180; - } - break; - - case 2: - if(object->work[1] == 0) { - lbl_2_bss_C0 = MGSeqStartCreate(); - object->work[0] = 3; - lbl_2_bss_A4 = HuAudSeqPlay(68); - } else { - object->work[1]--; - } - break; - - case 3: - if(!MGSeqStatGet(lbl_2_bss_C0)) { - fn_2_AEC(1); - lbl_2_bss_120 = 1; - fn_2_1A38(lbl_2_bss_10C); - - lbl_2_bss_10C->func = fn_2_34B8; - for(temp_r27=0; temp_r27<4; temp_r27++) { - temp_r26 = lbl_2_bss_118[temp_r27]->data; - temp_r26->unk58.z = 0; - temp_r26->unkC.z = 800; - lbl_2_bss_118[temp_r27]->func = fn_2_5CC0; - object->trans.x = object->trans.y = object->trans.z = 0; - } - lbl_2_bss_108->func = fn_2_8868; - omDelObjEx(HuPrcCurrentGet(), object); - lbl_2_bss_114 = NULL; - lbl_2_bss_4->func = fn_2_D8CC; - } - - break; - } + s32 temp_r27; + M401WorkPlayer *temp_r26; + switch (object->work[0]) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + ; + object->work[0] = 1; + break; + + case 1: + if (!WipeStatGet()) { + object->work[0] = 2; + object->work[1] = 180; + } + break; + + case 2: + if (object->work[1] == 0) { + lbl_2_bss_C0 = MGSeqStartCreate(); + object->work[0] = 3; + lbl_2_bss_A4 = HuAudSeqPlay(68); + } + else { + object->work[1]--; + } + break; + + case 3: + if (!MGSeqStatGet(lbl_2_bss_C0)) { + fn_2_AEC(1); + lbl_2_bss_120 = 1; + fn_2_1A38(lbl_2_bss_10C); + + lbl_2_bss_10C->func = fn_2_34B8; + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + temp_r26 = lbl_2_bss_118[temp_r27]->data; + temp_r26->unk58.z = 0; + temp_r26->unkC.z = 800; + lbl_2_bss_118[temp_r27]->func = fn_2_5CC0; + object->trans.x = object->trans.y = object->trans.z = 0; + } + lbl_2_bss_108->func = fn_2_8868; + omDelObjEx(HuPrcCurrentGet(), object); + lbl_2_bss_114 = NULL; + lbl_2_bss_4->func = fn_2_D8CC; + } + + break; + } } void fn_2_C130(omObjData *object) { - M401WorkPlayer *temp_r31; - s32 temp_r30; - LightData *temp_r28; - Vec sp14; - Vec sp8; - switch(object->work[0]) { - case 0: - if(!MGSeqStatGet(lbl_2_bss_C0)) { - object->work[0] = 1; - HuAudFXStop(lbl_2_bss_11C); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - WipeColorSet(255, 255, 255); - } - break; - - case 1: - if(WipeStatGet()) { - return; - } - Hu3DFogClear(); - temp_r28 = &Hu3DGlobalLight[0]; - temp_r28->color.r = 255; - temp_r28->color.g = 255; - temp_r28->color.b = 255; - sp14.x = 0; - sp14.y = 2500; - sp14.z = 1000; - sp8.x = 0; - sp8.y = 1030; - sp8.z = 0; - Hu3DGLightPosAimSetV(lbl_2_bss_A8, &sp14, &sp8); - lbl_2_data_30.x = 0; - lbl_2_data_30.y = 2500; - lbl_2_data_30.z = 1000; - lbl_2_data_48.x = 0; - lbl_2_data_48.y = 1030; - lbl_2_data_48.z = 0; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - HuAudAUXVolSet(-1, -1); - fn_2_2ED0(lbl_2_bss_10C); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_2_bss_118[temp_r30]->data; - temp_r31->unk50->work[0] = 1; - temp_r31->unk6C = 0; - CharModelMotionSet(((M401WorkPlayer *)(lbl_2_bss_118[temp_r30]->data))->unk86, lbl_2_bss_118[temp_r30]->motion[4]); - Hu3DModelAttrReset(lbl_2_bss_118[temp_r30]->model[0], 0x40000001); - lbl_2_bss_118[temp_r30]->func = fn_2_48A0; - Hu3DModelAmbSet(lbl_2_bss_118[temp_r30]->model[0], 0.7f, 0.7f, 0.7f); - omSetTra(lbl_2_bss_118[temp_r30], -225.0f+(temp_r30*150), 740, 400); - omSetRot(lbl_2_bss_118[temp_r30], 0, 0, 0); - if(temp_r31->unk68) { - if(lbl_2_bss_BA == 1) { - temp_r31->unk0 = 10; - temp_r31->unk58.x = 13; - } else { - temp_r31->unk58.x = 10; - temp_r31->unk0 = 6; - } - OSReport("GetCoin:%d\n", temp_r30); - GWPlayerCoinWinSet(temp_r30, 10); - } else { - temp_r31->unk58.x = 10; - temp_r31->unk0 = 6; - } - } - fn_2_26E0(lbl_2_bss_10C); - object->work[0] = 2; - lbl_2_bss_F4->work[0] = 1; - fn_2_141B0(); - lbl_2_bss_10C->func = fn_2_3838; - lbl_2_bss_11C = HuAudFXPlay(1280); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - omDelObjEx(HuPrcCurrentGet(), lbl_2_bss_C8); - break; - - case 2: - WipeStatGet() == 0; - break; - } + M401WorkPlayer *temp_r31; + s32 temp_r30; + LightData *temp_r28; + Vec sp14; + Vec sp8; + switch (object->work[0]) { + case 0: + if (!MGSeqStatGet(lbl_2_bss_C0)) { + object->work[0] = 1; + HuAudFXStop(lbl_2_bss_11C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + WipeColorSet(255, 255, 255); + } + break; + + case 1: + if (WipeStatGet()) { + return; + } + Hu3DFogClear(); + temp_r28 = &Hu3DGlobalLight[0]; + temp_r28->color.r = 255; + temp_r28->color.g = 255; + temp_r28->color.b = 255; + sp14.x = 0; + sp14.y = 2500; + sp14.z = 1000; + sp8.x = 0; + sp8.y = 1030; + sp8.z = 0; + Hu3DGLightPosAimSetV(lbl_2_bss_A8, &sp14, &sp8); + lbl_2_data_30.x = 0; + lbl_2_data_30.y = 2500; + lbl_2_data_30.z = 1000; + lbl_2_data_48.x = 0; + lbl_2_data_48.y = 1030; + lbl_2_data_48.z = 0; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + HuAudAUXVolSet(-1, -1); + fn_2_2ED0(lbl_2_bss_10C); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_2_bss_118[temp_r30]->data; + temp_r31->unk50->work[0] = 1; + temp_r31->unk6C = 0; + CharModelMotionSet(((M401WorkPlayer *)(lbl_2_bss_118[temp_r30]->data))->unk86, lbl_2_bss_118[temp_r30]->motion[4]); + Hu3DModelAttrReset(lbl_2_bss_118[temp_r30]->model[0], 0x40000001); + lbl_2_bss_118[temp_r30]->func = fn_2_48A0; + Hu3DModelAmbSet(lbl_2_bss_118[temp_r30]->model[0], 0.7f, 0.7f, 0.7f); + omSetTra(lbl_2_bss_118[temp_r30], -225.0f + (temp_r30 * 150), 740, 400); + omSetRot(lbl_2_bss_118[temp_r30], 0, 0, 0); + if (temp_r31->unk68) { + if (lbl_2_bss_BA == 1) { + temp_r31->unk0 = 10; + temp_r31->unk58.x = 13; + } + else { + temp_r31->unk58.x = 10; + temp_r31->unk0 = 6; + } + OSReport("GetCoin:%d\n", temp_r30); + GWPlayerCoinWinSet(temp_r30, 10); + } + else { + temp_r31->unk58.x = 10; + temp_r31->unk0 = 6; + } + } + fn_2_26E0(lbl_2_bss_10C); + object->work[0] = 2; + lbl_2_bss_F4->work[0] = 1; + fn_2_141B0(); + lbl_2_bss_10C->func = fn_2_3838; + lbl_2_bss_11C = HuAudFXPlay(1280); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + omDelObjEx(HuPrcCurrentGet(), lbl_2_bss_C8); + break; + + case 2: + WipeStatGet() == 0; + break; + } } typedef struct work_c840 { - Vec unk0[9]; - float unk6C[9]; + Vec unk0[9]; + float unk6C[9]; } WorkC840; void fn_2_C840(s16 arg0); @@ -2835,665 +2856,676 @@ void fn_2_CAB0(omObjData *object); void fn_2_C6DC(omObjData *object) { - s32 temp_r30; - float temp_f31; - WorkC840 *sp8; - sp8 = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkC840), MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30<9; temp_r30++) { - if(temp_r30 == 0) { - object->model[temp_r30] = Hu3DModelCreateFile(0x200002); - } else { - object->model[temp_r30] = Hu3DModelCreateFile(0x200002); - } - Hu3DModelLayerSet(object->model[temp_r30], 1); - fn_2_C840(temp_r30); - temp_f31 = (1.0f/255.0f)*(Hu3DMotionMaxTimeGet(object->model[temp_r30])*frandu8()); - Hu3DMotionTimeSet(object->model[temp_r30], temp_f31); - } - omSetStatBit(object, 0x100); - object->func = fn_2_CAB0; + s32 temp_r30; + float temp_f31; + WorkC840 *sp8; + sp8 = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkC840), MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < 9; temp_r30++) { + if (temp_r30 == 0) { + object->model[temp_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x02)); + } + else { + object->model[temp_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x02)); + } + Hu3DModelLayerSet(object->model[temp_r30], 1); + fn_2_C840(temp_r30); + temp_f31 = (1.0f / 255.0f) * (Hu3DMotionMaxTimeGet(object->model[temp_r30]) * frandu8()); + Hu3DMotionTimeSet(object->model[temp_r30], temp_f31); + } + omSetStatBit(object, 0x100); + object->func = fn_2_CAB0; } void fn_2_C840(s16 arg0) { - WorkC840 *temp_r31; - float temp_f31, temp_f30; - temp_r31 = lbl_2_bss_F8->data; - temp_f30 = (1.0f/255.0f)*(360.0f*frandu8()); - temp_f31 = (1.0f/255.0f)*(200.0f*frandu8()); - temp_r31->unk0[arg0].x = temp_f31*cosd(temp_f30); - temp_r31->unk0[arg0].z = temp_f31*sind(temp_f30); - temp_r31->unk0[arg0].y = 1000; - temp_r31->unk6C[arg0] = 1.0f; - temp_f31 *= 0.25f; - Hu3DModelRotSet(lbl_2_bss_F8->model[arg0], temp_f31*sind(temp_f30), 0, temp_f31*cosd(temp_f30)); - Hu3DMotionTimeSet(lbl_2_bss_F8->model[arg0], 0); + WorkC840 *temp_r31; + float temp_f31, temp_f30; + temp_r31 = lbl_2_bss_F8->data; + temp_f30 = (1.0f / 255.0f) * (360.0f * frandu8()); + temp_f31 = (1.0f / 255.0f) * (200.0f * frandu8()); + temp_r31->unk0[arg0].x = temp_f31 * cosd(temp_f30); + temp_r31->unk0[arg0].z = temp_f31 * sind(temp_f30); + temp_r31->unk0[arg0].y = 1000; + temp_r31->unk6C[arg0] = 1.0f; + temp_f31 *= 0.25f; + Hu3DModelRotSet(lbl_2_bss_F8->model[arg0], temp_f31 * sind(temp_f30), 0, temp_f31 * cosd(temp_f30)); + Hu3DMotionTimeSet(lbl_2_bss_F8->model[arg0], 0); } void fn_2_CAB0(omObjData *object) { - s32 temp_r31; - WorkC840 *temp_r29; - u8 temp_r28; - float temp_f29; - temp_r29 = object->data; - for(temp_r31=0; temp_r31<9; temp_r31++) { - Hu3DModelPosSet(object->model[temp_r31], temp_r29->unk0[temp_r31].x, temp_r29->unk0[temp_r31].y, lbl_2_bss_38.z+temp_r29->unk0[temp_r31].z-500); - Hu3DModelTPLvlSet(object->model[temp_r31], temp_r29->unk6C[temp_r31]); - temp_f29 = Hu3DMotionTimeGet(object->model[temp_r31])/Hu3DMotionMaxTimeGet(object->model[temp_r31]); - temp_r29->unk6C[temp_r31] = 1.0f-temp_f29; - if(Hu3DMotionTimeGet(object->model[temp_r31]) >= Hu3DMotionMaxTimeGet(object->model[temp_r31])) { - fn_2_C840(temp_r31); - } - } - if(lbl_2_bss_60.z <= -26800.0f && lbl_2_bss_60.z >= -27400.0f) { - temp_r28 = 255.0f-(223.0f*(-(lbl_2_bss_60.z+26800.0f) / 600.0f)); - if(temp_r28 < 32) { - temp_r28 = 32; - } - } else if(lbl_2_bss_60.z <= -27700.0f && lbl_2_bss_60.z >= -28300.0f) { - temp_r28 = 32.0f+(223.0f*(-(lbl_2_bss_60.z+27700.0f) / 600.0f)); - } else if(lbl_2_bss_60.z < -27400.0f && lbl_2_bss_60.z > -28300.0f) { - temp_r28 = 32; - } else { - temp_r28 = 255; - } - Hu3DGLightColorSet(lbl_2_bss_A8, temp_r28, temp_r28, temp_r28, 255); - if(lbl_2_bss_60.z < -26600.0f && lbl_2_bss_60.z > -27500.0f) { - for(temp_r31=0; temp_r31<9; temp_r31++) { - Hu3DModelAttrSet(object->model[temp_r31], 1); - } - } else { - for(temp_r31=0; temp_r31<9; temp_r31++) { - Hu3DModelAttrReset(object->model[temp_r31], 1); - } - } + s32 temp_r31; + WorkC840 *temp_r29; + u8 temp_r28; + float temp_f29; + temp_r29 = object->data; + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + Hu3DModelPosSet( + object->model[temp_r31], temp_r29->unk0[temp_r31].x, temp_r29->unk0[temp_r31].y, lbl_2_bss_38.z + temp_r29->unk0[temp_r31].z - 500); + Hu3DModelTPLvlSet(object->model[temp_r31], temp_r29->unk6C[temp_r31]); + temp_f29 = Hu3DMotionTimeGet(object->model[temp_r31]) / Hu3DMotionMaxTimeGet(object->model[temp_r31]); + temp_r29->unk6C[temp_r31] = 1.0f - temp_f29; + if (Hu3DMotionTimeGet(object->model[temp_r31]) >= Hu3DMotionMaxTimeGet(object->model[temp_r31])) { + fn_2_C840(temp_r31); + } + } + if (lbl_2_bss_60.z <= -26800.0f && lbl_2_bss_60.z >= -27400.0f) { + temp_r28 = 255.0f - (223.0f * (-(lbl_2_bss_60.z + 26800.0f) / 600.0f)); + if (temp_r28 < 32) { + temp_r28 = 32; + } + } + else if (lbl_2_bss_60.z <= -27700.0f && lbl_2_bss_60.z >= -28300.0f) { + temp_r28 = 32.0f + (223.0f * (-(lbl_2_bss_60.z + 27700.0f) / 600.0f)); + } + else if (lbl_2_bss_60.z < -27400.0f && lbl_2_bss_60.z > -28300.0f) { + temp_r28 = 32; + } + else { + temp_r28 = 255; + } + Hu3DGLightColorSet(lbl_2_bss_A8, temp_r28, temp_r28, temp_r28, 255); + if (lbl_2_bss_60.z < -26600.0f && lbl_2_bss_60.z > -27500.0f) { + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + Hu3DModelAttrSet(object->model[temp_r31], 1); + } + } + else { + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + Hu3DModelAttrReset(object->model[temp_r31], 1); + } + } } void fn_2_D088(omObjData *object) { - CameraData *temp_r31 = &Hu3DCamera[0]; - Vec sp8; - - lbl_2_bss_6C = temp_r31->pos; - lbl_2_bss_60 = temp_r31->target; - VECSubtract(&lbl_2_bss_6C, &lbl_2_bss_54, &sp8); - lbl_2_bss_50 = VECMag(&sp8); - lbl_2_bss_54 = lbl_2_bss_6C; - - fn_2_A98(); + CameraData *temp_r31 = &Hu3DCamera[0]; + Vec sp8; + + lbl_2_bss_6C = temp_r31->pos; + lbl_2_bss_60 = temp_r31->target; + VECSubtract(&lbl_2_bss_6C, &lbl_2_bss_54, &sp8); + lbl_2_bss_50 = VECMag(&sp8); + lbl_2_bss_54 = lbl_2_bss_6C; + + fn_2_A98(); } void fn_2_D180(float arg0) { - Vec sp14; - Vec sp8; - lbl_2_bss_44.x = 0; - lbl_2_bss_44.y = 0; - lbl_2_bss_44.z = arg0; - lbl_2_bss_38.x = 0; - lbl_2_bss_38.y = 0; - lbl_2_bss_38.z = -1500+arg0; - lbl_2_bss_2C.x = 0; - lbl_2_bss_2C.y = 1; - lbl_2_bss_2C.z = 0; - Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); - Hu3DModelPosSet(lbl_2_bss_10C->model[1], 0, 0, -1500+arg0); - lbl_2_data_30.y = 3500+lbl_2_bss_38.y; - lbl_2_data_30.z = 1500+lbl_2_bss_38.z; - lbl_2_data_48.y = lbl_2_bss_38.y-200; - lbl_2_data_48.z = 500+lbl_2_bss_38.z; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - sp14 = lbl_2_bss_44; - VECSubtract(&lbl_2_bss_38, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp14, &sp8); + Vec sp14; + Vec sp8; + lbl_2_bss_44.x = 0; + lbl_2_bss_44.y = 0; + lbl_2_bss_44.z = arg0; + lbl_2_bss_38.x = 0; + lbl_2_bss_38.y = 0; + lbl_2_bss_38.z = -1500 + arg0; + lbl_2_bss_2C.x = 0; + lbl_2_bss_2C.y = 1; + lbl_2_bss_2C.z = 0; + Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); + Hu3DModelPosSet(lbl_2_bss_10C->model[1], 0, 0, -1500 + arg0); + lbl_2_data_30.y = 3500 + lbl_2_bss_38.y; + lbl_2_data_30.z = 1500 + lbl_2_bss_38.z; + lbl_2_data_48.y = lbl_2_bss_38.y - 200; + lbl_2_data_48.z = 500 + lbl_2_bss_38.z; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + sp14 = lbl_2_bss_44; + VECSubtract(&lbl_2_bss_38, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); } void fn_2_D3E8(omObjData *object) { - Vec sp14; - Vec sp8; - float temp_f31 = 1.5f*object->scale.x; - lbl_2_bss_44.x = object->trans.x+(-object->trans.x*sind(temp_f31)); - lbl_2_bss_44.y = object->trans.y+(-object->trans.y*sind(temp_f31)); - lbl_2_bss_44.z = object->trans.z+(-object->trans.z*sind(temp_f31)); - lbl_2_bss_38.x = object->rot.x+(-object->rot.x*sind(temp_f31)); - lbl_2_bss_38.y = object->rot.y+(-object->rot.y*sind(temp_f31)); - lbl_2_bss_38.z = object->rot.z+((-1500.0f-object->rot.z)*sind(temp_f31)); - lbl_2_bss_2C.x = 0; - lbl_2_bss_2C.y = 1; - lbl_2_bss_2C.z = 0; - object->scale.x += 1.0f; - if(object->scale.x > 60.0f) { - lbl_2_bss_44.x = 0; - lbl_2_bss_44.y = 0; - lbl_2_bss_44.z = 0; - lbl_2_bss_38.x = 0; - lbl_2_bss_38.y = 0; - lbl_2_bss_38.z = -1500; - } - Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); - lbl_2_bss_54 = lbl_2_bss_44; - lbl_2_data_30.y = 3500+lbl_2_bss_38.y; - lbl_2_data_30.z = 1500+lbl_2_bss_38.z; - lbl_2_data_48.y = lbl_2_bss_38.y-200; - lbl_2_data_48.z = 500+lbl_2_bss_38.z; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - sp14 = lbl_2_bss_44; - VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp14, &sp8); - if(object->scale.x > 60.0f) { - lbl_2_bss_128 = 100; - Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); - object->scale.x = 0; - object->func = NULL; - } + Vec sp14; + Vec sp8; + float temp_f31 = 1.5f * object->scale.x; + lbl_2_bss_44.x = object->trans.x + (-object->trans.x * sind(temp_f31)); + lbl_2_bss_44.y = object->trans.y + (-object->trans.y * sind(temp_f31)); + lbl_2_bss_44.z = object->trans.z + (-object->trans.z * sind(temp_f31)); + lbl_2_bss_38.x = object->rot.x + (-object->rot.x * sind(temp_f31)); + lbl_2_bss_38.y = object->rot.y + (-object->rot.y * sind(temp_f31)); + lbl_2_bss_38.z = object->rot.z + ((-1500.0f - object->rot.z) * sind(temp_f31)); + lbl_2_bss_2C.x = 0; + lbl_2_bss_2C.y = 1; + lbl_2_bss_2C.z = 0; + object->scale.x += 1.0f; + if (object->scale.x > 60.0f) { + lbl_2_bss_44.x = 0; + lbl_2_bss_44.y = 0; + lbl_2_bss_44.z = 0; + lbl_2_bss_38.x = 0; + lbl_2_bss_38.y = 0; + lbl_2_bss_38.z = -1500; + } + Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); + lbl_2_bss_54 = lbl_2_bss_44; + lbl_2_data_30.y = 3500 + lbl_2_bss_38.y; + lbl_2_data_30.z = 1500 + lbl_2_bss_38.z; + lbl_2_data_48.y = lbl_2_bss_38.y - 200; + lbl_2_data_48.z = 500 + lbl_2_bss_38.z; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + sp14 = lbl_2_bss_44; + VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); + if (object->scale.x > 60.0f) { + lbl_2_bss_128 = 100; + Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); + object->scale.x = 0; + object->func = NULL; + } } void fn_2_D8CC(omObjData *object) { - if(lbl_2_bss_BE != 0) { - return; - } - lbl_2_data_0 *= 1.05f; - if(lbl_2_data_0 < -14.375f) { - lbl_2_data_0 = -14.375f; - } - object->scale.x += lbl_2_data_0; - fn_2_D180(object->scale.x); + if (lbl_2_bss_BE != 0) { + return; + } + lbl_2_data_0 *= 1.05f; + if (lbl_2_data_0 < -14.375f) { + lbl_2_data_0 = -14.375f; + } + object->scale.x += lbl_2_data_0; + fn_2_D180(object->scale.x); } -s32 lbl_2_data_460[] = { - 0x200004, - 0x200005, - 0x200006 -}; +s32 lbl_2_data_460[] = { DATA_MAKE_NUM(DATADIR_M401, 0x04), DATA_MAKE_NUM(DATADIR_M401, 0x05), DATA_MAKE_NUM(DATADIR_M401, 0x06) }; typedef struct work_e6e8 { - s16 unk0; - Vec unk4; - float unk10; - float unk14; - float unk18; - float unk1C; - float unk20; - float unk24; - float unk28; - float unk2C; - s8 *unk30; - Vec *unk34; - Vec *unk38; - Vec *unk3C; - Vec *unk40; - Vec *unk44; - Vec *unk48; - Vec *unk4C; - s16 *unk50; - s16 *unk54; - float *unk58; - float *unk5C; - float *unk60; - float *unk64; - float *unk68; + s16 unk0; + Vec unk4; + float unk10; + float unk14; + float unk18; + float unk1C; + float unk20; + float unk24; + float unk28; + float unk2C; + s8 *unk30; + Vec *unk34; + Vec *unk38; + Vec *unk3C; + Vec *unk40; + Vec *unk44; + Vec *unk48; + Vec *unk4C; + s16 *unk50; + s16 *unk54; + float *unk58; + float *unk5C; + float *unk60; + float *unk64; + float *unk68; } WorkE6E8; void fn_2_DBCC(s16 arg0) { - omObjData *temp_r31; - s32 temp_r30; - s8 *temp_r28; - float temp_f31; - temp_r31 = lbl_2_bss_C4 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); - omSetStatBit(temp_r31, 0x100); - temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s8), MEMORY_DEFAULT_NUM); - temp_r28 = temp_r31->data; - temp_r31->work[0] = arg0; - for(temp_r30=0; temp_r30model[temp_r30] = Hu3DModelCreateFile(lbl_2_data_460[temp_r30]); - } else { - temp_r31->model[temp_r30] = Hu3DModelLink(temp_r31->model[temp_r30%3]); - } - temp_f31 = 0.5f+((1.0f/255.0f)*(0.5f*frandu8())); - Hu3DModelScaleSet(temp_r31->model[temp_r30], temp_f31, temp_f31, temp_f31); - Hu3DModelAttrSet(temp_r31->model[temp_r30], 1); - Hu3DModelAttrSet(temp_r31->model[temp_r30], 0x40000001); - Hu3DMotionTimeSet(temp_r31->model[temp_r30], (1.0f/255.0f)*(Hu3DMotionMaxTimeGet(temp_r31->model[temp_r30])*frandu8())); - temp_r28[temp_r30] = 0; - } + omObjData *temp_r31; + s32 temp_r30; + s8 *temp_r28; + float temp_f31; + temp_r31 = lbl_2_bss_C4 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); + omSetStatBit(temp_r31, 0x100); + temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s8), MEMORY_DEFAULT_NUM); + temp_r28 = temp_r31->data; + temp_r31->work[0] = arg0; + for (temp_r30 = 0; temp_r30 < arg0; temp_r30++) { + if (temp_r30 < 3) { + temp_r31->model[temp_r30] = Hu3DModelCreateFile(lbl_2_data_460[temp_r30]); + } + else { + temp_r31->model[temp_r30] = Hu3DModelLink(temp_r31->model[temp_r30 % 3]); + } + temp_f31 = 0.5f + ((1.0f / 255.0f) * (0.5f * frandu8())); + Hu3DModelScaleSet(temp_r31->model[temp_r30], temp_f31, temp_f31, temp_f31); + Hu3DModelAttrSet(temp_r31->model[temp_r30], 1); + Hu3DModelAttrSet(temp_r31->model[temp_r30], 0x40000001); + Hu3DMotionTimeSet(temp_r31->model[temp_r30], (1.0f / 255.0f) * (Hu3DMotionMaxTimeGet(temp_r31->model[temp_r30]) * frandu8())); + temp_r28[temp_r30] = 0; + } } void fn_2_DE1C(WorkE6E8 *arg0) { - HuMemDirectFree(arg0->unk34); - HuMemDirectFree(arg0->unk38); - HuMemDirectFree(arg0->unk40); - HuMemDirectFree(arg0->unk44); - HuMemDirectFree(arg0->unk48); - HuMemDirectFree(arg0->unk4C); - HuMemDirectFree(arg0->unk3C); - HuMemDirectFree(arg0->unk50); - HuMemDirectFree(arg0->unk54); - HuMemDirectFree(arg0->unk58); - HuMemDirectFree(arg0->unk5C); - HuMemDirectFree(arg0->unk60); - HuMemDirectFree(arg0->unk64); - HuMemDirectFree(arg0->unk68); - HuMemDirectFree(arg0->unk30); + HuMemDirectFree(arg0->unk34); + HuMemDirectFree(arg0->unk38); + HuMemDirectFree(arg0->unk40); + HuMemDirectFree(arg0->unk44); + HuMemDirectFree(arg0->unk48); + HuMemDirectFree(arg0->unk4C); + HuMemDirectFree(arg0->unk3C); + HuMemDirectFree(arg0->unk50); + HuMemDirectFree(arg0->unk54); + HuMemDirectFree(arg0->unk58); + HuMemDirectFree(arg0->unk5C); + HuMemDirectFree(arg0->unk60); + HuMemDirectFree(arg0->unk64); + HuMemDirectFree(arg0->unk68); + HuMemDirectFree(arg0->unk30); } omObjData *fn_2_DEBC(s16 arg0) { - WorkE6E8 *temp_r31; - s32 temp_r29; - omObjData *temp_r28; - s32 temp_r27; - s8 *temp_r26; - if(arg0 <= 0) { - return NULL; - } - temp_r28 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); - omSetStatBit(temp_r28, 0x100); - temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkE6E8), MEMORY_DEFAULT_NUM); - temp_r31 = temp_r28->data; - temp_r31->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk38 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk44 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk3C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s16), MEMORY_DEFAULT_NUM); - temp_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s16), MEMORY_DEFAULT_NUM); - temp_r31->unk58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk60 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk64 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk68 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s8), MEMORY_DEFAULT_NUM); - for(temp_r27=0; temp_r27data; - for(temp_r29=0; temp_r29work[0]; temp_r29++) { - if(temp_r26[temp_r29] == 0) { - temp_r26[temp_r29] = 1; - temp_r28->model[temp_r27] = lbl_2_bss_C4->model[temp_r29]; - temp_r31->unk54[temp_r27] = temp_r29%3; - temp_r31->unk30[temp_r27] = temp_r29; - break; - } - } - if(temp_r29 == lbl_2_bss_C4->work[0]) { - arg0 -= (s32)arg0-temp_r27; - break; - } - } - if(arg0 == 0) { - fn_2_DE1C(temp_r31); - omDelObjEx(HuPrcCurrentGet(), temp_r28); - temp_r28 = NULL; - } else { - temp_r31->unk0 = arg0; - temp_r31->unk10 = 0; - } - return temp_r28; + WorkE6E8 *temp_r31; + s32 temp_r29; + omObjData *temp_r28; + s32 temp_r27; + s8 *temp_r26; + if (arg0 <= 0) { + return NULL; + } + temp_r28 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); + omSetStatBit(temp_r28, 0x100); + temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkE6E8), MEMORY_DEFAULT_NUM); + temp_r31 = temp_r28->data; + temp_r31->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk38 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk44 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk3C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s16), MEMORY_DEFAULT_NUM); + temp_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s16), MEMORY_DEFAULT_NUM); + temp_r31->unk58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk60 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk64 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk68 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s8), MEMORY_DEFAULT_NUM); + for (temp_r27 = 0; temp_r27 < arg0; temp_r27++) { + temp_r26 = lbl_2_bss_C4->data; + for (temp_r29 = 0; temp_r29 < lbl_2_bss_C4->work[0]; temp_r29++) { + if (temp_r26[temp_r29] == 0) { + temp_r26[temp_r29] = 1; + temp_r28->model[temp_r27] = lbl_2_bss_C4->model[temp_r29]; + temp_r31->unk54[temp_r27] = temp_r29 % 3; + temp_r31->unk30[temp_r27] = temp_r29; + break; + } + } + if (temp_r29 == lbl_2_bss_C4->work[0]) { + arg0 -= (s32)arg0 - temp_r27; + break; + } + } + if (arg0 == 0) { + fn_2_DE1C(temp_r31); + omDelObjEx(HuPrcCurrentGet(), temp_r28); + temp_r28 = NULL; + } + else { + temp_r31->unk0 = arg0; + temp_r31->unk10 = 0; + } + return temp_r28; } void fn_2_E24C(omObjData *object) { - WorkE6E8 *temp_r31; - s32 temp_r30; - s8 *temp_r28; - temp_r31 = object->data; - temp_r28 = lbl_2_bss_C4->data; - for(temp_r30=0; temp_r30unk0; temp_r30++) { - temp_r28[temp_r31->unk30[temp_r30]] = 0; - Hu3DModelAttrSet(object->model[temp_r30], 1); - } - fn_2_DE1C(temp_r31); - omDelObjEx(HuPrcCurrentGet(), object); + WorkE6E8 *temp_r31; + s32 temp_r30; + s8 *temp_r28; + temp_r31 = object->data; + temp_r28 = lbl_2_bss_C4->data; + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + temp_r28[temp_r31->unk30[temp_r30]] = 0; + Hu3DModelAttrSet(object->model[temp_r30], 1); + } + fn_2_DE1C(temp_r31); + omDelObjEx(HuPrcCurrentGet(), object); } void fn_2_E6E8(omObjData *object); void fn_2_E364(omObjData *object, s16 arg1) { - s32 temp_r31; - WorkE6E8 *temp_r29 = object->data; - if(arg1 == 1) { - for(temp_r31=0; temp_r31unk0; temp_r31++) { - Hu3DModelAttrReset(object->model[temp_r31], 1); - } - object->func = fn_2_E6E8; - } else { - for(temp_r31=0; temp_r31unk0; temp_r31++) { - Hu3DModelAttrSet(object->model[temp_r31], 1); - } - object->func = NULL; - } + s32 temp_r31; + WorkE6E8 *temp_r29 = object->data; + if (arg1 == 1) { + for (temp_r31 = 0; temp_r31 < temp_r29->unk0; temp_r31++) { + Hu3DModelAttrReset(object->model[temp_r31], 1); + } + object->func = fn_2_E6E8; + } + else { + for (temp_r31 = 0; temp_r31 < temp_r29->unk0; temp_r31++) { + Hu3DModelAttrSet(object->model[temp_r31], 1); + } + object->func = NULL; + } } void fn_2_E420(omObjData *object, Vec *arg1, Vec *arg2) { - WorkE6E8 *temp_r31 = object->data; - s32 temp_r30; - for(temp_r30=0; temp_r30unk0; temp_r30++) { - temp_r31->unk34[temp_r30].x = (arg1->x - arg2->x)+((1.0f/255.0f)*(2.0f*arg2->x*frandu8())); - temp_r31->unk34[temp_r30].y = (arg1->y - arg2->y)+((1.0f/255.0f)*(2.0f*arg2->y*frandu8())); - temp_r31->unk34[temp_r30].z = (arg1->z - arg2->z)+((1.0f/255.0f)*(2.0f*arg2->z*frandu8())); - VECNormalize(&temp_r31->unk34[temp_r30], &temp_r31->unk38[temp_r30]); - temp_r31->unk5C[temp_r30] = temp_r31->unk64[temp_r30] = temp_r31->unk60[temp_r30] = temp_r31->unk68[temp_r30] = 0; - temp_r31->unk58[temp_r30] = 0.1f; - Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); - - } + WorkE6E8 *temp_r31 = object->data; + s32 temp_r30; + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + temp_r31->unk34[temp_r30].x = (arg1->x - arg2->x) + ((1.0f / 255.0f) * (2.0f * arg2->x * frandu8())); + temp_r31->unk34[temp_r30].y = (arg1->y - arg2->y) + ((1.0f / 255.0f) * (2.0f * arg2->y * frandu8())); + temp_r31->unk34[temp_r30].z = (arg1->z - arg2->z) + ((1.0f / 255.0f) * (2.0f * arg2->z * frandu8())); + VECNormalize(&temp_r31->unk34[temp_r30], &temp_r31->unk38[temp_r30]); + temp_r31->unk5C[temp_r30] = temp_r31->unk64[temp_r30] = temp_r31->unk60[temp_r30] = temp_r31->unk68[temp_r30] = 0; + temp_r31->unk58[temp_r30] = 0.1f; + Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); + } } void fn_2_E66C(omObjData *object, Vec *pos) { - WorkE6E8 *temp_r31 = object->data; - temp_r31->unk4 = *pos; + WorkE6E8 *temp_r31 = object->data; + temp_r31->unk4 = *pos; } void fn_2_E69C(omObjData *object, float arg2, float arg3) { - WorkE6E8 *temp_r31 = object->data; - temp_r31->unk14 = arg2; - temp_r31->unk18 = arg3; + WorkE6E8 *temp_r31 = object->data; + temp_r31->unk14 = arg2; + temp_r31->unk18 = arg3; } void fn_2_E6BC(omObjData *object, float arg2, float arg3, float arg4, float arg5, float arg6) { - WorkE6E8 *temp_r31 = object->data; - temp_r31->unk1C = arg2; - temp_r31->unk20 = arg3; - temp_r31->unk24 = arg4; - temp_r31->unk28 = arg5; - temp_r31->unk2C = arg6; + WorkE6E8 *temp_r31 = object->data; + temp_r31->unk1C = arg2; + temp_r31->unk20 = arg3; + temp_r31->unk24 = arg4; + temp_r31->unk28 = arg5; + temp_r31->unk2C = arg6; } void fn_2_E6E8(omObjData *object) { - WorkE6E8 *temp_r31 = object->data; - s32 temp_r30; - s32 temp_r29; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - Mtx sp158, sp128, spF8, spC8, sp98, sp68; - Vec sp5C, sp50, sp44, sp38, sp2C, sp20, sp14, sp8; - for(temp_r30=0; temp_r30unk0; temp_r30++) { - temp_r31->unk3C[temp_r30].x = 0; - temp_r31->unk3C[temp_r30].y = 0; - temp_r31->unk3C[temp_r30].z = 0; - temp_r31->unk40[temp_r30].x = 0; - temp_r31->unk40[temp_r30].y = 0; - temp_r31->unk40[temp_r30].z = 0; - temp_r31->unk44[temp_r30].x = 0; - temp_r31->unk44[temp_r30].y = 0; - temp_r31->unk44[temp_r30].z = 0; - temp_r31->unk48[temp_r30].x = 0; - temp_r31->unk48[temp_r30].y = 0; - temp_r31->unk48[temp_r30].z = 0; - temp_r31->unk4C[temp_r30].x = 0; - temp_r31->unk4C[temp_r30].y = 0; - temp_r31->unk4C[temp_r30].z = 0; - temp_r31->unk50[temp_r30] = 0; - } - for(temp_r30=0; temp_r30unk0; temp_r30++) { - for(temp_r29=temp_r30+1; temp_r29unk0; temp_r29++) { - VECSubtract(&temp_r31->unk34[temp_r30], &temp_r31->unk34[temp_r29], &sp5C); - temp_f28 = VECMag(&sp5C); - if(temp_f28 < temp_r31->unk14) { - VECScale(&sp5C, &sp50, 1.0f/(temp_f28*temp_f28)); - VECAdd(&temp_r31->unk3C[temp_r30], &sp50, &temp_r31->unk3C[temp_r30]); - VECSubtract(&temp_r31->unk3C[temp_r29], &sp50, &temp_r31->unk3C[temp_r29]); - if(temp_r31->unk54[temp_r30] == temp_r31->unk54[temp_r29]){ - VECScale(&temp_r31->unk38[temp_r29], &sp50, 1.0f/temp_f28); - VECAdd(&temp_r31->unk40[temp_r30], &sp50, &temp_r31->unk40[temp_r30]); - VECScale(&temp_r31->unk38[temp_r30], &sp50, 1.0f/temp_f28); - VECAdd(&temp_r31->unk40[temp_r29], &sp50, &temp_r31->unk40[temp_r29]); - VECAdd(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r29], &temp_r31->unk44[temp_r30]); - VECAdd(&temp_r31->unk44[temp_r29], &temp_r31->unk34[temp_r30], &temp_r31->unk44[temp_r29]); - } - temp_r31->unk50[temp_r30]++; - temp_r31->unk50[temp_r29]++; - } - - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - sp44.x = lbl_2_bss_118[temp_r29]->trans.x; - sp44.y = lbl_2_bss_118[temp_r29]->trans.y; - sp44.z = lbl_2_bss_118[temp_r29]->trans.z; - VECSubtract(&temp_r31->unk34[temp_r30], &sp44, &sp38); - if(!(VECDotProduct(&sp38, &temp_r31->unk38[temp_r30]) > 0)) { - temp_f30 = VECMag(&sp38)-200; - if(temp_f30 < temp_r31->unk14) { - temp_f30 -= 100; - if(temp_f30 < 0.01f) { - temp_f30 = 0.01f; - } - VECScale(&sp38, &sp38, 1.0f/temp_f30); - VECAdd(&temp_r31->unk4C[temp_r30], &sp38, &temp_r31->unk4C[temp_r30]); - } - } - } - if(temp_r31->unk50[temp_r30] != 0) { - VECScale(&temp_r31->unk44[temp_r30], &temp_r31->unk44[temp_r30], 1.0f/temp_r31->unk50[temp_r30]); - VECSubtract(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r30], &sp2C); - temp_f29 = VECMag(&sp2C); - if(temp_f29 > 0.0f){ - VECScale(&sp2C, &temp_r31->unk44[temp_r30], 1.0f/temp_f29); - } else { - temp_r31->unk44[temp_r30].x = 0; - temp_r31->unk44[temp_r30].y = 0; - temp_r31->unk44[temp_r30].z = 0; - } - VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f/temp_r31->unk50[temp_r30]); - temp_f29 = VECMag(&temp_r31->unk40[temp_r30]); - if(temp_f29 > 0) { - VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f/temp_f29); - VECSubtract(&temp_r31->unk40[temp_r30], &temp_r31->unk38[temp_r30], &sp2C); - VECScale(&sp2C, &temp_r31->unk40[temp_r30], 1.0f/temp_f29); - } - } - VECSubtract(&temp_r31->unk4, &temp_r31->unk34[temp_r30], &temp_r31->unk48[temp_r30]); - VECNormalize(&temp_r31->unk48[temp_r30], &temp_r31->unk48[temp_r30]); - } - for(temp_r30=0; temp_r30unk0; temp_r30++) { - sp20.x = 0; - sp20.y = 0; - sp20.z = 0; - VECScale(&temp_r31->unk3C[temp_r30], &sp8, temp_r31->unk1C); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk4C[temp_r30], &sp8, temp_r31->unk20); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk40[temp_r30], &sp8, temp_r31->unk24); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk44[temp_r30], &sp8, temp_r31->unk28); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk48[temp_r30], &sp8, temp_r31->unk2C); - VECAdd(&sp8, &sp20, &sp20); - temp_f27 = VECMag(&sp20); - if(temp_f27 > 1.0f) { - VECScale(&sp20, &sp20, 1.0f/temp_f27); - } - if(sp20.y > 0.01f) { - temp_r31->unk60[temp_r30] += 0.02f; - if(temp_r31->unk60[temp_r30] > 0.8f) { - temp_r31->unk60[temp_r30] = 0.8f; - } - } else { - if(sp20.y < -0.01f) { - temp_r31->unk60[temp_r30] -= 0.02f; - if(temp_r31->unk60[temp_r30] < -0.8f) { - temp_r31->unk60[temp_r30] = -0.8f; - } - } else { - temp_r31->unk60[temp_r30] *= 0.98f; - } - } - temp_r31->unk58[temp_r30] -= 0.002*temp_r31->unk60[temp_r30]; - temp_r31->unk58[temp_r30] = temp_r31->unk18+(0.99f*(temp_r31->unk58[temp_r30]-temp_r31->unk18)); - if(temp_r31->unk58[temp_r30] < 0.4f*temp_r31->unk18) { - temp_r31->unk58[temp_r30] = 0.4f*temp_r31->unk18; - } - if(temp_r31->unk58[temp_r30] > 5.0f*temp_r31->unk18) { - temp_r31->unk58[temp_r30] = 5.0f*temp_r31->unk18; - } - sp14 = sp20; - sp14.y = 0; - sp8 = temp_r31->unk38[temp_r30]; - if(VECMag(&sp14) > 0) { - VECNormalize(&sp14, &sp14); - } - temp_f31 = VECDotProduct(&sp14, &sp8); - if(temp_f31 > 0.7f) { - temp_f31 -= 0.7f; - temp_r31->unk58[temp_r30] += 0.005f*temp_f31; - } - VECCrossProduct(&sp14, &sp8, &sp14); - temp_f31 = 0.07f*((1.0f-temp_f31)/2); - if(sp14.y > 0.05f) { - temp_r31->unk68[temp_r30] = 0.05f*(temp_f31+(19.0f*temp_r31->unk68[temp_r30])); - } else if(sp14.y < -0.05f) { - temp_r31->unk68[temp_r30] = 0.05f*((19.0f*temp_r31->unk68[temp_r30])-temp_f31); - } else { - temp_r31->unk68[temp_r30] *= 0.98f; - } - temp_r31->unk5C[temp_r30] += temp_r31->unk68[temp_r30]; - temp_r31->unk64[temp_r30] = 20.0f*-temp_r31->unk68[temp_r30]; - MTXTrans(sp158, temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); - MTXRotDeg(sp128, 'x', (temp_r31->unk60[temp_r30]/M_PI)*180.0); - MTXRotDeg(spF8, 'y', (temp_r31->unk5C[temp_r30]/M_PI)*180.0); - MTXRotDeg(spC8, 'z', (temp_r31->unk64[temp_r30]/M_PI)*180.0); - MTXConcat(sp128, spF8, sp98); - MTXConcat(spC8, sp98, sp68); - MTXConcat(sp68, sp158, sp98); - temp_r31->unk38[temp_r30].x = MTXRowCol(sp98, 2, 0); - temp_r31->unk38[temp_r30].y = MTXRowCol(sp98, 2, 1); - temp_r31->unk38[temp_r30].z = MTXRowCol(sp98, 2, 2); - temp_r31->unk34[temp_r30].x += 100.0f*(temp_r31->unk38[temp_r30].x*temp_r31->unk58[temp_r30]); - temp_r31->unk34[temp_r30].y += 100.0f*(temp_r31->unk38[temp_r30].y*temp_r31->unk58[temp_r30]); - temp_r31->unk34[temp_r30].z += 100.0f*(temp_r31->unk38[temp_r30].z*temp_r31->unk58[temp_r30]); - if(temp_r31->unk34[temp_r30].y < -350.0f) { - temp_r31->unk34[temp_r30].y = -350.0f; - } - Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); - Hu3DModelRotSet(object->model[temp_r30], (-temp_r31->unk60[temp_r30]/M_PI)*180.0, (-temp_r31->unk5C[temp_r30]/M_PI)*180.0, 0); - } + WorkE6E8 *temp_r31 = object->data; + s32 temp_r30; + s32 temp_r29; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + Mtx sp158, sp128, spF8, spC8, sp98, sp68; + Vec sp5C, sp50, sp44, sp38, sp2C, sp20, sp14, sp8; + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + temp_r31->unk3C[temp_r30].x = 0; + temp_r31->unk3C[temp_r30].y = 0; + temp_r31->unk3C[temp_r30].z = 0; + temp_r31->unk40[temp_r30].x = 0; + temp_r31->unk40[temp_r30].y = 0; + temp_r31->unk40[temp_r30].z = 0; + temp_r31->unk44[temp_r30].x = 0; + temp_r31->unk44[temp_r30].y = 0; + temp_r31->unk44[temp_r30].z = 0; + temp_r31->unk48[temp_r30].x = 0; + temp_r31->unk48[temp_r30].y = 0; + temp_r31->unk48[temp_r30].z = 0; + temp_r31->unk4C[temp_r30].x = 0; + temp_r31->unk4C[temp_r30].y = 0; + temp_r31->unk4C[temp_r30].z = 0; + temp_r31->unk50[temp_r30] = 0; + } + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + for (temp_r29 = temp_r30 + 1; temp_r29 < temp_r31->unk0; temp_r29++) { + VECSubtract(&temp_r31->unk34[temp_r30], &temp_r31->unk34[temp_r29], &sp5C); + temp_f28 = VECMag(&sp5C); + if (temp_f28 < temp_r31->unk14) { + VECScale(&sp5C, &sp50, 1.0f / (temp_f28 * temp_f28)); + VECAdd(&temp_r31->unk3C[temp_r30], &sp50, &temp_r31->unk3C[temp_r30]); + VECSubtract(&temp_r31->unk3C[temp_r29], &sp50, &temp_r31->unk3C[temp_r29]); + if (temp_r31->unk54[temp_r30] == temp_r31->unk54[temp_r29]) { + VECScale(&temp_r31->unk38[temp_r29], &sp50, 1.0f / temp_f28); + VECAdd(&temp_r31->unk40[temp_r30], &sp50, &temp_r31->unk40[temp_r30]); + VECScale(&temp_r31->unk38[temp_r30], &sp50, 1.0f / temp_f28); + VECAdd(&temp_r31->unk40[temp_r29], &sp50, &temp_r31->unk40[temp_r29]); + VECAdd(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r29], &temp_r31->unk44[temp_r30]); + VECAdd(&temp_r31->unk44[temp_r29], &temp_r31->unk34[temp_r30], &temp_r31->unk44[temp_r29]); + } + temp_r31->unk50[temp_r30]++; + temp_r31->unk50[temp_r29]++; + } + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + sp44.x = lbl_2_bss_118[temp_r29]->trans.x; + sp44.y = lbl_2_bss_118[temp_r29]->trans.y; + sp44.z = lbl_2_bss_118[temp_r29]->trans.z; + VECSubtract(&temp_r31->unk34[temp_r30], &sp44, &sp38); + if (!(VECDotProduct(&sp38, &temp_r31->unk38[temp_r30]) > 0)) { + temp_f30 = VECMag(&sp38) - 200; + if (temp_f30 < temp_r31->unk14) { + temp_f30 -= 100; + if (temp_f30 < 0.01f) { + temp_f30 = 0.01f; + } + VECScale(&sp38, &sp38, 1.0f / temp_f30); + VECAdd(&temp_r31->unk4C[temp_r30], &sp38, &temp_r31->unk4C[temp_r30]); + } + } + } + if (temp_r31->unk50[temp_r30] != 0) { + VECScale(&temp_r31->unk44[temp_r30], &temp_r31->unk44[temp_r30], 1.0f / temp_r31->unk50[temp_r30]); + VECSubtract(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r30], &sp2C); + temp_f29 = VECMag(&sp2C); + if (temp_f29 > 0.0f) { + VECScale(&sp2C, &temp_r31->unk44[temp_r30], 1.0f / temp_f29); + } + else { + temp_r31->unk44[temp_r30].x = 0; + temp_r31->unk44[temp_r30].y = 0; + temp_r31->unk44[temp_r30].z = 0; + } + VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f / temp_r31->unk50[temp_r30]); + temp_f29 = VECMag(&temp_r31->unk40[temp_r30]); + if (temp_f29 > 0) { + VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f / temp_f29); + VECSubtract(&temp_r31->unk40[temp_r30], &temp_r31->unk38[temp_r30], &sp2C); + VECScale(&sp2C, &temp_r31->unk40[temp_r30], 1.0f / temp_f29); + } + } + VECSubtract(&temp_r31->unk4, &temp_r31->unk34[temp_r30], &temp_r31->unk48[temp_r30]); + VECNormalize(&temp_r31->unk48[temp_r30], &temp_r31->unk48[temp_r30]); + } + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + sp20.x = 0; + sp20.y = 0; + sp20.z = 0; + VECScale(&temp_r31->unk3C[temp_r30], &sp8, temp_r31->unk1C); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk4C[temp_r30], &sp8, temp_r31->unk20); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk40[temp_r30], &sp8, temp_r31->unk24); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk44[temp_r30], &sp8, temp_r31->unk28); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk48[temp_r30], &sp8, temp_r31->unk2C); + VECAdd(&sp8, &sp20, &sp20); + temp_f27 = VECMag(&sp20); + if (temp_f27 > 1.0f) { + VECScale(&sp20, &sp20, 1.0f / temp_f27); + } + if (sp20.y > 0.01f) { + temp_r31->unk60[temp_r30] += 0.02f; + if (temp_r31->unk60[temp_r30] > 0.8f) { + temp_r31->unk60[temp_r30] = 0.8f; + } + } + else { + if (sp20.y < -0.01f) { + temp_r31->unk60[temp_r30] -= 0.02f; + if (temp_r31->unk60[temp_r30] < -0.8f) { + temp_r31->unk60[temp_r30] = -0.8f; + } + } + else { + temp_r31->unk60[temp_r30] *= 0.98f; + } + } + temp_r31->unk58[temp_r30] -= 0.002 * temp_r31->unk60[temp_r30]; + temp_r31->unk58[temp_r30] = temp_r31->unk18 + (0.99f * (temp_r31->unk58[temp_r30] - temp_r31->unk18)); + if (temp_r31->unk58[temp_r30] < 0.4f * temp_r31->unk18) { + temp_r31->unk58[temp_r30] = 0.4f * temp_r31->unk18; + } + if (temp_r31->unk58[temp_r30] > 5.0f * temp_r31->unk18) { + temp_r31->unk58[temp_r30] = 5.0f * temp_r31->unk18; + } + sp14 = sp20; + sp14.y = 0; + sp8 = temp_r31->unk38[temp_r30]; + if (VECMag(&sp14) > 0) { + VECNormalize(&sp14, &sp14); + } + temp_f31 = VECDotProduct(&sp14, &sp8); + if (temp_f31 > 0.7f) { + temp_f31 -= 0.7f; + temp_r31->unk58[temp_r30] += 0.005f * temp_f31; + } + VECCrossProduct(&sp14, &sp8, &sp14); + temp_f31 = 0.07f * ((1.0f - temp_f31) / 2); + if (sp14.y > 0.05f) { + temp_r31->unk68[temp_r30] = 0.05f * (temp_f31 + (19.0f * temp_r31->unk68[temp_r30])); + } + else if (sp14.y < -0.05f) { + temp_r31->unk68[temp_r30] = 0.05f * ((19.0f * temp_r31->unk68[temp_r30]) - temp_f31); + } + else { + temp_r31->unk68[temp_r30] *= 0.98f; + } + temp_r31->unk5C[temp_r30] += temp_r31->unk68[temp_r30]; + temp_r31->unk64[temp_r30] = 20.0f * -temp_r31->unk68[temp_r30]; + MTXTrans(sp158, temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); + MTXRotDeg(sp128, 'x', (temp_r31->unk60[temp_r30] / M_PI) * 180.0); + MTXRotDeg(spF8, 'y', (temp_r31->unk5C[temp_r30] / M_PI) * 180.0); + MTXRotDeg(spC8, 'z', (temp_r31->unk64[temp_r30] / M_PI) * 180.0); + MTXConcat(sp128, spF8, sp98); + MTXConcat(spC8, sp98, sp68); + MTXConcat(sp68, sp158, sp98); + temp_r31->unk38[temp_r30].x = MTXRowCol(sp98, 2, 0); + temp_r31->unk38[temp_r30].y = MTXRowCol(sp98, 2, 1); + temp_r31->unk38[temp_r30].z = MTXRowCol(sp98, 2, 2); + temp_r31->unk34[temp_r30].x += 100.0f * (temp_r31->unk38[temp_r30].x * temp_r31->unk58[temp_r30]); + temp_r31->unk34[temp_r30].y += 100.0f * (temp_r31->unk38[temp_r30].y * temp_r31->unk58[temp_r30]); + temp_r31->unk34[temp_r30].z += 100.0f * (temp_r31->unk38[temp_r30].z * temp_r31->unk58[temp_r30]); + if (temp_r31->unk34[temp_r30].y < -350.0f) { + temp_r31->unk34[temp_r30].y = -350.0f; + } + Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); + Hu3DModelRotSet(object->model[temp_r30], (-temp_r31->unk60[temp_r30] / M_PI) * 180.0, (-temp_r31->unk5C[temp_r30] / M_PI) * 180.0, 0); + } } void fn_2_F778() { - CameraData *temp_r31; - s32 temp_r30; - float sp8[7]; - temp_r31 = lbl_2_bss_DC->data; - sp8[0] = temp_r31->pos.x; - sp8[1] = temp_r31->pos.y; - sp8[2] = temp_r31->pos.z; - sp8[3] = temp_r31->up.x; - sp8[4] = temp_r31->up.y; - sp8[5] = temp_r31->up.z; - sp8[6] = temp_r31->target.x; - fontcolor = FONT_COLOR_WHITE; - for(temp_r30=0; temp_r30<7; temp_r30++) { - if(temp_r30 == lbl_2_bss_18) { - print8(24.0+(1.5*((temp_r30*8)*7)), 384, 1.5f, "____"); - } - print8(24.0+(1.5*((temp_r30*8)*7)), 400, 1.5f, "%.2f", sp8[temp_r30]); - } - if(HuPadBtnRep[0] & PAD_BUTTON_LEFT) { - if(--lbl_2_bss_18 < 0) { - lbl_2_bss_18 = 6; - } - } - if(HuPadBtnRep[0] & PAD_BUTTON_RIGHT) { - if(++lbl_2_bss_18 > 6) { - lbl_2_bss_18 = 0; - } - } - if(HuPadBtnRep[0] & PAD_BUTTON_UP) { - if(HuPadBtn[0] & PAD_TRIGGER_R) { - sp8[lbl_2_bss_18] += 1.0f; - } else if(HuPadBtn[0] & PAD_TRIGGER_L) { - sp8[lbl_2_bss_18] += 0.1f; - } else { - sp8[lbl_2_bss_18] += 0.01f; - } - if(sp8[lbl_2_bss_18] > 999.99f) { - sp8[lbl_2_bss_18] = 999.99f; - } - } - if(HuPadBtnRep[0] & PAD_BUTTON_DOWN) { - if(HuPadBtn[0] & PAD_TRIGGER_R) { - sp8[lbl_2_bss_18] -= 1.0f; - } else if(HuPadBtn[0] & PAD_TRIGGER_L) { - sp8[lbl_2_bss_18] -= 0.1f; - } else { - sp8[lbl_2_bss_18] -= 0.01f; - } - if(sp8[lbl_2_bss_18] < 0) { - sp8[lbl_2_bss_18] = 0; - } - } - temp_r31->pos.x = sp8[0]; - temp_r31->pos.y = sp8[1]; - temp_r31->pos.z = sp8[2]; - temp_r31->up.x = sp8[3]; - temp_r31->up.y = sp8[4]; - temp_r31->up.z = sp8[5]; - temp_r31->target.x = sp8[6]; + CameraData *temp_r31; + s32 temp_r30; + float sp8[7]; + temp_r31 = lbl_2_bss_DC->data; + sp8[0] = temp_r31->pos.x; + sp8[1] = temp_r31->pos.y; + sp8[2] = temp_r31->pos.z; + sp8[3] = temp_r31->up.x; + sp8[4] = temp_r31->up.y; + sp8[5] = temp_r31->up.z; + sp8[6] = temp_r31->target.x; + fontcolor = FONT_COLOR_WHITE; + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + if (temp_r30 == lbl_2_bss_18) { + print8(24.0 + (1.5 * ((temp_r30 * 8) * 7)), 384, 1.5f, "____"); + } + print8(24.0 + (1.5 * ((temp_r30 * 8) * 7)), 400, 1.5f, "%.2f", sp8[temp_r30]); + } + if (HuPadBtnRep[0] & PAD_BUTTON_LEFT) { + if (--lbl_2_bss_18 < 0) { + lbl_2_bss_18 = 6; + } + } + if (HuPadBtnRep[0] & PAD_BUTTON_RIGHT) { + if (++lbl_2_bss_18 > 6) { + lbl_2_bss_18 = 0; + } + } + if (HuPadBtnRep[0] & PAD_BUTTON_UP) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + sp8[lbl_2_bss_18] += 1.0f; + } + else if (HuPadBtn[0] & PAD_TRIGGER_L) { + sp8[lbl_2_bss_18] += 0.1f; + } + else { + sp8[lbl_2_bss_18] += 0.01f; + } + if (sp8[lbl_2_bss_18] > 999.99f) { + sp8[lbl_2_bss_18] = 999.99f; + } + } + if (HuPadBtnRep[0] & PAD_BUTTON_DOWN) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + sp8[lbl_2_bss_18] -= 1.0f; + } + else if (HuPadBtn[0] & PAD_TRIGGER_L) { + sp8[lbl_2_bss_18] -= 0.1f; + } + else { + sp8[lbl_2_bss_18] -= 0.01f; + } + if (sp8[lbl_2_bss_18] < 0) { + sp8[lbl_2_bss_18] = 0; + } + } + temp_r31->pos.x = sp8[0]; + temp_r31->pos.y = sp8[1]; + temp_r31->pos.z = sp8[2]; + temp_r31->up.x = sp8[3]; + temp_r31->up.y = sp8[4]; + temp_r31->up.z = sp8[5]; + temp_r31->target.x = sp8[6]; } void fn_2_FF98(omObjData *object); omObjData *fn_2_FC40(s16 arg0, Vec *arg1, Vec *arg2, Vec *arg3) { - omObjData *temp_r30; - omObjData *temp_r22; - temp_r22 = omAddObjEx(HuPrcCurrentGet(), 1140, 0, 0, -1, fn_2_FF98); - temp_r30 = fn_2_DEBC(arg0); - temp_r22->work[0] = (u32)temp_r30; - fn_2_E420(temp_r30, arg1, arg2); - fn_2_E66C(temp_r30, arg3); - fn_2_E69C(temp_r30, 90.0f, 0.045999996f); - fn_2_E6BC(temp_r30, 5.0f, 1.5f, 0.08f, 0.8f, 0.8f); - fn_2_E364(temp_r30, 1); - return temp_r22; + omObjData *temp_r30; + omObjData *temp_r22; + temp_r22 = omAddObjEx(HuPrcCurrentGet(), 1140, 0, 0, -1, fn_2_FF98); + temp_r30 = fn_2_DEBC(arg0); + temp_r22->work[0] = (u32)temp_r30; + fn_2_E420(temp_r30, arg1, arg2); + fn_2_E66C(temp_r30, arg3); + fn_2_E69C(temp_r30, 90.0f, 0.045999996f); + fn_2_E6BC(temp_r30, 5.0f, 1.5f, 0.08f, 0.8f, 0.8f); + fn_2_E364(temp_r30, 1); + return temp_r22; } void fn_2_FF98(omObjData *object) { - WorkE6E8 *temp_r29; - omObjData *temp_r28; - s32 temp_r25; - s32 temp_r24; - temp_r24 = 0; - temp_r28 = (omObjData *)(object->work[0]); - temp_r29 = temp_r28->data; - temp_r29->unk4.x += object->scale.x*sind(object->trans.x); - temp_r29->unk4.y += object->scale.y*sind(object->trans.x); - temp_r29->unk4.z += object->scale.z*sind(object->trans.x); - object->trans.x += object->rot.x; - if(object->trans.x >= 360.0f) { - object->trans.x -= 360.0f; - } - if(object->trans.x < 0.0f) { - object->trans.x += 360.0f; - } - for(temp_r25=0; temp_r25unk0; temp_r25++) { - if(temp_r29->unk34[temp_r25].z >= lbl_2_bss_6C.z) { - temp_r24++; - } - } - if(temp_r24 == temp_r29->unk0) { - fn_2_E24C(temp_r28); - omDelObjEx(HuPrcCurrentGet(), object); - } - + WorkE6E8 *temp_r29; + omObjData *temp_r28; + s32 temp_r25; + s32 temp_r24; + temp_r24 = 0; + temp_r28 = (omObjData *)(object->work[0]); + temp_r29 = temp_r28->data; + temp_r29->unk4.x += object->scale.x * sind(object->trans.x); + temp_r29->unk4.y += object->scale.y * sind(object->trans.x); + temp_r29->unk4.z += object->scale.z * sind(object->trans.x); + object->trans.x += object->rot.x; + if (object->trans.x >= 360.0f) { + object->trans.x -= 360.0f; + } + if (object->trans.x < 0.0f) { + object->trans.x += 360.0f; + } + for (temp_r25 = 0; temp_r25 < temp_r29->unk0; temp_r25++) { + if (temp_r29->unk34[temp_r25].z >= lbl_2_bss_6C.z) { + temp_r24++; + } + } + if (temp_r24 == temp_r29->unk0) { + fn_2_E24C(temp_r28); + omDelObjEx(HuPrcCurrentGet(), object); + } } diff --git a/src/REL/m401Dll/main_ex.c b/src/REL/m401Dll/main_ex.c index 10e2bf6c..90dc47da 100644 --- a/src/REL/m401Dll/main_ex.c +++ b/src/REL/m401Dll/main_ex.c @@ -1,19 +1,19 @@ -#include "game/hsfman.h" -#include "game/sprite.h" -#include "game/object.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" #include "game/audio.h" -#include "game/objsub.h" #include "game/frand.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/sprite.h" #include "ext_math.h" #include "REL/m401Dll.h" struct Bss13EData { - s16 unk0; - s16 unk2[3]; + s16 unk0; + s16 unk2[3]; }; AnimData *lbl_2_bss_250; @@ -33,116 +33,115 @@ float lbl_2_bss_128; float lbl_2_bss_124; s16 lbl_2_bss_120; - void fn_2_10240(Vec *arg0, Vec *arg1) { - CameraData *camera; - Mtx lookat; - Mtx44 proj; - float coord[4]; - arg0->y = -arg0->y; - camera = &Hu3DCamera[0]; - MTXLookAt(lookat, &camera->pos, &camera->up, &camera->target); - MTXMultVec(lookat, arg0, arg0); - MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); - coord[0] = (arg0->x*proj[0][0])+(arg0->y*proj[0][1])+(arg0->z*proj[0][2])+proj[0][3]; - coord[1] = (arg0->x*proj[1][0])+(arg0->y*proj[1][1])+(arg0->z*proj[1][2])+proj[1][3]; - coord[2] = (arg0->x*proj[2][0])+(arg0->y*proj[2][1])+(arg0->z*proj[2][2])+proj[2][3]; - coord[3] = (arg0->x*proj[3][0])+(arg0->y*proj[3][1])+(arg0->z*proj[3][2])+proj[3][3]; - arg1->x = ((coord[0]/coord[3])*320.0f)+320.0f; - arg1->y = ((coord[1]/coord[3])*240.0f)+240.0f; - arg1->z = coord[2]/coord[3]; + CameraData *camera; + Mtx lookat; + Mtx44 proj; + float coord[4]; + arg0->y = -arg0->y; + camera = &Hu3DCamera[0]; + MTXLookAt(lookat, &camera->pos, &camera->up, &camera->target); + MTXMultVec(lookat, arg0, arg0); + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); + coord[0] = (arg0->x * proj[0][0]) + (arg0->y * proj[0][1]) + (arg0->z * proj[0][2]) + proj[0][3]; + coord[1] = (arg0->x * proj[1][0]) + (arg0->y * proj[1][1]) + (arg0->z * proj[1][2]) + proj[1][3]; + coord[2] = (arg0->x * proj[2][0]) + (arg0->y * proj[2][1]) + (arg0->z * proj[2][2]) + proj[2][3]; + coord[3] = (arg0->x * proj[3][0]) + (arg0->y * proj[3][1]) + (arg0->z * proj[3][2]) + proj[3][3]; + arg1->x = ((coord[0] / coord[3]) * 320.0f) + 320.0f; + arg1->y = ((coord[1] / coord[3]) * 240.0f) + 240.0f; + arg1->z = coord[2] / coord[3]; } void fn_2_1041C(void) { - s32 i; - lbl_2_bss_250 = HuSprAnimReadFile(0x200011); - lbl_2_bss_24C = HuSprAnimReadFile(0x200012); - lbl_2_bss_248 = HuSprAnimReadFile(0x200013); - lbl_2_bss_240 = HuSprAnimReadFile(0x200014); - lbl_2_bss_23C = HuSprAnimReadFile(0x200015); - lbl_2_bss_238 = HuSprAnimReadFile(0x200016); - HuSprAnimLock(lbl_2_bss_250); - HuSprAnimLock(lbl_2_bss_24C); - HuSprAnimLock(lbl_2_bss_248); - HuSprAnimLock(lbl_2_bss_240); - HuSprAnimLock(lbl_2_bss_23C); - HuSprAnimLock(lbl_2_bss_238); - lbl_2_bss_244 = HuSprAnimReadFile(0x200026); - HuSprAnimLock(lbl_2_bss_244); - lbl_2_bss_220[0][0] = lbl_2_bss_250; - lbl_2_bss_220[0][1] = lbl_2_bss_24C; - lbl_2_bss_220[0][2] = lbl_2_bss_248; - lbl_2_bss_220[1][0] = lbl_2_bss_240; - lbl_2_bss_220[1][1] = lbl_2_bss_23C; - lbl_2_bss_220[1][2] = lbl_2_bss_238; - for(i=0; i<4; i++) { - lbl_2_bss_136[i] = Hu3DModelCreateFile(0x200017); - Hu3DModelAttrSet(lbl_2_bss_136[i], 1); - Hu3DModelAttrSet(lbl_2_bss_136[i], 0x40000001); - Hu3DModelScaleSet(lbl_2_bss_136[i], 1.5f, 1.5f, 1.0f); - Hu3DModelLayerSet(lbl_2_bss_136[i], 2); - } + s32 i; + lbl_2_bss_250 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x11)); + lbl_2_bss_24C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x12)); + lbl_2_bss_248 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x13)); + lbl_2_bss_240 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x14)); + lbl_2_bss_23C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x15)); + lbl_2_bss_238 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x16)); + HuSprAnimLock(lbl_2_bss_250); + HuSprAnimLock(lbl_2_bss_24C); + HuSprAnimLock(lbl_2_bss_248); + HuSprAnimLock(lbl_2_bss_240); + HuSprAnimLock(lbl_2_bss_23C); + HuSprAnimLock(lbl_2_bss_238); + lbl_2_bss_244 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x26)); + HuSprAnimLock(lbl_2_bss_244); + lbl_2_bss_220[0][0] = lbl_2_bss_250; + lbl_2_bss_220[0][1] = lbl_2_bss_24C; + lbl_2_bss_220[0][2] = lbl_2_bss_248; + lbl_2_bss_220[1][0] = lbl_2_bss_240; + lbl_2_bss_220[1][1] = lbl_2_bss_23C; + lbl_2_bss_220[1][2] = lbl_2_bss_238; + for (i = 0; i < 4; i++) { + lbl_2_bss_136[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x17)); + Hu3DModelAttrSet(lbl_2_bss_136[i], 1); + Hu3DModelAttrSet(lbl_2_bss_136[i], 0x40000001); + Hu3DModelScaleSet(lbl_2_bss_136[i], 1.5f, 1.5f, 1.0f); + Hu3DModelLayerSet(lbl_2_bss_136[i], 2); + } } void fn_2_10710(void) { - HuSprAnimKill(lbl_2_bss_250); - HuSprAnimKill(lbl_2_bss_24C); - HuSprAnimKill(lbl_2_bss_248); - HuSprAnimKill(lbl_2_bss_240); - HuSprAnimKill(lbl_2_bss_23C); - HuSprAnimKill(lbl_2_bss_238); - HuSprAnimKill(lbl_2_bss_244); + HuSprAnimKill(lbl_2_bss_250); + HuSprAnimKill(lbl_2_bss_24C); + HuSprAnimKill(lbl_2_bss_248); + HuSprAnimKill(lbl_2_bss_240); + HuSprAnimKill(lbl_2_bss_23C); + HuSprAnimKill(lbl_2_bss_238); + HuSprAnimKill(lbl_2_bss_244); } void fn_2_1079C(void) { - s32 i; - for(i=0; i<28; i++) { - lbl_2_bss_13E[i].unk0 = 0; - lbl_2_bss_13E[i].unk2[0] = Hu3DParticleCreate(lbl_2_bss_250, 80); - lbl_2_bss_13E[i].unk2[1] = Hu3DParticleCreate(lbl_2_bss_24C, 80); - lbl_2_bss_13E[i].unk2[2] = Hu3DParticleCreate(lbl_2_bss_248, 80); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[0], 1); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[1], 1); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[2], 1); - } - lbl_2_bss_134 = 0; + s32 i; + for (i = 0; i < 28; i++) { + lbl_2_bss_13E[i].unk0 = 0; + lbl_2_bss_13E[i].unk2[0] = Hu3DParticleCreate(lbl_2_bss_250, 80); + lbl_2_bss_13E[i].unk2[1] = Hu3DParticleCreate(lbl_2_bss_24C, 80); + lbl_2_bss_13E[i].unk2[2] = Hu3DParticleCreate(lbl_2_bss_248, 80); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[0], 1); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[1], 1); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[2], 1); + } + lbl_2_bss_134 = 0; } s16 fn_2_108C8(void) { - s32 i; - s32 j; - for(i=0; i<28; i++) { - if(!lbl_2_bss_13E[i].unk0) { - for(j=0; j<3; j++) { - Hu3DModelAttrReset(lbl_2_bss_13E[i].unk2[j], 1); - } - lbl_2_bss_13E[i].unk0 = 1; - return i; - } - } - return -1; + s32 i; + s32 j; + for (i = 0; i < 28; i++) { + if (!lbl_2_bss_13E[i].unk0) { + for (j = 0; j < 3; j++) { + Hu3DModelAttrReset(lbl_2_bss_13E[i].unk2[j], 1); + } + lbl_2_bss_13E[i].unk0 = 1; + return i; + } + } + return -1; } void fn_2_10980(s16 arg0) { - s32 i; - lbl_2_bss_13E[arg0].unk0 = 0; - for(i=0; i<3; i++) { - Hu3DModelAttrSet(lbl_2_bss_13E[arg0].unk2[i], 1); - } + s32 i; + lbl_2_bss_13E[arg0].unk0 = 0; + for (i = 0; i < 3; i++) { + Hu3DModelAttrSet(lbl_2_bss_13E[arg0].unk2[i], 1); + } } s16 fn_2_10A08(void) { - s16 temp_r31 = lbl_2_bss_136[lbl_2_bss_134]; - lbl_2_bss_134 = (lbl_2_bss_134+1)&0x3; - Hu3DModelTPLvlSet(temp_r31, 1.0f); - return temp_r31; + s16 temp_r31 = lbl_2_bss_136[lbl_2_bss_134]; + lbl_2_bss_134 = (lbl_2_bss_134 + 1) & 0x3; + Hu3DModelTPLvlSet(temp_r31, 1.0f); + return temp_r31; } void fn_2_113AC(omObjData *object); @@ -163,152 +162,152 @@ void fn_2_13B7C(ModelData *model, ParticleData *particle, Mtx matrix); omObjData *fn_2_10A88(Vec *arg0, s16 arg1) { - omObjData *temp_r31; - s32 temp_r30; - ParticleData *temp_r28; - UnkWork10A88 *temp_r27; - s16 temp_r24 = fn_2_108C8(); - if(temp_r24 < 0) { - return NULL; - } - { - s16 temp_r22 = -1; - if(arg1 == 0) { - temp_r22 = 1; - } - temp_r31 = omAddObjEx(HuPrcCurrentGet(), 0x514, 3, 0, temp_r22, NULL); - } - - - temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWork10A88), MEMORY_DEFAULT_NUM); - temp_r27 = temp_r31->data; - temp_r27->unk0 = *arg0; - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r31->model[temp_r30] = lbl_2_bss_13E[temp_r24].unk2[temp_r30]; - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleCntSet(temp_r31->model[temp_r30], 0); - Hu3DParticleAnimModeSet(temp_r31->model[temp_r30], 0); - Hu3DModelLayerSet(temp_r31->model[temp_r30], 1); - if(arg1 == 1) { - temp_r31->unk10 = fn_2_10A08(); - Hu3DModelAttrReset(temp_r31->unk10, 1); - temp_r28->unk_44 = lbl_2_bss_220[1][temp_r30]; - temp_r27->unk1C = 1.0f; - temp_r31->work[3] = 45; - Hu3DModelTPLvlSet(temp_r31->unk10, temp_r27->unk1C); - } else { - temp_r28->unk_44 = lbl_2_bss_220[0][temp_r30]; - } - } - temp_r27->unk10 = 3; - temp_r27->unk12 = temp_r24; - //I am not table to force arg1 to get reloaded without deleting code or serious temporary register allocation issues - (void)arg1; - switch((temp_r27->unk18 = arg1)) { - case 1: - Hu3DModelPosSet(temp_r31->unk10, arg0->x, arg0->y, lbl_2_bss_60.z+arg0->z); + omObjData *temp_r31; + s32 temp_r30; + ParticleData *temp_r28; + UnkWork10A88 *temp_r27; + s16 temp_r24 = fn_2_108C8(); + if (temp_r24 < 0) { + return NULL; + } + { + s16 temp_r22 = -1; + if (arg1 == 0) { + temp_r22 = 1; + } + temp_r31 = omAddObjEx(HuPrcCurrentGet(), 0x514, 3, 0, temp_r22, NULL); + } - case 0: - temp_r31->trans.x = arg0->x; - temp_r31->trans.y = arg0->y; - temp_r31->trans.z = lbl_2_bss_60.z+arg0->z; - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_11FB4); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28->unk_00 = (temp_r30*4.5f)/3.0f; - temp_r28->unk_02 = 0; - temp_r28->unk_1C = temp_r31; - } - temp_r27->unk14 = 0; - temp_r31->func = fn_2_113AC; - break; - - case 2: - fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126C8); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11A68; - break; - - case 3: - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126F4); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], arg0->x, arg0->y, arg0->z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11B78; - break; - - case 4: - fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_12B30); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11C30; - break; - - case 5: - fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1301C); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11D40; - break; - - case 6: - omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1350C); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); - } - temp_r31->func = fn_2_11E44; - break; - - case 7: - omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_13B7C); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); - } - temp_r31->func = fn_2_11EFC; - break; - - default: - break; - } - return temp_r31; + temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWork10A88), MEMORY_DEFAULT_NUM); + temp_r27 = temp_r31->data; + temp_r27->unk0 = *arg0; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r31->model[temp_r30] = lbl_2_bss_13E[temp_r24].unk2[temp_r30]; + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleCntSet(temp_r31->model[temp_r30], 0); + Hu3DParticleAnimModeSet(temp_r31->model[temp_r30], 0); + Hu3DModelLayerSet(temp_r31->model[temp_r30], 1); + if (arg1 == 1) { + temp_r31->unk10 = fn_2_10A08(); + Hu3DModelAttrReset(temp_r31->unk10, 1); + temp_r28->unk_44 = lbl_2_bss_220[1][temp_r30]; + temp_r27->unk1C = 1.0f; + temp_r31->work[3] = 45; + Hu3DModelTPLvlSet(temp_r31->unk10, temp_r27->unk1C); + } + else { + temp_r28->unk_44 = lbl_2_bss_220[0][temp_r30]; + } + } + temp_r27->unk10 = 3; + temp_r27->unk12 = temp_r24; + // I am not table to force arg1 to get reloaded without deleting code or serious temporary register allocation issues + (void)arg1; + switch ((temp_r27->unk18 = arg1)) { + case 1: + Hu3DModelPosSet(temp_r31->unk10, arg0->x, arg0->y, lbl_2_bss_60.z + arg0->z); + + case 0: + temp_r31->trans.x = arg0->x; + temp_r31->trans.y = arg0->y; + temp_r31->trans.z = lbl_2_bss_60.z + arg0->z; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_11FB4); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28->unk_00 = (temp_r30 * 4.5f) / 3.0f; + temp_r28->unk_02 = 0; + temp_r28->unk_1C = temp_r31; + } + temp_r27->unk14 = 0; + temp_r31->func = fn_2_113AC; + break; + + case 2: + fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126C8); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11A68; + break; + + case 3: + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126F4); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], arg0->x, arg0->y, arg0->z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11B78; + break; + + case 4: + fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_12B30); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11C30; + break; + + case 5: + fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1301C); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11D40; + break; + + case 6: + omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1350C); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); + } + temp_r31->func = fn_2_11E44; + break; + + case 7: + omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_13B7C); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); + } + temp_r31->func = fn_2_11EFC; + break; + + default: + break; + } + return temp_r31; } void fn_2_118B0(omObjData *object); @@ -316,653 +315,657 @@ void fn_2_123F8(ModelData *model, ParticleData *particle, Mtx matrix); void fn_2_113AC(omObjData *object) { - UnkWork10A88 *temp_r30; - s32 temp_r29; - M401WorkPlayer *temp_r28; - omObjData *temp_r27; - ParticleData *temp_r25; - s16 temp_r24; - temp_r30 = object->data; - temp_r30->unk0.z += (lbl_2_bss_50*0.5f); - object->trans.x = temp_r30->unk0.x; - object->trans.y = temp_r30->unk0.y; - object->trans.z = lbl_2_bss_60.z+temp_r30->unk0.z; - if(object->unk10 != 0) { - Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); - } - for(temp_r29=1; temp_r29<3; temp_r29++) { - Hu3DModelRotSet(object->model[temp_r29], object->rot.x, object->rot.y, object->rot.z); - Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - float dist; - temp_r27 = lbl_2_bss_118[temp_r29]; - temp_r28 = temp_r27->data; - if(temp_r28->unk78 != 0) { - continue; - } - dist = VECDistanceXYZ(&object->trans, &temp_r27->trans); - if(dist < 108.00001f) { - Hu3DMotionShiftSet(lbl_2_bss_118[temp_r29]->model[0], lbl_2_bss_118[temp_r29]->motion[6], 0, 10, 0); - HuAudFXPlay(1288); - if(temp_r30->unk18 == 0) { - HuAudFXPlay(9); - temp_r28->unk72++; - omVibrate(temp_r28->unk4, 12, 6, 6); - } else { - HuAudFXPlay(1292); - temp_r28->unk74 = 3; - temp_r28->unk72 += 3; - fn_2_169C(temp_r28->unk4); - omVibrate(temp_r28->unk4, 12, 4, 2); - } - temp_r28->unk84 = 50; - for(temp_r29=0; temp_r29<3; temp_r29++) { - temp_r25 = Hu3DData[object->model[temp_r29]].unk_120; - temp_r25->unk_02 = 0; - Hu3DParticleHookSet(object->model[temp_r29], fn_2_123F8); - } - object->func = fn_2_118B0; - break; - } - } - if(temp_r30->unk0.z > 850.0f) { - temp_r30->unk14 = 1; - } - if(object->unk10) { - if(object->work[3] != 0) { - object->work[3]--; - } else { - temp_r30->unk1C -= 0.033333335f; - if(temp_r30->unk1C < 0) { - temp_r30->unk1C = 0; - } - Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); - } - } - if(temp_r30->unk10 == 0) { - if(object->unk10) { - Hu3DModelAttrSet(object->unk10, 1); - } - fn_2_10980(temp_r30->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } - + UnkWork10A88 *temp_r30; + s32 temp_r29; + M401WorkPlayer *temp_r28; + omObjData *temp_r27; + ParticleData *temp_r25; + s16 temp_r24; + temp_r30 = object->data; + temp_r30->unk0.z += (lbl_2_bss_50 * 0.5f); + object->trans.x = temp_r30->unk0.x; + object->trans.y = temp_r30->unk0.y; + object->trans.z = lbl_2_bss_60.z + temp_r30->unk0.z; + if (object->unk10 != 0) { + Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); + } + for (temp_r29 = 1; temp_r29 < 3; temp_r29++) { + Hu3DModelRotSet(object->model[temp_r29], object->rot.x, object->rot.y, object->rot.z); + Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + float dist; + temp_r27 = lbl_2_bss_118[temp_r29]; + temp_r28 = temp_r27->data; + if (temp_r28->unk78 != 0) { + continue; + } + dist = VECDistanceXYZ(&object->trans, &temp_r27->trans); + if (dist < 108.00001f) { + Hu3DMotionShiftSet(lbl_2_bss_118[temp_r29]->model[0], lbl_2_bss_118[temp_r29]->motion[6], 0, 10, 0); + HuAudFXPlay(1288); + if (temp_r30->unk18 == 0) { + HuAudFXPlay(9); + temp_r28->unk72++; + omVibrate(temp_r28->unk4, 12, 6, 6); + } + else { + HuAudFXPlay(1292); + temp_r28->unk74 = 3; + temp_r28->unk72 += 3; + fn_2_169C(temp_r28->unk4); + omVibrate(temp_r28->unk4, 12, 4, 2); + } + temp_r28->unk84 = 50; + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + temp_r25 = Hu3DData[object->model[temp_r29]].unk_120; + temp_r25->unk_02 = 0; + Hu3DParticleHookSet(object->model[temp_r29], fn_2_123F8); + } + object->func = fn_2_118B0; + break; + } + } + if (temp_r30->unk0.z > 850.0f) { + temp_r30->unk14 = 1; + } + if (object->unk10) { + if (object->work[3] != 0) { + object->work[3]--; + } + else { + temp_r30->unk1C -= 0.033333335f; + if (temp_r30->unk1C < 0) { + temp_r30->unk1C = 0; + } + Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); + } + } + if (temp_r30->unk10 == 0) { + if (object->unk10) { + Hu3DModelAttrSet(object->unk10, 1); + } + fn_2_10980(temp_r30->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_118B0(omObjData *object) { - UnkWork10A88 *temp_r30; - s32 temp_r29; - - temp_r30 = object->data; - temp_r30->unk0.z += (lbl_2_bss_50*0.5f); - object->trans.x = temp_r30->unk0.x; - object->trans.y = temp_r30->unk0.y; - object->trans.z = lbl_2_bss_60.z+temp_r30->unk0.z; - for(temp_r29=1; temp_r29<3; temp_r29++) { - Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); - } - if(object->unk10 != 0) { - Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); - temp_r30->unk1C -= 0.033333335f; - if(temp_r30->unk1C < 0) { - temp_r30->unk1C = 0; - } - Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); - } - - - if(temp_r30->unk10 == 0) { - if(object->unk10) { - Hu3DModelAttrSet(object->unk10, 1); - } - fn_2_10980(temp_r30->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r30; + s32 temp_r29; + + temp_r30 = object->data; + temp_r30->unk0.z += (lbl_2_bss_50 * 0.5f); + object->trans.x = temp_r30->unk0.x; + object->trans.y = temp_r30->unk0.y; + object->trans.z = lbl_2_bss_60.z + temp_r30->unk0.z; + for (temp_r29 = 1; temp_r29 < 3; temp_r29++) { + Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); + } + if (object->unk10 != 0) { + Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); + temp_r30->unk1C -= 0.033333335f; + if (temp_r30->unk1C < 0) { + temp_r30->unk1C = 0; + } + Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); + } + + if (temp_r30->unk10 == 0) { + if (object->unk10) { + Hu3DModelAttrSet(object->unk10, 1); + } + fn_2_10980(temp_r30->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11A68(omObjData *object) { - s32 temp_r30; - UnkWork10A88 *temp_r29; - UnkWork10A88 *sp8; - temp_r29 = object->data; - sp8 = temp_r29->unkC->data; - omSetTra(object, 0, 0, 0); - for(temp_r30=1; temp_r30<3; temp_r30++) { - Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); - } - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + s32 temp_r30; + UnkWork10A88 *temp_r29; + UnkWork10A88 *sp8; + temp_r29 = object->data; + sp8 = temp_r29->unkC->data; + omSetTra(object, 0, 0, 0); + for (temp_r30 = 1; temp_r30 < 3; temp_r30++) { + Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); + } + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } - void fn_2_11B78(omObjData *object) { - UnkWork10A88 *temp_r29; - temp_r29 = object->data; - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r29; + temp_r29 = object->data; + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11C30(omObjData *object) { - s32 temp_r30; - UnkWork10A88 *temp_r29; - UnkWork10A88 *sp8; - temp_r29 = object->data; - sp8 = temp_r29->unkC->data; - omSetTra(object, 0, 0, 0); - for(temp_r30=1; temp_r30<3; temp_r30++) { - Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); - } - if(object->work[1] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + s32 temp_r30; + UnkWork10A88 *temp_r29; + UnkWork10A88 *sp8; + temp_r29 = object->data; + sp8 = temp_r29->unkC->data; + omSetTra(object, 0, 0, 0); + for (temp_r30 = 1; temp_r30 < 3; temp_r30++) { + Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); + } + if (object->work[1] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11D40(omObjData *object) { - s32 temp_r30; - UnkWork10A88 *temp_r29; - UnkWork10A88 *sp8; - temp_r29 = object->data; - sp8 = temp_r29->unkC->data; - omSetTra(object, temp_r29->unkC->trans.x, temp_r29->unkC->trans.y, temp_r29->unkC->trans.z); - for(temp_r30=1; temp_r30<3; temp_r30++) { - Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); - } - if(object->work[1] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + s32 temp_r30; + UnkWork10A88 *temp_r29; + UnkWork10A88 *sp8; + temp_r29 = object->data; + sp8 = temp_r29->unkC->data; + omSetTra(object, temp_r29->unkC->trans.x, temp_r29->unkC->trans.y, temp_r29->unkC->trans.z); + for (temp_r30 = 1; temp_r30 < 3; temp_r30++) { + Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); + } + if (object->work[1] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11E44(omObjData *object) { - UnkWork10A88 *temp_r29; - temp_r29 = object->data; - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r29; + temp_r29 = object->data; + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11EFC(omObjData *object) { - UnkWork10A88 *temp_r29; - temp_r29 = object->data; - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r29; + temp_r29 = object->data; + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11FB4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - UnkWork10A88 *temp_r28; - s32 temp_r27; - temp_r28 = ((omObjData *)(particle->unk_1C))->data; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - temp_f29 = 360.0f/(particle->unk_30/2); - temp_f31 = particle->unk_00; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - temp_f30 = (0.1f*(rand8() % 50))+50; - temp_r31->unk2C = (0.1f*(rand8() % 41))+8.0f; - temp_r31->unk08.x = temp_f31; - temp_r31->unk08.y = temp_f30; - temp_r31->unk08.z = 0; - temp_r31->unk14.x = (10.0f/255.0f)*((u8)frand()); - temp_r31->unk40.a = 180; - temp_f31 += temp_f29; - temp_r31->unk34.z = 0; - } - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } - temp_r31 = particle->unk_48; - temp_r27 = 0; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - temp_r27++; - temp_f30 = (6.0*sind(temp_r31->unk08.z))+temp_r31->unk08.y; - temp_r31->unk34.x = temp_f30*cosd(temp_r31->unk08.x); - temp_r31->unk34.y = temp_f30*sind(temp_r31->unk08.x); - temp_r31->unk08.z += temp_r31->unk14.x; - if(temp_r31->unk08.z >= 360.0f) { - temp_r31->unk08.z -= 360.0f; - } - temp_f31 = temp_r31->unk40.a; - if(temp_r28->unk14) { - temp_f31 -= 3.0f; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - } - } - temp_r31->unk40.a = temp_f31; - } - } - if(!temp_r27) { - temp_r28->unk10--; - } + float temp_f31; + float temp_f30; + float temp_f29; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + UnkWork10A88 *temp_r28; + s32 temp_r27; + temp_r28 = ((omObjData *)(particle->unk_1C))->data; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + temp_f29 = 360.0f / (particle->unk_30 / 2); + temp_f31 = particle->unk_00; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + temp_f30 = (0.1f * (rand8() % 50)) + 50; + temp_r31->unk2C = (0.1f * (rand8() % 41)) + 8.0f; + temp_r31->unk08.x = temp_f31; + temp_r31->unk08.y = temp_f30; + temp_r31->unk08.z = 0; + temp_r31->unk14.x = (10.0f / 255.0f) * ((u8)frand()); + temp_r31->unk40.a = 180; + temp_f31 += temp_f29; + temp_r31->unk34.z = 0; + } + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + temp_r31 = particle->unk_48; + temp_r27 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + temp_r27++; + temp_f30 = (6.0 * sind(temp_r31->unk08.z)) + temp_r31->unk08.y; + temp_r31->unk34.x = temp_f30 * cosd(temp_r31->unk08.x); + temp_r31->unk34.y = temp_f30 * sind(temp_r31->unk08.x); + temp_r31->unk08.z += temp_r31->unk14.x; + if (temp_r31->unk08.z >= 360.0f) { + temp_r31->unk08.z -= 360.0f; + } + temp_f31 = temp_r31->unk40.a; + if (temp_r28->unk14) { + temp_f31 -= 3.0f; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + } + temp_r31->unk40.a = temp_f31; + } + } + if (!temp_r27) { + temp_r28->unk10--; + } } void fn_2_123F8(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - UnkWork10A88 *temp_r27; - if(!particle->unk_02) { - particle->unk_02 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - temp_r31->unk08.x = temp_r31->unk34.x; - temp_r31->unk14.x = 0; - temp_r31->unk14.y = 5.0f+((35.0f/255.0f)*((u8)frand())); - temp_r31->unk14.z = 8.0f+((8.0f/255.0f)*((u8)frand())); - temp_r31->unk24 = 3.0f+((5.0f/255.0f)*((u8)frand())); - } - } - temp_r31 = particle->unk_48; - temp_r28 = 0; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - temp_r28++; - temp_r31->unk34.x = temp_r31->unk08.x+(temp_r31->unk14.z*sind(temp_r31->unk14.x)); - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += temp_r31->unk24; - temp_f31 = temp_r31->unk40.a; - temp_f31 -= 3.0f; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - } - temp_r31->unk40.a = temp_f31; - } - } - if(temp_r28 == 0) { - UnkWork10A88 *temp_r27 = ((omObjData *)(particle->unk_1C))->data; - temp_r27->unk10--; - } + float temp_f31; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + UnkWork10A88 *temp_r27; + if (!particle->unk_02) { + particle->unk_02 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + temp_r31->unk08.x = temp_r31->unk34.x; + temp_r31->unk14.x = 0; + temp_r31->unk14.y = 5.0f + ((35.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.z = 8.0f + ((8.0f / 255.0f) * ((u8)frand())); + temp_r31->unk24 = 3.0f + ((5.0f / 255.0f) * ((u8)frand())); + } + } + temp_r31 = particle->unk_48; + temp_r28 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + temp_r28++; + temp_r31->unk34.x = temp_r31->unk08.x + (temp_r31->unk14.z * sind(temp_r31->unk14.x)); + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += temp_r31->unk24; + temp_f31 = temp_r31->unk40.a; + temp_f31 -= 3.0f; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + temp_r31->unk40.a = temp_f31; + } + } + if (temp_r28 == 0) { + UnkWork10A88 *temp_r27 = ((omObjData *)(particle->unk_1C))->data; + temp_r27->unk10--; + } } -//Here exclusively to match fn_2_126C8 +// Here exclusively to match fn_2_126C8 static inline void DummyInline(s32 arg0) { - s32 temp1, temp2, temp3, temp4, temp5; - if(arg0 != 0) { - temp1 = 1; - temp2 = temp1*2; - temp3 = temp2*3; - temp4 = temp3*4; - temp5 = temp4*5; - temp5 = temp5/2; - } + s32 temp1, temp2, temp3, temp4, temp5; + if (arg0 != 0) { + temp1 = 1; + temp2 = temp1 * 2; + temp3 = temp2 * 3; + temp4 = temp3 * 4; + temp5 = temp4 * 5; + temp5 = temp5 / 2; + } } void fn_2_126C8(ModelData *model, ParticleData *particle, Mtx matrix) { - DummyInline(0); + DummyInline(0); } void fn_2_126F4(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 0; - temp_r31->unk2C = 0; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_r31->unk08.x = -50.0f+(0.3921569f*((u8)frand())); - temp_r31->unk08.y = 0.058823533f*((u8)frand()); - temp_r31->unk14.x = (90.0f/255.0f)*((u8)frand()); - temp_r31->unk14.y = 5.0f+(0.098039225f*((u8)frand())); - temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; - temp_r31->unk34.z = -5.0f+((11.0f/255.0f)*((u8)frand())); - temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; - temp_r31->unk2C = temp_r31->unk08.y+35.0f; - temp_r31->unk40.a = 210; - temp_r31->unk08.y = (0.2*temp_r31->unk08.y)+5.0; - particle->unk_00 = (frand()%10)+10; - } - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - continue; - } - temp_r31->unk34.x = (temp_r31->unk14.z*sind(temp_r31->unk14.x))+temp_r31->unk08.x; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk40.a--; - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 0; + temp_r31->unk2C = 0; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_r31->unk08.x = -50.0f + (0.3921569f * ((u8)frand())); + temp_r31->unk08.y = 0.058823533f * ((u8)frand()); + temp_r31->unk14.x = (90.0f / 255.0f) * ((u8)frand()); + temp_r31->unk14.y = 5.0f + (0.098039225f * ((u8)frand())); + temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; + temp_r31->unk34.z = -5.0f + ((11.0f / 255.0f) * ((u8)frand())); + temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; + temp_r31->unk2C = temp_r31->unk08.y + 35.0f; + temp_r31->unk40.a = 210; + temp_r31->unk08.y = (0.2 * temp_r31->unk08.y) + 5.0; + particle->unk_00 = (frand() % 10) + 10; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + continue; + } + temp_r31->unk34.x = (temp_r31->unk14.z * sind(temp_r31->unk14.x)) + temp_r31->unk08.x; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk40.a--; + } } void fn_2_12B30(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - M401WorkPlayer *temp_r28; - omObjData *temp_r27; - s32 temp_r26; - s32 temp_r25; - UnkWork10A88 *temp_r24; - temp_r27 = particle->unk_1C; - temp_r24 = ((omObjData *)(particle->unk_1C))->data; - temp_r28 = temp_r24->unkC->data; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 0; - temp_r31->unk2C = 0; - temp_r31->unk20 = 0; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0 && temp_r27->work[0] == 0) { - for(temp_r29=0; temp_r29<10; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r26=0; temp_r26unk_30; temp_r26++, temp_r31++) { - if(temp_r31->unk20 == 0) { - break; - } - } - if(temp_r26 == particle->unk_30) { - continue; - } - temp_r31->unk08.x = (((40.0f/255.0f)*((u8)frand()))+(temp_r28->unk18.x-20.0f)); - temp_r31->unk08.y = (frand() % 5)+3; - temp_r31->unk14.x = ((90.0f/255.0f)*((u8)frand())); - temp_r31->unk14.y = 5.0f+((45.0f/255.0f)*((u8)frand())); - temp_r31->unk14.z = 2.0f+(0.011764707f*((u8)frand())); - temp_r31->unk40.a = 180; - temp_r31->unk34.z = ((0.121568635f*((u8)frand()))+(temp_r28->unk18.z+70.0f)); - temp_r31->unk34.y = ((0.20000002f*((u8)frand()))+(temp_r28->unk18.y-25.0f)); - particle->unk_00 = (frand()%6)+5; - temp_r31->unk20 = 1; - temp_r31->unk2C = 11; - } - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - temp_r25 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - float temp_f31; - temp_r31->unk34.x = (temp_r31->unk14.z*sind(temp_r31->unk14.x))+temp_r31->unk08.x; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += 3.0f; - temp_f31 = temp_r31->unk40.a; - temp_f31 -= temp_r31->unk08.y; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - temp_r31->unk20 = 0; - } - - temp_r31->unk40.a = temp_f31; - temp_r25++; - } - } - if(temp_r25 == 0 && temp_r27->work[0] == 1) { - temp_r27->work[1] = 1; - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + M401WorkPlayer *temp_r28; + omObjData *temp_r27; + s32 temp_r26; + s32 temp_r25; + UnkWork10A88 *temp_r24; + temp_r27 = particle->unk_1C; + temp_r24 = ((omObjData *)(particle->unk_1C))->data; + temp_r28 = temp_r24->unkC->data; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 0; + temp_r31->unk2C = 0; + temp_r31->unk20 = 0; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0 && temp_r27->work[0] == 0) { + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r26 = 0; temp_r26 < particle->unk_30; temp_r26++, temp_r31++) { + if (temp_r31->unk20 == 0) { + break; + } + } + if (temp_r26 == particle->unk_30) { + continue; + } + temp_r31->unk08.x = (((40.0f / 255.0f) * ((u8)frand())) + (temp_r28->unk18.x - 20.0f)); + temp_r31->unk08.y = (frand() % 5) + 3; + temp_r31->unk14.x = ((90.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.y = 5.0f + ((45.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.z = 2.0f + (0.011764707f * ((u8)frand())); + temp_r31->unk40.a = 180; + temp_r31->unk34.z = ((0.121568635f * ((u8)frand())) + (temp_r28->unk18.z + 70.0f)); + temp_r31->unk34.y = ((0.20000002f * ((u8)frand())) + (temp_r28->unk18.y - 25.0f)); + particle->unk_00 = (frand() % 6) + 5; + temp_r31->unk20 = 1; + temp_r31->unk2C = 11; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + temp_r25 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + float temp_f31; + temp_r31->unk34.x = (temp_r31->unk14.z * sind(temp_r31->unk14.x)) + temp_r31->unk08.x; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += 3.0f; + temp_f31 = temp_r31->unk40.a; + temp_f31 -= temp_r31->unk08.y; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + temp_r31->unk20 = 0; + } + + temp_r31->unk40.a = temp_f31; + temp_r25++; + } + } + if (temp_r25 == 0 && temp_r27->work[0] == 1) { + temp_r27->work[1] = 1; + } } void fn_2_1301C(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - M401WorkPlayer *temp_r28; - omObjData *temp_r27; - s32 temp_r26; - s32 temp_r25; - UnkWork10A88 *temp_r24; - temp_r27 = particle->unk_1C; - temp_r24 = (temp_r27)->data; - temp_r28 = temp_r24->unkC->data; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 0; - temp_r31->unk2C = 0; - temp_r31->unk20 = 0; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0 && temp_r27->work[0] == 0) { - for(temp_r29=0; temp_r29<10; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r26=0; temp_r26unk_30; temp_r26++, temp_r31++) { - if(temp_r31->unk20 == 0) { - break; - } - } - if(temp_r26 == particle->unk_30) { - continue; - } - temp_r31->unk08.x = (((80.0f/255.0f)*((u8)frand()))+(-40.0f)); - temp_r31->unk08.y = (frand() % 10)+7; - temp_r31->unk14.x = ((90.0f/255.0f)*((u8)frand())); - temp_r31->unk14.y = 5.0f+((45.0f/255.0f)*((u8)frand())); - temp_r31->unk14.z = 2.0f+(frand() % 3); - temp_r31->unk40.a = 180; - temp_r31->unk34.z = ((0.121568635f*((u8)frand()))+(85.0f)); - temp_r31->unk34.y = ((0.2392157f*((u8)frand()))+(-30.0f)); - particle->unk_00 = (frand()%3)+3; - temp_r31->unk20 = 1; - temp_r31->unk2C = 11; - } - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - temp_r25 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - float temp_f31; - temp_r31->unk34.x = (temp_r31->unk14.z*sind(temp_r31->unk14.x))+temp_r31->unk08.x; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += 3.0f; - temp_r31->unk34.z -= 1.0f; - temp_f31 = temp_r31->unk40.a; - temp_f31 -= temp_r31->unk08.y; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - temp_r31->unk20 = 0; - } - - temp_r31->unk40.a = temp_f31; - temp_r25++; - } - } - if(temp_r25 == 0 && temp_r27->work[0] == 1) { - temp_r27->work[1] = 1; - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + M401WorkPlayer *temp_r28; + omObjData *temp_r27; + s32 temp_r26; + s32 temp_r25; + UnkWork10A88 *temp_r24; + temp_r27 = particle->unk_1C; + temp_r24 = (temp_r27)->data; + temp_r28 = temp_r24->unkC->data; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 0; + temp_r31->unk2C = 0; + temp_r31->unk20 = 0; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0 && temp_r27->work[0] == 0) { + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r26 = 0; temp_r26 < particle->unk_30; temp_r26++, temp_r31++) { + if (temp_r31->unk20 == 0) { + break; + } + } + if (temp_r26 == particle->unk_30) { + continue; + } + temp_r31->unk08.x = (((80.0f / 255.0f) * ((u8)frand())) + (-40.0f)); + temp_r31->unk08.y = (frand() % 10) + 7; + temp_r31->unk14.x = ((90.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.y = 5.0f + ((45.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.z = 2.0f + (frand() % 3); + temp_r31->unk40.a = 180; + temp_r31->unk34.z = ((0.121568635f * ((u8)frand())) + (85.0f)); + temp_r31->unk34.y = ((0.2392157f * ((u8)frand())) + (-30.0f)); + particle->unk_00 = (frand() % 3) + 3; + temp_r31->unk20 = 1; + temp_r31->unk2C = 11; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + temp_r25 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + float temp_f31; + temp_r31->unk34.x = (temp_r31->unk14.z * sind(temp_r31->unk14.x)) + temp_r31->unk08.x; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += 3.0f; + temp_r31->unk34.z -= 1.0f; + temp_f31 = temp_r31->unk40.a; + temp_f31 -= temp_r31->unk08.y; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + temp_r31->unk20 = 0; + } + + temp_r31->unk40.a = temp_f31; + temp_r25++; + } + } + if (temp_r25 == 0 && temp_r27->work[0] == 1) { + temp_r27->work[1] = 1; + } } void fn_2_1350C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - } - particle->unk_1C = (void *)1; - particle->unk_02 = 0; - particle->unk_00 = 0; - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<16; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_f30 = (360.0f/255.0f)*((u8)frand()); - temp_r31->unk20 = 45*sind(temp_f30); - temp_r31->unk28 = 45*cosd(temp_f30); - temp_r31->unk24 = 0; - temp_f28 = 0.098039225f*((u8)frand())+50.0f; - temp_f29 = (2.0f/255.0f)*((u8)frand())+2.5f; - temp_r31->unk08.x = temp_f29*sind(temp_f30)*cosd(temp_f28); - temp_r31->unk08.y = 0.8f*(temp_f29*sind(temp_f28)); - temp_r31->unk08.z = temp_f29*cosd(temp_f30)*cosd(temp_f28); - temp_r31->unk14.x = 1; - temp_r31->unk14.y = 255; - temp_r31->unk2C = (4.0f/255.0f)*((u8)frand())+3.0f; - temp_r31->unk40.r = (155.0f/255.0f)*((u8)frand())+100.0f; - temp_r31->unk40.g = 0.21568629f*((u8)frand())+200.0f; - temp_r31->unk40.b = 255; - temp_r31->unk40.a = temp_r31->unk14.y; - } - particle->unk_00 = 0.058823533f*((u8)frand())+30.0f; - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - temp_f31 = temp_r31->unk14.x; - temp_r31->unk34.x = (temp_r31->unk08.x*temp_f31)+temp_r31->unk20; - temp_r31->unk34.z = (temp_r31->unk08.z*temp_f31)+temp_r31->unk28; - temp_r31->unk34.y = ((temp_r31->unk08.y*temp_f31)+temp_r31->unk24)-(0.2*temp_f31*temp_f31); - temp_r31->unk14.y -= 3.5f; - temp_r31->unk40.a = temp_r31->unk14.y; - if(temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { - temp_r31->unk2C = 0; - particle->unk_02++; - } - - temp_r31->unk14.x += 0.7f; - } - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + } + particle->unk_1C = (void *)1; + particle->unk_02 = 0; + particle->unk_00 = 0; + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 16; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_f30 = (360.0f / 255.0f) * ((u8)frand()); + temp_r31->unk20 = 45 * sind(temp_f30); + temp_r31->unk28 = 45 * cosd(temp_f30); + temp_r31->unk24 = 0; + temp_f28 = 0.098039225f * ((u8)frand()) + 50.0f; + temp_f29 = (2.0f / 255.0f) * ((u8)frand()) + 2.5f; + temp_r31->unk08.x = temp_f29 * sind(temp_f30) * cosd(temp_f28); + temp_r31->unk08.y = 0.8f * (temp_f29 * sind(temp_f28)); + temp_r31->unk08.z = temp_f29 * cosd(temp_f30) * cosd(temp_f28); + temp_r31->unk14.x = 1; + temp_r31->unk14.y = 255; + temp_r31->unk2C = (4.0f / 255.0f) * ((u8)frand()) + 3.0f; + temp_r31->unk40.r = (155.0f / 255.0f) * ((u8)frand()) + 100.0f; + temp_r31->unk40.g = 0.21568629f * ((u8)frand()) + 200.0f; + temp_r31->unk40.b = 255; + temp_r31->unk40.a = temp_r31->unk14.y; + } + particle->unk_00 = 0.058823533f * ((u8)frand()) + 30.0f; + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + temp_f31 = temp_r31->unk14.x; + temp_r31->unk34.x = (temp_r31->unk08.x * temp_f31) + temp_r31->unk20; + temp_r31->unk34.z = (temp_r31->unk08.z * temp_f31) + temp_r31->unk28; + temp_r31->unk34.y = ((temp_r31->unk08.y * temp_f31) + temp_r31->unk24) - (0.2 * temp_f31 * temp_f31); + temp_r31->unk14.y -= 3.5f; + temp_r31->unk40.a = temp_r31->unk14.y; + if (temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { + temp_r31->unk2C = 0; + particle->unk_02++; + } + + temp_r31->unk14.x += 0.7f; + } + } } void fn_2_13B7C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - } - particle->unk_1C = (void *)1; - particle->unk_02 = 0; - particle->unk_00 = 0; - } - if(particle->unk_1C) { - for(temp_r29=0; temp_r29<20; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - break; - } - } - if(temp_r28 != particle->unk_30) { - temp_f30 = (360.0f/255.0f)*((u8)frand()); - temp_r31->unk20 = 40*sind(temp_f30); - temp_r31->unk28 = 40*cosd(temp_f30); - temp_r31->unk24 = 0; - temp_f28 = (20.0f/255.0f)*((u8)frand())+70.0f; - temp_f29 = (4.0f/255.0f)*((u8)frand())+5.0f; - temp_r31->unk08.x = temp_f29*sind(temp_f30)*cosd(temp_f28); - temp_r31->unk08.y = temp_f29*sind(temp_f28); - temp_r31->unk08.z = temp_f29*cosd(temp_f30)*cosd(temp_f28); - temp_r31->unk14.x = 1; - temp_r31->unk14.y = 255; - temp_r31->unk2C = (4.0f/255.0f)*((u8)frand())+5.0f; - temp_r31->unk40.r = (155.0f/255.0f)*((u8)frand())+100.0f; - temp_r31->unk40.g = 0.21568629f*((u8)frand())+200.0f; - temp_r31->unk40.b = 255; - temp_r31->unk40.a = temp_r31->unk14.y; - } else { - particle->unk_1C = NULL; - break; - } - } - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - temp_f31 = temp_r31->unk14.x; - temp_r31->unk34.x = (temp_r31->unk08.x*temp_f31)+temp_r31->unk20; - temp_r31->unk34.z = (temp_r31->unk08.z*temp_f31)+temp_r31->unk28; - temp_r31->unk34.y = ((temp_r31->unk08.y*temp_f31)+temp_r31->unk24)-(0.2*temp_f31*temp_f31); - temp_r31->unk14.y -= 3.5f; - temp_r31->unk40.a = temp_r31->unk14.y; - if(temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { - temp_r31->unk2C = 0; - particle->unk_02++; - } - temp_r31->unk14.x += 1.0f; - } - } - if(particle->unk_02 >= particle->unk_30 && particle->unk_1C == NULL) { - particle->unk_00 = 1; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + } + particle->unk_1C = (void *)1; + particle->unk_02 = 0; + particle->unk_00 = 0; + } + if (particle->unk_1C) { + for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + break; + } + } + if (temp_r28 != particle->unk_30) { + temp_f30 = (360.0f / 255.0f) * ((u8)frand()); + temp_r31->unk20 = 40 * sind(temp_f30); + temp_r31->unk28 = 40 * cosd(temp_f30); + temp_r31->unk24 = 0; + temp_f28 = (20.0f / 255.0f) * ((u8)frand()) + 70.0f; + temp_f29 = (4.0f / 255.0f) * ((u8)frand()) + 5.0f; + temp_r31->unk08.x = temp_f29 * sind(temp_f30) * cosd(temp_f28); + temp_r31->unk08.y = temp_f29 * sind(temp_f28); + temp_r31->unk08.z = temp_f29 * cosd(temp_f30) * cosd(temp_f28); + temp_r31->unk14.x = 1; + temp_r31->unk14.y = 255; + temp_r31->unk2C = (4.0f / 255.0f) * ((u8)frand()) + 5.0f; + temp_r31->unk40.r = (155.0f / 255.0f) * ((u8)frand()) + 100.0f; + temp_r31->unk40.g = 0.21568629f * ((u8)frand()) + 200.0f; + temp_r31->unk40.b = 255; + temp_r31->unk40.a = temp_r31->unk14.y; + } + else { + particle->unk_1C = NULL; + break; + } + } + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + temp_f31 = temp_r31->unk14.x; + temp_r31->unk34.x = (temp_r31->unk08.x * temp_f31) + temp_r31->unk20; + temp_r31->unk34.z = (temp_r31->unk08.z * temp_f31) + temp_r31->unk28; + temp_r31->unk34.y = ((temp_r31->unk08.y * temp_f31) + temp_r31->unk24) - (0.2 * temp_f31 * temp_f31); + temp_r31->unk14.y -= 3.5f; + temp_r31->unk40.a = temp_r31->unk14.y; + if (temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { + temp_r31->unk2C = 0; + particle->unk_02++; + } + temp_r31->unk14.x += 1.0f; + } + } + if (particle->unk_02 >= particle->unk_30 && particle->unk_1C == NULL) { + particle->unk_00 = 1; + } } void fn_2_142D0(omObjData *object); @@ -970,72 +973,70 @@ void fn_2_142D4(ModelData *model, ParticleData *particle, Mtx matrix); omObjData *fn_2_141B0(void) { - omObjData *object = omAddObjEx(HuPrcCurrentGet(), 1300, 5, 0, -1, fn_2_142D0); - ParticleData *particle; - omSetStatBit(object, 0x100); - object->model[0] = Hu3DParticleCreate(lbl_2_bss_244, 200); - Hu3DParticleHookSet(object->model[0], fn_2_142D4); - Hu3DParticleColSet(object->model[0], 255, 255, 255); - Hu3DModelPosSet(object->model[0], 0, 0, 0); - Hu3DParticleAnimModeSet(object->model[0], 0); - Hu3DModelLayerSet(object->model[0], 1); - Hu3DParticleBlendModeSet(object->model[0], 1); - particle = Hu3DData[object->model[0]].unk_120; - return object; + omObjData *object = omAddObjEx(HuPrcCurrentGet(), 1300, 5, 0, -1, fn_2_142D0); + ParticleData *particle; + omSetStatBit(object, 0x100); + object->model[0] = Hu3DParticleCreate(lbl_2_bss_244, 200); + Hu3DParticleHookSet(object->model[0], fn_2_142D4); + Hu3DParticleColSet(object->model[0], 255, 255, 255); + Hu3DModelPosSet(object->model[0], 0, 0, 0); + Hu3DParticleAnimModeSet(object->model[0], 0); + Hu3DModelLayerSet(object->model[0], 1); + Hu3DParticleBlendModeSet(object->model[0], 1); + particle = Hu3DData[object->model[0]].unk_120; + return object; } -void fn_2_142D0(omObjData *object) -{ - -} +void fn_2_142D0(omObjData *object) { } void fn_2_142D4(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk34.y = 950; - } - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<30; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_r31->unk2C = 1; - temp_r31->unk40.a = 150; - temp_r31->unk34.x = ((11.764707f*((u8)frand()))+(-1500.0f)); - temp_r31->unk34.z = ((6.666667f*((u8)frand()))+(-2000.0f)); - temp_r31->unk08.x = 0; - temp_r31->unk08.y = (((5.0f/255.0f)*((u8)frand()))+(5.0f)); - temp_r31->unk08.z = ((0.011764707f*((u8)frand()))+(18.0f)); - } - particle->unk_00 = (frand() % 5)+4; - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - temp_r31->unk34.x += 1.1f; - temp_r31->unk34.z += 1.1f; - temp_r31->unk2C = (temp_r31->unk08.z*sind(temp_r31->unk08.x))+1.0; - temp_r31->unk08.x += temp_r31->unk08.y; - if(temp_r31->unk08.x >= 180.0f) { - temp_r31->unk2C = 0.0f; - } - } - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk34.y = 950; + } + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 30; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_r31->unk2C = 1; + temp_r31->unk40.a = 150; + temp_r31->unk34.x = ((11.764707f * ((u8)frand())) + (-1500.0f)); + temp_r31->unk34.z = ((6.666667f * ((u8)frand())) + (-2000.0f)); + temp_r31->unk08.x = 0; + temp_r31->unk08.y = (((5.0f / 255.0f) * ((u8)frand())) + (5.0f)); + temp_r31->unk08.z = ((0.011764707f * ((u8)frand())) + (18.0f)); + } + particle->unk_00 = (frand() % 5) + 4; + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + temp_r31->unk34.x += 1.1f; + temp_r31->unk34.z += 1.1f; + temp_r31->unk2C = (temp_r31->unk08.z * sind(temp_r31->unk08.x)) + 1.0; + temp_r31->unk08.x += temp_r31->unk08.y; + if (temp_r31->unk08.x >= 180.0f) { + temp_r31->unk2C = 0.0f; + } + } + } } void fn_2_14738(omObjData *object); @@ -1043,93 +1044,93 @@ void fn_2_147B4(ModelData *model, ParticleData *particle, Mtx matrix); omObjData *fn_2_14640(Process *objman) { - omObjData *object; - object = omAddObjEx(objman, 1300, 1, 0, -1, fn_2_14738); - object->model[0] = Hu3DParticleCreate(lbl_2_bss_250, 450); - Hu3DParticleHookSet(object->model[0], fn_2_147B4); - Hu3DParticleColSet(object->model[0], 255, 255, 255); - Hu3DModelPosSet(object->model[0], 0, -6000, -21000); - Hu3DParticleAnimModeSet(object->model[0], 0); - Hu3DModelLayerSet(object->model[0], 1); - Hu3DParticleBlendModeSet(object->model[0], 1); - return object; + omObjData *object; + object = omAddObjEx(objman, 1300, 1, 0, -1, fn_2_14738); + object->model[0] = Hu3DParticleCreate(lbl_2_bss_250, 450); + Hu3DParticleHookSet(object->model[0], fn_2_147B4); + Hu3DParticleColSet(object->model[0], 255, 255, 255); + Hu3DModelPosSet(object->model[0], 0, -6000, -21000); + Hu3DParticleAnimModeSet(object->model[0], 0); + Hu3DModelLayerSet(object->model[0], 1); + Hu3DParticleBlendModeSet(object->model[0], 1); + return object; } void fn_2_14738(omObjData *object) { - omSetTra(object, lbl_2_bss_6C.x, lbl_2_bss_6C.y, lbl_2_bss_6C.z); - if(object->work[0] == 1) { - Hu3DModelAttrSet(object->model[0], 1); - omDelObjEx(HuPrcCurrentGet(), object); - } + omSetTra(object, lbl_2_bss_6C.x, lbl_2_bss_6C.y, lbl_2_bss_6C.z); + if (object->work[0] == 1) { + Hu3DModelAttrSet(object->model[0], 1); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_147B4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 180; - temp_r31->unk08.x = ((3.9215689f*((u8)frand()))+(-500.0f)); - temp_r31->unk08.y = ((3.529412f*((u8)frand()))+(-500.0f)); - temp_r31->unk08.z = (-300.0f)-((3.9215689f*((u8)frand()))); - temp_r31->unk14.x = (360.0f/255.0f)*((u8)frand()); - temp_r31->unk14.y = (4.0f/255.0f)*((u8)frand()); - temp_r31->unk2C = 2; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_r31->unk40.a = 180; - temp_r31->unk08.x = -50.0f+(0.3921569f*((u8)frand())); - temp_r31->unk08.y = 0.058823533f*((u8)frand()); - temp_r31->unk14.x = (90.0f/255.0f)*((u8)frand()); - temp_r31->unk14.y = 5.0f+(0.098039225f*((u8)frand())); - temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; - temp_r31->unk34.z = -5.0f+((11.0f/255.0f)*((u8)frand())); - temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; - temp_r31->unk2C = temp_r31->unk08.y+35.0f; - temp_r31->unk40.a = 210; - temp_r31->unk08.y = (0.2*temp_r31->unk08.y)+5.0; - particle->unk_00 = (frand()%10)+10; - } - - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - temp_f30 = lbl_2_bss_50*0.3f; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - continue; - } - temp_r31->unk34.x = temp_r31->unk08.x; - temp_r31->unk34.y = temp_r31->unk08.y; - temp_r31->unk34.z = temp_r31->unk08.z; - temp_r31->unk08.x -= 0.5*sind(temp_r31->unk14.x); - temp_r31->unk08.z -= -temp_f30; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - if(temp_r31->unk08.z >= 0.0f) { - temp_f31 = 800.0f+((300.0f/255.0f)*((u8)frand())); - temp_r31->unk08.z -= temp_f31; - } - } -} \ No newline at end of file + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 180; + temp_r31->unk08.x = ((3.9215689f * ((u8)frand())) + (-500.0f)); + temp_r31->unk08.y = ((3.529412f * ((u8)frand())) + (-500.0f)); + temp_r31->unk08.z = (-300.0f) - ((3.9215689f * ((u8)frand()))); + temp_r31->unk14.x = (360.0f / 255.0f) * ((u8)frand()); + temp_r31->unk14.y = (4.0f / 255.0f) * ((u8)frand()); + temp_r31->unk2C = 2; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_r31->unk40.a = 180; + temp_r31->unk08.x = -50.0f + (0.3921569f * ((u8)frand())); + temp_r31->unk08.y = 0.058823533f * ((u8)frand()); + temp_r31->unk14.x = (90.0f / 255.0f) * ((u8)frand()); + temp_r31->unk14.y = 5.0f + (0.098039225f * ((u8)frand())); + temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; + temp_r31->unk34.z = -5.0f + ((11.0f / 255.0f) * ((u8)frand())); + temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; + temp_r31->unk2C = temp_r31->unk08.y + 35.0f; + temp_r31->unk40.a = 210; + temp_r31->unk08.y = (0.2 * temp_r31->unk08.y) + 5.0; + particle->unk_00 = (frand() % 10) + 10; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + temp_f30 = lbl_2_bss_50 * 0.3f; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + continue; + } + temp_r31->unk34.x = temp_r31->unk08.x; + temp_r31->unk34.y = temp_r31->unk08.y; + temp_r31->unk34.z = temp_r31->unk08.z; + temp_r31->unk08.x -= 0.5 * sind(temp_r31->unk14.x); + temp_r31->unk08.z -= -temp_f30; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + if (temp_r31->unk08.z >= 0.0f) { + temp_f31 = 800.0f + ((300.0f / 255.0f) * ((u8)frand())); + temp_r31->unk08.z -= temp_f31; + } + } +} diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index 1a79708d..bcfef460 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -289,85 +289,86 @@ void fn_1_39C(omObjData *object) void fn_1_400(omObjData *object) { switch (fn_1_38C()) { - case 0: - if (--lbl_1_bss_24) { + case 0: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(1); + lbl_1_bss_24 = 180; break; - } - fn_1_37C(1); - lbl_1_bss_24 = 180; - break; - case 1: - if (--lbl_1_bss_24) { + case 1: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(2); + lbl_1_bss_C = MGSeqCreate(3, 0); break; - } - fn_1_37C(2); - lbl_1_bss_C = MGSeqCreate(3, 0); - break; - case 2: - if (!MGSeqStatGet(lbl_1_bss_C)) { - fn_1_37C(3); - } - if (lbl_1_data_7C8 >= 0) { + case 2: + if (!MGSeqStatGet(lbl_1_bss_C)) { + fn_1_37C(3); + } + if (lbl_1_data_7C8 >= 0) { + break; + } + if (!(MGSeqStatGet(lbl_1_bss_C) & 16)) { + break; + } + lbl_1_data_7C8 = HuAudSeqPlay(69); break; - } - if (!(MGSeqStatGet(lbl_1_bss_C) & 16)) { + case 3: + if (!fn_1_E48()) { + break; + } + fn_1_37C(4); + lbl_1_bss_C = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_data_7C8, 100); break; - } - lbl_1_data_7C8 = HuAudSeqPlay(69); - break; - case 3: - if (!fn_1_E48()) { + case 4: + if (!MGSeqStatGet(lbl_1_bss_C)) { + fn_1_37C(5); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_24 = 60; + } + case 5: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(6); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); break; - } - fn_1_37C(4); - lbl_1_bss_C = MGSeqCreate(3, 1); - HuAudSeqFadeOut(lbl_1_data_7C8, 100); - break; - case 4: - if (!MGSeqStatGet(lbl_1_bss_C)) { - fn_1_37C(5); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_24 = 60; - } - case 5: - if (--lbl_1_bss_24) { + case 6: + if (WipeStatGet()) { + break; + } + fn_1_37C(7); + lbl_1_bss_24 = 180; break; - } - fn_1_37C(6); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - break; - case 6: - if (WipeStatGet()) { + case 7: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(9); + fn_1_1160(); + if (lbl_1_bss_38[0] >= 0) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(4); + } + lbl_1_bss_24 = 210; break; - } - fn_1_37C(7); - lbl_1_bss_24 = 180; - break; - case 7: - if (--lbl_1_bss_24) { + case 8: break; - } - fn_1_37C(9); - fn_1_1160(); - if (lbl_1_bss_38[0] >= 0) { - HuAudSStreamPlay(1); - } else { - HuAudSStreamPlay(4); - } - lbl_1_bss_24 = 210; - break; - case 8: - break; - case 9: - if (--lbl_1_bss_24) { + case 9: + if (--lbl_1_bss_24) { + break; + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_784; + break; + default: break; - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_784; - break; - default: - break; } if (omSysExitReq && !WipeStatGet()) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -393,14 +394,37 @@ float lbl_1_data_81C[][2] = { { 0.0f, 0.0f }, { 0.0f, 0.0f }, { -46.0f, -2.0f }, float lbl_1_data_84C[][2] = { { 472.0f, 128.0f }, { 472.0f, 208.0f }, { 472.0f, 288.0f }, { 472.0f, 368.0f } }; -s32 lbl_1_data_86C[] = { 0x00610000, 0x00610001, 0x00610002, 0x00610003, 0x00610004, 0x00610005, 0x00610006, 0x00610007 }; +s32 lbl_1_data_86C[] = { + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), +}; s32 lbl_1_data_88C = 0xFFFFFFFF; -u32 lbl_1_data_890[][2] - = { { 0x005F0000, 0x00000000 }, { 0x005F0002, 0x00000000 }, { 0x00230022, 0x00000001 }, { 0x005F0017, 0x00000000 }, { 0x005F0018, 0x00000000 } }; +u32 lbl_1_data_890[][2] = { + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_M404, 0x22), 0x00000001 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0x00000000 }, +}; -s32 lbl_1_data_8B8[] = { 0x00230001, 0x00230002, 0x00230003, 0x00230004, 0x00230005, 0x00230006, 0x00230007, 0x00230008 }; +s32 lbl_1_data_8B8[] = { + DATA_MAKE_NUM(DATADIR_M404, 0x01), + DATA_MAKE_NUM(DATADIR_M404, 0x02), + DATA_MAKE_NUM(DATADIR_M404, 0x03), + DATA_MAKE_NUM(DATADIR_M404, 0x04), + DATA_MAKE_NUM(DATADIR_M404, 0x05), + DATA_MAKE_NUM(DATADIR_M404, 0x06), + DATA_MAKE_NUM(DATADIR_M404, 0x07), + DATA_MAKE_NUM(DATADIR_M404, 0x08), +}; float lbl_1_data_8D8[] = { 35.0f, 30.000002f, 25.0f, 20.0f }; @@ -408,7 +432,11 @@ float (*lbl_1_data_8E8[])[2] = { lbl_1_data_0, lbl_1_data_248, lbl_1_data_4A8 }; u16 lbl_1_data_8F4[] = { 73, 76, 82, 0 }; -s32 lbl_1_data_8FC[][2] = { { 0x00230013, 0x00230014 }, { 0x00230015, 0x00230016 }, { 0x00230017, 0x00230018 } }; +s32 lbl_1_data_8FC[][2] = { + { DATA_MAKE_NUM(DATADIR_M404, 0x13), DATA_MAKE_NUM(DATADIR_M404, 0x14) }, + { DATA_MAKE_NUM(DATADIR_M404, 0x15), DATA_MAKE_NUM(DATADIR_M404, 0x16) }, + { DATA_MAKE_NUM(DATADIR_M404, 0x17), DATA_MAKE_NUM(DATADIR_M404, 0x18) }, +}; void fn_1_7E0(omObjData *object) { @@ -426,26 +454,26 @@ void fn_1_7E0(omObjData *object) for (var_r29 = 0; var_r29 < 4; var_r31++, var_r29++) { for (var_r27 = var_r26[var_r29]->data, var_r30 = 0; var_r30 < 6; var_r30++) { switch (lbl_1_data_810[var_r30]) { - case 0: - var_r31->unk_02[var_r30] = espEntry(0x610014, 1, 0); - espPriSet(var_r31->unk_02[var_r30], 256); - break; - case 1: - var_r31->unk_02[var_r30] = espEntry(0x610015, 0, 0); - espPriSet(var_r31->unk_02[var_r30], 257); - espColorSet(var_r31->unk_02[var_r30], 0, 0, 0); - espTPLvlSet(var_r31->unk_02[var_r30], 0.5f); - break; - case 2: - var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]); - espPriSet(var_r31->unk_02[var_r30], 255); - break; - case 3: - var_r31->unk_02[var_r30] = espEntry(0x610033, 1, 0); - espPriSet(var_r31->unk_02[var_r30], 255); - break; - default: - break; + case 0: + var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x14), 1, 0); + espPriSet(var_r31->unk_02[var_r30], 256); + break; + case 1: + var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x15), 0, 0); + espPriSet(var_r31->unk_02[var_r30], 257); + espColorSet(var_r31->unk_02[var_r30], 0, 0, 0); + espTPLvlSet(var_r31->unk_02[var_r30], 0.5f); + break; + case 2: + var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]); + espPriSet(var_r31->unk_02[var_r30], 255); + break; + case 3: + var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0); + espPriSet(var_r31->unk_02[var_r30], 255); + break; + default: + break; } espDispOff(var_r31->unk_02[var_r30]); espDrawNoSet(var_r31->unk_02[var_r30], 0); @@ -469,30 +497,30 @@ void fn_1_A9C(omObjData *object) var_r30 = object->data; switch (fn_1_38C()) { - case 6: - for (var_r31 = 0; var_r31 < 4; var_r31++) { - for (var_r29 = 0; var_r29 < 6; var_r29++) { - espDispOn(var_r30[var_r31].unk_02[var_r29]); + case 6: + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r29 = 0; var_r29 < 6; var_r29++) { + espDispOn(var_r30[var_r31].unk_02[var_r29]); + } } - } - break; - case 7: - var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for (var_r29 = 0, var_r31 = 0; var_r31 < 4; var_r31++) { - var_r28 = var_r27[var_r31]->data; - var_r30[var_r31].unk_00 = var_r28->unk_58; - if (var_r28->unk_00_field1) { - var_r29++; + break; + case 7: + var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r29 = 0, var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = var_r27[var_r31]->data; + var_r30[var_r31].unk_00 = var_r28->unk_58; + if (var_r28->unk_00_field1) { + var_r29++; + } } - } - if ((var_r29 >= 4) && (lbl_1_bss_0 == 0)) { - HuAudFXPlay(1325); - lbl_1_bss_0 = 1; - } - if ((lbl_1_bss_0 == 0) && (lbl_1_data_88C < 0)) { - lbl_1_data_88C = HuAudFXPlay(1324); - } - break; + if ((var_r29 >= 4) && (lbl_1_bss_0 == 0)) { + HuAudFXPlay(1325); + lbl_1_bss_0 = 1; + } + if ((lbl_1_bss_0 == 0) && (lbl_1_data_88C < 0)) { + lbl_1_data_88C = HuAudFXPlay(1324); + } + break; } for (var_r31 = 0; var_r31 < 4; var_r31++) { espBankSet(var_r30[var_r31].unk_02[3], var_r30[var_r31].unk_00 / 100); @@ -669,20 +697,21 @@ void fn_1_1344(omObjData *object) memset(var_r31, 0, 484); var_r31->unk_02 = lbl_1_bss_20++; var_r31->unk_04 = GWPlayerCfg[var_r31->unk_02].pad_idx; - + var_r31->unk_0C = var_r24 = GWPlayerCfg[var_r31->unk_02].character; var_r31->unk_0E = GWPlayerCfg[var_r31->unk_02].diff; var_r31->unk_10 = GWPlayerCfg[var_r31->unk_02].group; object->model[0] = CharModelCreate(var_r24, 2); Hu3DModelShadowSet(object->model[0]); - object->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_8B8[var_r24], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_8B8[var_r24]); Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); var_r31->unk_2C = 0; for (var_r29 = 0; var_r29 < (u32)5; var_r29++) { if (!lbl_1_data_890[var_r29][1]) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_890[var_r29][0]); - } else { + } + else { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, var_r31->unk_0C + lbl_1_data_890[var_r29][0]); } } @@ -702,12 +731,12 @@ void fn_1_1344(omObjData *object) var_r31->unk_44 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, MEMORY_DEFAULT_NUM); DCInvalidateRange(var_r31->unk_44, var_r31->unk_48); var_r31->unk_48 = fn_1_6248(var_r31->unk_44, var_r31->unk_48); - var_r31->unk_3C = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_8FC[lbl_1_bss_1C][0], MEMORY_DEFAULT_NUM, HEAP_DATA)); + var_r31->unk_3C = HuSprAnimReadFile(lbl_1_data_8FC[lbl_1_bss_1C][0]); DCFlushRangeNoSync(var_r31->unk_3C->bmp->data, (var_r31->unk_3C->bmp->pixSize * (var_r31->unk_3C->bmp->sizeX * var_r31->unk_3C->bmp->sizeY)) / 8); var_r31->unk_54 = 0; var_r31->unk_56 = fn_1_ED4(object); - var_r31->unk_40 = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_8FC[lbl_1_bss_1C][1], MEMORY_DEFAULT_NUM, HEAP_DATA)); - var_r31->unk_50 = HuSprAnimRead(HuDataSelHeapReadNum(0x230019, MEMORY_DEFAULT_NUM, HEAP_DATA)); + var_r31->unk_40 = HuSprAnimReadFile(lbl_1_data_8FC[lbl_1_bss_1C][1]); + var_r31->unk_50 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M404, 0x19)); DCFlushRangeNoSync(var_r31->unk_50->bmp->data, (var_r31->unk_50->bmp->pixSize * (var_r31->unk_50->bmp->sizeX * var_r31->unk_50->bmp->sizeY)) / 8); Hu3DMotionOverlaySet(object->model[0], object->motion[2]); object->trans.y = 1500.0f; @@ -744,7 +773,6 @@ void fn_1_1AFC(omObjData *object) { UnkM404Struct3 *var_r31; - var_r31 = object->data; if (fn_1_38C() >= 1) { if (var_r31->unk_00_field2) { @@ -873,7 +901,7 @@ float fn_1_2EBC(float arg0[], float arg8) float fn_1_3A38(float arg0[], float arg8, float arg9) { - volatile float sp40; + volatile float sp40; volatile float sp3C; float var_f24; float var_f18; @@ -926,7 +954,8 @@ void fn_1_3F30(omObjData *object) var_r31->unk_64 = 3.0f - (var_r31->unk_68 - var_r31->unk_64); var_r31->unk_5E += 3; var_r31->unk_68 = fn_1_2EBC(var_r31->unk_70[var_r31->unk_5E], 1.0f); - } else { + } + else { var_r31->unk_64 += 3.0f; } var_r31->unk_60 = fn_1_3A38(var_r31->unk_70[var_r31->unk_5E], var_r31->unk_60, var_r31->unk_64); @@ -936,7 +965,8 @@ void fn_1_3F30(omObjData *object) var_r31->unk_14 = fn_1_3E2C(var_r31->unk_14, atan2d(var_f24 - object->trans.x, -(var_f23 - object->trans.z)), 0.1f); var_r31->unk_06 = (u8)(20.0 * sind(var_r31->unk_14)); var_r31->unk_07 = (u8)(20.0 * cosd(var_r31->unk_14)); - } else { + } + else { var_r31->unk_06 = 20; var_r31->unk_07 = 0; } @@ -961,7 +991,6 @@ void fn_1_44A0(omObjData *object) s32 var_r28; s16 var_r27; - var_r31 = object->data; var_r28 = -1; if (fn_1_38C() == 6) { @@ -969,104 +998,111 @@ void fn_1_44A0(omObjData *object) } if (fn_1_38C() == 3 && !var_r31->unk_00_field0) { switch (var_r31->unk_12) { - case 0: - if (GWPlayerCfg[var_r31->unk_02].iscom == 0) { - var_r31->unk_06 = HuPadStkX[var_r31->unk_04]; - var_r31->unk_07 = HuPadStkY[var_r31->unk_04]; - var_r31->unk_08 = HuPadBtn[var_r31->unk_04]; - var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04]; - } else { - var_r31->unk_08 = var_r31->unk_0A = 0; - var_r31->unk_06 = var_r31->unk_07 = 0; - fn_1_3F30(object); - } - if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) { - var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07); - var_r31->unk_20 = 3.0f * sind(var_f31); - var_r31->unk_28 = 3.0f * cosd(var_f31); - var_r28 = 1; - if (var_r31->unk_20 > 0.0f) { - CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f); - } else { - CharModelMotionSpeedSet(var_r31->unk_0C, -0.5f); + case 0: + if (GWPlayerCfg[var_r31->unk_02].iscom == 0) { + var_r31->unk_06 = HuPadStkX[var_r31->unk_04]; + var_r31->unk_07 = HuPadStkY[var_r31->unk_04]; + var_r31->unk_08 = HuPadBtn[var_r31->unk_04]; + var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04]; } - Hu3DMotionOverlaySpeedSet(object->model[0], Hu3DData[object->model[0]].unk_68); - if (var_r31->unk_2C == 0) { - Hu3DModelAttrReset(object->model[0], 0x40000400); + else { + var_r31->unk_08 = var_r31->unk_0A = 0; + var_r31->unk_06 = var_r31->unk_07 = 0; + fn_1_3F30(object); + } + if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) { + var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07); + var_r31->unk_20 = 3.0f * sind(var_f31); + var_r31->unk_28 = 3.0f * cosd(var_f31); + var_r28 = 1; + if (var_r31->unk_20 > 0.0f) { + CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f); + } + else { + CharModelMotionSpeedSet(var_r31->unk_0C, -0.5f); + } + Hu3DMotionOverlaySpeedSet(object->model[0], Hu3DData[object->model[0]].unk_68); + if (var_r31->unk_2C == 0) { + Hu3DModelAttrReset(object->model[0], 0x40000400); + Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); + } + } + else { + var_r31->unk_20 = var_r31->unk_28 = 0.0f; + var_r28 = 0; + CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); + Hu3DModelAttrSet(object->model[0], 0x40000400); } - } else { - var_r31->unk_20 = var_r31->unk_28 = 0.0f; - var_r28 = 0; - CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); - Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); - Hu3DModelAttrSet(object->model[0], 0x40000400); - } - sp8.x = object->trans.x; - sp8.z = object->trans.z; - object->trans.x += var_r31->unk_20; - object->trans.z += var_r31->unk_28; - if (object->trans.x < -90.0f) { - object->trans.x = -90.0f; - } - if (object->trans.x < (Center.x - 500.0f)) { - object->trans.x = Center.x - 500.0f; - } else if (object->trans.x > (550.0f + Center.x)) { - object->trans.x = 550.0f + Center.x; - } - if ((object->trans.x != sp8.x) || (object->trans.z != sp8.z)) { - if (var_r31->unk_74 < 0) { - var_r31->unk_74 = HuAudFXPlay(0x52B); + sp8.x = object->trans.x; + sp8.z = object->trans.z; + object->trans.x += var_r31->unk_20; + object->trans.z += var_r31->unk_28; + if (object->trans.x < -90.0f) { + object->trans.x = -90.0f; } - } else if (var_r31->unk_74 >= 0) { - HuAudFXStop(var_r31->unk_74); - var_r31->unk_74 = -1; - } - var_r29 = &Hu3DData[object->model[2]]; - if (object->trans.z < (var_r29->pos.z - 100.0f)) { - object->trans.z = var_r29->pos.z - 100.0f; - } else if (object->trans.z > ((100.0f + var_r29->pos.z) - 1.0f)) { - object->trans.z = (100.0f + var_r29->pos.z) - 1.0f; - } - if ((90.0f + object->trans.x) > 3000.0f) { - object->trans.x = 2910.0f; - var_r31->unk_12++; - var_r31->unk_2C = -1; - var_r28 = 1; - CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); - Hu3DMotionOverlayReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); - if (var_r31->unk_74 >= 0) { + if (object->trans.x < (Center.x - 500.0f)) { + object->trans.x = Center.x - 500.0f; + } + else if (object->trans.x > (550.0f + Center.x)) { + object->trans.x = 550.0f + Center.x; + } + if ((object->trans.x != sp8.x) || (object->trans.z != sp8.z)) { + if (var_r31->unk_74 < 0) { + var_r31->unk_74 = HuAudFXPlay(0x52B); + } + } + else if (var_r31->unk_74 >= 0) { HuAudFXStop(var_r31->unk_74); var_r31->unk_74 = -1; } - } - fn_1_5278(object); - if (var_r31->unk_74 >= 0) { - var_r27 = 64.0f + ((64.0f * (object->trans.x - Center.x)) / 500.0f); - if (var_r27 < 0) { - var_r27 = 0; - } else if (var_r27 > 127) { - var_r27 = 127; + var_r29 = &Hu3DData[object->model[2]]; + if (object->trans.z < (var_r29->pos.z - 100.0f)) { + object->trans.z = var_r29->pos.z - 100.0f; } - HuAudFXPanning(var_r31->unk_74, var_r27); - } - break; - case 1: - var_r28 = 1; - object->trans.x += 4.0000005f; - if (object->trans.x >= 3200.0f) { - var_r31->unk_12++; - var_r31->unk_38 = 0x3C; - } - break; - case 2: - var_r28 = 0; - object->rot.y += 0.1f * -object->rot.y; - if (--var_r31->unk_38 == 0) { - var_r31->unk_00_field0 = 1; - } - break; + else if (object->trans.z > ((100.0f + var_r29->pos.z) - 1.0f)) { + object->trans.z = (100.0f + var_r29->pos.z) - 1.0f; + } + if ((90.0f + object->trans.x) > 3000.0f) { + object->trans.x = 2910.0f; + var_r31->unk_12++; + var_r31->unk_2C = -1; + var_r28 = 1; + CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); + Hu3DMotionOverlayReset(object->model[0]); + Hu3DModelAttrSet(object->model[1], 1); + if (var_r31->unk_74 >= 0) { + HuAudFXStop(var_r31->unk_74); + var_r31->unk_74 = -1; + } + } + fn_1_5278(object); + if (var_r31->unk_74 >= 0) { + var_r27 = 64.0f + ((64.0f * (object->trans.x - Center.x)) / 500.0f); + if (var_r27 < 0) { + var_r27 = 0; + } + else if (var_r27 > 127) { + var_r27 = 127; + } + HuAudFXPanning(var_r31->unk_74, var_r27); + } + break; + case 1: + var_r28 = 1; + object->trans.x += 4.0000005f; + if (object->trans.x >= 3200.0f) { + var_r31->unk_12++; + var_r31->unk_38 = 0x3C; + } + break; + case 2: + var_r28 = 0; + object->rot.y += 0.1f * -object->rot.y; + if (--var_r31->unk_38 == 0) { + var_r31->unk_00_field0 = 1; + } + break; } if (var_r28 >= 0 && var_r28 != var_r31->unk_2C) { var_r31->unk_2C = var_r28; @@ -1115,7 +1151,8 @@ void fn_1_4F4C(omObjData *object) } if (var_r29 < 4) { var_r30->unk_2C = 3; - } else { + } + else { var_r30->unk_2C = 4; } CharModelMotionShiftSet(var_r30->unk_0C, object->motion[var_r30->unk_2C], 0.0f, 5.0f, 0); @@ -1170,9 +1207,13 @@ void fn_1_5598(Process *arg0) void fn_1_55F0(void) { } -s32 lbl_1_data_930[] = { 0x0023000B, 0x0023000C, 0x0023000D, 0x0023000E, 0x0023000F, 0x00230010, 0x00230011, 0x00230012 }; +s32 lbl_1_data_930[] = { DATA_MAKE_NUM(DATADIR_M404, 0x0B), DATA_MAKE_NUM(DATADIR_M404, 0x0C), DATA_MAKE_NUM(DATADIR_M404, 0x0D), + DATA_MAKE_NUM(DATADIR_M404, 0x0E), DATA_MAKE_NUM(DATADIR_M404, 0x0F), DATA_MAKE_NUM(DATADIR_M404, 0x10), DATA_MAKE_NUM(DATADIR_M404, 0x11), + DATA_MAKE_NUM(DATADIR_M404, 0x12) }; -s32 lbl_1_data_950[] = { 0x0023001A, 0x0023001B, 0x0023001C, 0x0023001D, 0x0023001E, 0x0023001F, 0x00230020, 0x00230021 }; +s32 lbl_1_data_950[] = { DATA_MAKE_NUM(DATADIR_M404, 0x1A), DATA_MAKE_NUM(DATADIR_M404, 0x1B), DATA_MAKE_NUM(DATADIR_M404, 0x1C), + DATA_MAKE_NUM(DATADIR_M404, 0x1D), DATA_MAKE_NUM(DATADIR_M404, 0x1E), DATA_MAKE_NUM(DATADIR_M404, 0x1F), DATA_MAKE_NUM(DATADIR_M404, 0x20), + DATA_MAKE_NUM(DATADIR_M404, 0x21) }; char *lbl_1_data_98C[] = { "kari00", "kari01", "kari02", "kari03" }; @@ -1187,18 +1228,16 @@ void fn_1_55F4(omObjData *object) { s32 var_r30; - object->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(0x230009, MEMORY_DEFAULT_NUM, HEAP_DATA)); - object->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(0x23000A, MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x09)); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x0A)); Hu3DModelAttrSet(object->model[1], 0x40000001); - object->model[2] = Hu3DModelCreate(HuDataSelHeapReadNum(0x230000, MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x00)); Hu3DModelShadowMapSet(object->model[2]); for (var_r30 = 0; var_r30 < 4; var_r30++) { - object->model[var_r30 + 3] - = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_930[GWPlayerCfg[var_r30].character], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[var_r30 + 3] = Hu3DModelCreateFile(lbl_1_data_930[GWPlayerCfg[var_r30].character]); Hu3DModelPosSet(object->model[var_r30 + 3], 0.0f, 0.0f, lbl_1_data_99C[var_r30]); - Hu3DAnimCreate(HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_950[GWPlayerCfg[var_r30].character], MEMORY_DEFAULT_NUM, HEAP_DATA)), - object->model[2], lbl_1_data_98C[var_r30]); + Hu3DAnimCreate(HuSprAnimReadFile(lbl_1_data_950[GWPlayerCfg[var_r30].character]), object->model[2], lbl_1_data_98C[var_r30]); } object->func = fn_1_57A0; } @@ -1295,38 +1334,39 @@ void fn_1_5E74(AnimData *arg0, u16 arg1, u16 arg2, u16 arg3) u8 temp_r0; switch (arg0->bmp->pixSize) { - case 4: - var_r30 = lbl_1_data_9DC[0]; // 8 - var_r29 = lbl_1_data_9DC[1]; // 8 - break; - case 8: - var_r30 = lbl_1_data_9DC[2]; // 8 - var_r29 = lbl_1_data_9DC[3]; // 4 - break; - case 16: - var_r30 = lbl_1_data_9DC[4]; // 4 - var_r29 = lbl_1_data_9DC[5]; // 4 - break; + case 4: + var_r30 = lbl_1_data_9DC[0]; // 8 + var_r29 = lbl_1_data_9DC[1]; // 8 + break; + case 8: + var_r30 = lbl_1_data_9DC[2]; // 8 + var_r29 = lbl_1_data_9DC[3]; // 4 + break; + case 16: + var_r30 = lbl_1_data_9DC[4]; // 4 + var_r29 = lbl_1_data_9DC[5]; // 4 + break; } - var_r31 = (void *)(((arg1/var_r30)*32)+(((arg1%8)*arg0->bmp->pixSize)/8)+(((arg0->bmp->sizeX / var_r30) * ((arg2 / var_r29) << 5))+((u32)arg0->bmp->data)+((arg0->bmp->pixSize * ((arg2 % var_r29) * 8)) / 8))); + var_r31 = (void *)(((arg1 / var_r30) * 32) + (((arg1 % 8) * arg0->bmp->pixSize) / 8) + + (((arg0->bmp->sizeX / var_r30) * ((arg2 / var_r29) << 5)) + ((u32)arg0->bmp->data) + ((arg0->bmp->pixSize * ((arg2 % var_r29) * 8)) / 8))); switch (arg0->bmp->pixSize) { - case 4: - if ((arg1 & 1) == 0) { - *var_r31 &= 0xF; - *var_r31 |= arg3 << 4; + case 4: + if ((arg1 & 1) == 0) { + *var_r31 &= 0xF; + *var_r31 |= arg3 << 4; + break; + } + *var_r31 &= 0xF0; + *var_r31 |= arg3; + break; + case 8: + *var_r31 |= arg3; + break; + case 16: + *((u16 *)var_r31) = arg3; break; - } - *var_r31 &= 0xF0; - *var_r31 |= arg3; - break; - case 8: - *var_r31 |= arg3; - break; - case 16: - *((u16 *)var_r31) = arg3; - break; } } @@ -1340,42 +1380,44 @@ u16 fn_1_607C(AnimData *arg0, u16 arg1, u16 arg2) u32 temp_r6; u8 temp_r0; u8 temp_r0_3; - + switch (arg0->bmp->pixSize) { - case 4: - var_r31 = lbl_1_data_9F4[0]; - var_r30 = lbl_1_data_9F4[1]; - break; - case 8: - var_r31 = lbl_1_data_9F4[2]; - var_r30 = lbl_1_data_9F4[3]; - break; - case 16: - var_r31 = lbl_1_data_9F4[4]; - var_r30 = lbl_1_data_9F4[5]; - break; + case 4: + var_r31 = lbl_1_data_9F4[0]; + var_r30 = lbl_1_data_9F4[1]; + break; + case 8: + var_r31 = lbl_1_data_9F4[2]; + var_r30 = lbl_1_data_9F4[3]; + break; + case 16: + var_r31 = lbl_1_data_9F4[4]; + var_r30 = lbl_1_data_9F4[5]; + break; } - var_r29 = (void *)(((arg1/var_r31)*32)+(((arg1%8)*arg0->bmp->pixSize)/8)+(((arg0->bmp->sizeX / var_r31) * ((arg2 / var_r30) << 5))+((u32)arg0->bmp->data)+((arg0->bmp->pixSize * ((arg2 % var_r30) * 8)) / 8))); - - (void)var_r31; - (void)var_r31; - (void)var_r31; - (void)var_r30; - (void)var_r30; - (void)var_r30; - + var_r29 = (void *)(((arg1 / var_r31) * 32) + (((arg1 % 8) * arg0->bmp->pixSize) / 8) + + (((arg0->bmp->sizeX / var_r31) * ((arg2 / var_r30) << 5)) + ((u32)arg0->bmp->data) + ((arg0->bmp->pixSize * ((arg2 % var_r30) * 8)) / 8))); + + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r30; + (void)var_r30; + (void)var_r30; + switch (arg0->bmp->pixSize) { - case 4: - if ((arg1 & 1) == 0) { - var_r28 = *var_r29 >> 4; - } else { - var_r28 = *var_r29 & 0xF; - } - return var_r28; - case 8: - return *var_r29; - case 16: - return *((u16 *)var_r29); + case 4: + if ((arg1 & 1) == 0) { + var_r28 = *var_r29 >> 4; + } + else { + var_r28 = *var_r29 & 0xF; + } + return var_r28; + case 8: + return *var_r29; + case 16: + return *((u16 *)var_r29); } } @@ -1423,28 +1465,28 @@ void fn_1_66DC(omObjData *object) var_r31 = Hu3DCamera; switch (fn_1_38C()) { - case 1: - fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4)); - if (lbl_1_bss_4 < 1.0f) { - lbl_1_bss_4 += 0.007999999f; - if (lbl_1_bss_4 > 1.0f) { - lbl_1_bss_4 = 1.0f; + case 1: + fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4)); + if (lbl_1_bss_4 < 1.0f) { + lbl_1_bss_4 += 0.007999999f; + if (lbl_1_bss_4 > 1.0f) { + lbl_1_bss_4 = 1.0f; + } } - } - break; - case 3: - Center.x += 2.0000002f; - Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x; - Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f; - break; - case 6: - fn_1_648C(1, 1, 0.0f); - break; - case 7: - if (Center.x < 3000.0f) { - Center.x += 25.0f; - } - default: - break; + break; + case 3: + Center.x += 2.0000002f; + Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x; + Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f; + break; + case 6: + fn_1_648C(1, 1, 0.0f); + break; + case 7: + if (Center.x < 3000.0f) { + Center.x += 25.0f; + } + default: + break; } } diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index 6f0fdb1e..6ad24ea4 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -2446,10 +2446,10 @@ void fn_1_9F78(void) var_r30 = lbl_1_bss_9C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM406Struct8), MEMORY_DEFAULT_NUM); memset(var_r30, 0, sizeof(UnkM406Struct8)); - var_r30->unk_00 = HuSprAnimRead(HuDataReadNum(0x250040, MEMORY_DEFAULT_NUM)); - var_r30->unk_04 = HuSprAnimRead(HuDataReadNum(0x250041, MEMORY_DEFAULT_NUM)); - var_r30->unk_08 = HuSprAnimRead(HuDataReadNum(0x250042, MEMORY_DEFAULT_NUM)); - var_r30->unk_0C = HuSprAnimRead(HuDataReadNum(0x250043, MEMORY_DEFAULT_NUM)); + var_r30->unk_00 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x40), MEMORY_DEFAULT_NUM)); + var_r30->unk_04 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x41), MEMORY_DEFAULT_NUM)); + var_r30->unk_08 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x42), MEMORY_DEFAULT_NUM)); + var_r30->unk_0C = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x43), MEMORY_DEFAULT_NUM)); var_r30->unk_24 = 0.0f; var_r30->unk_28 = 0.0f; var_r27 = fn_1_B474(var_r30->unk_00, 1); diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index ca3e6e13..9de7b554 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -251,16 +251,16 @@ char *lbl_1_data_1068[4] = { }; s32 lbl_1_data_1078[10] = { - 0x5F0037, - 0x5F0055, - 0x5F0039, - 0x5F0054, - 0x5F0041, - 0x5F0056, - 0x5F0050, - 0x5F0016, - 0x5F0053, - 0x5F0023, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x37), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x55), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x39), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x54), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x41), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x56), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x50), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x16), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x53), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x23), }; s32 lbl_1_data_10A0[8][4] = { diff --git a/src/REL/m407dll/effect.c b/src/REL/m407dll/effect.c index cb22c723..cb0dd7fc 100644 --- a/src/REL/m407dll/effect.c +++ b/src/REL/m407dll/effect.c @@ -1,9 +1,10 @@ -#include "src/REL/m407dll/m407dll.h" #include "game/process.h" #include "game/object.h" #include "game/hsfmotion.h" #include "game/hsfdraw.h" +#include "REL/m407dll.h" + typedef struct unkDominationData4 { /* 0x00 */ u32 unk_00; /* 0x04 */ u32 unk_04; @@ -28,11 +29,11 @@ omObjData* lbl_1_bss_37E0[100]; //data s32 lbl_1_data_288[] = { - 0x00260015, - 0x00260016, - 0x00260017, - 0x00260018, - 0x00260019 + DATA_MAKE_NUM(DATADIR_M407, 0x15), + DATA_MAKE_NUM(DATADIR_M407, 0x16), + DATA_MAKE_NUM(DATADIR_M407, 0x17), + DATA_MAKE_NUM(DATADIR_M407, 0x18), + DATA_MAKE_NUM(DATADIR_M407, 0x19) }; ObjFuncs lbl_1_data_29C[] = { @@ -143,7 +144,7 @@ void fn_1_46EC(omObjData* arg0) { temp_r30->unk_00 = arg0->work[0]; temp_r30->unk_08 = arg0->work[1]; temp_r30->unk_1C = 0; - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_288[temp_r30->unk_08], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_288[temp_r30->unk_08]); Hu3DModelAttrSet(arg0->model[0], 0x4000); Hu3DModelAttrSet(arg0->model[0], 0x40000002); Hu3DModelAttrSet(arg0->model[0], 1); diff --git a/src/REL/m407dll/map.c b/src/REL/m407dll/map.c index 91d7f946..806579cc 100644 --- a/src/REL/m407dll/map.c +++ b/src/REL/m407dll/map.c @@ -1,51 +1,47 @@ -#include "game/process.h" -#include "game/object.h" #include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/object.h" +#include "game/process.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -//function signatures -void fn_1_162C(omObjData*); -void fn_1_1A8C(omObjData*); +// function signatures +void fn_1_162C(omObjData *); +void fn_1_1A8C(omObjData *); -//bss -Process* lbl_1_bss_2C; -omObjData* lbl_1_bss_28; +// bss +Process *lbl_1_bss_2C; +omObjData *lbl_1_bss_28; s16 lbl_1_bss_24; s32 lbl_1_bss_20; -//data +// data s32 lbl_1_data_198[] = { - 0x00260000, - 0x00260002, - 0x00260003, - 0x00260001, - 0x00260005, - 0x00260006, - 0x00260007, - 0x00260008, - 0x00260009, - 0x0026000A, - 0x0026000B, - 0x0026000C, - 0x00260004, + DATA_MAKE_NUM(DATADIR_M407, 0x00), + DATA_MAKE_NUM(DATADIR_M407, 0x02), + DATA_MAKE_NUM(DATADIR_M407, 0x03), + DATA_MAKE_NUM(DATADIR_M407, 0x01), + DATA_MAKE_NUM(DATADIR_M407, 0x05), + DATA_MAKE_NUM(DATADIR_M407, 0x06), + DATA_MAKE_NUM(DATADIR_M407, 0x07), + DATA_MAKE_NUM(DATADIR_M407, 0x08), + DATA_MAKE_NUM(DATADIR_M407, 0x09), + DATA_MAKE_NUM(DATADIR_M407, 0x0A), + DATA_MAKE_NUM(DATADIR_M407, 0x0B), + DATA_MAKE_NUM(DATADIR_M407, 0x0C), + DATA_MAKE_NUM(DATADIR_M407, 0x04), }; -Vec lbl_1_data_1CC[] = { - {600.0f, 3.0f, -300.0f}, - {200.0f, 3.0f, -300.0f}, - {-200.0f, 3.0f, -300.0f}, - {-600.0f, 3.0f, -300.0f} -}; +Vec lbl_1_data_1CC[] = { { 600.0f, 3.0f, -300.0f }, { 200.0f, 3.0f, -300.0f }, { -200.0f, 3.0f, -300.0f }, { -600.0f, 3.0f, -300.0f } }; -Point3d lbl_1_data_1FC = {2000.0f, 3000.0f, 2000.0f}; -Point3d lbl_1_data_208 = {-0.5f, -0.5f, -0.5f}; -GXColor lbl_1_data_214 = {255, 255, 255, 255}; -Point3d lbl_1_data_218 = {0.0f, 1.0f, 0.0f}; +Point3d lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f }; +Point3d lbl_1_data_208 = { -0.5f, -0.5f, -0.5f }; +GXColor lbl_1_data_214 = { 255, 255, 255, 255 }; +Point3d lbl_1_data_218 = { 0.0f, 1.0f, 0.0f }; -void fn_1_14F0(Process* arg0, s32 arg1) { - LightData* sp10; +void fn_1_14F0(Process *arg0, s32 arg1) +{ + LightData *sp10; lbl_1_bss_2C = arg0; lbl_1_bss_20 = arg1; @@ -57,7 +53,8 @@ void fn_1_14F0(Process* arg0, s32 arg1) { sp10 = &Hu3DGlobalLight[lbl_1_bss_24]; } -void fn_1_15D8(void) { +void fn_1_15D8(void) +{ s32 i; for (i = 0; i < 13; i++) { @@ -65,7 +62,8 @@ void fn_1_15D8(void) { } } -void fn_1_162C(omObjData* arg0) { +void fn_1_162C(omObjData *arg0) +{ s32 var_r30; s32 var_r30_2; s32 var_r30_3; @@ -73,50 +71,52 @@ void fn_1_162C(omObjData* arg0) { s32 i; arg0->func = fn_1_1A8C; - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[2], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_198[2]); Hu3DModelShadowMapSet(arg0->model[0]); Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); - arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[3], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_198[3]); Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); Hu3DModelAttrSet(arg0->model[1], 1); for (i = 0; i < ARRAY_COUNT(GWPlayerCfg); i++) { - arg0->model[i+2] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[GWPlayerCfg[i].character + 4], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_198[GWPlayerCfg[i].character + 4]); Hu3DModelAmbSet(arg0->model[i + 2], 1.0f, 1.0f, 1.0f); Hu3DModelShadowMapSet(arg0->model[i + 2]); } for (i = 0; i < 5; i++) { if (i == 0) { - arg0->model[i + 6] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[0], MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { + arg0->model[i + 6] = Hu3DModelCreateFile(lbl_1_data_198[0]); + } + else { arg0->model[i + 6] = Hu3DModelLink(arg0->model[6]); } Hu3DModelAmbSet(arg0->model[i + 6], 1.0f, 1.0f, 1.0f); Hu3DModelShadowMapSet(arg0->model[i + 6]); } - arg0->model[11] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[12], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->model[12] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[1], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[11] = Hu3DModelCreateFile(lbl_1_data_198[12]); + arg0->model[12] = Hu3DModelCreateFile(lbl_1_data_198[1]); for (i = 0; i < 4; i++) { Hu3DModelPosSetV(arg0->model[i + 2], &lbl_1_data_1CC[i]); } for (i = 0; i < 5; i++) { - Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32) i)); + Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32)i)); } - + Hu3DModelPosSet(arg0->model[11], 0.0f, 0.0f, -3900.0f); Hu3DModelPosSet(arg0->model[12], 0.0f, 0.0f, 0.0f); Hu3DModelAttrSet(arg0->model[12], 0x40000001); - + if (lbl_1_bss_20 > 0) { - Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32) lbl_1_bss_20); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32)lbl_1_bss_20); Hu3DModelAttrReset(arg0->model[1], 1); } } -void fn_1_1A8C(omObjData* arg0) { +void fn_1_1A8C(omObjData *arg0) +{ Point3d sp8; sp8.x = lbl_1_data_1FC.x; @@ -124,4 +124,4 @@ void fn_1_1A8C(omObjData* arg0) { sp8.z = lbl_1_data_1FC.z + Center.z; Hu3DGLightPosSetV(lbl_1_bss_24, &sp8, &lbl_1_data_208); Hu3DShadowPosSet(&sp8, &lbl_1_data_218, &Center); -} \ No newline at end of file +} diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 69fe3858..47a87f2d 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -1,27 +1,27 @@ -#include "game/process.h" -#include "game/object.h" -#include "game/gamework_data.h" -#include "game/pad.h" -#include "game/objsub.h" #include "game/chrman.h" -#include "game/hsfman.h" #include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" #include "math.h" #include "rel_sqrt_consts.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -typedef void (*ObjFuncs)(omObjData*); +typedef void (*ObjFuncs)(omObjData *); typedef struct unkDominationData { u8 unk_00; u8 unk_01; u8 unk_02; - //padding unk_03 + // padding unk_03 s32 unk_04; s32 unk_08; u8 unk_0C; - //padding unk_0D + // padding unk_0D f32 unk_10; f32 unk_14; f32 unk_18; @@ -35,90 +35,150 @@ typedef struct unkDominationData { s32 unk_38; } unkDominationData; -//function signatures -void fn_1_628(omObjData*, s32); -void fn_1_64C(omObjData*); -void fn_1_99C(omObjData*); -void fn_1_A1C(omObjData* arg0); +// function signatures +void fn_1_628(omObjData *, s32); +void fn_1_64C(omObjData *); +void fn_1_99C(omObjData *); +void fn_1_A1C(omObjData *arg0); void fn_1_26CC(u8); void fn_1_4544(s32, s32, f32, f32, f32); s16 fn_1_28B8(u8); s16 fn_1_28E4(u8); -void fn_1_A88(omObjData* arg0); -void fn_1_A8C(omObjData* arg0); -void fn_1_C58(omObjData* arg0); -void fn_1_CF4(omObjData* arg0); -void fn_1_DB4(omObjData* arg0); -void fn_1_F8C(omObjData* arg0); -void fn_1_1074(omObjData* arg0); -void fn_1_11CC(omObjData* arg0); -void fn_1_13E4(omObjData* arg0); -void fn_1_1460(omObjData* arg0); +void fn_1_A88(omObjData *arg0); +void fn_1_A8C(omObjData *arg0); +void fn_1_C58(omObjData *arg0); +void fn_1_CF4(omObjData *arg0); +void fn_1_DB4(omObjData *arg0); +void fn_1_F8C(omObjData *arg0); +void fn_1_1074(omObjData *arg0); +void fn_1_11CC(omObjData *arg0); +void fn_1_13E4(omObjData *arg0); +void fn_1_1460(omObjData *arg0); -//bss -Process* lbl_1_bss_18; -omObjData* lbl_1_bss_8[4]; -Process* lbl_1_bss_0[2]; +// bss +Process *lbl_1_bss_18; +omObjData *lbl_1_bss_8[4]; +Process *lbl_1_bss_0[2]; -//data +// data u32 lbl_1_data_0[8][8] = { - {0x005F0000, 0x005F0024, 0x005F0029, 0x005F0005, 0x005F0006, 0x005F004A, 0x005F004B, 0x005F0018}, - {0x001A0000, 0x001A0024, 0x001A0029, 0x001A0005, 0x001A0006, 0x001A004A, 0x001A004B, 0x001A0018}, - {0x006D0000, 0x006D0024, 0x006D0029, 0x006D0005, 0x006D0006, 0x006D004A, 0x006D004B, 0x006D0018}, - {0x008A0000, 0x008A0024, 0x008A0029, 0x008A0005, 0x008A0006, 0x008A004A, 0x008A004B, 0x008A0018}, - {0x00850000, 0x00850024, 0x00850029, 0x00850005, 0x00850006, 0x0085004A, 0x0085004B, 0x00850018}, - {0x00110000, 0x00110024, 0x00110029, 0x00110005, 0x00110006, 0x0011004A, 0x0011004B, 0x00110018}, - {0x000D0000, 0x000D0024, 0x000D0029, 0x000D0005, 0x000D0006, 0x000D004A, 0x000D004B, 0x000D0018}, - {0x00810000, 0x00810024, 0x00810029, 0x00810005, 0x00810006, 0x0081004A, 0x0081004B, 0x00810018} + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x24), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x29), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x24), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x29), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x24), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x29), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x05), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x06), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x24), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x29), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x24), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x29), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x24), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x29), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x06), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x24), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x29), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x06), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x24), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x29), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x18), + }, }; -s32 lbl_1_data_100[] = {0x0026000D, 0x0026000E, 0x0026000F, 0x00260010, 0x00260011, 0x00260012, 0x00260013, 0x00260014}; +s32 lbl_1_data_100[] = { + DATA_MAKE_NUM(DATADIR_M407, 0x0D), + DATA_MAKE_NUM(DATADIR_M407, 0x0E), + DATA_MAKE_NUM(DATADIR_M407, 0x0F), + DATA_MAKE_NUM(DATADIR_M407, 0x10), + DATA_MAKE_NUM(DATADIR_M407, 0x11), + DATA_MAKE_NUM(DATADIR_M407, 0x12), + DATA_MAKE_NUM(DATADIR_M407, 0x13), + DATA_MAKE_NUM(DATADIR_M407, 0x14), +}; char lbl_1_data_120[] = "test11_tex_we-itemhook-r"; -char* lbl_1_data_13C[] = { - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120 -}; +char *lbl_1_data_13C[] + = { lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120 }; -ObjFuncs lbl_1_data_15C[] = { - fn_1_A88, - fn_1_A8C, - fn_1_C58, - fn_1_CF4, - fn_1_DB4, - fn_1_F8C, - fn_1_1074, - fn_1_11CC, - fn_1_13E4, - fn_1_1460 -}; +ObjFuncs lbl_1_data_15C[] = { fn_1_A88, fn_1_A8C, fn_1_C58, fn_1_CF4, fn_1_DB4, fn_1_F8C, fn_1_1074, fn_1_11CC, fn_1_13E4, fn_1_1460 }; -u8 lbl_1_data_184[4][2] = { - {0x3C, 0x0F}, - {0x50, 0x0F}, - {0x64, 0x14}, - {0x78, 0x14} -}; +u8 lbl_1_data_184[4][2] = { { 0x3C, 0x0F }, { 0x50, 0x0F }, { 0x64, 0x14 }, { 0x78, 0x14 } }; -inline void SetDominationDataStuff(omObjData* arg0, s32 val0, s32 val1) { - unkDominationData* temp_r29 = arg0->data; +inline void SetDominationDataStuff(omObjData *arg0, s32 val0, s32 val1) +{ + unkDominationData *temp_r29 = arg0->data; temp_r29->unk_1C = val0; temp_r29->unk_20 = val1; } -void ObjectSetup(void) { +void ObjectSetup(void) +{ lbl_1_bss_0[0] = omInitObjMan(0x2F8, 0x2000); omGameSysInit(lbl_1_bss_0[0]); fn_1_4980(lbl_1_bss_0[0]); } -void fn_1_F4(Process* arg0) { +void fn_1_F4(Process *arg0) +{ u32 i; lbl_1_bss_18 = arg0; @@ -128,7 +188,8 @@ void fn_1_F4(Process* arg0) { } } -void fn_1_194(void) { +void fn_1_194(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -136,7 +197,8 @@ void fn_1_194(void) { } } -void fn_1_1E4(void) { +void fn_1_1E4(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -144,7 +206,8 @@ void fn_1_1E4(void) { } } -void fn_1_238(void) { +void fn_1_238(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -152,7 +215,8 @@ void fn_1_238(void) { } } -void fn_1_28C(void) { +void fn_1_28C(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -160,7 +224,8 @@ void fn_1_28C(void) { } } -void fn_1_2E0(void) { +void fn_1_2E0(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -168,7 +233,8 @@ void fn_1_2E0(void) { } } -void fn_1_334(void) { +void fn_1_334(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -176,19 +242,22 @@ void fn_1_334(void) { } } -void fn_1_388(u8 arg0, s32 arg1) { - omObjData* obj = lbl_1_bss_8[arg0]; - unkDominationData* unkData = obj->data; +void fn_1_388(u8 arg0, s32 arg1) +{ + omObjData *obj = lbl_1_bss_8[arg0]; + unkDominationData *unkData = obj->data; unkData->unk_38 = arg1; } -void fn_1_3C4(u8 arg0) { +void fn_1_3C4(u8 arg0) +{ fn_1_628(lbl_1_bss_8[arg0], 8); } -void fn_1_404(void) { - omObjData* temp_r31; - unkDominationData* unkData; +void fn_1_404(void) +{ + omObjData *temp_r31; + unkDominationData *unkData; s32 temp_r0; u8 i; @@ -196,68 +265,74 @@ void fn_1_404(void) { temp_r31 = lbl_1_bss_8[i]; unkData = temp_r31->data; switch (unkData->unk_38) { - case 0: - fn_1_628(temp_r31, 9); - break; - case 1: - fn_1_628(temp_r31, 6); - break; - case 2: - fn_1_628(temp_r31, 9); - break; + case 0: + fn_1_628(temp_r31, 9); + break; + case 1: + fn_1_628(temp_r31, 6); + break; + case 2: + fn_1_628(temp_r31, 9); + break; } } } -s32 fn_1_4C0(u8 arg0) { - unkDominationData* unkData; - +s32 fn_1_4C0(u8 arg0) +{ + unkDominationData *unkData; + if (arg0 >= 4) { return -1; } - + unkData = lbl_1_bss_8[arg0]->data; return unkData->unk_01; } -s32 fn_1_508(u8 arg0) { - unkDominationData* unkData = lbl_1_bss_8[arg0]->data; +s32 fn_1_508(u8 arg0) +{ + unkDominationData *unkData = lbl_1_bss_8[arg0]->data; return unkData->unk_04; } -s32 fn_1_53C(u8 arg0) { - return ((unkDominationData*)(lbl_1_bss_8[arg0]->data))->unk_1C == 0; +s32 fn_1_53C(u8 arg0) +{ + return ((unkDominationData *)(lbl_1_bss_8[arg0]->data))->unk_1C == 0; } -void fn_1_568(s16 arg0, s16 arg1, s16 arg2) { - unkDominationData* unkData; +void fn_1_568(s16 arg0, s16 arg1, s16 arg2) +{ + unkDominationData *unkData; unkData = lbl_1_bss_8[arg0]->data; switch (arg1) { - case 0: - omVibrate(unkData->unk_00, arg2, 6, 6); - break; - case 1: - omVibrate(unkData->unk_00, arg2, 4, 2); - break; - case 2: - omVibrate(unkData->unk_00, arg2, 0xC, 0); - break; + case 0: + omVibrate(unkData->unk_00, arg2, 6, 6); + break; + case 1: + omVibrate(unkData->unk_00, arg2, 4, 2); + break; + case 2: + omVibrate(unkData->unk_00, arg2, 0xC, 0); + break; } } -void fn_1_628(omObjData* arg0, s32 arg1) { - unkDominationData* temp_r31; +void fn_1_628(omObjData *arg0, s32 arg1) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; temp_r31->unk_1C = arg1; temp_r31->unk_20 = 0; } -void fn_1_64C(omObjData* arg0) { +void fn_1_64C(omObjData *arg0) +{ u32 temp_r29; - unkDominationData* temp_r27; - unkDominationData* temp_r31; + unkDominationData *temp_r27; + unkDominationData *temp_r31; u32 i; arg0->func = fn_1_A1C; @@ -276,14 +351,14 @@ void fn_1_64C(omObjData* arg0) { temp_r31->unk_30 = (600.0f / (lbl_1_data_184[temp_r31->unk_02][0] - frandmod31(lbl_1_data_184[temp_r31->unk_02][1]))); temp_r31->unk_2C = temp_r31->unk_30; arg0->model[0] = CharModelCreate(temp_r31->unk_01, 8); - arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_100[temp_r31->unk_01], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_100[temp_r31->unk_01]); Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); - + for (i = 0; i < 8; i++) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk_01, lbl_1_data_0[temp_r31->unk_01][i]); } - + Hu3DModelShadowSet(arg0->model[0]); Hu3DModelShadowSet(arg0->model[1]); CharModelMotionDataClose(temp_r31->unk_01); @@ -296,47 +371,49 @@ void fn_1_64C(omObjData* arg0) { SetDominationDataStuff(arg0, 0, 0); } -void fn_1_99C(omObjData* arg0) { +void fn_1_99C(omObjData *arg0) +{ s32 i; for (i = 0; i < 8; i++) { Hu3DMotionKill(arg0->motion[i]); } - for (i = 0; i < 2; i++){ + for (i = 0; i < 2; i++) { Hu3DModelKill(arg0->model[i]); } - + HuMemDirectFree(arg0->data); } -void fn_1_A1C(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_A1C(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; lbl_1_data_15C[temp_r31->unk_1C](arg0); omSetTra(arg0, temp_r31->unk_10, temp_r31->unk_14, temp_r31->unk_18); } -void fn_1_A88(omObjData* arg0) { +void fn_1_A88(omObjData *arg0) { } -} - -void fn_1_A8C(omObjData* arg0) { +void fn_1_A8C(omObjData *arg0) +{ s32 var_r29; - unkDominationData* temp_r31; + unkDominationData *temp_r31; var_r29 = 0; temp_r31 = arg0->data; temp_r31->unk_28 += 1.0f; - + if (temp_r31->unk_04 == 0) { var_r29 = (HuPadBtnDown[temp_r31->unk_0C] & 0x100) ? 1 : 0; - } else if ((u32) temp_r31->unk_28 >= (u32) temp_r31->unk_2C) { + } + else if ((u32)temp_r31->unk_28 >= (u32)temp_r31->unk_2C) { var_r29 = 1; temp_r31->unk_2C += temp_r31->unk_30; } - + if (var_r29 != 0) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[2], 0.0f, 0.0f, 0); fn_1_4544(4, 0x10, 600.0f - (400.0f * temp_r31->unk_00), -20.0f, -450.0f); @@ -344,15 +421,16 @@ void fn_1_A8C(omObjData* arg0) { temp_r31->unk_34 = 1; return; } - + if ((temp_r31->unk_34 != 0) && (Hu3DMotionEndCheck(arg0->model[0]) != 0)) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 0.0f, 0x40000001); temp_r31->unk_34 = 0; } } -void fn_1_C58(omObjData* arg0) { - unkDominationData* temp_r30; +void fn_1_C58(omObjData *arg0) +{ + unkDominationData *temp_r30; temp_r30 = arg0->data; if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { @@ -362,8 +440,9 @@ void fn_1_C58(omObjData* arg0) { } } -void fn_1_CF4(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_CF4(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { @@ -375,56 +454,59 @@ void fn_1_CF4(omObjData* arg0) { } } -void fn_1_DB4(omObjData* arg0) { +void fn_1_DB4(omObjData *arg0) +{ f32 temp_f31; f32 temp_f30; - unkDominationData* temp_r31; + unkDominationData *temp_r31; temp_r31 = arg0->data; - + if (temp_r31->unk_20 == 0) { CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0); temp_r31->unk_24 = 0.0f; temp_r31->unk_20++; } - + temp_f31 = (32.0f * sin(1.0471975511965976)) - (9.8f * temp_r31->unk_24); temp_f30 = 22.0f * cos(1.0471975511965976); temp_r31->unk_18 = temp_r31->unk_18 + temp_f30; temp_r31->unk_14 = temp_r31->unk_14 + temp_f31; temp_r31->unk_24 += 0.3f; - + if (!(temp_f31 < 0.0f) || !(temp_r31->unk_14 <= 30.0f)) { return; } - + temp_r31->unk_14 = 30.0f; CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); SetDominationDataStuff(arg0, 0, 0); } -//can also be placed into fn_1_F8C as static const -const s32 lbl_1_rodata_70[] = {0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2}; +// can also be placed into fn_1_F8C as static const +const s32 lbl_1_rodata_70[] = { 0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2 }; -void fn_1_F8C(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_F8C(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; - + if (temp_r31->unk_20 == 0) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[5], 0.0f, 10.0f, 0); HuAudFXPlay(lbl_1_rodata_70[temp_r31->unk_01]); } - + if (temp_r31->unk_20++ >= 120) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[0], 0.0f, 10.0f, 0x40000001); SetDominationDataStuff(arg0, 0, 0); } } -void fn_1_1074(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_1074(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { @@ -433,18 +515,19 @@ void fn_1_1074(omObjData* arg0) { temp_r31->unk_24 = 0.0f; temp_r31->unk_20 = 1; } - + temp_r31->unk_14 = (temp_r31->unk_14 + ((80.0 * sin(1.5707963267948966)) - (9.8 * temp_r31->unk_24))); temp_r31->unk_24 += 0.3f; - + if (!(temp_r31->unk_14 < 1000.0f)) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); SetDominationDataStuff(arg0, 7, 0); } } -void fn_1_11CC(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_11CC(omObjData *arg0) +{ + unkDominationData *temp_r31; s16 temp; temp_r31 = arg0->data; @@ -456,10 +539,10 @@ void fn_1_11CC(omObjData* arg0) { temp_r31->unk_24 = 0.0f; temp_r31->unk_20 = 1; } - + temp_r31->unk_14 = (temp_r31->unk_14 - (2.0f + (9.8f * temp_r31->unk_24))); temp_r31->unk_24 += 0.3f; - + if (!(temp_r31->unk_14 > 300.0f)) { temp_r31->unk_14 = 300.0f; CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[4], 0); @@ -473,16 +556,18 @@ void fn_1_11CC(omObjData* arg0) { } } -void fn_1_13E4(omObjData* arg0) { - unkDominationData* temp_r30; +void fn_1_13E4(omObjData *arg0) +{ + unkDominationData *temp_r30; temp_r30 = arg0->data; CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[6], 0.0f, 10.0f, 0); SetDominationDataStuff(arg0, 0, 0); } -void fn_1_1460(omObjData* arg0) { - unkDominationData* temp_r30; +void fn_1_1460(omObjData *arg0) +{ + unkDominationData *temp_r30; temp_r30 = arg0->data; CharModelVoiceEnableSet(temp_r30->unk_01, arg0->motion[7], 0); diff --git a/src/REL/m407dll/score.c b/src/REL/m407dll/score.c index ec8d69a0..e5cd5fed 100644 --- a/src/REL/m407dll/score.c +++ b/src/REL/m407dll/score.c @@ -1,42 +1,40 @@ -#include "game/process.h" -#include "game/object.h" #include "game/esprite.h" +#include "game/object.h" +#include "game/process.h" +#include "game/sprite.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) typedef void (*ObjFuncs)(void); typedef struct unkDominationData6 { -/* 0x00 */ s32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ s16 unk_08; -/* 0x0A */ s16 unk_0A; -/* 0x0C */ s16 unk_0C[8]; //what size is this?? -/* 0x1C */ s32 unk_1C; -/* 0x20 */ f32 unk_20; -} unkDominationData6; //sizeof 0x24 + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s16 unk_08; + /* 0x0A */ s16 unk_0A; + /* 0x0C */ s16 unk_0C[8]; // what size is this?? + /* 0x1C */ s32 unk_1C; + /* 0x20 */ f32 unk_20; +} unkDominationData6; // sizeof 0x24 -//func signatures +// func signatures void fn_1_61A0(void); void fn_1_6218(void); void fn_1_62A0(void); -void fn_1_5FE4(omObjData* arg0); +void fn_1_5FE4(omObjData *arg0); void fn_1_5FB4(s32 arg0); s16 fn_1_28D4(void); -//bss -Process* lbl_1_bss_398C; -omObjData* lbl_1_bss_3988; +// bss +Process *lbl_1_bss_398C; +omObjData *lbl_1_bss_3988; -//data -ObjFuncs lbl_1_data_360[] = { - fn_1_61A0, - fn_1_6218, - fn_1_62A0 -}; +// data +ObjFuncs lbl_1_data_360[] = { fn_1_61A0, fn_1_6218, fn_1_62A0 }; -void fn_1_5C5C(Process* arg0, s16 arg1) { - unkDominationData6* temp_r31; +void fn_1_5C5C(Process *arg0, s16 arg1) +{ + unkDominationData6 *temp_r31; u32 i; lbl_1_bss_398C = arg0; @@ -45,21 +43,21 @@ void fn_1_5C5C(Process* arg0, s16 arg1) { temp_r31 = lbl_1_bss_3988->data; temp_r31->unk_08 = arg1; temp_r31->unk_0A = 0; - temp_r31->unk_0C[6] = espEntry(0x260025, 2, 0); + temp_r31->unk_0C[6] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x25), 2, 0); espTPLvlSet(temp_r31->unk_0C[6], 0.5f); espPosSet(temp_r31->unk_0C[6], 508.0f, 64.0f); - temp_r31->unk_0C[7] = espEntry(0x260022, 1, 0); + temp_r31->unk_0C[7] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x22), 1, 0); espPosSet(temp_r31->unk_0C[7], 480.0f, 56.0f); for (i = 0; i < 3; i++) { - temp_r31->unk_0C[i] = espEntry(0x26001F, 0, 0); + temp_r31->unk_0C[i] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x1F), 0, 0); espPosSet(temp_r31->unk_0C[i], i * 16 + 0x1F4, 56.0f); espDispOff(temp_r31->unk_0C[i]); } for (i = 0; i < 3; i++) { - temp_r31->unk_0C[i+3] = espEntry(0x260020, 1, 0); - espPosSet(temp_r31->unk_0C[i+3], i * 16 + 0x1F4, 74.0f); + temp_r31->unk_0C[i + 3] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 1, 0); + espPosSet(temp_r31->unk_0C[i + 3], i * 16 + 0x1F4, 74.0f); } for (i = 0; i < 8; i++) { @@ -69,44 +67,49 @@ void fn_1_5C5C(Process* arg0, s16 arg1) { fn_1_5FB4(0); } -void fn_1_5ECC(void) { +void fn_1_5ECC(void) +{ s32 i; - unkDominationData6* temp_r30; + unkDominationData6 *temp_r30; temp_r30 = lbl_1_bss_3988->data; for (i = 0; i < 7; i++) { espKill(temp_r30->unk_0C[i]); } - + HuMemDirectFree(lbl_1_bss_3988->data); } -void fn_1_5F40(s32 arg0) { +void fn_1_5F40(s32 arg0) +{ switch (arg0) { - case 0: - fn_1_5FB4(1); - break; - case 1: - fn_1_5FB4(2); - break; + case 0: + fn_1_5FB4(1); + break; + case 1: + fn_1_5FB4(2); + break; } } -void fn_1_5F90(void) { +void fn_1_5F90(void) +{ fn_1_5FB4(0); } -void fn_1_5FB4(s32 arg0) { - unkDominationData6* temp_r31; +void fn_1_5FB4(s32 arg0) +{ + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; temp_r31->unk_00 = arg0; temp_r31->unk_04 = 0; } -void fn_1_5FE4(omObjData* arg0) { +void fn_1_5FE4(omObjData *arg0) +{ s16 temp_r31; - unkDominationData6* temp_r30; + unkDominationData6 *temp_r30; temp_r30 = lbl_1_bss_3988->data; lbl_1_data_360[temp_r30->unk_00](); @@ -114,19 +117,20 @@ void fn_1_5FE4(omObjData* arg0) { espBankSet(temp_r30->unk_0C[0], temp_r31 / 100); temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100)); espBankSet(temp_r30->unk_0C[1], (temp_r31 / 10)); - temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10)); + temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10)); espBankSet(temp_r30->unk_0C[2], temp_r31); temp_r31 = temp_r30->unk_0A; espBankSet(temp_r30->unk_0C[3], (temp_r31 / 100)); temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100)); - espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10)); + espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10)); temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10)); espBankSet(temp_r30->unk_0C[5], temp_r31); } -void fn_1_61A0(void) { +void fn_1_61A0(void) +{ s32 i; - unkDominationData6* temp_r31; + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; @@ -138,9 +142,10 @@ void fn_1_61A0(void) { } } -void fn_1_6218(void) { +void fn_1_6218(void) +{ s16 i; - unkDominationData6* temp_r31; + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; @@ -154,9 +159,10 @@ void fn_1_6218(void) { temp_r31->unk_0A = fn_1_28D4(); } -void fn_1_62A0(void) { +void fn_1_62A0(void) +{ s32 i; - unkDominationData6* temp_r31; + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; @@ -174,7 +180,8 @@ void fn_1_62A0(void) { temp_r31->unk_20 = 1.2f; temp_r31->unk_1C = 1; } - } else { + } + else { if ((temp_r31->unk_20 -= 0.04f) <= 1.0f) { temp_r31->unk_20 = 1.0f; temp_r31->unk_1C = 0; diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index f10df704..aeec5aab 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -1,45 +1,45 @@ -#include "game/process.h" -#include "game/object.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/audio.h" #include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/object.h" +#include "game/process.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -#define MAX_WHOMPS_PLAYER 160 -#define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER * ARRAY_COUNT(GWPlayer) -#define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer) +#define MAX_WHOMPS_PLAYER 160 +#define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER *ARRAY_COUNT(GWPlayer) +#define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer) -typedef void (*ObjFuncs)(omObjData*); +typedef void (*ObjFuncs)(omObjData *); typedef struct unkDominationData7 { -/* 0x00 */ u32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ Vec unk_08; -/* 0x14 */ Vec unk_14; -/* 0x20 */ char unk_20[4]; -/* 0x24 */ s32 unk_24; -/* 0x28 */ s32 unk_28; -/* 0x2C */ s32 unk_2C; -} unkDominationData7; //sizeof 0x30 + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ Vec unk_14; + /* 0x20 */ char unk_20[4]; + /* 0x24 */ s32 unk_24; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; +} unkDominationData7; // sizeof 0x30 -//function signatures -void fn_1_3360(omObjData*); -void fn_1_3364(omObjData*); -void fn_1_34A4(omObjData*); -void fn_1_37B0(omObjData*); -void fn_1_36D0(omObjData*); -void fn_1_2B7C(omObjData*); -void fn_1_290C(omObjData*, s32); -void fn_1_31F8(omObjData*); +// function signatures +void fn_1_3360(omObjData *); +void fn_1_3364(omObjData *); +void fn_1_34A4(omObjData *); +void fn_1_37B0(omObjData *); +void fn_1_36D0(omObjData *); +void fn_1_2B7C(omObjData *); +void fn_1_290C(omObjData *, s32); +void fn_1_31F8(omObjData *); void fn_1_4544(s32, s32, f32, f32, f32); void fn_1_3BB8(s16, f32, f32); void fn_1_568(s16, s16, s16); -//bss -Process* lbl_1_bss_37C0; -omObjData* lbl_1_bss_2DB0[MAX_WHOMPS]; +// bss +Process *lbl_1_bss_37C0; +omObjData *lbl_1_bss_2DB0[MAX_WHOMPS]; s16 lbl_1_bss_1E98[MAX_WHOMPS][3]; s16 lbl_1_bss_68[MAX_WHOMPS][6]; s16 lbl_1_bss_66; @@ -47,23 +47,23 @@ s16 lbl_1_bss_64; s16 lbl_1_bss_3A[21]; s16 lbl_1_bss_38; -//data +// data s32 lbl_1_data_228[] = { - 0x0026001C, - 0x0026001D, - 0x0026001E, - 0x0026001B + DATA_MAKE_NUM(DATADIR_M407, 0x1C), + DATA_MAKE_NUM(DATADIR_M407, 0x1D), + DATA_MAKE_NUM(DATADIR_M407, 0x1E), + DATA_MAKE_NUM(DATADIR_M407, 0x1B), }; s32 lbl_1_data_238[] = { - 0x0026002E, - 0x0026002F, - 0x0026002D, - 0x0026002A, - 0x0026002C, - 0x00260027, - 0x00260028, - 0x00260029 + DATA_MAKE_NUM(DATADIR_M407, 0x2E), + DATA_MAKE_NUM(DATADIR_M407, 0x2F), + DATA_MAKE_NUM(DATADIR_M407, 0x2D), + DATA_MAKE_NUM(DATADIR_M407, 0x2A), + DATA_MAKE_NUM(DATADIR_M407, 0x2C), + DATA_MAKE_NUM(DATADIR_M407, 0x27), + DATA_MAKE_NUM(DATADIR_M407, 0x28), + DATA_MAKE_NUM(DATADIR_M407, 0x29), }; ObjFuncs lbl_1_data_258[] = { @@ -74,8 +74,9 @@ ObjFuncs lbl_1_data_258[] = { fn_1_36D0, }; -void fn_1_2354(Process* arg0) { - Process* sp8; +void fn_1_2354(Process *arg0) +{ + Process *sp8; u32 i; u32 j; @@ -84,7 +85,7 @@ void fn_1_2354(Process* arg0) { for (j = 0, i = 0; i < MAX_WHOMPS_ALL_PLAYERS; i++) { lbl_1_bss_2DB0[i] = omAddObjEx(lbl_1_bss_37C0, 0x200, 3, 6, 2, fn_1_2B7C); lbl_1_bss_2DB0[i]->work[0] = i; - lbl_1_bss_2DB0[i]->work[1] = 0; + lbl_1_bss_2DB0[i]->work[1] = 0; } j = j + i; @@ -92,7 +93,7 @@ void fn_1_2354(Process* arg0) { for (i = 0; i < 4; i++) { lbl_1_bss_2DB0[j + i] = omAddObjEx(lbl_1_bss_37C0, 0x200, 3, 6, 2, fn_1_2B7C); lbl_1_bss_2DB0[j + i]->work[0] = j + i; - lbl_1_bss_2DB0[j + i]->work[1] = 1; + lbl_1_bss_2DB0[j + i]->work[1] = 1; } for (i = 0; i < 4; i++) { @@ -102,7 +103,8 @@ void fn_1_2354(Process* arg0) { lbl_1_bss_64 = 0; } -void fn_1_24F0(void) { +void fn_1_24F0(void) +{ u32 i; for (i = 0; i < MAX_WHOMPS; i++) { @@ -111,7 +113,8 @@ void fn_1_24F0(void) { } } -void fn_1_2564(void) { +void fn_1_2564(void) +{ u32 i; HuAudFXPlay(0x542); @@ -120,30 +123,32 @@ void fn_1_2564(void) { } } -void fn_1_25C0(void) { +void fn_1_25C0(void) +{ u32 i, j; lbl_1_bss_38 = 0; - + for (i = 0; i < 4; i++) { if (lbl_1_bss_38 < lbl_1_bss_3A[i]) { lbl_1_bss_38 = lbl_1_bss_3A[i]; - } + } } - + lbl_1_bss_66 = 0; - + for (i = 0; i < 4; i++) { if (lbl_1_bss_3A[i] > 0) { fn_1_290C(lbl_1_bss_2DB0[i], 3); lbl_1_bss_66 += 1; - } + } } } -void fn_1_26CC(u8 arg0) { +void fn_1_26CC(u8 arg0) +{ u32 i; - omObjData* temp; + omObjData *temp; i = lbl_1_bss_3A[arg0]; if (i < MAX_WHOMPS_PLAYER) { @@ -153,9 +158,10 @@ void fn_1_26CC(u8 arg0) { } } -void fn_1_2770(u8 arg0, s16 arg2) { - omObjData* temp_r30; - unkDominationData7* temp_r31; +void fn_1_2770(u8 arg0, s16 arg2) +{ + omObjData *temp_r30; + unkDominationData7 *temp_r31; temp_r30 = lbl_1_bss_2DB0[arg0 + MAX_WHOMPS_ALL_PLAYERS]; temp_r31 = temp_r30->data; @@ -165,35 +171,41 @@ void fn_1_2770(u8 arg0, s16 arg2) { fn_1_290C(temp_r30, 2); } -s32 fn_1_2880(void) { +s32 fn_1_2880(void) +{ return (lbl_1_bss_66 == 0) ? 1 : 0; } -s16 fn_1_28B8(u8 arg0) { +s16 fn_1_28B8(u8 arg0) +{ return lbl_1_bss_3A[arg0]; } -s16 fn_1_28D4(void) { +s16 fn_1_28D4(void) +{ return lbl_1_bss_64; } -s16 fn_1_28E4(u8 arg0) { +s16 fn_1_28E4(u8 arg0) +{ return lbl_1_bss_2DB0[arg0 + MAX_WHOMPS_ALL_PLAYERS]->model[0]; } -void fn_1_290C(omObjData* arg0, s32 arg1) { - unkDominationData7* temp_r31; +void fn_1_290C(omObjData *arg0, s32 arg1) +{ + unkDominationData7 *temp_r31; temp_r31 = arg0->data; temp_r31->unk_24 = arg1; temp_r31->unk_2C = 0; } -void fn_1_2930(omObjData* arg0) { - unkDominationData7* temp_r28; - omObjData* temp_r29; +void fn_1_2930(omObjData *arg0) +{ + unkDominationData7 *temp_r28; + omObjData *temp_r29; u32 i; - unkDominationData7* temp_r31; + unkDominationData7 *temp_r31; temp_r31 = arg0->data; lbl_1_data_258[temp_r31->unk_24](arg0); @@ -208,30 +220,33 @@ void fn_1_2930(omObjData* arg0) { if (temp_r31->unk_08.y < 0.0f) { Hu3DModelShadowDispOff(arg0->model[0]); - } else { + } + else { Hu3DModelShadowDispOn(arg0->model[0]); } temp_r31->unk_04 = 1; } - + if ((temp_r31->unk_08.y < 0.0f) || (temp_r31->unk_08.z < (Center.z - 2000.0f))) { Hu3DModelAttrSet(arg0->model[0], 1); - } else { + } + else { Hu3DModelAttrReset(arg0->model[0], 1); } - + omSetTra(arg0, temp_r31->unk_08.x, temp_r31->unk_08.y, temp_r31->unk_08.z); omSetRot(arg0, temp_r31->unk_14.x, temp_r31->unk_14.y, temp_r31->unk_14.z); - + if (temp_r31->unk_28 == 1) { Hu3DModelPosSet(arg0->model[2], temp_r31->unk_08.x, 1.0f + temp_r31->unk_08.y, temp_r31->unk_08.z); } } -void fn_1_2B7C(omObjData* arg0) { +void fn_1_2B7C(omObjData *arg0) +{ u32 i; - unkDominationData7* temp_r30; + unkDominationData7 *temp_r30; arg0->func = fn_1_2930; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData7), MEMORY_DEFAULT_NUM); @@ -242,72 +257,74 @@ void fn_1_2B7C(omObjData* arg0) { } for (i = 0; i < 6; i++) { - arg0->motion[i] = -1; + arg0->motion[i] = -1; } - - temp_r30->unk_00 = (u32) arg0->work[0]; - temp_r30->unk_28 = (u32) arg0->work[1]; + + temp_r30->unk_00 = (u32)arg0->work[0]; + temp_r30->unk_28 = (u32)arg0->work[1]; temp_r30->unk_04 = 0; temp_r30->unk_2C = 0; switch (temp_r30->unk_28) { - case 0: - temp_r30->unk_14.x = 0.0f; - temp_r30->unk_14.y = 180.0f; - temp_r30->unk_14.z = 0.0f; - if (temp_r30->unk_00 < 80) { - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[1], MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DModelAttrSet(arg0->model[0], 0x4000); - Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); - if (temp_r30->unk_00 == 0) { - arg0->motion[5] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[5], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[3] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[7], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[4] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[6], MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { - arg0->motion[5] = lbl_1_bss_68[0][5]; - arg0->motion[3] = lbl_1_bss_68[0][3]; - arg0->motion[4] = lbl_1_bss_68[0][4]; - } - Hu3DModelShadowSet(arg0->model[0]); - for (i = 0; i < 3; i++) { - lbl_1_bss_1E98[temp_r30->unk_00][i] = arg0->model[i]; - } + case 0: + temp_r30->unk_14.x = 0.0f; + temp_r30->unk_14.y = 180.0f; + temp_r30->unk_14.z = 0.0f; + if (temp_r30->unk_00 < 80) { + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[1]); + Hu3DModelAttrSet(arg0->model[0], 0x4000); + Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); + if (temp_r30->unk_00 == 0) { + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[5]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[7]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[6]); + } + else { + arg0->motion[5] = lbl_1_bss_68[0][5]; + arg0->motion[3] = lbl_1_bss_68[0][3]; + arg0->motion[4] = lbl_1_bss_68[0][4]; + } + Hu3DModelShadowSet(arg0->model[0]); + for (i = 0; i < 3; i++) { + lbl_1_bss_1E98[temp_r30->unk_00][i] = arg0->model[i]; + } - for (i = 0; i < 6; i++) { - lbl_1_bss_68[temp_r30->unk_00][i] = arg0->motion[i]; + for (i = 0; i < 6; i++) { + lbl_1_bss_68[temp_r30->unk_00][i] = arg0->motion[i]; + } + Hu3DMotionSet(arg0->model[0], arg0->motion[5]); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + temp_r30->unk_04 = 1; } - Hu3DMotionSet(arg0->model[0], arg0->motion[5]); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + else { + temp_r30->unk_04 = 0; + } + break; + case 1: + temp_r30->unk_14.x = 0.0f; + temp_r30->unk_14.y = 0.0f; + temp_r30->unk_14.z = 0.0f; + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[0]); + arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_228[2]); + arg0->model[2] = Hu3DModelCreateFile(lbl_1_data_228[3]); + Hu3DModelAttrSet(arg0->model[0], 0x4000); + Hu3DModelAttrSet(arg0->model[1], 0x4000); + Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); + Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[2]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[4]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[3]); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[1], lbl_1_data_238[0]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], lbl_1_data_238[1]); + Hu3DModelHookSet(arg0->model[0], "itemhook_r", arg0->model[1]); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelAttrSet(arg0->model[2], 1); + Hu3DModelAttrSet(arg0->model[2], 0x40000002); + Hu3DModelAttrSet(arg0->model[2], 0x40000001); temp_r30->unk_04 = 1; - } else { - temp_r30->unk_04 = 0; - } - break; - case 1: - temp_r30->unk_14.x = 0.0f; - temp_r30->unk_14.y = 0.0f; - temp_r30->unk_14.z = 0.0f; - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[0], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[2], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->model[2] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[3], MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DModelAttrSet(arg0->model[0], 0x4000); - Hu3DModelAttrSet(arg0->model[1], 0x4000); - Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); - Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); - arg0->motion[2] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[2], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[3] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[4], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[5] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[3], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[0] = Hu3DJointMotion(arg0->model[1], HuDataSelHeapReadNum(lbl_1_data_238[0], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[1] = Hu3DJointMotion(arg0->model[1], HuDataSelHeapReadNum(lbl_1_data_238[1], MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DModelHookSet(arg0->model[0], "itemhook_r", arg0->model[1]); - Hu3DModelShadowSet(arg0->model[0]); - Hu3DModelShadowSet(arg0->model[1]); - Hu3DModelAttrSet(arg0->model[0], 1); - Hu3DModelAttrSet(arg0->model[1], 1); - Hu3DModelAttrSet(arg0->model[2], 1); - Hu3DModelAttrSet(arg0->model[2], 0x40000002); - Hu3DModelAttrSet(arg0->model[2], 0x40000001); - temp_r30->unk_04 = 1; - break; + break; } temp_r30->unk_08.x = (600.0f - (400.0f * (temp_r30->unk_00 & 3))); temp_r30->unk_08.y = 0.0f; @@ -315,133 +332,136 @@ void fn_1_2B7C(omObjData* arg0) { fn_1_290C(arg0, 0); } -void fn_1_31F8(omObjData* arg0) { +void fn_1_31F8(omObjData *arg0) +{ s32 i; - unkDominationData7* temp_r29; + unkDominationData7 *temp_r29; temp_r29 = arg0->data; - switch (temp_r29->unk_28) { /* irregular */ - case 0: - if (temp_r29->unk_00 == 0) { + switch (temp_r29->unk_28) { /* irregular */ + case 0: + if (temp_r29->unk_00 == 0) { + for (i = 0; i < 6; i++) { + if (arg0->motion[i] != -1) { + Hu3DMotionKill(arg0->motion[i]); + } + } + } + if (temp_r29->unk_04 != 0) { + for (i = 0; i < 3; i++) { + if (arg0->model[i] != -1) { + Hu3DModelKill(arg0->model[i]); + } + } + } + break; + case 1: for (i = 0; i < 6; i++) { if (arg0->motion[i] != -1) { Hu3DMotionKill(arg0->motion[i]); } } - } - if (temp_r29->unk_04 != 0) { for (i = 0; i < 3; i++) { if (arg0->model[i] != -1) { Hu3DModelKill(arg0->model[i]); - } + } } - } - break; - case 1: - for (i = 0; i < 6; i++) { - if (arg0->motion[i] != -1) { - Hu3DMotionKill(arg0->motion[i]); - } - } - for (i = 0; i < 3; i++) { - if (arg0->model[i] != -1) { - Hu3DModelKill(arg0->model[i]); - } - } - break; + break; } if (arg0->data) { HuMemDirectFree(arg0->data); } } -void fn_1_3360(omObjData*) { +void fn_1_3360(omObjData *) { } -} - -void fn_1_3364(omObjData* arg0) { - unkDominationData7* temp_r31; +void fn_1_3364(omObjData *arg0) +{ + unkDominationData7 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_2C == 0) { Hu3DMotionSet(arg0->model[0], arg0->motion[4]); Hu3DModelAttrReset(arg0->model[0], 0x40000001); switch (temp_r31->unk_28) { - case 0: - fn_1_4544(0, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); - break; - case 1: - fn_1_4544(1, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); - break; + case 0: + fn_1_4544(0, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); + break; + case 1: + fn_1_4544(1, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); + break; } } - + if (temp_r31->unk_2C == 0x2A) { Hu3DModelShadowDispOff(arg0->model[0]); } - + if (Hu3DMotionEndCheck(*arg0->model) == 0) { temp_r31->unk_2C++; return; } - + temp_r31->unk_08.y = -300.0f; Hu3DModelAttrSet(arg0->model[0], 1); fn_1_290C(arg0, 0); } -void fn_1_34A4(omObjData* arg0) { - unkDominationData7* temp_r30; +void fn_1_34A4(omObjData *arg0) +{ + unkDominationData7 *temp_r30; temp_r30 = arg0->data; if (temp_r30->unk_2C == 0) { if (temp_r30->unk_28 == 1) { Hu3DModelAttrReset(arg0->model[0], 1); Hu3DModelAttrReset(arg0->model[1], 1); - } else { + } + else { Hu3DModelAttrReset(arg0->model[0], 1); } Hu3DMotionSet(arg0->model[0], arg0->motion[3]); Hu3DModelAttrReset(arg0->model[0], 0x40000001); - switch (temp_r30->unk_28) { /* irregular */ - case 0: - fn_1_4544(0, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); - HuAudFXPlay(0x543); - break; - case 1: - HuAudFXPlay(0x544); - fn_1_4544(1, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); - break; + switch (temp_r30->unk_28) { /* irregular */ + case 0: + fn_1_4544(0, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); + HuAudFXPlay(0x543); + break; + case 1: + HuAudFXPlay(0x544); + fn_1_4544(1, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); + break; } temp_r30->unk_08.y = 0.0f; } - + if (temp_r30->unk_2C == 0xA) { Hu3DModelShadowDispOn(arg0->model[0]); } - + if ((temp_r30->unk_2C == 0xA) && (temp_r30->unk_28 == 1)) { Hu3DMotionSet(arg0->model[1], arg0->motion[1]); Hu3DModelAttrReset(arg0->model[1], 0x40000001); } - + temp_r30->unk_2C++; - + if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 10.0f, 0x40000001); switch (temp_r30->unk_28) { - case 0: - fn_1_290C(arg0, 0); - return; - case 1: - fn_1_290C(arg0, 4); - break; + case 0: + fn_1_290C(arg0, 0); + return; + case 1: + fn_1_290C(arg0, 4); + break; } } } -void fn_1_36D0(omObjData* arg0) { - unkDominationData7* sp8; +void fn_1_36D0(omObjData *arg0) +{ + unkDominationData7 *sp8; sp8 = arg0->data; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, 0x40000001); @@ -453,8 +473,9 @@ void fn_1_36D0(omObjData* arg0) { fn_1_290C(arg0, 0); } -void fn_1_37B0(omObjData* arg0) { - unkDominationData7* temp_r31; +void fn_1_37B0(omObjData *arg0) +{ + unkDominationData7 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_2C == 0) { @@ -479,7 +500,7 @@ void fn_1_37B0(omObjData* arg0) { } temp_r31->unk_14.x = (temp_r31->unk_2C == 1) ? -90.0f : -68.0f; - + if (temp_r31->unk_2C == 1) { fn_1_4544(3, 0, temp_r31->unk_08.x, 0.0f, 200.0f + temp_r31->unk_08.z); HuAudFXPlay(0x544); @@ -487,7 +508,8 @@ void fn_1_37B0(omObjData* arg0) { fn_1_3BB8((temp_r31->unk_00 >> 2) + 1, temp_r31->unk_08.x, temp_r31->unk_08.z); } lbl_1_bss_66 -= 1; - } else { + } + else { fn_1_4544(2, 0, temp_r31->unk_08.x, 0.0f, 200.0f + temp_r31->unk_08.z); HuAudFXPlay(0x543); } diff --git a/src/REL/m407dll/whomp_score.c b/src/REL/m407dll/whomp_score.c index 5d024e6f..1d985246 100644 --- a/src/REL/m407dll/whomp_score.c +++ b/src/REL/m407dll/whomp_score.c @@ -1,39 +1,42 @@ -#include "src/REL/m407dll/m407dll.h" -#include "game/process.h" -#include "game/object.h" -#include "game/gamework_data.h" #include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/object.h" +#include "game/process.h" +#include "game/sprite.h" + +#include "REL/m407dll.h" typedef struct unkDominationData3 { -/* 0x00 */ u32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ Vec unk_08; -/* 0x14 */ s32 unk_14; -/* 0x18 */ s16 unk_18[4]; -/* 0x20 */ f32 unk_20; -} unkDominationData3; //sizeof 0x24 + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s16 unk_18[4]; + /* 0x20 */ f32 unk_20; +} unkDominationData3; // sizeof 0x24 -//function signatures +// function signatures void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2); -void fn_1_3D28(omObjData* arg0, s32 arg1); -void fn_1_3E34(omObjData*); -void fn_1_3F7C(omObjData* arg0); -void fn_1_3FF0(omObjData*); -void fn_1_3FF4(omObjData* arg0); -void fn_1_40F4(omObjData* arg0); +void fn_1_3D28(omObjData *arg0, s32 arg1); +void fn_1_3E34(omObjData *); +void fn_1_3F7C(omObjData *arg0); +void fn_1_3FF0(omObjData *); +void fn_1_3FF4(omObjData *arg0); +void fn_1_40F4(omObjData *arg0); -//bss -Process* lbl_1_bss_37D8; -omObjData* lbl_1_bss_37C8[4]; +// bss +Process *lbl_1_bss_37D8; +omObjData *lbl_1_bss_37C8[4]; -//data +// data ObjFuncs lbl_1_data_278[] = { fn_1_3FF0, fn_1_3FF4, fn_1_40F4, }; -void fn_1_3AC8(Process* arg0) { +void fn_1_3AC8(Process *arg0) +{ u32 i; lbl_1_bss_37D8 = arg0; @@ -44,7 +47,8 @@ void fn_1_3AC8(Process* arg0) { } } -void fn_1_3B68(void) { +void fn_1_3B68(void) +{ u32 i; for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37C8); i++) { @@ -52,10 +56,11 @@ void fn_1_3B68(void) { } } -void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { - omObjData* obj; +void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) +{ + omObjData *obj; Vec sp14; - unkDominationData3* temp_r31; + unkDominationData3 *temp_r31; u32 i; s16 temp; @@ -66,7 +71,7 @@ void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { temp = arg0; espBankSet(temp_r31->unk_18[1], (temp / 100)); temp = (temp - ((temp / 100) * 100)); - espBankSet(temp_r31->unk_18[2],(temp / 10)); + espBankSet(temp_r31->unk_18[2], (temp / 10)); temp = (temp - ((temp / 10) * 10)); espBankSet(temp_r31->unk_18[3], temp); sp14.x = arg8; @@ -79,17 +84,19 @@ void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { } } -void fn_1_3D28(omObjData* arg0, s32 arg1) { - unkDominationData3* temp_r31; +void fn_1_3D28(omObjData *arg0, s32 arg1) +{ + unkDominationData3 *temp_r31; temp_r31 = arg0->data; temp_r31->unk_04 = arg1; temp_r31->unk_14 = 0; } -void fn_1_3D4C(omObjData* arg0) { +void fn_1_3D4C(omObjData *arg0) +{ s32 temp_r5; - unkDominationData3* temp_r31; + unkDominationData3 *temp_r31; temp_r31 = arg0->data; lbl_1_data_278[temp_r31->unk_04](arg0); @@ -100,8 +107,9 @@ void fn_1_3D4C(omObjData* arg0) { espPosSet(temp_r31->unk_18[3], 18.0f + temp_r31->unk_08.x, temp_r31->unk_08.y - 8.0f); } -void fn_1_3E34(omObjData* arg0) { - unkDominationData3* temp_r31; +void fn_1_3E34(omObjData *arg0) +{ + unkDominationData3 *temp_r31; arg0->func = fn_1_3D4C; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData3), MEMORY_DEFAULT_NUM); @@ -109,24 +117,25 @@ void fn_1_3E34(omObjData* arg0) { temp_r31->unk_00 = arg0->work[0]; temp_r31->unk_14 = 0; temp_r31->unk_04 = 0; - temp_r31->unk_18[0] = espEntry(0x260026, 1, 0); - temp_r31->unk_18[1] = espEntry(0x260020, 0, 0); - temp_r31->unk_18[2] = espEntry(0x260020, 0, 0); - temp_r31->unk_18[3] = espEntry(0x260020, 0, 0); + temp_r31->unk_18[0] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x26), 1, 0); + temp_r31->unk_18[1] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0); + temp_r31->unk_18[2] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0); + temp_r31->unk_18[3] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0); espDispOff(temp_r31->unk_18[0]); espDispOff(temp_r31->unk_18[1]); espDispOff(temp_r31->unk_18[2]); espDispOff(temp_r31->unk_18[3]); espScaleSet(temp_r31->unk_18[0], 1.8f, 1.8f); - temp_r31->unk_08.x = (f32) 0.0f; - temp_r31->unk_08.y = (f32) 0.0f; + temp_r31->unk_08.x = (f32)0.0f; + temp_r31->unk_08.y = (f32)0.0f; fn_1_3D28(arg0, 0); } -void fn_1_3F7C(omObjData* arg0) { +void fn_1_3F7C(omObjData *arg0) +{ s32 i; - unkDominationData3* temp_r29; - + unkDominationData3 *temp_r29; + temp_r29 = arg0->data; for (i = 0; i < ARRAY_COUNT(temp_r29->unk_18); i++) { @@ -138,12 +147,11 @@ void fn_1_3F7C(omObjData* arg0) { } } -void fn_1_3FF0(omObjData* arg0) { +void fn_1_3FF0(omObjData *arg0) { } -} - -void fn_1_3FF4(omObjData* arg0) { - unkDominationData3* temp_r31; +void fn_1_3FF4(omObjData *arg0) +{ + unkDominationData3 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_14 == 0) { @@ -166,8 +174,9 @@ void fn_1_3FF4(omObjData* arg0) { } } -void fn_1_40F4(omObjData* arg0) { - unkDominationData3* temp_r31; +void fn_1_40F4(omObjData *arg0) +{ + unkDominationData3 *temp_r31; temp_r31 = arg0->data; @@ -186,4 +195,3 @@ void fn_1_40F4(omObjData* arg0) { espDispOff(temp_r31->unk_18[3]); fn_1_3D28(arg0, 0); } - diff --git a/src/REL/m408Dll/camera.c b/src/REL/m408Dll/camera.c index 0638ba4d..e2b5ba0c 100644 --- a/src/REL/m408Dll/camera.c +++ b/src/REL/m408Dll/camera.c @@ -1,14 +1,14 @@ -#include "game/object.h" -#include "game/objsub.h" -#include "game/wipe.h" #include "game/chrman.h" #include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/sprite.h" #include "game/audio.h" @@ -16,8 +16,8 @@ #include "REL/m408Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" omObjData *lbl_1_bss_110; u32 lbl_1_bss_10C; @@ -35,13 +35,13 @@ void fn_1_9770(omObjData *object); void fn_1_8958(Process *objman) { - omObjData *object; - lbl_1_bss_10C = 0; - object = omAddObjEx(objman, 20, 9, 0, -1, fn_1_8A20); - object->work[0] = 0; - lbl_1_bss_110 = omAddObjEx(objman, 21, 2, 0, -1, fn_1_9770); - lbl_1_bss_110->work[0] = 0; - lbl_1_bss_84 = lbl_1_bss_80 = -1; + omObjData *object; + lbl_1_bss_10C = 0; + object = omAddObjEx(objman, 20, 9, 0, -1, fn_1_8A20); + object->work[0] = 0; + lbl_1_bss_110 = omAddObjEx(objman, 21, 2, 0, -1, fn_1_9770); + lbl_1_bss_110->work[0] = 0; + lbl_1_bss_84 = lbl_1_bss_80 = -1; } void fn_1_8FAC(omObjData *object); @@ -53,172 +53,175 @@ void fn_1_BDE0(void); void fn_1_8A20(omObjData *object) { - s16 temp_r31; - s32 temp_r29; - for(temp_r29=0; temp_r29<20; temp_r29++) { - lbl_1_bss_A4[temp_r29] = NULL; - } - lbl_1_bss_A0 = 0; - for(temp_r29=0; temp_r29<3; temp_r29++) { - lbl_1_bss_94[temp_r29] = NULL; - lbl_1_bss_88[temp_r29] = 0; - } - object->model[0] = Hu3DModelCreateFile(0x270000); - omSetSca(object, 0.1f, 0.1f, 0.1f); - object->model[1] = Hu3DModelCreateFile(0x270001); - Hu3DModelScaleSet(object->model[1], 0.1f, 0.1f, 0.1f); - Hu3DModelPosSet(object->model[1], 0, 11990, 0); - Hu3DModelShadowMapSet(object->model[1]); - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000B), 1); - object->model[2] = temp_r31; - Hu3DModelLayerSet(temp_r31, 6); - Hu3DParticleColSet(temp_r31, 255, 255, 255); - Hu3DParticleHookSet(temp_r31, fn_1_A894); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 0; - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000D), 1); - object->model[3] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DParticleColSet(temp_r31, 255, 255, 255); - Hu3DParticleHookSet(temp_r31, fn_1_A894); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 1; - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x270011), 1); - object->model[5] = temp_r31; - Hu3DModelLayerSet(temp_r31, 7); - Hu3DParticleColSet(temp_r31, 255, 255, 255); - Hu3DParticleHookSet(temp_r31, fn_1_A894); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 2; - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x270010), 8); - object->model[6] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - fn_1_B700(temp_r31, 0); - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000F), 6); - object->model[6] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - fn_1_B700(temp_r31, 1); - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000D), 5); - object->model[6] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - fn_1_B700(temp_r31, 2); - fn_1_BB94(); - lbl_1_bss_10C = 1; - object->func = fn_1_8FAC; - object->work[1] = 0; + s16 temp_r31; + s32 temp_r29; + for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { + lbl_1_bss_A4[temp_r29] = NULL; + } + lbl_1_bss_A0 = 0; + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + lbl_1_bss_94[temp_r29] = NULL; + lbl_1_bss_88[temp_r29] = 0; + } + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x00)); + omSetSca(object, 0.1f, 0.1f, 0.1f); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x01)); + Hu3DModelScaleSet(object->model[1], 0.1f, 0.1f, 0.1f); + Hu3DModelPosSet(object->model[1], 0, 11990, 0); + Hu3DModelShadowMapSet(object->model[1]); + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0B)), 1); + object->model[2] = temp_r31; + Hu3DModelLayerSet(temp_r31, 6); + Hu3DParticleColSet(temp_r31, 255, 255, 255); + Hu3DParticleHookSet(temp_r31, fn_1_A894); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 0; + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0D)), 1); + object->model[3] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DParticleColSet(temp_r31, 255, 255, 255); + Hu3DParticleHookSet(temp_r31, fn_1_A894); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 1; + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x11)), 1); + object->model[5] = temp_r31; + Hu3DModelLayerSet(temp_r31, 7); + Hu3DParticleColSet(temp_r31, 255, 255, 255); + Hu3DParticleHookSet(temp_r31, fn_1_A894); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 2; + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x10)), 8); + object->model[6] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + fn_1_B700(temp_r31, 0); + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0F)), 6); + object->model[6] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + fn_1_B700(temp_r31, 1); + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0D)), 5); + object->model[6] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + fn_1_B700(temp_r31, 2); + fn_1_BB94(); + lbl_1_bss_10C = 1; + object->func = fn_1_8FAC; + object->work[1] = 0; } void fn_1_9514(omObjData *object); void fn_1_8FAC(omObjData *object) { - object->work[1]++; - switch(lbl_1_bss_10C) { - case 1: - if(lbl_1_bss_110->work[0] == 4) { - lbl_1_bss_10C = 2; - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - object->work[1] = 0; - } - break; - - case 2: - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - if(lbl_1_bss_80 < 0) { - lbl_1_bss_80 = HuAudFXPlay(1361); - } - lbl_1_bss_10C = 3; - object->work[1] = 0; - break; - - case 3: - lbl_1_bss_F4.y += -6.666667f; - lbl_1_bss_F4.z += -0.5833334f; - lbl_1_bss_100.y += 20.0f/60.0f; - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - if(lbl_1_bss_F4.y > 12010) { - break; - } - if(lbl_1_bss_84 < 0) { - lbl_1_bss_84 = HuAudFXPlay(1357); - } - if(lbl_1_bss_80 >= 0) { - HuAudFXStop(lbl_1_bss_80); - lbl_1_bss_80 = -1; - } - lbl_1_bss_10C = 4; - object->work[1] = 0; - object->work[2] = 0; - break; - - case 4: - if(object->work[1] < 24.0f) { - lbl_1_bss_100.y += 4.0f/12.0f; - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - } else { - if(object->work[2] == 0) { - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_44 = 1; - } - object->work[2]++; - } - CZoom -= 2.5000002f; - if(object->work[1] < 90.0f) { - break; - } - lbl_1_bss_10C = 5; - object->work[1] = 0; - } - break; - - default: - lbl_1_bss_10C = 5; - break; - } - omSetTra(object, Center.x+(sind(CRot.y)*cosd(CRot.x)*CZoom), Center.y+(-sind(CRot.x)*CZoom), Center.z+(cosd(CRot.y)*cosd(CRot.x)*CZoom)); - fn_1_BDE0(); - if(lbl_1_bss_10C == 5) { - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[1], 1); - lbl_1_bss_10C = 5; - object->func = fn_1_9514; - } + object->work[1]++; + switch (lbl_1_bss_10C) { + case 1: + if (lbl_1_bss_110->work[0] == 4) { + lbl_1_bss_10C = 2; + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + object->work[1] = 0; + } + break; + + case 2: + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + if (lbl_1_bss_80 < 0) { + lbl_1_bss_80 = HuAudFXPlay(1361); + } + lbl_1_bss_10C = 3; + object->work[1] = 0; + break; + + case 3: + lbl_1_bss_F4.y += -6.666667f; + lbl_1_bss_F4.z += -0.5833334f; + lbl_1_bss_100.y += 20.0f / 60.0f; + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + if (lbl_1_bss_F4.y > 12010) { + break; + } + if (lbl_1_bss_84 < 0) { + lbl_1_bss_84 = HuAudFXPlay(1357); + } + if (lbl_1_bss_80 >= 0) { + HuAudFXStop(lbl_1_bss_80); + lbl_1_bss_80 = -1; + } + lbl_1_bss_10C = 4; + object->work[1] = 0; + object->work[2] = 0; + break; + + case 4: + if (object->work[1] < 24.0f) { + lbl_1_bss_100.y += 4.0f / 12.0f; + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + } + else { + if (object->work[2] == 0) { + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_44 = 1; + } + object->work[2]++; + } + CZoom -= 2.5000002f; + if (object->work[1] < 90.0f) { + break; + } + lbl_1_bss_10C = 5; + object->work[1] = 0; + } + break; + + default: + lbl_1_bss_10C = 5; + break; + } + omSetTra(object, Center.x + (sind(CRot.y) * cosd(CRot.x) * CZoom), Center.y + (-sind(CRot.x) * CZoom), + Center.z + (cosd(CRot.y) * cosd(CRot.x) * CZoom)); + fn_1_BDE0(); + if (lbl_1_bss_10C == 5) { + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[1], 1); + lbl_1_bss_10C = 5; + object->func = fn_1_9514; + } } void fn_1_9514(omObjData *object) { - if(!WipeStatGet() && object->work[2] != 0) { - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_44 = 0; - } - object->work[2] = 0; - } - if(fn_1_6878() >= 4) { - Hu3DModelAttrReset(object->model[0], 1); - } - omSetTra(object, Center.x+(sind(CRot.y)*cosd(CRot.x)*CZoom), Center.y+(-sind(CRot.x)*CZoom)-1000, Center.z+(cosd(CRot.y)*cosd(CRot.x)*CZoom)); + if (!WipeStatGet() && object->work[2] != 0) { + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_44 = 0; + } + object->work[2] = 0; + } + if (fn_1_6878() >= 4) { + Hu3DModelAttrReset(object->model[0], 1); + } + omSetTra(object, Center.x + (sind(CRot.y) * cosd(CRot.x) * CZoom), Center.y + (-sind(CRot.x) * CZoom) - 1000, + Center.z + (cosd(CRot.y) * cosd(CRot.x) * CZoom)); } typedef struct work_99C8 { - Vec unk0; - Vec unkC; - Vec unk18; - Vec unk24; - Vec unk30; - Vec unk3C; - s32 unk48[2]; + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; + Vec unk30; + Vec unk3C; + s32 unk48[2]; } Work99C8; void fn_1_99C8(omObjData *object); @@ -226,35 +229,35 @@ void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_9770(omObjData *object) { - Work99C8 *temp_r31; - s32 temp_r29; - - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work99C8), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - object->model[0] = Hu3DModelCreateFile(0x27000A); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DMotionSpeedSet(object->model[0], 3.0f); - Hu3DModelShadowSet(object->model[0]); - object->func = fn_1_99C8; - object->work[0] = 0; - object->work[1] = 0; - temp_r31->unk3C.x = temp_r31->unk3C.y = temp_r31->unk3C.z = 0; - temp_r31->unk0.x = temp_r31->unk0.y = temp_r31->unk0.z = 0; - temp_r31->unk0.z = 1000; - omSetTra(object, 0, 12080, -2*temp_r31->unk0.z); - omSetSca(object, 0.5f, 0.5f, 0.5f); - temp_r29 = Hu3DParticleCreate(HuSprAnimReadFile(0x270024), 1024); - object->model[1] = temp_r29; - Hu3DModelLayerSet(temp_r29, 6); - Hu3DParticleColSet(temp_r29, 255, 255, 255); - Hu3DParticleHookSet(temp_r29, fn_1_A37C); - Hu3DModelPosSet(temp_r29, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r29].unk_120)->unk_00 = 0; - temp_r31->unk30.y = -35; - temp_r31->unk30.z = 350; - temp_r31->unk18.y = 800+object->trans.y; - temp_r31->unk48[0] = temp_r31->unk48[1] = -1; - HuDataDirClose(0x27000A); + Work99C8 *temp_r31; + s32 temp_r29; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work99C8), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x0A)); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DMotionSpeedSet(object->model[0], 3.0f); + Hu3DModelShadowSet(object->model[0]); + object->func = fn_1_99C8; + object->work[0] = 0; + object->work[1] = 0; + temp_r31->unk3C.x = temp_r31->unk3C.y = temp_r31->unk3C.z = 0; + temp_r31->unk0.x = temp_r31->unk0.y = temp_r31->unk0.z = 0; + temp_r31->unk0.z = 1000; + omSetTra(object, 0, 12080, -2 * temp_r31->unk0.z); + omSetSca(object, 0.5f, 0.5f, 0.5f); + temp_r29 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x24)), 1024); + object->model[1] = temp_r29; + Hu3DModelLayerSet(temp_r29, 6); + Hu3DParticleColSet(temp_r29, 255, 255, 255); + Hu3DParticleHookSet(temp_r29, fn_1_A37C); + Hu3DModelPosSet(temp_r29, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r29].unk_120)->unk_00 = 0; + temp_r31->unk30.y = -35; + temp_r31->unk30.z = 350; + temp_r31->unk18.y = 800 + object->trans.y; + temp_r31->unk48[0] = temp_r31->unk48[1] = -1; + HuDataDirClose(DATA_MAKE_NUM(DATADIR_M408, 10)); } void fn_1_A334(omObjData *object); @@ -262,567 +265,551 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2); void fn_1_99C8(omObjData *object) { - float temp_f31; - float temp_f30; - - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - - Work99C8 *temp_r31; - temp_r31 = object->data; - object->trans.x += temp_r31->unk0.x*(1.0f/60.0f); - object->trans.y += temp_r31->unk0.y*(1.0f/60.0f); - object->trans.z += temp_r31->unk0.z*(1.0f/60.0f); - object->work[1]++; - switch(object->work[0]) { - case 0: - if(object->work[1] < 120.0f) { - temp_f30 = (1.0f/60.0f)*(1.5f*(120.0f-object->work[1])); - if(temp_f30 > 1.0f) { - temp_f30 = 1.0f; - } - temp_f31 = temp_r31->unk18.z; - temp_r31->unk30.z -= (175.0f/60.0f)*temp_f30; - temp_r31->unk30.y += 1.1666667f*temp_f30; - temp_r31->unk18.x = object->trans.x+(temp_r31->unk30.z*sind(temp_r31->unk30.y)); - temp_r31->unk18.z = object->trans.z+(temp_r31->unk30.z*cosd(temp_r31->unk30.y)); - temp_r31->unk18.y -= 8.333334f*temp_f30; - temp_r31->unk24.x = 0; - temp_r31->unk24.y = 0; - temp_r31->unk24.z = 0.96f*temp_r31->unk0.z; - } else { - temp_r31->unk18.z += temp_r31->unk24.z*(1.0f/60.0f); - } - temp_r31->unkC.x = object->trans.x; - temp_r31->unkC.y = object->trans.y; - temp_r31->unkC.z = object->trans.z; - sp2C.x = object->trans.x; - sp2C.y = object->trans.y; - sp2C.z = object->trans.z; - if(temp_r31->unk48[0] < 0) { - temp_r31->unk48[0] = HuAudFXEmiterPlay(1362, &sp2C); - } - if(temp_r31->unk48[1] < 0) { - temp_r31->unk48[1] = HuAudFXEmiterPlay(1356, &sp2C); - } - if(object->work[1] < 180.0f) { - break; - } - object->work[0] = 1; - object->work[1] = 0; - break; - - case 1: - temp_r31->unk24.z *= 0.6f; - temp_r31->unk18.z += (temp_r31->unk24.z*(1.0f/60.0f)); - temp_r31->unk18.x += (temp_r31->unk24.z*(1.0f/60.0f)); - temp_r31->unkC.x = object->trans.x; - temp_r31->unkC.y = object->trans.y; - temp_r31->unkC.z = object->trans.z; - if(object->work[1] < 60.0f) { - break; - } - object->work[0] = 2; - object->work[1] = 0; - break; - - case 2: - temp_r31->unk3C.x += 1.5000001f; - temp_r31->unk0.z = 1000.0*cosd(temp_r31->unk3C.x); - temp_r31->unk0.y = 1000.0*sind(temp_r31->unk3C.x); - temp_r31->unkC.x = object->trans.x; - temp_r31->unkC.y = object->trans.y; - temp_r31->unkC.z = object->trans.z; - if(object->work[1] < 120.0f) { - break; - } - object->work[0] = 3; - object->work[1] = 0; - temp_r31->unk3C.x = 180; - break; - - case 3: - temp_r31->unk3C.z += 3.0000002f; - temp_f31 = (1.0f/60.0f)*object->work[1]; - temp_f31 = 1.0f-(temp_f31*temp_f31); - temp_r31->unkC.x += temp_f31*(object->trans.x-temp_r31->unkC.x); - temp_r31->unkC.y += temp_f31*(object->trans.y-temp_r31->unkC.y); - temp_r31->unkC.z += temp_f31*(object->trans.z-temp_r31->unkC.z); - if(object->work[1] < 60.0f) { - break; - } - lbl_1_bss_F4.x = temp_r31->unkC.x; - lbl_1_bss_F4.y = temp_r31->unkC.y; - lbl_1_bss_F4.z = temp_r31->unkC.z; - lbl_1_bss_100.x = temp_r31->unk18.x; - lbl_1_bss_100.y = temp_r31->unk18.y; - lbl_1_bss_100.z = temp_r31->unk18.z; - object->work[0] = 4; - object->work[1] = 0; - break; - - case 4: - temp_r31->unk3C.z += 3.0000002f; - if(object->work[1] > 42.0f) { - if(temp_r31->unk48[0] >= 0) { - HuAudFXStop(temp_r31->unk48[0]); - temp_r31->unk48[0] = -1; - } - if(temp_r31->unk48[1] >= 0) { - HuAudFXStop(temp_r31->unk48[1]); - temp_r31->unk48[1] = -1; - } - } - if(object->work[1] < 240.0f) { - break; - } - object->work[0] = 5; - object->work[1] = 0; - break; - - default: - object->work[0] = 5; - object->func = fn_1_A334; - break; - } - omSetRot(object, -temp_r31->unk3C.x, temp_r31->unk3C.y, temp_r31->unk3C.z); - if(object->trans.y < 12150.0f) { - sp20.x = object->trans.x; - sp20.y = object->trans.y; - sp20.z = object->trans.z+10; - fn_1_A4E8(object->model[1], &sp20, 4); - sp20.x = sp8.x = object->trans.x; - sp20.z = object->trans.z; - sp8.z = object->trans.z-10; - sp20.y = object->trans.y+250.0f; - sp8.y = object->trans.y; - sp14.x = 0; - sp14.y = 0; - sp14.z = 1; - Hu3DShadowPosSet(&sp20, &sp14, &sp8); - } - if(temp_r31->unk48[0] >= 0) { - sp2C.x = object->trans.x-30; - sp2C.y = object->trans.y; - sp2C.z = object->trans.z+25; - HuAudFXEmiterUpDate(temp_r31->unk48[0], &sp2C); - } - if(temp_r31->unk48[1] < 0) { - sp2C.x = object->trans.x+30; - sp2C.y = object->trans.y; - sp2C.z = object->trans.z+25; - HuAudFXEmiterUpDate(temp_r31->unk48[1], &sp2C); - } - if(object->work[0] < 4) { - fn_1_84C4(temp_r31->unk18.x, temp_r31->unk18.y, temp_r31->unk18.z, temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); - } - if(fn_1_C43C() == 5) { - object->func = fn_1_A334; - } + float temp_f31; + float temp_f30; + + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + Work99C8 *temp_r31; + temp_r31 = object->data; + object->trans.x += temp_r31->unk0.x * (1.0f / 60.0f); + object->trans.y += temp_r31->unk0.y * (1.0f / 60.0f); + object->trans.z += temp_r31->unk0.z * (1.0f / 60.0f); + object->work[1]++; + switch (object->work[0]) { + case 0: + if (object->work[1] < 120.0f) { + temp_f30 = (1.0f / 60.0f) * (1.5f * (120.0f - object->work[1])); + if (temp_f30 > 1.0f) { + temp_f30 = 1.0f; + } + temp_f31 = temp_r31->unk18.z; + temp_r31->unk30.z -= (175.0f / 60.0f) * temp_f30; + temp_r31->unk30.y += 1.1666667f * temp_f30; + temp_r31->unk18.x = object->trans.x + (temp_r31->unk30.z * sind(temp_r31->unk30.y)); + temp_r31->unk18.z = object->trans.z + (temp_r31->unk30.z * cosd(temp_r31->unk30.y)); + temp_r31->unk18.y -= 8.333334f * temp_f30; + temp_r31->unk24.x = 0; + temp_r31->unk24.y = 0; + temp_r31->unk24.z = 0.96f * temp_r31->unk0.z; + } + else { + temp_r31->unk18.z += temp_r31->unk24.z * (1.0f / 60.0f); + } + temp_r31->unkC.x = object->trans.x; + temp_r31->unkC.y = object->trans.y; + temp_r31->unkC.z = object->trans.z; + sp2C.x = object->trans.x; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z; + if (temp_r31->unk48[0] < 0) { + temp_r31->unk48[0] = HuAudFXEmiterPlay(1362, &sp2C); + } + if (temp_r31->unk48[1] < 0) { + temp_r31->unk48[1] = HuAudFXEmiterPlay(1356, &sp2C); + } + if (object->work[1] < 180.0f) { + break; + } + object->work[0] = 1; + object->work[1] = 0; + break; + + case 1: + temp_r31->unk24.z *= 0.6f; + temp_r31->unk18.z += (temp_r31->unk24.z * (1.0f / 60.0f)); + temp_r31->unk18.x += (temp_r31->unk24.z * (1.0f / 60.0f)); + temp_r31->unkC.x = object->trans.x; + temp_r31->unkC.y = object->trans.y; + temp_r31->unkC.z = object->trans.z; + if (object->work[1] < 60.0f) { + break; + } + object->work[0] = 2; + object->work[1] = 0; + break; + + case 2: + temp_r31->unk3C.x += 1.5000001f; + temp_r31->unk0.z = 1000.0 * cosd(temp_r31->unk3C.x); + temp_r31->unk0.y = 1000.0 * sind(temp_r31->unk3C.x); + temp_r31->unkC.x = object->trans.x; + temp_r31->unkC.y = object->trans.y; + temp_r31->unkC.z = object->trans.z; + if (object->work[1] < 120.0f) { + break; + } + object->work[0] = 3; + object->work[1] = 0; + temp_r31->unk3C.x = 180; + break; + + case 3: + temp_r31->unk3C.z += 3.0000002f; + temp_f31 = (1.0f / 60.0f) * object->work[1]; + temp_f31 = 1.0f - (temp_f31 * temp_f31); + temp_r31->unkC.x += temp_f31 * (object->trans.x - temp_r31->unkC.x); + temp_r31->unkC.y += temp_f31 * (object->trans.y - temp_r31->unkC.y); + temp_r31->unkC.z += temp_f31 * (object->trans.z - temp_r31->unkC.z); + if (object->work[1] < 60.0f) { + break; + } + lbl_1_bss_F4.x = temp_r31->unkC.x; + lbl_1_bss_F4.y = temp_r31->unkC.y; + lbl_1_bss_F4.z = temp_r31->unkC.z; + lbl_1_bss_100.x = temp_r31->unk18.x; + lbl_1_bss_100.y = temp_r31->unk18.y; + lbl_1_bss_100.z = temp_r31->unk18.z; + object->work[0] = 4; + object->work[1] = 0; + break; + + case 4: + temp_r31->unk3C.z += 3.0000002f; + if (object->work[1] > 42.0f) { + if (temp_r31->unk48[0] >= 0) { + HuAudFXStop(temp_r31->unk48[0]); + temp_r31->unk48[0] = -1; + } + if (temp_r31->unk48[1] >= 0) { + HuAudFXStop(temp_r31->unk48[1]); + temp_r31->unk48[1] = -1; + } + } + if (object->work[1] < 240.0f) { + break; + } + object->work[0] = 5; + object->work[1] = 0; + break; + + default: + object->work[0] = 5; + object->func = fn_1_A334; + break; + } + omSetRot(object, -temp_r31->unk3C.x, temp_r31->unk3C.y, temp_r31->unk3C.z); + if (object->trans.y < 12150.0f) { + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z + 10; + fn_1_A4E8(object->model[1], &sp20, 4); + sp20.x = sp8.x = object->trans.x; + sp20.z = object->trans.z; + sp8.z = object->trans.z - 10; + sp20.y = object->trans.y + 250.0f; + sp8.y = object->trans.y; + sp14.x = 0; + sp14.y = 0; + sp14.z = 1; + Hu3DShadowPosSet(&sp20, &sp14, &sp8); + } + if (temp_r31->unk48[0] >= 0) { + sp2C.x = object->trans.x - 30; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z + 25; + HuAudFXEmiterUpDate(temp_r31->unk48[0], &sp2C); + } + if (temp_r31->unk48[1] < 0) { + sp2C.x = object->trans.x + 30; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z + 25; + HuAudFXEmiterUpDate(temp_r31->unk48[1], &sp2C); + } + if (object->work[0] < 4) { + fn_1_84C4(temp_r31->unk18.x, temp_r31->unk18.y, temp_r31->unk18.z, temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); + } + if (fn_1_C43C() == 5) { + object->func = fn_1_A334; + } } void fn_1_A334(omObjData *object) { - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[0], 1); } - void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } else { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16) { - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - temp_r31->unk2C += temp_r31->unk14.x; - temp_r31->unk14.y -= temp_r31->unk14.z; - temp_r31->unk40.a = temp_r31->unk14.y; - if(--temp_r31->unk00_s16 == 0) { - temp_r31->unk00_s16 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a =0; - } - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + else { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16) { + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + temp_r31->unk2C += temp_r31->unk14.x; + temp_r31->unk14.y -= temp_r31->unk14.z; + temp_r31->unk40.a = temp_r31->unk14.y; + if (--temp_r31->unk00_s16 == 0) { + temp_r31->unk00_s16 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } } void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r29; - temp_r30 = Hu3DData[arg0].unk_120; - if(temp_r30->unk_00) { - temp_r31 = temp_r30->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 != 0) { - continue; - } - temp_r31->unk00_s16 = 60.0f*(((1.5f/1000.0f)*frandmod(1000))+1.0f); - temp_r31->unk34.x = arg1->x; - temp_r31->unk34.y = 12000; - temp_r31->unk34.z = arg1->z; - temp_r31->unk08.x = (1.0f/60.0f)*((0.6f*frandmod(1000))-300.0f); - temp_r31->unk08.y = (1.0f/60.0f)*((0.04f*frandmod(1000))+10.0f); - temp_r31->unk08.z = 0; - temp_r31->unk14.x = 0.3f+((3.0f/1000.0f)*frandmod(1000)); - temp_r31->unk2C = 10; - temp_r31->unk40.a = frandmod(127)+64; - temp_r31->unk14.y = temp_r31->unk40.a; - temp_r31->unk14.z = temp_r31->unk14.y*(1.0f/temp_r31->unk00_s16); - temp_f31 = frandmod(1000)*(1.0f/1000.0f); - temp_r31->unk40.r = (temp_f31*55)+200; - temp_r31->unk40.g = (temp_f31*50)+205; - temp_r31->unk40.b = (temp_f31*5)+250; - if(--arg2 == 0) { - break; - } - } - } + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r29; + temp_r30 = Hu3DData[arg0].unk_120; + if (temp_r30->unk_00) { + temp_r31 = temp_r30->unk_48; + for (temp_r29 = 0; temp_r29 < temp_r30->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 != 0) { + continue; + } + temp_r31->unk00_s16 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f); + temp_r31->unk34.x = arg1->x; + temp_r31->unk34.y = 12000; + temp_r31->unk34.z = arg1->z; + temp_r31->unk08.x = (1.0f / 60.0f) * ((0.6f * frandmod(1000)) - 300.0f); + temp_r31->unk08.y = (1.0f / 60.0f) * ((0.04f * frandmod(1000)) + 10.0f); + temp_r31->unk08.z = 0; + temp_r31->unk14.x = 0.3f + ((3.0f / 1000.0f) * frandmod(1000)); + temp_r31->unk2C = 10; + temp_r31->unk40.a = frandmod(127) + 64; + temp_r31->unk14.y = temp_r31->unk40.a; + temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00_s16); + temp_f31 = frandmod(1000) * (1.0f / 1000.0f); + temp_r31->unk40.r = (temp_f31 * 55) + 200; + temp_r31->unk40.g = (temp_f31 * 50) + 205; + temp_r31->unk40.b = (temp_f31 * 5) + 250; + if (--arg2 == 0) { + break; + } + } + } } void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - float sp14[][6] = { - { - 600, 1, 0.95, 0.8, 1, 0 - }, - { - 600, 1, 0.6, 0.9, 0.3, 0 - }, - { - 13, 1, 1, 1, 0.5, 0 - }, - }; - Vec sp8; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 1; - temp_r31->unk2C = sp14[particle->unk_02][0]; - temp_r31->unk40.r = 255*sp14[particle->unk_02][1]; - temp_r31->unk40.g = 255*sp14[particle->unk_02][2]; - temp_r31->unk40.b = 255*sp14[particle->unk_02][3]; - temp_r31->unk40.a = 255*sp14[particle->unk_02][4]; - temp_f31 = -70; - temp_f30 = -10; - temp_r31->unk08.x = sind(temp_f30)*cosd(temp_f31); - temp_r31->unk08.y = -sind(temp_f31); - temp_r31->unk08.z = cosd(temp_f30)*cosd(temp_f31); - } - } else { - particle->unk_00++; - if(particle->unk_00 < 339.0f) { - return; - } - if(particle->unk_00 >= 600.0f) { - particle->unk_00 = 601; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } else { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 == 0) { - continue; - } - sp8.x = sind(CRot.y)*cosd(CRot.x); - sp8.y = -sind(CRot.x); - sp8.z = cosd(CRot.y)*cosd(CRot.x); - if(particle->unk_02 < 2) { - temp_f31 = 4500; - temp_r31->unk34.x = (Center.x+(temp_r31->unk08.x*temp_f31))+(sp8.x*CZoom); - temp_r31->unk34.y = (Center.y+(temp_r31->unk08.y*temp_f31))+(sp8.y*CZoom); - temp_r31->unk34.z = (Center.z+(temp_r31->unk08.z*temp_f31))+(sp8.z*CZoom); - if(particle->unk_02 != 0) { - temp_f31 = -((sp8.x*temp_r31->unk08.x)+(sp8.y*temp_r31->unk08.y)+(sp8.z*temp_r31->unk08.z)); - if(temp_f31 > 0.77f) { - temp_f30 = (1.0f/0.23f)*(temp_f31-0.77f); - temp_r31->unk2C = 1400*temp_f30; - temp_r31->unk40.a = (32.0f*temp_f30)+16.0f; - } else { - temp_r31->unk2C = 0; - } - } - } else { - temp_f31 = CZoom-10; - temp_r31->unk34.x = (sp8.x*temp_f31)+Center.x; - temp_r31->unk34.y = (sp8.y*temp_f31)+Center.y; - temp_r31->unk34.z = (sp8.z*temp_f31)+Center.z; - temp_f31 = -((sp8.x*temp_r31->unk08.x)+(sp8.y*temp_r31->unk08.y)+(sp8.z*temp_r31->unk08.z)); - if(temp_f31 > 0.9f) { - temp_f30 = 10.0f*(temp_f31-0.9f); - temp_r31->unk40.a = temp_f30*210.0f; - } else { - temp_r31->unk40.a = 0; - } - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } - } + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + float sp14[][6] = { + { 600, 1, 0.95, 0.8, 1, 0 }, + { 600, 1, 0.6, 0.9, 0.3, 0 }, + { 13, 1, 1, 1, 0.5, 0 }, + }; + Vec sp8; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 1; + temp_r31->unk2C = sp14[particle->unk_02][0]; + temp_r31->unk40.r = 255 * sp14[particle->unk_02][1]; + temp_r31->unk40.g = 255 * sp14[particle->unk_02][2]; + temp_r31->unk40.b = 255 * sp14[particle->unk_02][3]; + temp_r31->unk40.a = 255 * sp14[particle->unk_02][4]; + temp_f31 = -70; + temp_f30 = -10; + temp_r31->unk08.x = sind(temp_f30) * cosd(temp_f31); + temp_r31->unk08.y = -sind(temp_f31); + temp_r31->unk08.z = cosd(temp_f30) * cosd(temp_f31); + } + } + else { + particle->unk_00++; + if (particle->unk_00 < 339.0f) { + return; + } + if (particle->unk_00 >= 600.0f) { + particle->unk_00 = 601; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + else { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 == 0) { + continue; + } + sp8.x = sind(CRot.y) * cosd(CRot.x); + sp8.y = -sind(CRot.x); + sp8.z = cosd(CRot.y) * cosd(CRot.x); + if (particle->unk_02 < 2) { + temp_f31 = 4500; + temp_r31->unk34.x = (Center.x + (temp_r31->unk08.x * temp_f31)) + (sp8.x * CZoom); + temp_r31->unk34.y = (Center.y + (temp_r31->unk08.y * temp_f31)) + (sp8.y * CZoom); + temp_r31->unk34.z = (Center.z + (temp_r31->unk08.z * temp_f31)) + (sp8.z * CZoom); + if (particle->unk_02 != 0) { + temp_f31 = -((sp8.x * temp_r31->unk08.x) + (sp8.y * temp_r31->unk08.y) + (sp8.z * temp_r31->unk08.z)); + if (temp_f31 > 0.77f) { + temp_f30 = (1.0f / 0.23f) * (temp_f31 - 0.77f); + temp_r31->unk2C = 1400 * temp_f30; + temp_r31->unk40.a = (32.0f * temp_f30) + 16.0f; + } + else { + temp_r31->unk2C = 0; + } + } + } + else { + temp_f31 = CZoom - 10; + temp_r31->unk34.x = (sp8.x * temp_f31) + Center.x; + temp_r31->unk34.y = (sp8.y * temp_f31) + Center.y; + temp_r31->unk34.z = (sp8.z * temp_f31) + Center.z; + temp_f31 = -((sp8.x * temp_r31->unk08.x) + (sp8.y * temp_r31->unk08.y) + (sp8.z * temp_r31->unk08.z)); + if (temp_f31 > 0.9f) { + temp_f30 = 10.0f * (temp_f31 - 0.9f); + temp_r31->unk40.a = temp_f30 * 210.0f; + } + else { + temp_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } + } } void fn_1_AFF4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r30; - s32 temp_r29; - Vec sp20; - Vec sp14; - Vec sp8; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_f31 = -70; - temp_f30 = -10; - particle->unk_04.x = sind(temp_f30)*cosd(temp_f31); - particle->unk_04.y = -sind(temp_f31); - particle->unk_04.z = cosd(temp_f30)*cosd(temp_f31); - temp_f31 = 0; - temp_r30 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - temp_r30->unk00 = 1; - temp_f31 += 1.0f/particle->unk_30; - temp_r30->unk2C = 40.0f+((1.0f-temp_f31)*(100.0f+frandmod(1000))); - temp_r30->unk40.r = frandmod(127)+128; - temp_r30->unk40.g = frandmod(127)+128; - temp_r30->unk40.b = frandmod(127)+128; - temp_r30->unk40.a = frandmod(16)+16; - } - } else { - particle->unk_00++; - if(particle->unk_00 < 339.0f) { - return; - } - if(particle->unk_00 >= 600.0f) { - particle->unk_00 = 601; - temp_r30 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - temp_r30->unk00 = 0; - temp_r30->unk2C = 0; - temp_r30->unk40.a = 0; - } - } else { - sp20.x = sind(CRot.y)*cosd(CRot.x); - sp20.y = -sind(CRot.x); - sp20.z = cosd(CRot.y)*cosd(CRot.x); - temp_f31 = -((-particle->unk_04.x*-sp20.x)+(-particle->unk_04.y*-sp20.y)+(-particle->unk_04.z*-sp20.z)); - sp14.x = -sp20.x+(-2.0f*particle->unk_04.x*temp_f31); - sp14.y = -sp20.y+(-2.0f*particle->unk_04.y*temp_f31); - sp14.z = -sp20.z+(-2.0f*particle->unk_04.z*temp_f31); - temp_f31 = 4500; - sp8.x = (Center.x+(particle->unk_04.x*temp_f31))+(sp20.x*CZoom); - sp8.y = (Center.y+(particle->unk_04.y*temp_f31))+(sp20.y*CZoom); - sp8.z = (Center.z+(particle->unk_04.z*temp_f31))+(sp20.z*CZoom); - temp_r30 = particle->unk_48; - temp_f30 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - if(temp_r30->unk00_s16 == 0) { - continue; - } - temp_f30 += 1.0f/particle->unk_30; - temp_f31 = 10.0f*(430.0f*(1.0f-((1.0f-temp_f30)*(1.0f-temp_f30)))); - temp_r30->unk34.x = sp8.x+(sp14.x*temp_f31); - temp_r30->unk34.y = sp8.y+(sp14.y*temp_f31); - temp_r30->unk34.z = sp8.z+(sp14.z*temp_f31); - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } - } + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r30; + s32 temp_r29; + Vec sp20; + Vec sp14; + Vec sp8; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_f31 = -70; + temp_f30 = -10; + particle->unk_04.x = sind(temp_f30) * cosd(temp_f31); + particle->unk_04.y = -sind(temp_f31); + particle->unk_04.z = cosd(temp_f30) * cosd(temp_f31); + temp_f31 = 0; + temp_r30 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { + temp_r30->unk00 = 1; + temp_f31 += 1.0f / particle->unk_30; + temp_r30->unk2C = 40.0f + ((1.0f - temp_f31) * (100.0f + frandmod(1000))); + temp_r30->unk40.r = frandmod(127) + 128; + temp_r30->unk40.g = frandmod(127) + 128; + temp_r30->unk40.b = frandmod(127) + 128; + temp_r30->unk40.a = frandmod(16) + 16; + } + } + else { + particle->unk_00++; + if (particle->unk_00 < 339.0f) { + return; + } + if (particle->unk_00 >= 600.0f) { + particle->unk_00 = 601; + temp_r30 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { + temp_r30->unk00 = 0; + temp_r30->unk2C = 0; + temp_r30->unk40.a = 0; + } + } + else { + sp20.x = sind(CRot.y) * cosd(CRot.x); + sp20.y = -sind(CRot.x); + sp20.z = cosd(CRot.y) * cosd(CRot.x); + temp_f31 = -((-particle->unk_04.x * -sp20.x) + (-particle->unk_04.y * -sp20.y) + (-particle->unk_04.z * -sp20.z)); + sp14.x = -sp20.x + (-2.0f * particle->unk_04.x * temp_f31); + sp14.y = -sp20.y + (-2.0f * particle->unk_04.y * temp_f31); + sp14.z = -sp20.z + (-2.0f * particle->unk_04.z * temp_f31); + temp_f31 = 4500; + sp8.x = (Center.x + (particle->unk_04.x * temp_f31)) + (sp20.x * CZoom); + sp8.y = (Center.y + (particle->unk_04.y * temp_f31)) + (sp20.y * CZoom); + sp8.z = (Center.z + (particle->unk_04.z * temp_f31)) + (sp20.z * CZoom); + temp_r30 = particle->unk_48; + temp_f30 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { + if (temp_r30->unk00_s16 == 0) { + continue; + } + temp_f30 += 1.0f / particle->unk_30; + temp_f31 = 10.0f * (430.0f * (1.0f - ((1.0f - temp_f30) * (1.0f - temp_f30)))); + temp_r30->unk34.x = sp8.x + (sp14.x * temp_f31); + temp_r30->unk34.y = sp8.y + (sp14.y * temp_f31); + temp_r30->unk34.z = sp8.z + (sp14.z * temp_f31); + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } + } } void fn_1_B700(s16 arg0, u32 arg1) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r29; - s32 temp_r27; - float sp1C[] = { - 0.4f, 0.21f, 0.16f, 1.0f - }; - float spC[] = { - 0.15f, 0.6f, 1.3f, 1.0f - }; - s16 sp2C[] = { - 1, 0, - 2, 0, - 0, 1, - 2, 0, - 0, 1, - 2, 1, - 0, 0, - 1, 2, - 0, 1, - 2, -1 - }; - arg1 &= 0x3; - temp_r30 = Hu3DData[arg0].unk_120; - temp_r30->unk_00 = 1; - temp_f31 = -70; - temp_f30 = -10; - temp_r30->unk_04.x = sind(temp_f30)*cosd(temp_f31); - temp_r30->unk_04.y = -sind(temp_f31); - temp_r30->unk_04.z = cosd(temp_f30)*cosd(temp_f31); - temp_r31 = temp_r30->unk_48; - for(temp_r27=0; temp_r27unk_30; temp_r27++, temp_r31++) { - temp_r31->unk00 = 1; - temp_r31->unk02 = arg1; - for(temp_r29=0; sp2C[temp_r29] >= 0; temp_r29++) { - if(arg1 != sp2C[temp_r29]) { - continue; - } - if(lbl_1_bss_A4[temp_r29] == NULL) { - break; - } - } - if(sp2C[temp_r29] < 0) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - continue; - } - lbl_1_bss_A4[temp_r29] = temp_r31; - lbl_1_bss_A0++; - temp_r31->unk2C = 800.0f*(spC[arg1]*(1.0f+((0.7f/1000.0f)*frandmod(1000)))); - temp_r31->unk40.r = frandmod(160)+32; - temp_r31->unk40.g = frandmod(160)+32; - temp_r31->unk40.b = frandmod(160)+32; - temp_r31->unk40.a = (255.0f*sp1C[arg1])-frandmod(16); - } - lbl_1_bss_94[arg1] = temp_r30->unk_48; - lbl_1_bss_88[arg1] = temp_r30->unk_30; + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r29; + s32 temp_r27; + float sp1C[] = { 0.4f, 0.21f, 0.16f, 1.0f }; + float spC[] = { 0.15f, 0.6f, 1.3f, 1.0f }; + s16 sp2C[] = { 1, 0, 2, 0, 0, 1, 2, 0, 0, 1, 2, 1, 0, 0, 1, 2, 0, 1, 2, -1 }; + arg1 &= 0x3; + temp_r30 = Hu3DData[arg0].unk_120; + temp_r30->unk_00 = 1; + temp_f31 = -70; + temp_f30 = -10; + temp_r30->unk_04.x = sind(temp_f30) * cosd(temp_f31); + temp_r30->unk_04.y = -sind(temp_f31); + temp_r30->unk_04.z = cosd(temp_f30) * cosd(temp_f31); + temp_r31 = temp_r30->unk_48; + for (temp_r27 = 0; temp_r27 < temp_r30->unk_30; temp_r27++, temp_r31++) { + temp_r31->unk00 = 1; + temp_r31->unk02 = arg1; + for (temp_r29 = 0; sp2C[temp_r29] >= 0; temp_r29++) { + if (arg1 != sp2C[temp_r29]) { + continue; + } + if (lbl_1_bss_A4[temp_r29] == NULL) { + break; + } + } + if (sp2C[temp_r29] < 0) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + continue; + } + lbl_1_bss_A4[temp_r29] = temp_r31; + lbl_1_bss_A0++; + temp_r31->unk2C = 800.0f * (spC[arg1] * (1.0f + ((0.7f / 1000.0f) * frandmod(1000)))); + temp_r31->unk40.r = frandmod(160) + 32; + temp_r31->unk40.g = frandmod(160) + 32; + temp_r31->unk40.b = frandmod(160) + 32; + temp_r31->unk40.a = (255.0f * sp1C[arg1]) - frandmod(16); + } + lbl_1_bss_94[arg1] = temp_r30->unk_48; + lbl_1_bss_88[arg1] = temp_r30->unk_30; } void fn_1_BB94(void) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r30; - float sp18[] = { - 0.02f, 0.08f, 0.07f, 0.5f - }; - float sp8[] = { - 0.0009f, 0.00020000001f, 0.00001f, 0.0005f - }; - temp_f31 = 0.1f; - for(temp_r30=0; temp_r30unk02]*(1.0f+(frandmod(1000)*sp8[temp_r31->unk02]))); - temp_f31 += temp_f30; - temp_r31->unk14.x = temp_f31; - temp_f31 += temp_f30; - } - temp_f31 = 1.0f/temp_f31; - for(temp_r30=0; temp_r30unk14.x *= temp_f31; - temp_r31->unk2C *= (0.8f-(0.4f*temp_r31->unk14.x)); - temp_r31->unk14.x = 10.0f*(400.0f*temp_r31->unk14.x); - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30]*sizeof(HsfanimStruct01)); - } - PPCSync(); + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r30; + float sp18[] = { 0.02f, 0.08f, 0.07f, 0.5f }; + float sp8[] = { 0.0009f, 0.00020000001f, 0.00001f, 0.0005f }; + temp_f31 = 0.1f; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_f30 = 0.5f * (sp18[temp_r31->unk02] * (1.0f + (frandmod(1000) * sp8[temp_r31->unk02]))); + temp_f31 += temp_f30; + temp_r31->unk14.x = temp_f31; + temp_f31 += temp_f30; + } + temp_f31 = 1.0f / temp_f31; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_r31->unk14.x *= temp_f31; + temp_r31->unk2C *= (0.8f - (0.4f * temp_r31->unk14.x)); + temp_r31->unk14.x = 10.0f * (400.0f * temp_r31->unk14.x); + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30] * sizeof(HsfanimStruct01)); + } + PPCSync(); } void fn_1_BDE0(void) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r30; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - temp_r31 = lbl_1_bss_A4[0]; - temp_r31->unk00_s16++; - if(temp_r31->unk00_s16 < 339.0f) { - return; - } - if(temp_r31->unk00_s16 >= 600.0f) { - temp_r31->unk00_s16 = 601; - for(temp_r30=0; temp_r30unk00_s16 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - return; - } - sp2C.x = sind(CRot.y)*cosd(CRot.x); - sp2C.y = -sind(CRot.x); - sp2C.z = cosd(CRot.y)*cosd(CRot.x); - temp_f31 = -70; - temp_f30 = -10; - sp20.x = sind(temp_f30)*cosd(temp_f31); - sp20.y = -sind(temp_f31); - sp20.z = cosd(temp_f30)*cosd(temp_f31); - temp_f31 = 4500; - sp8.x = (Center.x+(sp20.x*temp_f31))+(sp2C.x*CZoom); - sp8.y = (Center.y+(sp20.y*temp_f31))+(sp2C.y*CZoom); - sp8.z = (Center.z+(sp20.z*temp_f31))+(sp2C.z*CZoom); - temp_f31 = -((-sp20.x*-sp2C.x)+(-sp20.y*-sp2C.y)+(-sp20.z*-sp2C.z)); - sp14.x = -sp2C.x+(-2.0f*sp20.x*temp_f31); - sp14.y = -sp2C.y+(-2.0f*sp20.y*temp_f31); - sp14.z = -sp2C.z+(-2.0f*sp20.z*temp_f31); - if(temp_f31 > 0.5f) { - temp_f30 = 3.0f-(2.0f*temp_f31); - } else { - temp_f30 = 1.0f; - } - for(temp_r30=0; temp_r30unk34.x = sp8.x+(temp_f30*(sp14.x*temp_r31->unk14.x)); - temp_r31->unk34.y = sp8.y+(temp_f30*(sp14.y*temp_r31->unk14.x)); - temp_r31->unk34.z = sp8.z+(temp_f30*(sp14.z*temp_r31->unk14.x)); - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30]*sizeof(HsfanimStruct01)); - } - PPCSync(); + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r30; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + temp_r31 = lbl_1_bss_A4[0]; + temp_r31->unk00_s16++; + if (temp_r31->unk00_s16 < 339.0f) { + return; + } + if (temp_r31->unk00_s16 >= 600.0f) { + temp_r31->unk00_s16 = 601; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_r31->unk00_s16 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + return; + } + sp2C.x = sind(CRot.y) * cosd(CRot.x); + sp2C.y = -sind(CRot.x); + sp2C.z = cosd(CRot.y) * cosd(CRot.x); + temp_f31 = -70; + temp_f30 = -10; + sp20.x = sind(temp_f30) * cosd(temp_f31); + sp20.y = -sind(temp_f31); + sp20.z = cosd(temp_f30) * cosd(temp_f31); + temp_f31 = 4500; + sp8.x = (Center.x + (sp20.x * temp_f31)) + (sp2C.x * CZoom); + sp8.y = (Center.y + (sp20.y * temp_f31)) + (sp2C.y * CZoom); + sp8.z = (Center.z + (sp20.z * temp_f31)) + (sp2C.z * CZoom); + temp_f31 = -((-sp20.x * -sp2C.x) + (-sp20.y * -sp2C.y) + (-sp20.z * -sp2C.z)); + sp14.x = -sp2C.x + (-2.0f * sp20.x * temp_f31); + sp14.y = -sp2C.y + (-2.0f * sp20.y * temp_f31); + sp14.z = -sp2C.z + (-2.0f * sp20.z * temp_f31); + if (temp_f31 > 0.5f) { + temp_f30 = 3.0f - (2.0f * temp_f31); + } + else { + temp_f30 = 1.0f; + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_r31->unk34.x = sp8.x + (temp_f30 * (sp14.x * temp_r31->unk14.x)); + temp_r31->unk34.y = sp8.y + (temp_f30 * (sp14.y * temp_r31->unk14.x)); + temp_r31->unk34.z = sp8.z + (temp_f30 * (sp14.z * temp_r31->unk14.x)); + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30] * sizeof(HsfanimStruct01)); + } + PPCSync(); } void fn_1_C3C0(Vec *arg0, Vec *arg1) { - arg0->x = lbl_1_bss_110->trans.x; - arg0->y = lbl_1_bss_110->trans.y; - arg0->z = lbl_1_bss_110->trans.z; - arg1->x = lbl_1_bss_110->rot.x; - arg1->y = lbl_1_bss_110->rot.y; - arg1->z = lbl_1_bss_110->rot.z; + arg0->x = lbl_1_bss_110->trans.x; + arg0->y = lbl_1_bss_110->trans.y; + arg0->z = lbl_1_bss_110->trans.z; + arg1->x = lbl_1_bss_110->rot.x; + arg1->y = lbl_1_bss_110->rot.y; + arg1->z = lbl_1_bss_110->rot.z; } u32 fn_1_C43C(void) { - return lbl_1_bss_10C; -} \ No newline at end of file + return lbl_1_bss_10C; +} diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index 63e82391..d1bceec4 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -1,14 +1,14 @@ -#include "game/object.h" -#include "game/objsub.h" -#include "game/wipe.h" #include "game/chrman.h" #include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/sprite.h" #include "game/audio.h" @@ -16,29 +16,26 @@ #include "REL/m408Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" #include "rel_sqrt_consts.h" s32 lbl_1_data_0[] = { - 0x610000, - 0x610001, - 0x610002, - 0x610003, - 0x610004, - 0x610005, - 0x610006, - 0x610007 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), }; Vec lbl_1_data_20 = { 150, 1250, 150 }; Vec lbl_1_data_2C = { -0.1, -0.8, 0.1 }; GXColor lbl_1_data_38 = { 255, 255, 255, 255 }; -Vec lbl_1_data_3C[] = { - { 0, -2000, 0 }, - { 0, 1, 0} -}; +Vec lbl_1_data_3C[] = { { 0, -2000, 0 }, { 0, 1, 0 } }; GXColor lbl_1_data_54 = { 255, 255, 255, 255 }; Vec lbl_1_data_58 = { 50, 15000, 50 }; Vec lbl_1_data_64 = { 0, 1, 0 }; @@ -81,53 +78,53 @@ void fn_1_25D4(Process *objman); void ObjectSetup(void) { - s32 temp_r31; - Process *temp_r30; - s16 temp_r29; - LightData *temp_r28; - Vec sp14 = { 0, 0, 0 }; - Vec sp8 = { 0, 0, -1 }; - HuAudSndGrpSet(33); - HuAudFXListnerSetEX(&sp14, &sp8, 6000, 3656.6667f, 0, 300, 300); - lbl_1_bss_1C = lbl_1_bss_18 = lbl_1_bss_14 = lbl_1_bss_10 = -1; - lbl_1_bss_C = 0; - lbl_1_bss_44 = 1; - lbl_1_bss_40 = 0; - temp_r29 = Hu3DGLightCreateV(&lbl_1_data_20, &lbl_1_data_2C, &lbl_1_data_38); - Hu3DGLightInfinitytSet(temp_r29); - temp_r28 = &Hu3DGlobalLight[temp_r29]; - temp_r28->unk_00 |= 0x8000; - Hu3DShadowCreate(30, 100, 25000); - Hu3DShadowTPLvlSet(0.3f); - Hu3DShadowPosSet(&lbl_1_data_58, &lbl_1_data_64, &lbl_1_data_70); - temp_r30 = omInitObjMan(50, 8192); - omGameSysInit(temp_r30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - CRotM[temp_r31].x = 324.3f; - CRotM[temp_r31].y = 0; - CRotM[temp_r31].z = 0; - CenterM[temp_r31].x = 0; - CenterM[temp_r31].y = 130; - CenterM[temp_r31].z = 224; - CZoomM[temp_r31] = 220; - } - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, -1, 5, 25000, (4.0f/3.0f)); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_1_bss_70 = omAddObjEx(temp_r30, 32730, 0, 0, -1, omOutView); - lbl_1_bss_62 = 0; - lbl_1_bss_60 = 0; - lbl_1_bss_48 = 0; - lbl_1_bss_78 = omAddObjEx(temp_r30, 10, 0, 0, -1, fn_1_51C); - lbl_1_bss_3C = 0; - for(temp_r31=0; temp_r31<5; temp_r31++) { - lbl_1_bss_28[temp_r31] = -1; - } - lbl_1_bss_74 = omAddObjEx(temp_r30, 50, 0, 0, -1, fn_1_9F0); - fn_1_25D4(temp_r30); - fn_1_C44C(temp_r30); - fn_1_118D0(temp_r30); - fn_1_8958(temp_r30); + s32 temp_r31; + Process *temp_r30; + s16 temp_r29; + LightData *temp_r28; + Vec sp14 = { 0, 0, 0 }; + Vec sp8 = { 0, 0, -1 }; + HuAudSndGrpSet(33); + HuAudFXListnerSetEX(&sp14, &sp8, 6000, 3656.6667f, 0, 300, 300); + lbl_1_bss_1C = lbl_1_bss_18 = lbl_1_bss_14 = lbl_1_bss_10 = -1; + lbl_1_bss_C = 0; + lbl_1_bss_44 = 1; + lbl_1_bss_40 = 0; + temp_r29 = Hu3DGLightCreateV(&lbl_1_data_20, &lbl_1_data_2C, &lbl_1_data_38); + Hu3DGLightInfinitytSet(temp_r29); + temp_r28 = &Hu3DGlobalLight[temp_r29]; + temp_r28->unk_00 |= 0x8000; + Hu3DShadowCreate(30, 100, 25000); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowPosSet(&lbl_1_data_58, &lbl_1_data_64, &lbl_1_data_70); + temp_r30 = omInitObjMan(50, 8192); + omGameSysInit(temp_r30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + CRotM[temp_r31].x = 324.3f; + CRotM[temp_r31].y = 0; + CRotM[temp_r31].z = 0; + CenterM[temp_r31].x = 0; + CenterM[temp_r31].y = 130; + CenterM[temp_r31].z = 224; + CZoomM[temp_r31] = 220; + } + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1, 5, 25000, (4.0f / 3.0f)); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_1_bss_70 = omAddObjEx(temp_r30, 32730, 0, 0, -1, omOutView); + lbl_1_bss_62 = 0; + lbl_1_bss_60 = 0; + lbl_1_bss_48 = 0; + lbl_1_bss_78 = omAddObjEx(temp_r30, 10, 0, 0, -1, fn_1_51C); + lbl_1_bss_3C = 0; + for (temp_r31 = 0; temp_r31 < 5; temp_r31++) { + lbl_1_bss_28[temp_r31] = -1; + } + lbl_1_bss_74 = omAddObjEx(temp_r30, 50, 0, 0, -1, fn_1_9F0); + fn_1_25D4(temp_r30); + fn_1_C44C(temp_r30); + fn_1_118D0(temp_r30); + fn_1_8958(temp_r30); } void fn_1_56C(omObjData *object); @@ -135,95 +132,94 @@ void fn_1_9A4(omObjData *object); void fn_1_51C(omObjData *object) { - lbl_1_bss_66 = 30; - lbl_1_bss_64 = 60; - lbl_1_bss_4C = 4; - lbl_1_bss_62 = 0; - object->func = fn_1_56C; + lbl_1_bss_66 = 30; + lbl_1_bss_64 = 60; + lbl_1_bss_4C = 4; + lbl_1_bss_62 = 0; + object->func = fn_1_56C; } - void fn_1_56C(omObjData *object) { - s32 temp_r30 = 0; - Vec sp14; - Vec sp8; - switch(lbl_1_bss_62) { - case 0: - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_44 = 0; - Hu3DCameraPerspectiveSet(1, 50, 5, 25000, (4.0f/3.0f)); - lbl_1_bss_62 = 1; - break; - - case 1: - if(fn_1_C43C() == 5) { - lbl_1_bss_62 = 2; - } - break; - - case 2: - if(fn_1_6878() == 5) { - object->work[0] = 0; - lbl_1_bss_62 = 3; - } - break; - - case 3: - if(lbl_1_bss_4C == 0 || WipeStatGet() == 0) { - if(++object->work[0] >= 210.0f) { - lbl_1_bss_62 = 4; - } - } - break; - - case 4: - lbl_1_bss_62 = 5; - break; - - case 5: - if(fn_1_C43C() == 5) { - temp_r30 = 1; - lbl_1_bss_62 = 5; - } - break; - } - sp8.x = -(sind(CRot.y)*cosd(CRot.x)); - sp8.y = -(-sind(CRot.x)); - sp8.z = -(cosd(CRot.y)*cosd(CRot.x)); - sp14.x = Center.x-(sp8.x*CZoom); - sp14.y = Center.y-(sp8.y*CZoom); - sp14.z = Center.z-(sp8.z*CZoom); - HuAudFXListnerUpdate(&sp14, &sp8); - if((omSysExitReq && !WipeStatGet()) && !lbl_1_bss_44 || temp_r30) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_44 = 1; - lbl_1_bss_40 = 1; - if(lbl_1_bss_10 >= 0) { - HuAudFXFadeOut(lbl_1_bss_10, 30); - } - object->func = fn_1_9A4; - } + s32 temp_r30 = 0; + Vec sp14; + Vec sp8; + switch (lbl_1_bss_62) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_44 = 0; + Hu3DCameraPerspectiveSet(1, 50, 5, 25000, (4.0f / 3.0f)); + lbl_1_bss_62 = 1; + break; + + case 1: + if (fn_1_C43C() == 5) { + lbl_1_bss_62 = 2; + } + break; + + case 2: + if (fn_1_6878() == 5) { + object->work[0] = 0; + lbl_1_bss_62 = 3; + } + break; + + case 3: + if (lbl_1_bss_4C == 0 || WipeStatGet() == 0) { + if (++object->work[0] >= 210.0f) { + lbl_1_bss_62 = 4; + } + } + break; + + case 4: + lbl_1_bss_62 = 5; + break; + + case 5: + if (fn_1_C43C() == 5) { + temp_r30 = 1; + lbl_1_bss_62 = 5; + } + break; + } + sp8.x = -(sind(CRot.y) * cosd(CRot.x)); + sp8.y = -(-sind(CRot.x)); + sp8.z = -(cosd(CRot.y) * cosd(CRot.x)); + sp14.x = Center.x - (sp8.x * CZoom); + sp14.y = Center.y - (sp8.y * CZoom); + sp14.z = Center.z - (sp8.z * CZoom); + HuAudFXListnerUpdate(&sp14, &sp8); + if ((omSysExitReq && !WipeStatGet()) && !lbl_1_bss_44 || temp_r30) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_44 = 1; + lbl_1_bss_40 = 1; + if (lbl_1_bss_10 >= 0) { + HuAudFXFadeOut(lbl_1_bss_10, 30); + } + object->func = fn_1_9A4; + } } void fn_1_9A4(omObjData *object) { - if(!WipeStatGet()) { - CharModelKill(-1); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - } + if (!WipeStatGet()) { + CharModelKill(-1); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } } void fn_1_A40(omObjData *object); void fn_1_9F0(omObjData *object) { - lbl_1_bss_54 = 12000; - lbl_1_bss_50 = 0; - lbl_1_bss_60 = 0; - object->func = fn_1_A40; + lbl_1_bss_54 = 12000; + lbl_1_bss_50 = 0; + lbl_1_bss_60 = 0; + object->func = fn_1_A40; } void fn_1_CD8(omObjData *object); @@ -232,41 +228,41 @@ u32 fn_1_6868(void); void fn_1_A40(omObjData *object) { - if(fn_1_6868() != 2) { - return; - } - switch(lbl_1_bss_60) { - case 0: - Hu3DCameraPerspectiveSet(1, 35, 5, 25000, (4.0f/3.0f)); - CRot.x = -80.5f; - CRot.y = CRot.z = 0; - Center.x = 0; - Center.y = lbl_1_bss_54; - Center.z = 0; - CZoom = 260; - lbl_1_bss_60 = 1; - break; - - case 1: - lbl_1_bss_24 = MGSeqStartCreate(); - MGSeqPosSet(lbl_1_bss_24, 320, 240); - lbl_1_bss_60 = 2; + if (fn_1_6868() != 2) { + return; + } + switch (lbl_1_bss_60) { + case 0: + Hu3DCameraPerspectiveSet(1, 35, 5, 25000, (4.0f / 3.0f)); + CRot.x = -80.5f; + CRot.y = CRot.z = 0; + Center.x = 0; + Center.y = lbl_1_bss_54; + Center.z = 0; + CZoom = 260; + lbl_1_bss_60 = 1; + break; - - case 2: - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400.0f;; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - if(lbl_1_bss_1C < 0 && (MGSeqStatGet(lbl_1_bss_24) & 0x10)) { - lbl_1_bss_1C = HuAudSeqPlay(74); - } - if(MGSeqStatGet(lbl_1_bss_24) == 0) { - lbl_1_bss_60 = 3; - object->func = fn_1_CD8; - } - - break; - } + case 1: + lbl_1_bss_24 = MGSeqStartCreate(); + MGSeqPosSet(lbl_1_bss_24, 320, 240); + lbl_1_bss_60 = 2; + + case 2: + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400.0f; + ; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + if (lbl_1_bss_1C < 0 && (MGSeqStatGet(lbl_1_bss_24) & 0x10)) { + lbl_1_bss_1C = HuAudSeqPlay(74); + } + if (MGSeqStatGet(lbl_1_bss_24) == 0) { + lbl_1_bss_60 = 3; + object->func = fn_1_CD8; + } + + break; + } } void fn_1_8020(void); @@ -277,286 +273,285 @@ void fn_1_12A0(omObjData *object); void fn_1_CD8(omObjData *object) { - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400.0f; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - fn_1_8020(); - if(lbl_1_bss_4C == 0) { - lbl_1_bss_48 = 1; - lbl_1_bss_20 = MGSeqFinishCreate(); - MGSeqPosSet(lbl_1_bss_20, 320, 240); - HuAudSeqFadeOut(lbl_1_bss_1C, 100); - object->func = fn_1_12A0; - } else { - if(lbl_1_bss_54 <= (-lbl_1_bss_50*0.5f)) { - lbl_1_bss_20 = MGSeqFinishCreate(); - MGSeqPosSet(lbl_1_bss_20, 320, 240); - HuAudSeqFadeOut(lbl_1_bss_1C, 100); - lbl_1_bss_50 = -120.00001f; - lbl_1_bss_54 = -lbl_1_bss_50*2.0f; - lbl_1_bss_60 = 4; - object->func = fn_1_EF8; - - } - } + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400.0f; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + fn_1_8020(); + if (lbl_1_bss_4C == 0) { + lbl_1_bss_48 = 1; + lbl_1_bss_20 = MGSeqFinishCreate(); + MGSeqPosSet(lbl_1_bss_20, 320, 240); + HuAudSeqFadeOut(lbl_1_bss_1C, 100); + object->func = fn_1_12A0; + } + else { + if (lbl_1_bss_54 <= (-lbl_1_bss_50 * 0.5f)) { + lbl_1_bss_20 = MGSeqFinishCreate(); + MGSeqPosSet(lbl_1_bss_20, 320, 240); + HuAudSeqFadeOut(lbl_1_bss_1C, 100); + lbl_1_bss_50 = -120.00001f; + lbl_1_bss_54 = -lbl_1_bss_50 * 2.0f; + lbl_1_bss_60 = 4; + object->func = fn_1_EF8; + } + } } void fn_1_18C0(omObjData *object); void fn_1_EF8(omObjData *object) { - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - float temp_f29; - if(lbl_1_bss_10 < 0) { - lbl_1_bss_10 = HuAudFXPlay(1360); - } - sp30.x = 0; - sp30.y = 50; - sp30.z = 230; - temp_f29 = atan2d(lbl_1_bss_54-sp30.y, sp30.z); - if(temp_f29 < 0.0f) { - temp_f29 += 360.0f; - } - Center.x = 0; - Center.y = lbl_1_bss_54; - Center.z = 0; - CRot.x = temp_f29; - CZoom = sqrtf((sp30.z*sp30.z)+((lbl_1_bss_54-sp30.y)*(lbl_1_bss_54-sp30.y))); - spC.x = 0; - spC.z = 0; - sp24.x = 200; - sp24.z = 200; - sp24.y = 800; - spC.y = 20; - sp18.x = sp18.y = 0; - sp18.z = 1; - Hu3DShadowPosSet(&sp24, &sp18, &spC); - Hu3DShadowTPLvlSet(0.5f); - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - if(lbl_1_bss_54 <= 0.0f) { - lbl_1_bss_54 = 0; - lbl_1_bss_60 = 5; - object->func = fn_1_18C0; - } + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float temp_f29; + if (lbl_1_bss_10 < 0) { + lbl_1_bss_10 = HuAudFXPlay(1360); + } + sp30.x = 0; + sp30.y = 50; + sp30.z = 230; + temp_f29 = atan2d(lbl_1_bss_54 - sp30.y, sp30.z); + if (temp_f29 < 0.0f) { + temp_f29 += 360.0f; + } + Center.x = 0; + Center.y = lbl_1_bss_54; + Center.z = 0; + CRot.x = temp_f29; + CZoom = sqrtf((sp30.z * sp30.z) + ((lbl_1_bss_54 - sp30.y) * (lbl_1_bss_54 - sp30.y))); + spC.x = 0; + spC.z = 0; + sp24.x = 200; + sp24.z = 200; + sp24.y = 800; + spC.y = 20; + sp18.x = sp18.y = 0; + sp18.z = 1; + Hu3DShadowPosSet(&sp24, &sp18, &spC); + Hu3DShadowTPLvlSet(0.5f); + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + if (lbl_1_bss_54 <= 0.0f) { + lbl_1_bss_54 = 0; + lbl_1_bss_60 = 5; + object->func = fn_1_18C0; + } } void fn_1_148C(omObjData *object); void fn_1_12A0(omObjData *object) { - if(lbl_1_bss_54 > (-lbl_1_bss_50*0.8f)) { - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - } - if(MGSeqStatGet(lbl_1_bss_20)) { - return; - } - switch(fn_1_CE68()) { - case 0: - OSReport("Map 0\n"); - case 1: - OSReport("Map 1\n"); - if(lbl_1_bss_40 == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_44 = 1; - } - object->func = fn_1_148C; - break; - - case 2: - OSReport("Map 2\n"); - case 3: - OSReport("Map 3\n"); - break; - - case 4: - OSReport("Map 4\n"); - if(lbl_1_bss_40 == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_44 = 1; - } - object->func = fn_1_148C; - break; - } + if (lbl_1_bss_54 > (-lbl_1_bss_50 * 0.8f)) { + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + } + if (MGSeqStatGet(lbl_1_bss_20)) { + return; + } + switch (fn_1_CE68()) { + case 0: + OSReport("Map 0\n"); + case 1: + OSReport("Map 1\n"); + if (lbl_1_bss_40 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_44 = 1; + } + object->func = fn_1_148C; + break; + + case 2: + OSReport("Map 2\n"); + case 3: + OSReport("Map 3\n"); + break; + + case 4: + OSReport("Map 4\n"); + if (lbl_1_bss_40 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_44 = 1; + } + object->func = fn_1_148C; + break; + } } void fn_1_148C(omObjData *object) { - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - float temp_f29; - if(!WipeStatGet()) { - lbl_1_bss_54 = 0; - sp30.x = 0; - sp30.y = 50; - sp30.z = 230; - temp_f29 = atan2d(lbl_1_bss_54-sp30.y, sp30.z); - if(temp_f29 < 0.0f) { - temp_f29 += 360.0f; - } - Center.x = 0; - Center.y = lbl_1_bss_54; - Center.z = 0; - CRot.x = temp_f29; - CZoom = sqrtf((sp30.z*sp30.z)+((lbl_1_bss_54-sp30.y)*(lbl_1_bss_54-sp30.y))); - spC.x = 0; - spC.z = 0; - sp24.x = 200; - sp24.z = 200; - sp24.y = 800; - spC.y = 20; - sp18.x = sp18.y = 0; - sp18.z = 1; - Hu3DShadowPosSet(&sp24, &sp18, &spC); - Hu3DShadowTPLvlSet(0.5f); - fn_1_CEEC(); - if(lbl_1_bss_10 < 0) { - lbl_1_bss_10 = HuAudFXPlay(1360); - } - if(lbl_1_bss_40 == 0) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_44 = 0; - } - lbl_1_bss_60 = 5; - object->func = fn_1_18C0; - } else { - if(lbl_1_bss_54 > (-lbl_1_bss_50*0.8f)) { - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - } - } + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float temp_f29; + if (!WipeStatGet()) { + lbl_1_bss_54 = 0; + sp30.x = 0; + sp30.y = 50; + sp30.z = 230; + temp_f29 = atan2d(lbl_1_bss_54 - sp30.y, sp30.z); + if (temp_f29 < 0.0f) { + temp_f29 += 360.0f; + } + Center.x = 0; + Center.y = lbl_1_bss_54; + Center.z = 0; + CRot.x = temp_f29; + CZoom = sqrtf((sp30.z * sp30.z) + ((lbl_1_bss_54 - sp30.y) * (lbl_1_bss_54 - sp30.y))); + spC.x = 0; + spC.z = 0; + sp24.x = 200; + sp24.z = 200; + sp24.y = 800; + spC.y = 20; + sp18.x = sp18.y = 0; + sp18.z = 1; + Hu3DShadowPosSet(&sp24, &sp18, &spC); + Hu3DShadowTPLvlSet(0.5f); + fn_1_CEEC(); + if (lbl_1_bss_10 < 0) { + lbl_1_bss_10 = HuAudFXPlay(1360); + } + if (lbl_1_bss_40 == 0) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_44 = 0; + } + lbl_1_bss_60 = 5; + object->func = fn_1_18C0; + } + else { + if (lbl_1_bss_54 > (-lbl_1_bss_50 * 0.8f)) { + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + } + } } void fn_1_18C0(omObjData *object) { - if(!WipeStatGet() && lbl_1_bss_14 < 0) { - if(lbl_1_bss_C) { - lbl_1_bss_14 = HuAudSStreamPlay(1); - } else { - lbl_1_bss_14 = HuAudSStreamPlay(4); - } - } + if (!WipeStatGet() && lbl_1_bss_14 < 0) { + if (lbl_1_bss_C) { + lbl_1_bss_14 = HuAudSStreamPlay(1); + } + else { + lbl_1_bss_14 = HuAudSStreamPlay(4); + } + } } -float lbl_1_data_A0[] = { - 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7 -}; - +float lbl_1_data_A0[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 }; void fn_1_1940(Work2FAC *arg0, Vec *arg1) { - Mtx sp18; - Vec spC; - spC.x = sind(arg0->unk58.x+90.0f); - spC.y = 0; - spC.z = cosd(arg0->unk58.x+90.0f); - MTXRotAxisDeg(sp18, &spC, arg0->unk58.y); - spC.x = spC.z = 0; - spC.y = -lbl_1_data_A0[arg0->unk2]; - MTXMultVec(sp18, &spC, arg1); + Mtx sp18; + Vec spC; + spC.x = sind(arg0->unk58.x + 90.0f); + spC.y = 0; + spC.z = cosd(arg0->unk58.x + 90.0f); + MTXRotAxisDeg(sp18, &spC, arg0->unk58.y); + spC.x = spC.z = 0; + spC.y = -lbl_1_data_A0[arg0->unk2]; + MTXMultVec(sp18, &spC, arg1); } void fn_1_1A60(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) { - Mtx spC; - mtxRot(spC, arg1->x, arg1->y, arg1->z); - MTXMultVec(spC, arg2, arg3); - arg3->x += arg0->x; - arg3->y += arg0->y; - arg3->z += arg0->z; + Mtx spC; + mtxRot(spC, arg1->x, arg1->y, arg1->z); + MTXMultVec(spC, arg2, arg3); + arg3->x += arg0->x; + arg3->y += arg0->y; + arg3->z += arg0->z; } void fn_1_1AF8(Work2FAC *arg0, s32 arg1, Vec *arg2) { - float temp_f31; - float temp_f30; - temp_f30 = temp_f31 = 0; - arg2->x = (temp_f31*sind(temp_f30))+arg0->unk1C.x; - arg2->y = 15.0f+arg0->unk1C.y+temp_f31; - arg2->z = (temp_f31*cosd(temp_f30))+arg0->unk1C.z; + float temp_f31; + float temp_f30; + temp_f30 = temp_f31 = 0; + arg2->x = (temp_f31 * sind(temp_f30)) + arg0->unk1C.x; + arg2->y = 15.0f + arg0->unk1C.y + temp_f31; + arg2->z = (temp_f31 * cosd(temp_f30)) + arg0->unk1C.z; } void fn_1_1BE8(omObjData *arg0, float arg1) { - Vec sp8; - Work2FAC *temp_r31 = arg0->data; - float temp_f31 = 1.0f-arg1; - float temp_f29; - if(!temp_r31->unk8) { - return; - } - fn_1_1AF8(temp_r31, 1, &sp8); - if(fn_1_6878() >= 4) { - sp8.z += -5.0f; - } - temp_r31->unk94.x = (temp_r31->unk94.x*temp_f31)+(sp8.x*arg1); - temp_r31->unk94.y = (temp_r31->unk94.y*temp_f31)+(sp8.y*arg1); - temp_r31->unk94.z = (temp_r31->unk94.z*temp_f31)+(sp8.z*arg1); - temp_f29 = (0.1f*((temp_r31->unk8*0.5f)+0.5f))*arg1; - temp_r31->unkA0.x = temp_r31->unkC*(temp_f29+(temp_r31->unkA0.x*temp_f31)); - temp_r31->unkA0.y = temp_r31->unkC*(temp_f29+(temp_r31->unkA0.y*temp_f31)); - temp_r31->unkA0.z = temp_r31->unkC*(temp_f29+(temp_r31->unkA0.z*temp_f31)); - Hu3DModelPosSetV(arg0->model[1], &temp_r31->unk94); - Hu3DModelScaleSetV(arg0->model[1], &temp_r31->unkA0); + Vec sp8; + Work2FAC *temp_r31 = arg0->data; + float temp_f31 = 1.0f - arg1; + float temp_f29; + if (!temp_r31->unk8) { + return; + } + fn_1_1AF8(temp_r31, 1, &sp8); + if (fn_1_6878() >= 4) { + sp8.z += -5.0f; + } + temp_r31->unk94.x = (temp_r31->unk94.x * temp_f31) + (sp8.x * arg1); + temp_r31->unk94.y = (temp_r31->unk94.y * temp_f31) + (sp8.y * arg1); + temp_r31->unk94.z = (temp_r31->unk94.z * temp_f31) + (sp8.z * arg1); + temp_f29 = (0.1f * ((temp_r31->unk8 * 0.5f) + 0.5f)) * arg1; + temp_r31->unkA0.x = temp_r31->unkC * (temp_f29 + (temp_r31->unkA0.x * temp_f31)); + temp_r31->unkA0.y = temp_r31->unkC * (temp_f29 + (temp_r31->unkA0.y * temp_f31)); + temp_r31->unkA0.z = temp_r31->unkC * (temp_f29 + (temp_r31->unkA0.z * temp_f31)); + Hu3DModelPosSetV(arg0->model[1], &temp_r31->unk94); + Hu3DModelScaleSetV(arg0->model[1], &temp_r31->unkA0); } void fn_1_1E54(omObjData *object) { - Work2FAC *work = object->data; - if(work->unk8) { - work->unk94.y += 0.5f; - Hu3DModelPosSetV(object->model[1], &work->unk94); - } + Work2FAC *work = object->data; + if (work->unk8) { + work->unk94.y += 0.5f; + Hu3DModelPosSetV(object->model[1], &work->unk94); + } } s32 fn_1_1EBC(omObjData *object) { - float temp_f31; - float temp_f22; - float temp_f21; - Vec sp3C; - Vec sp30; - Vec sp24; - - Work2FAC *temp_r31 = object->data; - temp_f31 = (temp_r31->unk1C.x*temp_r31->unk1C.x)+((10.0f/7.0f)*((10.0f/7.0f)*temp_r31->unk1C.z*temp_r31->unk1C.z)); - if(temp_f31 > 6400) { - temp_f22 = 80.0f/sqrtf(temp_f31); - sp3C.x = temp_r31->unk1C.x*temp_f22; - sp3C.z = temp_r31->unk1C.z*temp_f22; - temp_r31->unk34.x = sp3C.x-temp_r31->unk1C.x; - temp_r31->unk34.z = sp3C.z-temp_r31->unk1C.z; - temp_f21 = 80.0f*sqrtf(0.51f); - sp30.x = temp_f21-sp3C.x; - sp30.z = -sp3C.z; - sp24.x = -temp_f21-sp3C.x; - sp24.z = -sp3C.z; - temp_f31 = 1.0f/VECMagXZ(&sp30); - sp30.x *= temp_f31; - sp30.z *= temp_f31; - temp_f31 = 1.0f/VECMagXZ(&sp24); - sp24.x *= temp_f31; - sp24.z *= temp_f31; - sp30.x += sp24.x; - sp30.z += sp24.z; - temp_f31 = 1.0f/VECMagXZ(&sp30); - sp30.x *= temp_f31; - sp30.z *= temp_f31; - temp_f22 = -((sp30.x*temp_r31->unk28.x)+(sp30.z*temp_r31->unk28.z)); - temp_r31->unk28.x += (sp30.x*20.0f)+(sp30.x*2.0f*temp_f22); - temp_r31->unk28.z += (sp30.z*20.0f)+(sp30.z*2.0f*temp_f22); - return 1; - } else { - return 0; - } + float temp_f31; + float temp_f22; + float temp_f21; + Vec sp3C; + Vec sp30; + Vec sp24; + + Work2FAC *temp_r31 = object->data; + temp_f31 = (temp_r31->unk1C.x * temp_r31->unk1C.x) + ((10.0f / 7.0f) * ((10.0f / 7.0f) * temp_r31->unk1C.z * temp_r31->unk1C.z)); + if (temp_f31 > 6400) { + temp_f22 = 80.0f / sqrtf(temp_f31); + sp3C.x = temp_r31->unk1C.x * temp_f22; + sp3C.z = temp_r31->unk1C.z * temp_f22; + temp_r31->unk34.x = sp3C.x - temp_r31->unk1C.x; + temp_r31->unk34.z = sp3C.z - temp_r31->unk1C.z; + temp_f21 = 80.0f * sqrtf(0.51f); + sp30.x = temp_f21 - sp3C.x; + sp30.z = -sp3C.z; + sp24.x = -temp_f21 - sp3C.x; + sp24.z = -sp3C.z; + temp_f31 = 1.0f / VECMagXZ(&sp30); + sp30.x *= temp_f31; + sp30.z *= temp_f31; + temp_f31 = 1.0f / VECMagXZ(&sp24); + sp24.x *= temp_f31; + sp24.z *= temp_f31; + sp30.x += sp24.x; + sp30.z += sp24.z; + temp_f31 = 1.0f / VECMagXZ(&sp30); + sp30.x *= temp_f31; + sp30.z *= temp_f31; + temp_f22 = -((sp30.x * temp_r31->unk28.x) + (sp30.z * temp_r31->unk28.z)); + temp_r31->unk28.x += (sp30.x * 20.0f) + (sp30.x * 2.0f * temp_f22); + temp_r31->unk28.z += (sp30.z * 20.0f) + (sp30.z * 2.0f * temp_f22); + return 1; + } + else { + return 0; + } } void fn_1_26E4(omObjData *object); @@ -564,122 +559,112 @@ void fn_1_61FC(omObjData *object); void fn_1_25D4(Process *objman) { - s32 i; - omMakeGroupEx(objman, 0, 4); - lbl_1_bss_6C = omGetGroupMemberListEx(objman, 0); - lbl_1_bss_58 = 0; - for(i=0; i<4; i++) { - omObjData *object = omAddObjEx(objman, 40, 5, 7, 0, fn_1_26E4); - if(!GWPlayerCfg[i].iscom) { - lbl_1_bss_58++; - } - object->work[0] = i; - } - lbl_1_bss_8 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_61FC); - + s32 i; + omMakeGroupEx(objman, 0, 4); + lbl_1_bss_6C = omGetGroupMemberListEx(objman, 0); + lbl_1_bss_58 = 0; + for (i = 0; i < 4; i++) { + omObjData *object = omAddObjEx(objman, 40, 5, 7, 0, fn_1_26E4); + if (!GWPlayerCfg[i].iscom) { + lbl_1_bss_58++; + } + object->work[0] = i; + } + lbl_1_bss_8 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_61FC); } s32 lbl_1_data_C8[] = { - 0x270002, - 0x270003, - 0x270004, - 0x270005, - 0x270006, - 0x270007, - 0x270008, - 0x270009, + DATA_MAKE_NUM(DATADIR_M408, 0x02), + DATA_MAKE_NUM(DATADIR_M408, 0x03), + DATA_MAKE_NUM(DATADIR_M408, 0x04), + DATA_MAKE_NUM(DATADIR_M408, 0x05), + DATA_MAKE_NUM(DATADIR_M408, 0x06), + DATA_MAKE_NUM(DATADIR_M408, 0x07), + DATA_MAKE_NUM(DATADIR_M408, 0x08), + DATA_MAKE_NUM(DATADIR_M408, 0x09), }; u32 lbl_1_data_E8[] = { - 0, - 23, - 24, - 0x27002C, - 0x27003C, - 0x270034, - 22 + 0, + 23, + 24, + DATA_MAKE_NUM(DATADIR_M408, 0x2C), + DATA_MAKE_NUM(DATADIR_M408, 0x3C), + DATA_MAKE_NUM(DATADIR_M408, 0x34), + 22, }; -float lbl_1_data_104[][2] = { - -40, -30, - 40, -30, - -40, 30, - 40, 30 -}; +float lbl_1_data_104[][2] = { -40, -30, 40, -30, -40, 30, 40, 30 }; -float lbl_1_data_124[][2] = { - 0, -56, - 0, 56, - -80, 0, - 80, 0 -}; +float lbl_1_data_124[][2] = { 0, -56, 0, 56, -80, 0, 80, 0 }; void fn_1_2FAC(omObjData *object); void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_26E4(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r28; - s32 temp_r27; - - float sp20[4] = { 0.25, 0.5, 0.75, 1.0 }; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FAC), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - memset(temp_r31, 0, sizeof(Work2FAC)); - temp_r31->unk0 = object->work[0]; - temp_r31->unk2 = GWPlayerCfg[temp_r31->unk0].character; - temp_r31->unk2 &= 0x7; - temp_r31->unk4 = 0; - temp_r31->unk90 = sp20[GWPlayerCfg[object->work[0]].diff & 0x3]; - temp_r31->unk1C.x = lbl_1_data_104[temp_r31->unk0][0]; - temp_r31->unk1C.y = lbl_1_bss_54; - temp_r31->unk1C.z = lbl_1_data_104[temp_r31->unk0][1]; - temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r31->unk58.y = 0; - temp_r31->unk58.x = 0; - temp_r31->unk4C.x = temp_r31->unk4C.y = temp_r31->unk4C.z = 0; - temp_r31->unk58.z = 9.0f; - temp_r31->unk40.x = temp_r31->unk40.y = temp_r31->unk40.z = 0; - temp_r31->unk8 = 4; - temp_r31->unkC = 0; - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - omSetSca(object, 0.075f, 0.075f, 0.075f); - object->model[0] = CharModelCreate(temp_r31->unk2, 4); - for(temp_r28=0; temp_r28<7; temp_r28++) { - if(lbl_1_data_E8[temp_r28] < 0x10000) { - object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk2, lbl_1_data_E8[temp_r28]); - } else { - object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], temp_r31->unk2+lbl_1_data_E8[temp_r28]); - } - } - CharModelVoiceEnableSet(temp_r31->unk2, object->motion[1], 0); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[0], 0, 0.2, 0x40000001); - CharModelLayerSetAll(2); - CharModelMotionDataClose(temp_r31->unk2); - object->model[1] = Hu3DModelCreateFile(lbl_1_data_C8[temp_r31->unk2]); - Hu3DModelLayerSet(object->model[1], 6); - Hu3DModelScaleSet(object->model[1], 0.1f*temp_r31->unk8, 0.1f*temp_r31->unk8, 0.1f*temp_r31->unk8); - Hu3DModelAttrSet(object->model[1], 1); - temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; - temp_r31->unkA0.x = temp_r31->unkA0.y = temp_r31->unkA0.z = 0; - fn_1_1BE8(object, 1.0f); - temp_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x270024), 256); - object->model[2] = temp_r27; - Hu3DModelLayerSet(temp_r27, 6); - Hu3DParticleColSet(temp_r27, 255, 255, 255); - Hu3DParticleHookSet(temp_r27, fn_1_5AB4); - Hu3DModelPosSet(temp_r27, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_00 = 0; - temp_r31->unk74 = temp_r31->unk78 = 0; - temp_r31->unk7C[0] = temp_r31->unk7C[1] = 0; - temp_r31->unk8C = -1; - temp_r31->unk8E = 0; - temp_r31->unk84[0] = temp_r31->unk84[1] = 0; - object->work[1] = 0; - object->func = fn_1_2FAC; + Work2FAC *temp_r31; + s32 temp_r28; + s32 temp_r27; + + float sp20[4] = { 0.25, 0.5, 0.75, 1.0 }; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FAC), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + memset(temp_r31, 0, sizeof(Work2FAC)); + temp_r31->unk0 = object->work[0]; + temp_r31->unk2 = GWPlayerCfg[temp_r31->unk0].character; + temp_r31->unk2 &= 0x7; + temp_r31->unk4 = 0; + temp_r31->unk90 = sp20[GWPlayerCfg[object->work[0]].diff & 0x3]; + temp_r31->unk1C.x = lbl_1_data_104[temp_r31->unk0][0]; + temp_r31->unk1C.y = lbl_1_bss_54; + temp_r31->unk1C.z = lbl_1_data_104[temp_r31->unk0][1]; + temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r31->unk58.y = 0; + temp_r31->unk58.x = 0; + temp_r31->unk4C.x = temp_r31->unk4C.y = temp_r31->unk4C.z = 0; + temp_r31->unk58.z = 9.0f; + temp_r31->unk40.x = temp_r31->unk40.y = temp_r31->unk40.z = 0; + temp_r31->unk8 = 4; + temp_r31->unkC = 0; + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + omSetSca(object, 0.075f, 0.075f, 0.075f); + object->model[0] = CharModelCreate(temp_r31->unk2, 4); + for (temp_r28 = 0; temp_r28 < 7; temp_r28++) { + if (lbl_1_data_E8[temp_r28] < 0x10000) { + object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk2, lbl_1_data_E8[temp_r28]); + } + else { + object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], temp_r31->unk2 + lbl_1_data_E8[temp_r28]); + } + } + CharModelVoiceEnableSet(temp_r31->unk2, object->motion[1], 0); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[0], 0, 0.2, 0x40000001); + CharModelLayerSetAll(2); + CharModelMotionDataClose(temp_r31->unk2); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_C8[temp_r31->unk2]); + Hu3DModelLayerSet(object->model[1], 6); + Hu3DModelScaleSet(object->model[1], 0.1f * temp_r31->unk8, 0.1f * temp_r31->unk8, 0.1f * temp_r31->unk8); + Hu3DModelAttrSet(object->model[1], 1); + temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; + temp_r31->unkA0.x = temp_r31->unkA0.y = temp_r31->unkA0.z = 0; + fn_1_1BE8(object, 1.0f); + temp_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x24)), 256); + object->model[2] = temp_r27; + Hu3DModelLayerSet(temp_r27, 6); + Hu3DParticleColSet(temp_r27, 255, 255, 255); + Hu3DParticleHookSet(temp_r27, fn_1_5AB4); + Hu3DModelPosSet(temp_r27, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_00 = 0; + temp_r31->unk74 = temp_r31->unk78 = 0; + temp_r31->unk7C[0] = temp_r31->unk7C[1] = 0; + temp_r31->unk8C = -1; + temp_r31->unk8E = 0; + temp_r31->unk84[0] = temp_r31->unk84[1] = 0; + object->work[1] = 0; + object->func = fn_1_2FAC; } void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2); @@ -687,181 +672,172 @@ void fn_1_3E80(omObjData *object); void fn_1_2FAC(omObjData *object) { - Work2FAC *temp_r31 = object->data; - Vec sp78[] = { - { 8, -25, -18 }, - { 2, -25, -10 }, - { 2, -25, -24 }, - { -3, -25, -15} - }; - Vec sp3C; - Vec sp30; - Vec sp24; - float sp14[] = { - 45, - 135, - 225, - 315 - }; - float temp_f27; - switch(object->work[1]) { - case 0: - fn_1_C3C0(&sp3C, &sp30); - fn_1_1A60(&sp3C, &sp30, &sp78[temp_r31->unk0], &sp24); - omSetRot(object, 0, 90, 0); - omSetTra(object, sp24.x, sp24.y, sp24.z); - if(fn_1_C43C() != 1) { - object->work[1]++; - temp_r31->unk58.y = 60; - temp_r31->unk58.x = sp14[temp_r31->unk0]; - temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; - object->trans.x -= 10.0*(2.0*sind(temp_r31->unk58.x)); - object->trans.z -= 10.0*(2.0*cosd(temp_r31->unk58.x)); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2, 0x40000001); - temp_r31->unk1C.x = temp_r31->unk94.x = object->trans.x; - temp_r31->unk1C.y = temp_r31->unk94.y = object->trans.y; - temp_r31->unk1C.z = temp_r31->unk94.z = object->trans.z; - } - break; - - case 1: - temp_r31->unk28.y += -98.0f; - if(temp_r31->unk28.y < -400.0f) { - temp_r31->unk28.y = -400.0f; - } - temp_f27 = object->trans.y; - object->trans.y += temp_r31->unk28.y*(1.0f/60.0f); - temp_r31->unk58.x += 1.5000001f; - if(temp_r31->unk58.x >= 360.0f) { - temp_r31->unk58.x -= 360.0f; - } - object->trans.x += (3.141590118408203f*(10.0*sind(temp_r31->unk58.x-90.0f)))*(1.0f/60.0f); - object->trans.z += (3.141590118408203f*(10.0*cosd(temp_r31->unk58.x-90.0f)))*(1.0f/60.0f); - if(temp_f27 > 12000 && object->trans.y <= 12000){ - sp3C.x = object->trans.x; - sp3C.y = object->trans.y; - sp3C.z = object->trans.z; - fn_1_5DCC(object->model[2], &sp3C, 100); - } - temp_r31->unk4C.x = temp_r31->unk58.y; - temp_r31->unk4C.y = temp_r31->unk58.x; - temp_r31->unk4C.z = 0; - temp_r31->unk1C.x = object->trans.x; - temp_r31->unk1C.y = object->trans.y; - temp_r31->unk1C.z = object->trans.z; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - Hu3DModelAttrReset(object->model[1], 0x1); - temp_r31->unkC += 0.2f*(1.0f-temp_r31->unkC); - if(object->trans.y < 11940) { - object->work[1]++; - } - break; - } - fn_1_1BE8(object, 1.0f); - if(fn_1_6878() == 1) { - omSetSca(object, 0.15f, 0.15f, 0.15f); - object->trans.x = temp_r31->unk1C.x = temp_r31->unk94.x = lbl_1_data_104[temp_r31->unk0][0]; - object->trans.y = temp_r31->unk1C.y = temp_r31->unk94.y = lbl_1_bss_54; - object->trans.z = temp_r31->unk1C.z = temp_r31->unk94.z = lbl_1_data_104[temp_r31->unk0][1]; - object->rot.y = temp_r31->unk58.x = atan2d(object->trans.x, object->trans.z)+180.0; - Hu3DModelAttrReset(object->model[1], 1); - ((ParticleData *)Hu3DData[object->model[2]].unk_120)->unk_00 = 0; - object->func = fn_1_3E80; - } + Work2FAC *temp_r31 = object->data; + Vec sp78[] = { { 8, -25, -18 }, { 2, -25, -10 }, { 2, -25, -24 }, { -3, -25, -15 } }; + Vec sp3C; + Vec sp30; + Vec sp24; + float sp14[] = { 45, 135, 225, 315 }; + float temp_f27; + switch (object->work[1]) { + case 0: + fn_1_C3C0(&sp3C, &sp30); + fn_1_1A60(&sp3C, &sp30, &sp78[temp_r31->unk0], &sp24); + omSetRot(object, 0, 90, 0); + omSetTra(object, sp24.x, sp24.y, sp24.z); + if (fn_1_C43C() != 1) { + object->work[1]++; + temp_r31->unk58.y = 60; + temp_r31->unk58.x = sp14[temp_r31->unk0]; + temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; + object->trans.x -= 10.0 * (2.0 * sind(temp_r31->unk58.x)); + object->trans.z -= 10.0 * (2.0 * cosd(temp_r31->unk58.x)); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2, 0x40000001); + temp_r31->unk1C.x = temp_r31->unk94.x = object->trans.x; + temp_r31->unk1C.y = temp_r31->unk94.y = object->trans.y; + temp_r31->unk1C.z = temp_r31->unk94.z = object->trans.z; + } + break; + + case 1: + temp_r31->unk28.y += -98.0f; + if (temp_r31->unk28.y < -400.0f) { + temp_r31->unk28.y = -400.0f; + } + temp_f27 = object->trans.y; + object->trans.y += temp_r31->unk28.y * (1.0f / 60.0f); + temp_r31->unk58.x += 1.5000001f; + if (temp_r31->unk58.x >= 360.0f) { + temp_r31->unk58.x -= 360.0f; + } + object->trans.x += (3.141590118408203f * (10.0 * sind(temp_r31->unk58.x - 90.0f))) * (1.0f / 60.0f); + object->trans.z += (3.141590118408203f * (10.0 * cosd(temp_r31->unk58.x - 90.0f))) * (1.0f / 60.0f); + if (temp_f27 > 12000 && object->trans.y <= 12000) { + sp3C.x = object->trans.x; + sp3C.y = object->trans.y; + sp3C.z = object->trans.z; + fn_1_5DCC(object->model[2], &sp3C, 100); + } + temp_r31->unk4C.x = temp_r31->unk58.y; + temp_r31->unk4C.y = temp_r31->unk58.x; + temp_r31->unk4C.z = 0; + temp_r31->unk1C.x = object->trans.x; + temp_r31->unk1C.y = object->trans.y; + temp_r31->unk1C.z = object->trans.z; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DModelAttrReset(object->model[1], 0x1); + temp_r31->unkC += 0.2f * (1.0f - temp_r31->unkC); + if (object->trans.y < 11940) { + object->work[1]++; + } + break; + } + fn_1_1BE8(object, 1.0f); + if (fn_1_6878() == 1) { + omSetSca(object, 0.15f, 0.15f, 0.15f); + object->trans.x = temp_r31->unk1C.x = temp_r31->unk94.x = lbl_1_data_104[temp_r31->unk0][0]; + object->trans.y = temp_r31->unk1C.y = temp_r31->unk94.y = lbl_1_bss_54; + object->trans.z = temp_r31->unk1C.z = temp_r31->unk94.z = lbl_1_data_104[temp_r31->unk0][1]; + object->rot.y = temp_r31->unk58.x = atan2d(object->trans.x, object->trans.z) + 180.0; + Hu3DModelAttrReset(object->model[1], 1); + ((ParticleData *)Hu3DData[object->model[2]].unk_120)->unk_00 = 0; + object->func = fn_1_3E80; + } } void fn_1_38D0(omObjData *arg0, s8 *arg1, s8 *arg2) { - float temp_f31; - float temp_f30; - float temp_f29; - Work2FAC *temp_r31; - Work2FAC *temp_r30; - s8 temp_r29; - s32 temp_r28; - s32 temp_r25; - Vec sp18; - Vec spC; - s8 sp8[4]; + float temp_f31; + float temp_f30; + float temp_f29; + Work2FAC *temp_r31; + Work2FAC *temp_r30; + s8 temp_r29; + s32 temp_r28; + s32 temp_r25; + Vec sp18; + Vec spC; + s8 sp8[4]; - temp_r31 = arg0->data; - *arg1 = temp_r31->unk7C[0]; - *arg2 = temp_r31->unk7C[1]; - sp18.x = temp_r31->unk1C.x; - sp18.y = temp_r31->unk1C.y; - sp18.z = temp_r31->unk1C.z; - temp_r25 = fn_1_162CC(&sp18, &spC); - temp_r29 = 0; - sp8[0] = -1; - for(temp_r28=0; temp_r28<4; temp_r28++) { - if(temp_r28 != temp_r31->unk0) { - temp_r30 = fn_1_68A8(temp_r28); - if((temp_r30->unk4 & 0x12) == 0) { - sp8[temp_r29++] = temp_r28; - } - } - } - switch(temp_r31->unk8E) { - case 0: - if(temp_r29 > 0 || temp_r25) { - if(temp_r29 > 0) { - temp_r31->unk8C = sp8[frandmod(temp_r29)]; - } - temp_r31->unk74 = frandmod(180)+120.0f; - temp_r31->unk78 = 0; - temp_r31->unk8E = 1; - } else { - temp_r31->unk78 = 0; - temp_r31->unk8E = 2; - } - break; - - case 1: - if((temp_r31->unk78 & 0x3) == 0) { - if(temp_r25) { - temp_f31 = atan2d(spC.x-temp_r31->unk1C.x, spC.z-temp_r31->unk1C.z); - } else { - temp_r30 = fn_1_68A8(temp_r31->unk8C); - temp_f31 = atan2d(temp_r30->unk1C.x-temp_r31->unk1C.x, temp_r30->unk1C.z-temp_r31->unk1C.z); - } - temp_r31->unk84[1] = fn_1_883C(temp_r31->unk84[0], temp_f31, (0.3f*temp_r31->unk90)+0.15f); - } - temp_r31->unk78++; - temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); - temp_r31->unk7C[0] = sind(temp_r31->unk84[0])*80.0; - temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0])*80.0; - *arg1 = temp_r31->unk7C[0]; - *arg2 = temp_r31->unk7C[1]; - temp_r31->unk74--; - if(temp_r25 == 0 && (temp_r30->unk4 & 0x12)) { - temp_r31->unk74 = 0; - } - if(temp_r31->unk74 == 0) { - temp_r31->unk8E = 0; - } - break; - - case 2: - if((temp_r31->unk78 & 0xF) == 0) { - temp_f30 = (0.04f*frandmod(1000))-20.0f; - temp_f29 = (0.04f*frandmod(1000))-20.0f; - temp_r31->unk84[1] = temp_f31 = atan2d(temp_f30-temp_r31->unk1C.x, temp_f29-temp_r31->unk1C.z); - } - temp_r31->unk78++; - temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); - temp_r31->unk7C[0] = sind(temp_r31->unk84[0])*80.0; - temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0])*80.0; - *arg1 = temp_r31->unk7C[0]; - *arg2 = temp_r31->unk7C[1]; - if(temp_r29 > 0 || temp_r25) { - temp_r31->unk8E = 0; - } - break; - } + temp_r31 = arg0->data; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + sp18.x = temp_r31->unk1C.x; + sp18.y = temp_r31->unk1C.y; + sp18.z = temp_r31->unk1C.z; + temp_r25 = fn_1_162CC(&sp18, &spC); + temp_r29 = 0; + sp8[0] = -1; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + if (temp_r28 != temp_r31->unk0) { + temp_r30 = fn_1_68A8(temp_r28); + if ((temp_r30->unk4 & 0x12) == 0) { + sp8[temp_r29++] = temp_r28; + } + } + } + switch (temp_r31->unk8E) { + case 0: + if (temp_r29 > 0 || temp_r25) { + if (temp_r29 > 0) { + temp_r31->unk8C = sp8[frandmod(temp_r29)]; + } + temp_r31->unk74 = frandmod(180) + 120.0f; + temp_r31->unk78 = 0; + temp_r31->unk8E = 1; + } + else { + temp_r31->unk78 = 0; + temp_r31->unk8E = 2; + } + break; + case 1: + if ((temp_r31->unk78 & 0x3) == 0) { + if (temp_r25) { + temp_f31 = atan2d(spC.x - temp_r31->unk1C.x, spC.z - temp_r31->unk1C.z); + } + else { + temp_r30 = fn_1_68A8(temp_r31->unk8C); + temp_f31 = atan2d(temp_r30->unk1C.x - temp_r31->unk1C.x, temp_r30->unk1C.z - temp_r31->unk1C.z); + } + temp_r31->unk84[1] = fn_1_883C(temp_r31->unk84[0], temp_f31, (0.3f * temp_r31->unk90) + 0.15f); + } + temp_r31->unk78++; + temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); + temp_r31->unk7C[0] = sind(temp_r31->unk84[0]) * 80.0; + temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0]) * 80.0; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + temp_r31->unk74--; + if (temp_r25 == 0 && (temp_r30->unk4 & 0x12)) { + temp_r31->unk74 = 0; + } + if (temp_r31->unk74 == 0) { + temp_r31->unk8E = 0; + } + break; + + case 2: + if ((temp_r31->unk78 & 0xF) == 0) { + temp_f30 = (0.04f * frandmod(1000)) - 20.0f; + temp_f29 = (0.04f * frandmod(1000)) - 20.0f; + temp_r31->unk84[1] = temp_f31 = atan2d(temp_f30 - temp_r31->unk1C.x, temp_f29 - temp_r31->unk1C.z); + } + temp_r31->unk78++; + temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); + temp_r31->unk7C[0] = sind(temp_r31->unk84[0]) * 80.0; + temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0]) * 80.0; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + if (temp_r29 > 0 || temp_r25) { + temp_r31->unk8E = 0; + } + break; + } } -#define CHECK_IDLE(pos) (((pos) < 0) ? -(pos) : ((pos)>15)) +#define CHECK_IDLE(pos) (((pos) < 0) ? -(pos) : ((pos) > 15)) void fn_1_4A58(omObjData *object); void fn_1_5098(omObjData *object); @@ -869,815 +845,799 @@ void fn_1_5684(omObjData *object); void fn_1_3E80(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r27; + Work2FAC *temp_r31; + s32 temp_r27; - float temp_f29; - float temp_f28; - float temp_f22; - float temp_f21; - float temp_f20; - s8 sp9; - s8 sp8; - - temp_r31 = object->data; - temp_r27 = GWPlayerCfg[temp_r31->unk0].pad_idx; - sp9 = sp8 = 0; - if(lbl_1_bss_60 == 3) { - if(!GWPlayerCfg[temp_r31->unk0].iscom) { - sp9 = HuPadStkX[temp_r27]; - sp8 = HuPadStkY[temp_r27]; - } else { - fn_1_38D0(object, &sp9, &sp8); - } - } - temp_r31->unk1C.y = lbl_1_bss_54; - temp_f21 = temp_f20 = 0; - temp_f28 = temp_r31->unk58.x; - temp_f22 = -20; - if(CHECK_IDLE(sp9) || CHECK_IDLE(sp8)) { - temp_f28 = atan2d(sp9, -sp8); - if(temp_f28 < 0) { - temp_f28 += 360; - } - temp_f21 = 70*sind(temp_f28); - temp_f20 = 70*cosd(temp_f28); - temp_f22 = 30; - } - fn_1_1EBC(object); - temp_r31->unk28.x = ((28.0f/30.0f)*temp_r31->unk28.x)+((2.0f/30.0f)*temp_f21); - temp_r31->unk28.z = ((28.0f/30.0f)*temp_r31->unk28.z)+((2.0f/30.0f)*temp_f20); - temp_f29 = VECMagXZ(&temp_r31->unk28); - if(temp_f29 > 200.0f) { - temp_f29 = 200.0f/temp_f29; - temp_r31->unk28.x *= temp_f29; - temp_r31->unk28.z *= temp_f29; - } - temp_r31->unk34.x += (temp_r31->unk28.x*(1.0f/60.0f)); - temp_r31->unk34.y = 0; - temp_r31->unk34.z += (temp_r31->unk28.z*(1.0f/60.0f)); - temp_r31->unk58.x = temp_f28; - temp_r31->unk58.y = (0.9f*temp_r31->unk58.y)+(0.1f*temp_f22); - temp_r31->unk4C.x = temp_r31->unk58.y; - temp_r31->unk4C.y = fn_1_883C(temp_r31->unk4C.y, temp_r31->unk58.x, 0.2f); - temp_r31->unk4C.z = 0; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - temp_r31->unkC += (1.0f-temp_r31->unkC)*0.2f; - fn_1_1BE8(object, 0.3f); - if(temp_r31->unk4 & 0x1) { - temp_r31->unk8--; - temp_r31->unk10 = 0; - temp_r31->unk4 |= 2; - temp_f29 = VECMagXZ(&temp_r31->unk40); - if(temp_f29 > 0.0f) { - temp_f29 = 150.0f/temp_f29; - } - temp_r31->unk28.x = temp_r31->unk40.x*temp_f29; - temp_r31->unk28.z = temp_r31->unk40.z*temp_f29; - temp_r31->unk34.x = temp_r31->unk28.x*(1.0f/60.0f); - temp_r31->unk34.z = temp_r31->unk28.z*(1.0f/60.0f); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[5], 0, 0.2f, 0); - HuAudFXPlay(1358); - omVibrate(object->work[0], 12, 4, 2); - if(temp_r31->unk8) { - HuAudCharVoicePlay(temp_r31->unk2, 296); - object->func = fn_1_4A58; - } else { - temp_r31->unk4 |= 0x30; - lbl_1_bss_4C--; - HuAudCharVoicePlay(temp_r31->unk2, 291); - object->func = fn_1_5684; - } - } - if(fn_1_6878() == 4 && (temp_r31->unk4 & 0x20) == 0) { - CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); - Hu3DModelShadowSet(object->model[0]); - object->work[1] = 0; - object->func = fn_1_5098; - } + float temp_f29; + float temp_f28; + float temp_f22; + float temp_f21; + float temp_f20; + s8 sp9; + s8 sp8; + + temp_r31 = object->data; + temp_r27 = GWPlayerCfg[temp_r31->unk0].pad_idx; + sp9 = sp8 = 0; + if (lbl_1_bss_60 == 3) { + if (!GWPlayerCfg[temp_r31->unk0].iscom) { + sp9 = HuPadStkX[temp_r27]; + sp8 = HuPadStkY[temp_r27]; + } + else { + fn_1_38D0(object, &sp9, &sp8); + } + } + temp_r31->unk1C.y = lbl_1_bss_54; + temp_f21 = temp_f20 = 0; + temp_f28 = temp_r31->unk58.x; + temp_f22 = -20; + if (CHECK_IDLE(sp9) || CHECK_IDLE(sp8)) { + temp_f28 = atan2d(sp9, -sp8); + if (temp_f28 < 0) { + temp_f28 += 360; + } + temp_f21 = 70 * sind(temp_f28); + temp_f20 = 70 * cosd(temp_f28); + temp_f22 = 30; + } + fn_1_1EBC(object); + temp_r31->unk28.x = ((28.0f / 30.0f) * temp_r31->unk28.x) + ((2.0f / 30.0f) * temp_f21); + temp_r31->unk28.z = ((28.0f / 30.0f) * temp_r31->unk28.z) + ((2.0f / 30.0f) * temp_f20); + temp_f29 = VECMagXZ(&temp_r31->unk28); + if (temp_f29 > 200.0f) { + temp_f29 = 200.0f / temp_f29; + temp_r31->unk28.x *= temp_f29; + temp_r31->unk28.z *= temp_f29; + } + temp_r31->unk34.x += (temp_r31->unk28.x * (1.0f / 60.0f)); + temp_r31->unk34.y = 0; + temp_r31->unk34.z += (temp_r31->unk28.z * (1.0f / 60.0f)); + temp_r31->unk58.x = temp_f28; + temp_r31->unk58.y = (0.9f * temp_r31->unk58.y) + (0.1f * temp_f22); + temp_r31->unk4C.x = temp_r31->unk58.y; + temp_r31->unk4C.y = fn_1_883C(temp_r31->unk4C.y, temp_r31->unk58.x, 0.2f); + temp_r31->unk4C.z = 0; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + temp_r31->unkC += (1.0f - temp_r31->unkC) * 0.2f; + fn_1_1BE8(object, 0.3f); + if (temp_r31->unk4 & 0x1) { + temp_r31->unk8--; + temp_r31->unk10 = 0; + temp_r31->unk4 |= 2; + temp_f29 = VECMagXZ(&temp_r31->unk40); + if (temp_f29 > 0.0f) { + temp_f29 = 150.0f / temp_f29; + } + temp_r31->unk28.x = temp_r31->unk40.x * temp_f29; + temp_r31->unk28.z = temp_r31->unk40.z * temp_f29; + temp_r31->unk34.x = temp_r31->unk28.x * (1.0f / 60.0f); + temp_r31->unk34.z = temp_r31->unk28.z * (1.0f / 60.0f); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[5], 0, 0.2f, 0); + HuAudFXPlay(1358); + omVibrate(object->work[0], 12, 4, 2); + if (temp_r31->unk8) { + HuAudCharVoicePlay(temp_r31->unk2, 296); + object->func = fn_1_4A58; + } + else { + temp_r31->unk4 |= 0x30; + lbl_1_bss_4C--; + HuAudCharVoicePlay(temp_r31->unk2, 291); + object->func = fn_1_5684; + } + } + if (fn_1_6878() == 4 && (temp_r31->unk4 & 0x20) == 0) { + CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); + Hu3DModelShadowSet(object->model[0]); + object->work[1] = 0; + object->func = fn_1_5098; + } } #undef CHECK_IDLE void fn_1_4A58(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r28; - s32 temp_r26; - s32 sp8; - temp_r31 = object->data; - sp8 = temp_r31->unk0; - temp_r31->unk4 |= 2; - temp_r31->unk1C.y = lbl_1_bss_54; - fn_1_1EBC(object); - temp_r31->unk28.x = (29.0f/30.0f)*temp_r31->unk28.x; - temp_r31->unk28.z = (29.0f/30.0f)*temp_r31->unk28.z; - temp_r31->unk34.x += temp_r31->unk28.x*(1.0f/60.0f); - temp_r31->unk34.y = 0; - temp_r31->unk34.z += temp_r31->unk28.z*(1.0f/60.0f); - - temp_r31->unk58.x += 9.0f; - if(temp_r31->unk58.x >= 360.0f) { - temp_r31->unk58.x -= 360.0f; - } - temp_r31->unk58.y = 0.9f*temp_r31->unk58.y; - temp_r31->unk4C.x = temp_r31->unk58.y; - temp_r31->unk4C.y = temp_r31->unk58.x; - temp_r31->unk4C.z = 0; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - fn_1_1BE8(object, 0.8f); - temp_r26 = temp_r31->unk10 & 0x1; - temp_r31->unk10++; - if(fn_1_6878() == 4) { - temp_r26 = 0; - CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); - Hu3DModelShadowSet(object->model[0]); - object->work[1] = 0; - object->func = fn_1_5098; - } else if(temp_r31->unk10 > 60) { - temp_r26 = 0; - temp_r31->unk4 &= ~0x3; - CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2f, 0x40000001); - object->func = fn_1_3E80; - } - if(temp_r26) { - Hu3DModelAttrSet(object->model[0], 1); - for(temp_r28=0; temp_r28unk8; temp_r28++) { - Hu3DModelAttrSet(object->model[1], 1); - } - } else { - Hu3DModelAttrReset(object->model[0], 1); - for(temp_r28=0; temp_r28unk8; temp_r28++) { - Hu3DModelAttrReset(object->model[1], 1); - } - } + Work2FAC *temp_r31; + s32 temp_r28; + s32 temp_r26; + s32 sp8; + temp_r31 = object->data; + sp8 = temp_r31->unk0; + temp_r31->unk4 |= 2; + temp_r31->unk1C.y = lbl_1_bss_54; + fn_1_1EBC(object); + temp_r31->unk28.x = (29.0f / 30.0f) * temp_r31->unk28.x; + temp_r31->unk28.z = (29.0f / 30.0f) * temp_r31->unk28.z; + temp_r31->unk34.x += temp_r31->unk28.x * (1.0f / 60.0f); + temp_r31->unk34.y = 0; + temp_r31->unk34.z += temp_r31->unk28.z * (1.0f / 60.0f); + + temp_r31->unk58.x += 9.0f; + if (temp_r31->unk58.x >= 360.0f) { + temp_r31->unk58.x -= 360.0f; + } + temp_r31->unk58.y = 0.9f * temp_r31->unk58.y; + temp_r31->unk4C.x = temp_r31->unk58.y; + temp_r31->unk4C.y = temp_r31->unk58.x; + temp_r31->unk4C.z = 0; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + fn_1_1BE8(object, 0.8f); + temp_r26 = temp_r31->unk10 & 0x1; + temp_r31->unk10++; + if (fn_1_6878() == 4) { + temp_r26 = 0; + CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); + Hu3DModelShadowSet(object->model[0]); + object->work[1] = 0; + object->func = fn_1_5098; + } + else if (temp_r31->unk10 > 60) { + temp_r26 = 0; + temp_r31->unk4 &= ~0x3; + CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2f, 0x40000001); + object->func = fn_1_3E80; + } + if (temp_r26) { + Hu3DModelAttrSet(object->model[0], 1); + for (temp_r28 = 0; temp_r28 < temp_r31->unk8; temp_r28++) { + Hu3DModelAttrSet(object->model[1], 1); + } + } + else { + Hu3DModelAttrReset(object->model[0], 1); + for (temp_r28 = 0; temp_r28 < temp_r31->unk8; temp_r28++) { + Hu3DModelAttrReset(object->model[1], 1); + } + } } -Vec lbl_1_data_144[] = { - { -50, 0, 0 }, - { -16, 0, 0 }, - { 16, 0, 0 }, - { 50, 0, 0 } -}; +Vec lbl_1_data_144[] = { { -50, 0, 0 }, { -16, 0, 0 }, { 16, 0, 0 }, { 50, 0, 0 } }; -Vec lbl_1_data_174[] = { - { 0, 1500, 2500 }, - { 1500, 0, 1 }, - { 0, 0, 0 } -}; +Vec lbl_1_data_174[] = { { 0, 1500, 2500 }, { 1500, 0, 1 }, { 0, 0, 0 } }; void fn_1_54E4(omObjData *object); void fn_1_5098(omObjData *object) { - Work2FAC *temp_r29; - s32 temp_r27; - - temp_r29 = object->data; - object->trans.x = lbl_1_data_144[object->work[0]].x; - object->trans.z = lbl_1_data_144[object->work[0]].z; - if(object->work[1] == 0) { - if(lbl_1_bss_3C < temp_r29->unk8) { - lbl_1_bss_3C = temp_r29->unk8; - } - } else if(object->work[1] == 10 && lbl_1_bss_3C == temp_r29->unk8) { - for(temp_r27=0; lbl_1_bss_28[temp_r27]>=0; temp_r27++); - lbl_1_bss_28[temp_r27] = temp_r29->unk2; - } - object->work[1]++; - temp_r29->unk1C.y = lbl_1_bss_54; - temp_r29->unk58.y = 0; - temp_r29->unk58.x = 0; - object->rot.x = object->rot.y = object->rot.z = 0; - object->trans.y = temp_r29->unk1C.y; - temp_r29->unk1C.x = object->trans.x; - temp_r29->unk1C.z = object->trans.z; - temp_r29->unk1C.y += lbl_1_data_A0[temp_r29->unk2]; - if(object->trans.y < 0) { - object->trans.y = 0; - } - fn_1_1BE8(object, 1.0f); - if(fn_1_6878() == 5) { - object->func = fn_1_54E4; - if(temp_r29->unk14) { - lbl_1_bss_C = 1; - } - } + Work2FAC *temp_r29; + s32 temp_r27; + + temp_r29 = object->data; + object->trans.x = lbl_1_data_144[object->work[0]].x; + object->trans.z = lbl_1_data_144[object->work[0]].z; + if (object->work[1] == 0) { + if (lbl_1_bss_3C < temp_r29->unk8) { + lbl_1_bss_3C = temp_r29->unk8; + } + } + else if (object->work[1] == 10 && lbl_1_bss_3C == temp_r29->unk8) { + for (temp_r27 = 0; lbl_1_bss_28[temp_r27] >= 0; temp_r27++) + ; + lbl_1_bss_28[temp_r27] = temp_r29->unk2; + } + object->work[1]++; + temp_r29->unk1C.y = lbl_1_bss_54; + temp_r29->unk58.y = 0; + temp_r29->unk58.x = 0; + object->rot.x = object->rot.y = object->rot.z = 0; + object->trans.y = temp_r29->unk1C.y; + temp_r29->unk1C.x = object->trans.x; + temp_r29->unk1C.z = object->trans.z; + temp_r29->unk1C.y += lbl_1_data_A0[temp_r29->unk2]; + if (object->trans.y < 0) { + object->trans.y = 0; + } + fn_1_1BE8(object, 1.0f); + if (fn_1_6878() == 5) { + object->func = fn_1_54E4; + if (temp_r29->unk14) { + lbl_1_bss_C = 1; + } + } } void fn_1_54E4(omObjData *object) { - Work2FAC *temp_r30 = object->data; - fn_1_1E54(object); - if(!(temp_r30->unk4 & 0x8)) { - temp_r30->unk4 |= 0x8; - if(temp_r30->unk14 != 0) { - CharModelMotionShiftSet(temp_r30->unk2, object->motion[1], 0, 0.2f, 0); - HuAudCharVoicePlay(temp_r30->unk2, 290); - GWPlayerCoinCollectAdd(object->work[0], temp_r30->unk14); - } else { - CharModelMotionShiftSet(temp_r30->unk2, object->motion[2], 0, 0.2f, 0); - } - object->work[1] = 0; - } else if(object->work[1] == 0 && Hu3DMotionEndCheck(object->model[0])) { - lbl_1_bss_4C--; - object->work[1]++; - } + Work2FAC *temp_r30 = object->data; + fn_1_1E54(object); + if (!(temp_r30->unk4 & 0x8)) { + temp_r30->unk4 |= 0x8; + if (temp_r30->unk14 != 0) { + CharModelMotionShiftSet(temp_r30->unk2, object->motion[1], 0, 0.2f, 0); + HuAudCharVoicePlay(temp_r30->unk2, 290); + GWPlayerCoinCollectAdd(object->work[0], temp_r30->unk14); + } + else { + CharModelMotionShiftSet(temp_r30->unk2, object->motion[2], 0, 0.2f, 0); + } + object->work[1] = 0; + } + else if (object->work[1] == 0 && Hu3DMotionEndCheck(object->model[0])) { + lbl_1_bss_4C--; + object->work[1]++; + } } void fn_1_5AA0(omObjData *object); void fn_1_5684(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r29; - temp_r31 = object->data; - if(fabs(object->trans.x) < 160.0 || fabs(object->trans.z) < 160.0) { - temp_r31->unk1C.x += temp_r31->unk28.x*(1.0f/60.0f); - temp_r31->unk1C.z += temp_r31->unk28.z*(1.0f/60.0f); - temp_r31->unk58.x += 9.0f; - if(temp_r31->unk58.x >= 360.0f) { - temp_r31->unk58.x -= 360.0f; - } - temp_r31->unk58.y = 0.9f*temp_r31->unk58.y; - temp_r31->unk4C.x = 90.0f+temp_r31->unk58.y; - temp_r31->unk4C.y = temp_r31->unk58.x; - temp_r31->unk4C.z = 0; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - } - if(fn_1_6878() >= 4) { - GWPlayerCoinCollectAdd(object->work[0], temp_r31->unk14); - if(lbl_1_bss_48) { - Hu3DModelAttrReset(object->model[0], 1); - CharModelMotionSet(temp_r31->unk2, object->motion[6]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->trans.x = lbl_1_data_144[object->work[0]].x; - object->trans.y = 0; - object->trans.z = lbl_1_data_144[object->work[0]].z; - object->rot.x = object->rot.y = object->rot.z = 0; - } else { - Hu3DModelAttrSet(object->model[0], 1); - } - - for(temp_r29=0; temp_r29<4; temp_r29++) { - Hu3DModelAttrSet(object->model[1], 1); - } - object->func = fn_1_5AA0; - } + Work2FAC *temp_r31; + s32 temp_r29; + temp_r31 = object->data; + if (fabs(object->trans.x) < 160.0 || fabs(object->trans.z) < 160.0) { + temp_r31->unk1C.x += temp_r31->unk28.x * (1.0f / 60.0f); + temp_r31->unk1C.z += temp_r31->unk28.z * (1.0f / 60.0f); + temp_r31->unk58.x += 9.0f; + if (temp_r31->unk58.x >= 360.0f) { + temp_r31->unk58.x -= 360.0f; + } + temp_r31->unk58.y = 0.9f * temp_r31->unk58.y; + temp_r31->unk4C.x = 90.0f + temp_r31->unk58.y; + temp_r31->unk4C.y = temp_r31->unk58.x; + temp_r31->unk4C.z = 0; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + } + if (fn_1_6878() >= 4) { + GWPlayerCoinCollectAdd(object->work[0], temp_r31->unk14); + if (lbl_1_bss_48) { + Hu3DModelAttrReset(object->model[0], 1); + CharModelMotionSet(temp_r31->unk2, object->motion[6]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->trans.x = lbl_1_data_144[object->work[0]].x; + object->trans.y = 0; + object->trans.z = lbl_1_data_144[object->work[0]].z; + object->rot.x = object->rot.y = object->rot.z = 0; + } + else { + Hu3DModelAttrSet(object->model[0], 1); + } + + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + Hu3DModelAttrSet(object->model[1], 1); + } + object->func = fn_1_5AA0; + } } void fn_1_5AA0(omObjData *object) { - Work2FAC *sp8 = object->data; + Work2FAC *sp8 = object->data; } void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - float temp_f31; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - return; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 == 0 || temp_r31->unk00_s16 != 1) { - continue; - } - temp_r31->unk02++; - temp_f31 = temp_r31->unk02-10.2f; - if(temp_f31 < 0.0f) { - temp_r31->unk34.x += (temp_r31->unk08.x-temp_r31->unk34.x)*0.2f; - temp_r31->unk34.y += (temp_r31->unk08.y-temp_r31->unk34.y)*0.15f; - temp_r31->unk34.z += (temp_r31->unk08.z-temp_r31->unk34.z)*0.2f; - temp_r31->unk2C += (temp_r31->unk14.x-temp_r31->unk2C)*0.2f; - temp_r31->unk14.y += (temp_r31->unk14.z-temp_r31->unk14.y)*0.2f; - temp_r31->unk40.a = temp_r31->unk14.y; - } else { - temp_r31->unk34.x += (temp_r31->unk20*1.5f)*(1.0f/60.0f); - temp_r31->unk34.y += (temp_r31->unk24*1.5f)*(1.0f/60.0f); - temp_r31->unk34.z += (temp_r31->unk28*1.5f)*(1.0f/60.0f); - temp_r31->unk2C += (temp_r31->unk14.x*0.01f); - temp_r31->unk40.a = 0.92f*temp_r31->unk40.a; - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + HsfanimStruct01 *temp_r31; + s32 temp_r29; + float temp_f31; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + return; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 == 0 || temp_r31->unk00_s16 != 1) { + continue; + } + temp_r31->unk02++; + temp_f31 = temp_r31->unk02 - 10.2f; + if (temp_f31 < 0.0f) { + temp_r31->unk34.x += (temp_r31->unk08.x - temp_r31->unk34.x) * 0.2f; + temp_r31->unk34.y += (temp_r31->unk08.y - temp_r31->unk34.y) * 0.15f; + temp_r31->unk34.z += (temp_r31->unk08.z - temp_r31->unk34.z) * 0.2f; + temp_r31->unk2C += (temp_r31->unk14.x - temp_r31->unk2C) * 0.2f; + temp_r31->unk14.y += (temp_r31->unk14.z - temp_r31->unk14.y) * 0.2f; + temp_r31->unk40.a = temp_r31->unk14.y; + } + else { + temp_r31->unk34.x += (temp_r31->unk20 * 1.5f) * (1.0f / 60.0f); + temp_r31->unk34.y += (temp_r31->unk24 * 1.5f) * (1.0f / 60.0f); + temp_r31->unk34.z += (temp_r31->unk28 * 1.5f) * (1.0f / 60.0f); + temp_r31->unk2C += (temp_r31->unk14.x * 0.01f); + temp_r31->unk40.a = 0.92f * temp_r31->unk40.a; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2) { - float temp_f31; - float temp_f30; - - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - temp_r29 = Hu3DData[arg0].unk_120; - if(temp_r29->unk_00 != 0) { - temp_r31 = temp_r29->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk00_s16) { - continue; - } - temp_r31->unk00 = 1; - temp_r31->unk02 = 0; - temp_r31->unk34.x = arg1->x; - temp_r31->unk34.y = 11990; - temp_r31->unk34.z = arg1->z; - temp_f31 = frandmod(1000)*(1.0f/1000.0f); - temp_f30 = frandmod(1000)*(360.0f/1000.0f); - temp_r31->unk20 = 10*(0.8f*(temp_f31*sind(temp_f30))); - temp_r31->unk24 = 10.0f*(5.0f*(1.0f-(temp_f31*temp_f31))); - temp_r31->unk28 = 10*(0.8f*(temp_f31*cosd(temp_f30))); - temp_r31->unk08.x = temp_r31->unk20+arg1->x; - temp_r31->unk08.y = temp_r31->unk24+temp_r31->unk34.y; - temp_r31->unk08.z = temp_r31->unk28+arg1->z; - temp_r31->unk14.x = (6.0f+(0.012f*frandmod(1000))); - temp_r31->unk2C = 2.0f; - temp_r31->unk14.y = temp_r31->unk40.a = 10; - temp_r31->unk14.z = frandmod(100)+64; - temp_f31 = 0.00040000002f*frandmod(1000); - temp_f31 += 0.6f*cosd(temp_f30); - temp_r31->unk40.r = (55*temp_f31)+200; - temp_r31->unk40.g = (50*temp_f31)+205; - temp_r31->unk40.b = (5*temp_f31)+250; - if(--arg2 == 0) { - break; - } - } - } + float temp_f31; + float temp_f30; + + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + temp_r29 = Hu3DData[arg0].unk_120; + if (temp_r29->unk_00 != 0) { + temp_r31 = temp_r29->unk_48; + for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk00_s16) { + continue; + } + temp_r31->unk00 = 1; + temp_r31->unk02 = 0; + temp_r31->unk34.x = arg1->x; + temp_r31->unk34.y = 11990; + temp_r31->unk34.z = arg1->z; + temp_f31 = frandmod(1000) * (1.0f / 1000.0f); + temp_f30 = frandmod(1000) * (360.0f / 1000.0f); + temp_r31->unk20 = 10 * (0.8f * (temp_f31 * sind(temp_f30))); + temp_r31->unk24 = 10.0f * (5.0f * (1.0f - (temp_f31 * temp_f31))); + temp_r31->unk28 = 10 * (0.8f * (temp_f31 * cosd(temp_f30))); + temp_r31->unk08.x = temp_r31->unk20 + arg1->x; + temp_r31->unk08.y = temp_r31->unk24 + temp_r31->unk34.y; + temp_r31->unk08.z = temp_r31->unk28 + arg1->z; + temp_r31->unk14.x = (6.0f + (0.012f * frandmod(1000))); + temp_r31->unk2C = 2.0f; + temp_r31->unk14.y = temp_r31->unk40.a = 10; + temp_r31->unk14.z = frandmod(100) + 64; + temp_f31 = 0.00040000002f * frandmod(1000); + temp_f31 += 0.6f * cosd(temp_f30); + temp_r31->unk40.r = (55 * temp_f31) + 200; + temp_r31->unk40.g = (50 * temp_f31) + 205; + temp_r31->unk40.b = (5 * temp_f31) + 250; + if (--arg2 == 0) { + break; + } + } + } } typedef struct work_61FC { - s32 unk0; - s32 unk4; - u32 unk8; - float unkC[2]; - s32 unk14; - s32 unk18; - s32 unk1C[7]; - float unk38[7]; - s16 unk54[7]; + s32 unk0; + s32 unk4; + u32 unk8; + float unkC[2]; + s32 unk14; + s32 unk18; + s32 unk1C[7]; + float unk38[7]; + s16 unk54[7]; } Work61FC; void fn_1_6540(omObjData *object); void fn_1_61FC(omObjData *object) { - Work61FC *temp_r31; - s32 temp_r30; - s32 temp_r28; - s32 temp_r26; - - Work61FC *temp_r27; - - float sp8[][2] = { - 96, 64, - 486, 64, - 96, 416, - 486, 416 - }; - float sp28[][2] = { - 0, 0, - 0, 0, - -54, -1, - 2, 1, - -20, 0, - 42, 2, - 22, 2 - }; - - object->stat |= 0x100; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 4*sizeof(Work61FC), MEMORY_DEFAULT_NUM); - temp_r27 = object->data; - memset(temp_r27, 0, 4*sizeof(Work61FC)); - temp_r31 = temp_r27; - for(temp_r28=0; temp_r28<4; temp_r28++, temp_r31++) { - for(temp_r30=0; temp_r30<7; temp_r30++) { - temp_r31->unk54[temp_r30] = -1; - temp_r31->unk38[temp_r30] = 1; - } - temp_r31->unkC[0] = sp8[temp_r28][0]; - temp_r31->unkC[1] = sp8[temp_r28][1]; - temp_r26 = espEntry(0x610029, 4, 0); - temp_r31->unk54[0] = temp_r26; - espColorSet(temp_r26, 0, 0, 0); - espTPLvlSet(temp_r26, 0.5); - temp_r31->unk54[1] = espEntry(0x610028, 3, 0); - temp_r31->unk54[2] = espEntry(lbl_1_data_0[GWPlayerCfg[temp_r28].character], 2, 0); - temp_r31->unk54[3] = espEntry(0x27002B, 2, 0); - temp_r31->unk54[4] = espEntry(0x610008, 2, 0); - temp_r31->unk54[6] = espEntry(0x610033, 2, 0); - temp_r31->unk54[5] = espEntry(0x610033, 2, 0); - for(temp_r30=0; temp_r30<7; temp_r30++) { - if(temp_r31->unk54[temp_r30] >= 0) { - espPosSet(temp_r31->unk54[temp_r30], temp_r31->unkC[0]+sp28[temp_r30][0], temp_r31->unkC[1]+sp28[temp_r30][1]); - espDispOff(temp_r31->unk54[temp_r30]); - } - } - temp_r31->unk0 = 0; - } - HuDataDirClose(DATADIR_MGCONST); - object->func = fn_1_6540; - (void)temp_r27; - (void)temp_r27; + Work61FC *temp_r31; + s32 temp_r30; + s32 temp_r28; + s32 temp_r26; + + Work61FC *temp_r27; + + float sp8[][2] = { 96, 64, 486, 64, 96, 416, 486, 416 }; + float sp28[][2] = { 0, 0, 0, 0, -54, -1, 2, 1, -20, 0, 42, 2, 22, 2 }; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(Work61FC), MEMORY_DEFAULT_NUM); + temp_r27 = object->data; + memset(temp_r27, 0, 4 * sizeof(Work61FC)); + temp_r31 = temp_r27; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31++) { + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + temp_r31->unk54[temp_r30] = -1; + temp_r31->unk38[temp_r30] = 1; + } + temp_r31->unkC[0] = sp8[temp_r28][0]; + temp_r31->unkC[1] = sp8[temp_r28][1]; + temp_r26 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x29), 4, 0); + temp_r31->unk54[0] = temp_r26; + espColorSet(temp_r26, 0, 0, 0); + espTPLvlSet(temp_r26, 0.5); + temp_r31->unk54[1] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x28), 3, 0); + temp_r31->unk54[2] = espEntry(lbl_1_data_0[GWPlayerCfg[temp_r28].character], 2, 0); + temp_r31->unk54[3] = espEntry(DATA_MAKE_NUM(DATADIR_M408, 0x2B), 2, 0); + temp_r31->unk54[4] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x08), 2, 0); + temp_r31->unk54[6] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 2, 0); + temp_r31->unk54[5] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 2, 0); + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + if (temp_r31->unk54[temp_r30] >= 0) { + espPosSet(temp_r31->unk54[temp_r30], temp_r31->unkC[0] + sp28[temp_r30][0], temp_r31->unkC[1] + sp28[temp_r30][1]); + espDispOff(temp_r31->unk54[temp_r30]); + } + } + temp_r31->unk0 = 0; + } + HuDataDirClose(DATADIR_MGCONST); + object->func = fn_1_6540; + (void)temp_r27; + (void)temp_r27; } void fn_1_6540(omObjData *object) { - float temp_f31; - Work61FC *temp_r31; - s32 temp_r30; - s32 temp_r29; - Work61FC *temp_r28 = object->data; - temp_r31 = temp_r28; - for(temp_r29=0; temp_r29<4; temp_r29++, temp_r31++) { - switch(temp_r31->unk14) { - case 0: - if(fn_1_6878() == 3) { - temp_r31->unk14 = 1; - } - break; - - case 1: - temp_r31->unk18 = 0; - temp_r31->unk1C[5] = temp_r31->unk8%10; - temp_r31->unk1C[6] = (temp_r31->unk8/10)%10; - for(temp_r30=0; temp_r30<7; temp_r30++) { - if(temp_r31->unk54[temp_r30] >= 0) { - espDispOn(temp_r31->unk54[temp_r30]); - } - } - if(temp_r31->unk0) { - temp_r31->unk38[5] = temp_r31->unk38[6] = 0.5f; - temp_r31->unk14++; - } else { - temp_r31->unk0 = 1; - temp_r31->unk38[5] = temp_r31->unk38[6] = 1.0f; - temp_r31->unk14 += 3; - break; - } - - case 2: - temp_f31 = temp_r31->unk38[5]; - temp_f31 += 0.10000001f; - if(temp_f31 >= 1.5f) { - temp_r31->unk14++; - } - temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; - break; - - case 3: - temp_f31 = temp_r31->unk38[5]; - temp_f31 -= 0.10000001f; - if(temp_f31 <= 1.0f) { - temp_f31 = 1.0f; - temp_r31->unk14++; - } - temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; - break; - - default: - break; - } - temp_r31->unk18++; - for(temp_r30=0; temp_r30<7; temp_r30++) { - espBankSet(temp_r31->unk54[temp_r30], temp_r31->unk1C[temp_r30]); - espScaleSet(temp_r31->unk54[temp_r30], temp_r31->unk38[temp_r30], temp_r31->unk38[temp_r30]); - } - } + float temp_f31; + Work61FC *temp_r31; + s32 temp_r30; + s32 temp_r29; + Work61FC *temp_r28 = object->data; + temp_r31 = temp_r28; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++, temp_r31++) { + switch (temp_r31->unk14) { + case 0: + if (fn_1_6878() == 3) { + temp_r31->unk14 = 1; + } + break; + + case 1: + temp_r31->unk18 = 0; + temp_r31->unk1C[5] = temp_r31->unk8 % 10; + temp_r31->unk1C[6] = (temp_r31->unk8 / 10) % 10; + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + if (temp_r31->unk54[temp_r30] >= 0) { + espDispOn(temp_r31->unk54[temp_r30]); + } + } + if (temp_r31->unk0) { + temp_r31->unk38[5] = temp_r31->unk38[6] = 0.5f; + temp_r31->unk14++; + } + else { + temp_r31->unk0 = 1; + temp_r31->unk38[5] = temp_r31->unk38[6] = 1.0f; + temp_r31->unk14 += 3; + break; + } + + case 2: + temp_f31 = temp_r31->unk38[5]; + temp_f31 += 0.10000001f; + if (temp_f31 >= 1.5f) { + temp_r31->unk14++; + } + temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; + break; + + case 3: + temp_f31 = temp_r31->unk38[5]; + temp_f31 -= 0.10000001f; + if (temp_f31 <= 1.0f) { + temp_f31 = 1.0f; + temp_r31->unk14++; + } + temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; + break; + + default: + break; + } + temp_r31->unk18++; + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + espBankSet(temp_r31->unk54[temp_r30], temp_r31->unk1C[temp_r30]); + espScaleSet(temp_r31->unk54[temp_r30], temp_r31->unk38[temp_r30], temp_r31->unk38[temp_r30]); + } + } } void fn_1_67C4(u16 arg0, u16 arg1) { - Work61FC *temp_r31; - temp_r31 = lbl_1_bss_8->data; - if(fn_1_6878() == 3) { - temp_r31[arg0].unk4 += arg1; - temp_r31[arg0].unk8 += arg1; - temp_r31[arg0].unk14 = 1; - } + Work61FC *temp_r31; + temp_r31 = lbl_1_bss_8->data; + if (fn_1_6878() == 3) { + temp_r31[arg0].unk4 += arg1; + temp_r31[arg0].unk8 += arg1; + temp_r31[arg0].unk14 = 1; + } } u32 fn_1_6868(void) { - return lbl_1_bss_62; + return lbl_1_bss_62; } - u32 fn_1_6878(void) { - return lbl_1_bss_60; + return lbl_1_bss_60; } float fn_1_6888(void) { - return lbl_1_bss_54; + return lbl_1_bss_54; } -void fn_1_6898(void) -{ - -} +void fn_1_6898(void) { } s32 fn_1_689C(void) { - return 0; + return 0; } -void fn_1_68A4(void) -{ - -} +void fn_1_68A4(void) { } Work2FAC *fn_1_68A8(s32 arg0) { - return lbl_1_bss_6C[arg0]->data; + return lbl_1_bss_6C[arg0]->data; } float fn_1_68C4(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE, float argF, float arg2, float arg3) { - float temp_f30; - float sp14; - float temp_f29; - float temp_f28; - - - float temp_f27; - float temp_f26; - - float sp10; - - sp14 = (argC + arg3) * (argC + arg3); - temp_f27 = (arg2 * arg2) + (((argB * argB) + ((argF * argF) + ((argA * argA) - (2.0f * argA * argF)))) - (2.0f * argB * arg2)); - temp_f26 = 2.0f * ((argE * arg2) + ((((arg9 * argB) + ((argD * argF) + (((arg8 * argA) - (arg8 * argF)) - (argD * argA)))) - (arg9 * arg2)) - (argE * argB))); - sp10 = ((argE * argE) + (((arg9 * arg9) + ((argD * argD) + ((arg8 * arg8) - (2.0f * arg8 * argD)))) - (2.0f * arg9 * argE))) - sp14; - if(0.0f == temp_f27) { - return -1; - } - temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * sp10); - if(temp_f30 <= 0.0) { - return -1; - } - temp_f30 = sqrtf(temp_f30); - temp_f29 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + float temp_f30; + float sp14; + float temp_f29; + float temp_f28; + + float temp_f27; + float temp_f26; + + float sp10; + + sp14 = (argC + arg3) * (argC + arg3); + temp_f27 = (arg2 * arg2) + (((argB * argB) + ((argF * argF) + ((argA * argA) - (2.0f * argA * argF)))) - (2.0f * argB * arg2)); + temp_f26 = 2.0f + * ((argE * arg2) + ((((arg9 * argB) + ((argD * argF) + (((arg8 * argA) - (arg8 * argF)) - (argD * argA)))) - (arg9 * arg2)) - (argE * argB))); + sp10 = ((argE * argE) + (((arg9 * arg9) + ((argD * argD) + ((arg8 * arg8) - (2.0f * arg8 * argD)))) - (2.0f * arg9 * argE))) - sp14; + if (0.0f == temp_f27) { + return -1; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * sp10); + if (temp_f30 <= 0.0) { + return -1; + } + temp_f30 = sqrtf(temp_f30); + temp_f29 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); temp_f28 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); - if(temp_f29 >= 0.0f && temp_f28 >= 0.0f) { - if(temp_f29 < temp_f28) { - if(temp_f29 < 1.0f) { - return temp_f29; - } - } - if(temp_f28 < 1.0f) { - return temp_f28; - } - } - return -1; + if (temp_f29 >= 0.0f && temp_f28 >= 0.0f) { + if (temp_f29 < temp_f28) { + if (temp_f29 < 1.0f) { + return temp_f29; + } + } + if (temp_f28 < 1.0f) { + return temp_f28; + } + } + return -1; } void fn_1_6C28(float *arg0, float arg1, float arg2, float arg3, float arg4, float arg5, float arg6) { - float temp_f24; - float temp_f29; - float temp_f28; - float temp_f31; - float temp_f30; - - float temp_f25; - - temp_f29 = arg3; - temp_f28 = arg4; - temp_f24 = sqrtf((temp_f29*temp_f29)+(temp_f28*temp_f28)); - if(temp_f24 != 0.0) { - temp_f25 = 1.0f/temp_f24; - temp_f29 *= temp_f25; - temp_f28 *= temp_f25; - } - temp_f31 = arg5-arg1; - temp_f30 = arg6-arg2; - temp_f25 = 1.0f/sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - temp_f31 *= temp_f25; - temp_f30 *= temp_f25; - temp_f25 = (temp_f29*temp_f31)+(temp_f28*temp_f30); - arg0[0] = temp_f25*(temp_f31*temp_f24); - arg0[1] = temp_f25*(temp_f30*temp_f24); + float temp_f24; + float temp_f29; + float temp_f28; + float temp_f31; + float temp_f30; + + float temp_f25; + + temp_f29 = arg3; + temp_f28 = arg4; + temp_f24 = sqrtf((temp_f29 * temp_f29) + (temp_f28 * temp_f28)); + if (temp_f24 != 0.0) { + temp_f25 = 1.0f / temp_f24; + temp_f29 *= temp_f25; + temp_f28 *= temp_f25; + } + temp_f31 = arg5 - arg1; + temp_f30 = arg6 - arg2; + temp_f25 = 1.0f / sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + temp_f31 *= temp_f25; + temp_f30 *= temp_f25; + temp_f25 = (temp_f29 * temp_f31) + (temp_f28 * temp_f30); + arg0[0] = temp_f25 * (temp_f31 * temp_f24); + arg0[1] = temp_f25 * (temp_f30 * temp_f24); } -void fn_1_6F4C(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE, float argF, float *arg0, float *arg1, float *arg2, float *arg3) +void fn_1_6F4C(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE, float argF, float *arg0, float *arg1, float *arg2, + float *arg3) { - float sp70[2]; - float sp68[2]; - float sp64; - float sp60; - sp64 = arg8+(0.5f*(argC-arg8)); - sp60 = arg9+(0.5f*(argD-arg9)); - fn_1_6C28(sp70, arg8, arg9, argA, argB, sp64, sp60); - fn_1_6C28(sp68, argC, argD, argE, argF, sp64, sp60); - *arg0 = sp68[0]-sp70[0]; - *arg1 = sp68[1]-sp70[1]; - *arg2 = sp70[0]-sp68[0]; - *arg3 = sp70[1]-sp68[1]; + float sp70[2]; + float sp68[2]; + float sp64; + float sp60; + sp64 = arg8 + (0.5f * (argC - arg8)); + sp60 = arg9 + (0.5f * (argD - arg9)); + fn_1_6C28(sp70, arg8, arg9, argA, argB, sp64, sp60); + fn_1_6C28(sp68, argC, argD, argE, argF, sp64, sp60); + *arg0 = sp68[0] - sp70[0]; + *arg1 = sp68[1] - sp70[1]; + *arg2 = sp70[0] - sp68[0]; + *arg3 = sp70[1] - sp68[1]; } void fn_1_75B8(float *arg0, float *arg1, float arg2, float arg3, float arg4, float arg5, float arg6, float arg7) { - float temp_f26 = arg2+(0.5f*(arg6-arg2)); - float temp_f25 = arg3+(0.5f*(arg7-arg3)); - float temp_f31 = arg2-temp_f26; - float temp_f30 = arg3-temp_f25; - float temp_f28; - if(temp_f31 == 0.0f || temp_f30 == 0.0f) { - *arg0 = *arg1 = 0.0f; - return; - } - temp_f28 = 1.0f/sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - temp_f31 *= temp_f28; - temp_f30 *= temp_f28; - *arg0 = (2.0f*temp_f31)*((-arg4*temp_f31)-(arg5*temp_f30)); - *arg1 = (2.0f*temp_f30)*((-arg4*temp_f31)-(arg5*temp_f30)); + float temp_f26 = arg2 + (0.5f * (arg6 - arg2)); + float temp_f25 = arg3 + (0.5f * (arg7 - arg3)); + float temp_f31 = arg2 - temp_f26; + float temp_f30 = arg3 - temp_f25; + float temp_f28; + if (temp_f31 == 0.0f || temp_f30 == 0.0f) { + *arg0 = *arg1 = 0.0f; + return; + } + temp_f28 = 1.0f / sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + temp_f31 *= temp_f28; + temp_f30 *= temp_f28; + *arg0 = (2.0f * temp_f31) * ((-arg4 * temp_f31) - (arg5 * temp_f30)); + *arg1 = (2.0f * temp_f30) * ((-arg4 * temp_f31) - (arg5 * temp_f30)); } void fn_1_7818(omObjData *arg0, omObjData *arg1) { - Work2FAC *temp_r31 = arg0->data; - Work2FAC *temp_r30 = arg1->data; - - float sp14; - float sp10; - float spC; - float sp8; - fn_1_6F4C(temp_r31->unk1C.x, temp_r31->unk1C.z, temp_r31->unk34.x, temp_r31->unk34.z, - temp_r30->unk1C.x, temp_r30->unk1C.z, temp_r30->unk34.x, temp_r30->unk34.z, - &sp14, &sp10, &spC, &sp8); - temp_r31->unk34.x += sp14; - temp_r31->unk34.z += sp10; - temp_r30->unk34.x += spC; - temp_r30->unk34.z += sp8; + Work2FAC *temp_r31 = arg0->data; + Work2FAC *temp_r30 = arg1->data; + + float sp14; + float sp10; + float spC; + float sp8; + fn_1_6F4C(temp_r31->unk1C.x, temp_r31->unk1C.z, temp_r31->unk34.x, temp_r31->unk34.z, temp_r30->unk1C.x, temp_r30->unk1C.z, temp_r30->unk34.x, + temp_r30->unk34.z, &sp14, &sp10, &spC, &sp8); + temp_r31->unk34.x += sp14; + temp_r31->unk34.z += sp10; + temp_r30->unk34.x += spC; + temp_r30->unk34.z += sp8; } s32 fn_1_78D8(void) { - float temp_f29; - float temp_f18; - - Work2FAC *temp_r31; - s32 temp_r30; - Work2FAC *temp_r29; - Work2FAC *temp_r28; - s32 temp_r27; - s32 temp_r26; - omObjData *temp_r25; - omObjData *temp_r24; - omObjData *temp_r23; - - omObjData *sp30[2]; - temp_r26 = -1; - temp_f18 = 0; - temp_f29 = 9999; - for(temp_r27=0; temp_r27<3; temp_r27++) { - temp_r25 = lbl_1_bss_6C[temp_r27]; - temp_r29 = temp_r25->data; - if(temp_r29->unk4 & 0x10) { - continue; - } - for(temp_r30=temp_r27+1; temp_r30<4; temp_r30++) { - temp_r24 = lbl_1_bss_6C[temp_r30]; - temp_r28 = temp_r24->data; - if(temp_r28->unk4 & 0x10) { - continue; - } - temp_f18 = fn_1_68C4(temp_r29->unk1C.x, temp_r29->unk1C.z, temp_r29->unk34.x*lbl_1_bss_4, temp_r29->unk34.z*lbl_1_bss_4, - temp_r29->unk58.z, temp_r28->unk1C.x, temp_r28->unk1C.z, temp_r28->unk34.x*lbl_1_bss_4, temp_r28->unk34.z*lbl_1_bss_4, - temp_r28->unk58.z); - if(temp_f18 >= 0.0 && temp_f18 <= temp_f29) { - temp_f29 = temp_f18; - temp_r26 = 1; - sp30[0] = temp_r25; - sp30[1] = temp_r24; - } - } - } - if(temp_r26 < 0) { - return 0; - } - if(temp_f29 > 0.0f) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_1_bss_6C[temp_r30]->data; - temp_r31->unk64 = 0; - } - } - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r23 = lbl_1_bss_6C[temp_r30]; - temp_r31 = temp_r23->data; - if(!(temp_r31->unk4 & 0x10)) { - temp_r31->unk1C.x += lbl_1_bss_4*(temp_r31->unk34.x*temp_f29); - temp_r31->unk1C.z += lbl_1_bss_4*(temp_r31->unk34.z*temp_f29); - } - } - if(temp_r26 != 1) { - (void)temp_r26; - } else { - fn_1_7818(sp30[0], sp30[1]); - for(temp_r30=0; temp_r30<2; temp_r30++) { - temp_r31 = sp30[temp_r30]->data; - if(temp_r31->unk4 & 0x10) { - continue; - } - temp_r31->unk64++; - if(temp_r31->unk18 == 0) { - lbl_1_bss_0 = 1; - } - temp_r31->unk18 = 18; - if(temp_r31->unk64 > 2.0f) { - temp_r31->unk34.x = temp_r31->unk34.z = 0; - } - } - } - lbl_1_bss_4 *= (1.0f-temp_f29); - return 1; + float temp_f29; + float temp_f18; + + Work2FAC *temp_r31; + s32 temp_r30; + Work2FAC *temp_r29; + Work2FAC *temp_r28; + s32 temp_r27; + s32 temp_r26; + omObjData *temp_r25; + omObjData *temp_r24; + omObjData *temp_r23; + + omObjData *sp30[2]; + temp_r26 = -1; + temp_f18 = 0; + temp_f29 = 9999; + for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { + temp_r25 = lbl_1_bss_6C[temp_r27]; + temp_r29 = temp_r25->data; + if (temp_r29->unk4 & 0x10) { + continue; + } + for (temp_r30 = temp_r27 + 1; temp_r30 < 4; temp_r30++) { + temp_r24 = lbl_1_bss_6C[temp_r30]; + temp_r28 = temp_r24->data; + if (temp_r28->unk4 & 0x10) { + continue; + } + temp_f18 + = fn_1_68C4(temp_r29->unk1C.x, temp_r29->unk1C.z, temp_r29->unk34.x * lbl_1_bss_4, temp_r29->unk34.z * lbl_1_bss_4, temp_r29->unk58.z, + temp_r28->unk1C.x, temp_r28->unk1C.z, temp_r28->unk34.x * lbl_1_bss_4, temp_r28->unk34.z * lbl_1_bss_4, temp_r28->unk58.z); + if (temp_f18 >= 0.0 && temp_f18 <= temp_f29) { + temp_f29 = temp_f18; + temp_r26 = 1; + sp30[0] = temp_r25; + sp30[1] = temp_r24; + } + } + } + if (temp_r26 < 0) { + return 0; + } + if (temp_f29 > 0.0f) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_1_bss_6C[temp_r30]->data; + temp_r31->unk64 = 0; + } + } + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r23 = lbl_1_bss_6C[temp_r30]; + temp_r31 = temp_r23->data; + if (!(temp_r31->unk4 & 0x10)) { + temp_r31->unk1C.x += lbl_1_bss_4 * (temp_r31->unk34.x * temp_f29); + temp_r31->unk1C.z += lbl_1_bss_4 * (temp_r31->unk34.z * temp_f29); + } + } + if (temp_r26 != 1) { + (void)temp_r26; + } + else { + fn_1_7818(sp30[0], sp30[1]); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + temp_r31 = sp30[temp_r30]->data; + if (temp_r31->unk4 & 0x10) { + continue; + } + temp_r31->unk64++; + if (temp_r31->unk18 == 0) { + lbl_1_bss_0 = 1; + } + temp_r31->unk18 = 18; + if (temp_r31->unk64 > 2.0f) { + temp_r31->unk34.x = temp_r31->unk34.z = 0; + } + } + } + lbl_1_bss_4 *= (1.0f - temp_f29); + return 1; } void fn_1_8020(void) { - Work2FAC *temp_r31; - s32 temp_r30; - omObjData *temp_r29; - lbl_1_bss_4 = 1.0f; - lbl_1_bss_0 = 0; - while(fn_1_78D8()); - if(lbl_1_bss_0) { - HuAudFXPlay(1359); - } - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = lbl_1_bss_6C[temp_r30]; - temp_r31 = temp_r29->data; - if(temp_r31->unk18 != 0) { - temp_r31->unk18--; - } - if(temp_r31->unk4 & 0x10) { - continue; - } - temp_r31->unk1C.x += temp_r31->unk34.x*lbl_1_bss_4; - temp_r31->unk1C.z += temp_r31->unk34.z*lbl_1_bss_4; - temp_r31->unk28.x = temp_r31->unk34.x*60.0f; - temp_r31->unk28.z = temp_r31->unk34.z*60.0f; - temp_r31->unk34.x = temp_r31->unk34.z = 0; - } + Work2FAC *temp_r31; + s32 temp_r30; + omObjData *temp_r29; + lbl_1_bss_4 = 1.0f; + lbl_1_bss_0 = 0; + while (fn_1_78D8()) + ; + if (lbl_1_bss_0) { + HuAudFXPlay(1359); + } + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = lbl_1_bss_6C[temp_r30]; + temp_r31 = temp_r29->data; + if (temp_r31->unk18 != 0) { + temp_r31->unk18--; + } + if (temp_r31->unk4 & 0x10) { + continue; + } + temp_r31->unk1C.x += temp_r31->unk34.x * lbl_1_bss_4; + temp_r31->unk1C.z += temp_r31->unk34.z * lbl_1_bss_4; + temp_r31->unk28.x = temp_r31->unk34.x * 60.0f; + temp_r31->unk28.z = temp_r31->unk34.z * 60.0f; + temp_r31->unk34.x = temp_r31->unk34.z = 0; + } } void fn_1_817C(Vec *arg0, Vec *arg1) { - Vec sp10; - sp10.x = arg1->x-arg0->x; - sp10.y = arg1->y-arg0->y; - sp10.z = arg1->z-arg0->z; - Center.x = arg1->x; - Center.y = arg1->y; - Center.z = arg1->z; - CRot.x = atan2d(sp10.y, VECMagXZ(&sp10)); - CRot.y = atan2d(-sp10.x, -sp10.z); - CRot.z = 0; - CZoom = sqrtf(VECMag2Point(&sp10)); + Vec sp10; + sp10.x = arg1->x - arg0->x; + sp10.y = arg1->y - arg0->y; + sp10.z = arg1->z - arg0->z; + Center.x = arg1->x; + Center.y = arg1->y; + Center.z = arg1->z; + CRot.x = atan2d(sp10.y, VECMagXZ(&sp10)); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0; + CZoom = sqrtf(VECMag2Point(&sp10)); } void fn_1_84C4(float arg0, float arg1, float arg2, float arg3, float arg4, float arg5) { - Vec sp40; - Vec sp34; - sp40.x = arg0; - sp40.y = arg1; - sp40.z = arg2; - sp34.x = arg3; - sp34.y = arg4; - sp34.z = arg5; - fn_1_817C(&sp40, &sp34); + Vec sp40; + Vec sp34; + sp40.x = arg0; + sp40.y = arg1; + sp40.z = arg2; + sp34.x = arg3; + sp34.y = arg4; + sp34.z = arg5; + fn_1_817C(&sp40, &sp34); } float fn_1_883C(float arg0, float arg1, float arg2) { - float temp_f31; - temp_f31 = fmodf(arg1-arg0, 360); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - temp_f31 = fmodf((arg2*temp_f31)+arg0, 360); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - return temp_f31; + float temp_f31; + temp_f31 = fmodf(arg1 - arg0, 360); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f31 = fmodf((arg2 * temp_f31) + arg0, 360); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + return temp_f31; } diff --git a/src/REL/m408Dll/object.c b/src/REL/m408Dll/object.c index b2ccec82..817bdfce 100644 --- a/src/REL/m408Dll/object.c +++ b/src/REL/m408Dll/object.c @@ -1,14 +1,14 @@ #include "game/object.h" -#include "game/objsub.h" -#include "game/wipe.h" #include "game/chrman.h" #include "game/minigame_seq.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/sprite.h" #include "game/audio.h" @@ -16,33 +16,33 @@ #include "REL/m408Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" typedef struct struct_data_20C { - s32 unk0; - float unk4; - float unk8; + s32 unk0; + float unk4; + float unk8; } StructData20C; typedef struct struct_bss_da4 { - s32 unk0; - s32 unk4; - s32 unk8; - Vec unkC; - Vec unk18; - Vec unk24; - float unk30; - Vec unk34; - float unk40[2]; - float unk48; - float unk4C; - s32 unk50; - s32 unk54; - s32 unk58; - s32 unk5C; - s32 unk60; - float unk64; + s32 unk0; + s32 unk4; + s32 unk8; + Vec unkC; + Vec unk18; + Vec unk24; + float unk30; + Vec unk34; + float unk40[2]; + float unk48; + float unk4C; + s32 unk50; + s32 unk54; + s32 unk58; + s32 unk5C; + s32 unk60; + float unk64; } StructBssDA4; void fn_1_12C6C(StructBssDA4 *arg0); @@ -56,136 +56,109 @@ void fn_1_14DB4(StructBssDA4 *arg0); void fn_1_151A4(StructBssDA4 *arg0); s32 lbl_1_data_1A0[9] = { - 0x00270012, - 0x00270012, - 0x00270012, - 0x00270012, - 0x00270012, - 0x00270014, - 0x00270014, - 0x00270016, - 0x00270017 + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x14), + DATA_MAKE_NUM(DATADIR_M408, 0x14), + DATA_MAKE_NUM(DATADIR_M408, 0x16), + DATA_MAKE_NUM(DATADIR_M408, 0x17), }; s32 lbl_1_data_1C4[9] = { - 0x00270013, - 0x00270013, - 0x00270013, - 0x00270013, - 0x00270013, - 0x00270015, - 0x00270015, - 0, - 0 + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x15), + DATA_MAKE_NUM(DATADIR_M408, 0x15), + 0, + 0, }; typedef void (*BssDA4Func)(StructBssDA4 *arg0); -BssDA4Func lbl_1_data_1E8[9] = { - fn_1_12C6C, - fn_1_1305C, - fn_1_134D8, - fn_1_13820, - fn_1_13D88, - fn_1_1406C, - fn_1_144D0, - fn_1_14DB4, - fn_1_151A4 -}; +BssDA4Func lbl_1_data_1E8[9] = { fn_1_12C6C, fn_1_1305C, fn_1_134D8, fn_1_13820, fn_1_13D88, fn_1_1406C, fn_1_144D0, fn_1_14DB4, fn_1_151A4 }; StructData20C lbl_1_data_20C[] = { - { 0, 10600, 100 }, - { 0, 10600, 290 }, - { 7, 10500, 0 }, - { 7, 10400, 72 }, - { 7, 10300, 144 }, - { 7, 10200, 216 }, - { 7, 10100, 288 }, - { 5, 9600, 0 }, - { 7, 9000, 0 }, - { 7, 9000, 72 }, - { 7, 9000, 144 }, - { 7, 9000, 216 }, - { 7, 9000, 288 }, - { 1, 8600, 150 }, - { 7, 8500, 216 }, - { 7, 8400, 288 }, - { 7, 8300, 0 }, - { 7, 8200, 72 }, - { 7, 8100, 144 }, - { 6, 7700, 0 }, - { 6, 7700, 180 }, - { 7, 7500, 165 }, - { 7, 7500, 285 }, - { 7, 7500, 45 }, - { 8, 7000, 225 }, - { 8, 7000, 345 }, - { 8, 7000, 105 }, - { 7, 6500, 165 }, - { 7, 6500, 285 }, - { 7, 6500, 45 }, - { 4, 5500, 0 }, - { 4, 5500, 120 }, - { 4, 5500, 240 }, - { 7, 4700, 0 }, - { 7, 4700, 72 }, - { 7, 4700, 144 }, - { 7, 4700, 216 }, - { 7, 4700, 288 }, - { 5, 4500, 120 }, - { 7, 4250, 165 }, - { 7, 4250, 285 }, - { 7, 4250, 45 }, - { 5, 4000, 120 }, - { 7, 3750, 225 }, - { 7, 3750, 345 }, - { 7, 3750, 105 }, - { 5, 3500, 240 }, - { 7, 3250, 165 }, - { 7, 3250, 285 }, - { 7, 3250, 45 }, - { 7, 2100, 36 }, - { 7, 2100, 108 }, - { 7, 2100, 180 }, - { 7, 2100, 252 }, - { 7, 2100, 324 }, - { 3, 1500, 0 }, - { 3, 1500, 120 }, - { 3, 1500, 240 }, - { 8, 1300, 165 }, - { 8, 1300, 285 }, - { 8, 1300, 45 }, - { -1, 10000, 0 }, + { 0, 10600, 100 }, + { 0, 10600, 290 }, + { 7, 10500, 0 }, + { 7, 10400, 72 }, + { 7, 10300, 144 }, + { 7, 10200, 216 }, + { 7, 10100, 288 }, + { 5, 9600, 0 }, + { 7, 9000, 0 }, + { 7, 9000, 72 }, + { 7, 9000, 144 }, + { 7, 9000, 216 }, + { 7, 9000, 288 }, + { 1, 8600, 150 }, + { 7, 8500, 216 }, + { 7, 8400, 288 }, + { 7, 8300, 0 }, + { 7, 8200, 72 }, + { 7, 8100, 144 }, + { 6, 7700, 0 }, + { 6, 7700, 180 }, + { 7, 7500, 165 }, + { 7, 7500, 285 }, + { 7, 7500, 45 }, + { 8, 7000, 225 }, + { 8, 7000, 345 }, + { 8, 7000, 105 }, + { 7, 6500, 165 }, + { 7, 6500, 285 }, + { 7, 6500, 45 }, + { 4, 5500, 0 }, + { 4, 5500, 120 }, + { 4, 5500, 240 }, + { 7, 4700, 0 }, + { 7, 4700, 72 }, + { 7, 4700, 144 }, + { 7, 4700, 216 }, + { 7, 4700, 288 }, + { 5, 4500, 120 }, + { 7, 4250, 165 }, + { 7, 4250, 285 }, + { 7, 4250, 45 }, + { 5, 4000, 120 }, + { 7, 3750, 225 }, + { 7, 3750, 345 }, + { 7, 3750, 105 }, + { 5, 3500, 240 }, + { 7, 3250, 165 }, + { 7, 3250, 285 }, + { 7, 3250, 45 }, + { 7, 2100, 36 }, + { 7, 2100, 108 }, + { 7, 2100, 180 }, + { 7, 2100, 252 }, + { 7, 2100, 324 }, + { 3, 1500, 0 }, + { 3, 1500, 120 }, + { 3, 1500, 240 }, + { 8, 1300, 165 }, + { 8, 1300, 285 }, + { 8, 1300, 45 }, + { -1, 10000, 0 }, }; -GXColor lbl_1_data_4F4[4] = { - { 255, 255, 255, 255 }, - { 255, 255, 0, 255 }, - { 0, 255, 255, 255 }, - { 255, 200, 200, 255 } -}; +GXColor lbl_1_data_4F4[4] = { { 255, 255, 255, 255 }, { 255, 255, 0, 255 }, { 0, 255, 255, 255 }, { 255, 200, 200, 255 } }; -u8 lbl_1_data_504[] = { - 5, 3, 1, 0 -}; +u8 lbl_1_data_504[] = { 5, 3, 1, 0 }; -float lbl_1_data_508[3] = { - 72, 120, 0 -}; +float lbl_1_data_508[3] = { 72, 120, 0 }; -float lbl_1_data_514[3] = { - 0, 60, 0 -}; +float lbl_1_data_514[3] = { 0, 60, 0 }; -float lbl_1_data_520[3] = { - 30, 60, 90 -}; +float lbl_1_data_520[3] = { 30, 60, 90 }; -Vec lbl_1_data_52C[3] = { - { 1500, 2500, 1500 }, - { 0, 1, 0 }, - { 0, 0, 0 } -}; +Vec lbl_1_data_52C[3] = { { 1500, 2500, 1500 }, { 0, 1, 0 }, { 0, 0, 0 } }; omObjData *lbl_1_bss_75A8; omObjData *lbl_1_bss_75A4; @@ -201,9 +174,9 @@ void fn_1_15BCC(omObjData *object); void fn_1_118D0(Process *objman) { - lbl_1_bss_168 = 0; - lbl_1_bss_75A8 = omAddObjEx(objman, 40, 256, 1, -1, fn_1_11960); - lbl_1_bss_75A4 = omAddObjEx(objman, 41, 4, 0, -1, fn_1_15BCC); + lbl_1_bss_168 = 0; + lbl_1_bss_75A8 = omAddObjEx(objman, 40, 256, 1, -1, fn_1_11960); + lbl_1_bss_75A4 = omAddObjEx(objman, 41, 4, 0, -1, fn_1_15BCC); } void fn_1_11E3C(StructBssDA4 *arg0, s32 arg1); @@ -215,195 +188,198 @@ void fn_1_15658(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_11960(omObjData *object) { - StructBssDA4 *temp_r31; - s32 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - s16 temp_r22; - temp_r31 = &lbl_1_bss_DA4[0]; - lbl_1_bss_DA0 = 0; - lbl_1_bss_D9C = 0; - while(lbl_1_data_20C[lbl_1_bss_DA0].unk0 != -1) { - if(lbl_1_data_20C[lbl_1_bss_DA0].unk0 == 7) { - lbl_1_bss_D9C++; - } - lbl_1_bss_DA0++; - } - object->stat |= 0x100; - temp_r27 = temp_r26 = temp_r25 = temp_r24 = -1; - for(temp_r29=0; temp_r29unk0) { - case 0: - case 1: - case 2: - case 3: - case 4: - if(temp_r27 < 0) { - temp_r27 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r23 = Hu3DJointMotionFile(temp_r27, lbl_1_data_1C4[temp_r31->unk0]); - Hu3DModelAttrSet(temp_r27, 0x40000001); - Hu3DMotionSet(temp_r27, temp_r23); - temp_r28 = temp_r27; - } else { - temp_r28 = Hu3DModelLink(temp_r27); - } - break; - - case 5: - case 6: - if(temp_r26 < 0) { - temp_r26 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r22 = Hu3DJointMotionFile(temp_r26, lbl_1_data_1C4[temp_r31->unk0]); - Hu3DModelAttrSet(temp_r26, 0x40000001); - Hu3DMotionSet(temp_r26, temp_r22); - temp_r28 = temp_r26; - } else { - temp_r28 = Hu3DModelLink(temp_r26); - } - break; - - case 7: - if(temp_r25 < 0) { - temp_r25 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r28 = temp_r25; - } else { - temp_r28 = Hu3DModelLink(temp_r25); - } - break; - - case 8: - if(temp_r24 < 0) { - temp_r24 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r28 = temp_r24; - } else { - temp_r28 = Hu3DModelLink(temp_r24); - } - break; - - default: - break; - } - object->model[temp_r29] = temp_r28; - Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); - Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); - Hu3DModelScaleSet(object->model[temp_r29], 0.15f, 0.15f, 0.15f); - Hu3DModelCameraSet(object->model[temp_r29], 1); - Hu3DModelAttrSet(object->model[temp_r29], 1); - if(temp_r31->unk0 < 7) { - Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); - } - } - for(temp_r29=lbl_1_bss_DA0; temp_r29model[temp_r29] = temp_r28; - Hu3DModelAttrSet(temp_r28, 1); - Hu3DModelLayerSet(temp_r28, 6); - Hu3DParticleColSet(temp_r28, 255, 255, 255); - Hu3DParticleHookSet(temp_r28, fn_1_15658); - Hu3DModelPosSet(temp_r28, 0, 0, 0); - fn_1_155E0(temp_r28, 0); - } - object->func = fn_1_12354; + StructBssDA4 *temp_r31; + s32 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + s16 temp_r22; + temp_r31 = &lbl_1_bss_DA4[0]; + lbl_1_bss_DA0 = 0; + lbl_1_bss_D9C = 0; + while (lbl_1_data_20C[lbl_1_bss_DA0].unk0 != -1) { + if (lbl_1_data_20C[lbl_1_bss_DA0].unk0 == 7) { + lbl_1_bss_D9C++; + } + lbl_1_bss_DA0++; + } + object->stat |= 0x100; + temp_r27 = temp_r26 = temp_r25 = temp_r24 = -1; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_DA0; temp_r29++, temp_r31++) { + fn_1_11E3C(temp_r31, temp_r29); + switch (temp_r31->unk0) { + case 0: + case 1: + case 2: + case 3: + case 4: + if (temp_r27 < 0) { + temp_r27 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r23 = Hu3DJointMotionFile(temp_r27, lbl_1_data_1C4[temp_r31->unk0]); + Hu3DModelAttrSet(temp_r27, 0x40000001); + Hu3DMotionSet(temp_r27, temp_r23); + temp_r28 = temp_r27; + } + else { + temp_r28 = Hu3DModelLink(temp_r27); + } + break; + + case 5: + case 6: + if (temp_r26 < 0) { + temp_r26 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r22 = Hu3DJointMotionFile(temp_r26, lbl_1_data_1C4[temp_r31->unk0]); + Hu3DModelAttrSet(temp_r26, 0x40000001); + Hu3DMotionSet(temp_r26, temp_r22); + temp_r28 = temp_r26; + } + else { + temp_r28 = Hu3DModelLink(temp_r26); + } + break; + + case 7: + if (temp_r25 < 0) { + temp_r25 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r28 = temp_r25; + } + else { + temp_r28 = Hu3DModelLink(temp_r25); + } + break; + + case 8: + if (temp_r24 < 0) { + temp_r24 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r28 = temp_r24; + } + else { + temp_r28 = Hu3DModelLink(temp_r24); + } + break; + + default: + break; + } + object->model[temp_r29] = temp_r28; + Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); + Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); + Hu3DModelScaleSet(object->model[temp_r29], 0.15f, 0.15f, 0.15f); + Hu3DModelCameraSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], 1); + if (temp_r31->unk0 < 7) { + Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); + } + } + for (temp_r29 = lbl_1_bss_DA0; temp_r29 < lbl_1_bss_DA0 + lbl_1_bss_D9C; temp_r29++) { + temp_r28 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x18)), 32); + object->model[temp_r29] = temp_r28; + Hu3DModelAttrSet(temp_r28, 1); + Hu3DModelLayerSet(temp_r28, 6); + Hu3DParticleColSet(temp_r28, 255, 255, 255); + Hu3DParticleHookSet(temp_r28, fn_1_15658); + Hu3DModelPosSet(temp_r28, 0, 0, 0); + fn_1_155E0(temp_r28, 0); + } + object->func = fn_1_12354; } void fn_1_11E3C(StructBssDA4 *arg0, s32 arg1) { - float temp_f31; - float temp_f30; - s32 temp_r29; - temp_r29 = 0; - temp_f30 = 40; - temp_f31 = 20; - arg0->unk0 = lbl_1_data_20C[arg1].unk0; - arg0->unk4 = arg1; - arg0->unk8 = -1; - arg0->unk18.x = arg0->unkC.x = 0; - arg0->unk18.y = arg0->unkC.y = lbl_1_data_20C[arg1].unk4; - arg0->unk18.z = arg0->unkC.z = 0; - arg0->unk24.x = arg0->unk24.y = arg0->unk24.z = 0; - arg0->unk48 = 180; - arg0->unk34.x = arg0->unk34.z = arg0->unk34.y = 0; - arg0->unk40[0] = arg0->unk40[1] = 0; - arg0->unk30 = 0; - arg0->unk4C = 1; - arg0->unk50 = 1; - arg0->unk54 = 0; - arg0->unk5C = 1; - arg0->unk58 = 0; - arg0->unk60 = 0; - arg0->unk64 = 0; - switch(arg0->unk0) { - case 0: - arg0->unk64 = temp_f31+(rand8()%(int)temp_f30); - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = 180+(-arg0->unk30+90); - - break; - - case 1: - arg0->unk34.y = arg0->unk40[0] = 180+(-arg0->unk30+90); - arg0->unk30 = rand8()%360; - break; - - case 2: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = 90+(180+(-arg0->unk30+90)); - break; - - case 3: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = (180+(-arg0->unk30+90))-90; - break; - - case 4: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = 180+(-arg0->unk30+90); - break; - - case 5: - arg0->unk30 = rand8()%360; - arg0->unk34.y = 180+(-arg0->unk30+90); - arg0->unk48 = 0; - break; - - case 6: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = -arg0->unk30+90; - break; - + float temp_f31; + float temp_f30; + s32 temp_r29; + temp_r29 = 0; + temp_f30 = 40; + temp_f31 = 20; + arg0->unk0 = lbl_1_data_20C[arg1].unk0; + arg0->unk4 = arg1; + arg0->unk8 = -1; + arg0->unk18.x = arg0->unkC.x = 0; + arg0->unk18.y = arg0->unkC.y = lbl_1_data_20C[arg1].unk4; + arg0->unk18.z = arg0->unkC.z = 0; + arg0->unk24.x = arg0->unk24.y = arg0->unk24.z = 0; + arg0->unk48 = 180; + arg0->unk34.x = arg0->unk34.z = arg0->unk34.y = 0; + arg0->unk40[0] = arg0->unk40[1] = 0; + arg0->unk30 = 0; + arg0->unk4C = 1; + arg0->unk50 = 1; + arg0->unk54 = 0; + arg0->unk5C = 1; + arg0->unk58 = 0; + arg0->unk60 = 0; + arg0->unk64 = 0; + switch (arg0->unk0) { + case 0: + arg0->unk64 = temp_f31 + (rand8() % (int)temp_f30); + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = 180 + (-arg0->unk30 + 90); - - case 7: - case 8: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk8 = lbl_1_bss_DA0+temp_r29; - temp_r29++; - break; - } - if(arg0->unk34.y > 360) { - arg0->unk34.y -= 360; - } else { - if(arg0->unk34.y < 0) { - arg0->unk34.y += 360; - } - } + break; + + case 1: + arg0->unk34.y = arg0->unk40[0] = 180 + (-arg0->unk30 + 90); + arg0->unk30 = rand8() % 360; + break; + + case 2: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = 90 + (180 + (-arg0->unk30 + 90)); + break; + + case 3: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = (180 + (-arg0->unk30 + 90)) - 90; + break; + + case 4: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = 180 + (-arg0->unk30 + 90); + break; + + case 5: + arg0->unk30 = rand8() % 360; + arg0->unk34.y = 180 + (-arg0->unk30 + 90); + arg0->unk48 = 0; + break; + + case 6: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = -arg0->unk30 + 90; + break; + + case 7: + case 8: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk8 = lbl_1_bss_DA0 + temp_r29; + temp_r29++; + break; + } + if (arg0->unk34.y > 360) { + arg0->unk34.y -= 360; + } + else { + if (arg0->unk34.y < 0) { + arg0->unk34.y += 360; + } + } } void fn_1_12354(omObjData *object) { - s32 temp_r31; - u32 temp_r30; - temp_r30 = fn_1_6878(); - if(temp_r30 == 2) { - for(temp_r31=0; temp_r31func =fn_1_123C8; - } - + s32 temp_r31; + u32 temp_r30; + temp_r30 = fn_1_6878(); + if (temp_r30 == 2) { + for (temp_r31 = 0; temp_r31 < lbl_1_bss_DA0; temp_r31++) + ; + object->func = fn_1_123C8; + } } void fn_1_12670(omObjData *object); @@ -412,952 +388,973 @@ void fn_1_127A0(StructBssDA4 *object); void fn_1_123C8(omObjData *object) { - StructBssDA4 *temp_r31; - s32 temp_r29; - u32 temp_r28; - temp_r31 = &lbl_1_bss_DA4[0]; - lbl_1_bss_168 = 0; - for(temp_r29=0; temp_r29unk50 == 1) { - lbl_1_data_1E8[temp_r31->unk0](temp_r31); - if(temp_r31->unk5C == 0) { - fn_1_127A0(temp_r31); - } - Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); - Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); - Hu3DModelScaleSet(object->model[temp_r29], 0.15f*temp_r31->unk4C, 0.15f*temp_r31->unk4C, 0.15f*temp_r31->unk4C); - if(temp_r31->unkC.y > fn_1_6888()-1000 && temp_r31->unkC.y < fn_1_6888()+200) { - Hu3DModelAttrReset(object->model[temp_r29], 1); - } else { - Hu3DModelAttrSet(object->model[temp_r29], 1); - } - if(temp_r31->unk0 == 7 || temp_r31->unk0 == 8) { - if(temp_r31->unkC.y > fn_1_6888()-150 && temp_r31->unkC.y < fn_1_6888()+10) { - lbl_1_bss_16C[lbl_1_bss_168++] = temp_r31->unkC; - - } - } - } else { - Hu3DModelAttrSet(object->model[temp_r29], 1); - } - } - temp_r28 = fn_1_6878(); - if(temp_r28 == 5) { - for(temp_r29=0; temp_r29model[temp_r29], 1); - } - object->func = fn_1_12670; - } - + StructBssDA4 *temp_r31; + s32 temp_r29; + u32 temp_r28; + temp_r31 = &lbl_1_bss_DA4[0]; + lbl_1_bss_168 = 0; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_DA0; temp_r29++, temp_r31++) { + if (temp_r31->unk50 == 1) { + lbl_1_data_1E8[temp_r31->unk0](temp_r31); + if (temp_r31->unk5C == 0) { + fn_1_127A0(temp_r31); + } + Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); + Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); + Hu3DModelScaleSet(object->model[temp_r29], 0.15f * temp_r31->unk4C, 0.15f * temp_r31->unk4C, 0.15f * temp_r31->unk4C); + if (temp_r31->unkC.y > fn_1_6888() - 1000 && temp_r31->unkC.y < fn_1_6888() + 200) { + Hu3DModelAttrReset(object->model[temp_r29], 1); + } + else { + Hu3DModelAttrSet(object->model[temp_r29], 1); + } + if (temp_r31->unk0 == 7 || temp_r31->unk0 == 8) { + if (temp_r31->unkC.y > fn_1_6888() - 150 && temp_r31->unkC.y < fn_1_6888() + 10) { + lbl_1_bss_16C[lbl_1_bss_168++] = temp_r31->unkC; + } + } + } + else { + Hu3DModelAttrSet(object->model[temp_r29], 1); + } + } + temp_r28 = fn_1_6878(); + if (temp_r28 == 5) { + for (temp_r29 = 0; temp_r29 < lbl_1_bss_DA0; temp_r29++, temp_r31++) { + Hu3DModelAttrSet(object->model[temp_r29], 1); + } + object->func = fn_1_12670; + } } -void fn_1_12670(omObjData *object) -{ - -} +void fn_1_12670(omObjData *object) { } void fn_1_15618(s16 arg0, float arg1, float arg2, float arg3); void fn_1_15B50(s16 arg0); float fn_1_12674(StructBssDA4 *arg0) { - Vec sp8; - float temp_f31; - float temp_f30; - float temp_f29; - Work2FAC *temp_r31; - s32 temp_r30; - temp_f30 = -1; - temp_f29 = 10000; - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = fn_1_68A8(temp_r30); - if(temp_r31->unk4 & 0x10) { - continue; - } - sp8.x = temp_r31->unk1C.x-arg0->unk24.x; - sp8.y = 0; - sp8.z = temp_r31->unk1C.z-arg0->unk24.z; - temp_f31 = VECMag(&sp8); - if(temp_f31 < temp_f29) { - temp_f30 = atan2d(sp8.x, sp8.z); - temp_f29 = temp_f31; - } - } - return temp_f30; + Vec sp8; + float temp_f31; + float temp_f30; + float temp_f29; + Work2FAC *temp_r31; + s32 temp_r30; + temp_f30 = -1; + temp_f29 = 10000; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = fn_1_68A8(temp_r30); + if (temp_r31->unk4 & 0x10) { + continue; + } + sp8.x = temp_r31->unk1C.x - arg0->unk24.x; + sp8.y = 0; + sp8.z = temp_r31->unk1C.z - arg0->unk24.z; + temp_f31 = VECMag(&sp8); + if (temp_f31 < temp_f29) { + temp_f30 = atan2d(sp8.x, sp8.z); + temp_f29 = temp_f31; + } + } + return temp_f30; } void fn_1_127A0(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f26; - float temp_f23; - Work2FAC *temp_r31; - s32 temp_r29; - temp_f23 = 14; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r31 = fn_1_68A8(temp_r29); - if(temp_r31->unk4 & 0x12) { - continue; - } - switch(arg0->unk0) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 7: - case 8: - temp_f31 = temp_r31->unk1C.x-arg0->unk24.x; - temp_f29 = temp_r31->unk1C.y-arg0->unk24.y; - temp_f30 = temp_r31->unk1C.z-arg0->unk24.z; - temp_f26 = VECMagPoint(temp_f31, temp_f29, temp_f30); - break; - - case 5: - case 6: - temp_f31 = temp_r31->unk1C.x-arg0->unk24.x; - temp_f30 = temp_r31->unk1C.z-arg0->unk24.z; - temp_f26 = VECMagPoint(temp_f31, 0, temp_f30); - break; - } - if(temp_f26 < temp_f23 && 0.0f != temp_f26) { - if(arg0->unk0 != 7 && arg0->unk0 != 8) { - temp_r31->unk4 |= 0x1; - temp_r31->unk40.x = temp_f31; - temp_r31->unk40.z = temp_f30; - lbl_1_bss_D6C[temp_r29].x = (0.5f*temp_f31)+arg0->unk24.x; - lbl_1_bss_D6C[temp_r29].z = (0.5f*temp_f30)+arg0->unk24.z; - lbl_1_bss_D6C[temp_r29].y = temp_r31->unk1C.y; - lbl_1_bss_75A4->work[0] = temp_r29; - } else { - arg0->unk58 = 1; - if(arg0->unk0 == 8) { - temp_r31->unk14 += 5; - fn_1_67C4(temp_r29, 5); - } else { - temp_r31->unk14 += 1; - fn_1_67C4(temp_r29, 1); - } - } - } - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f26; + float temp_f23; + Work2FAC *temp_r31; + s32 temp_r29; + temp_f23 = 14; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r31 = fn_1_68A8(temp_r29); + if (temp_r31->unk4 & 0x12) { + continue; + } + switch (arg0->unk0) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 7: + case 8: + temp_f31 = temp_r31->unk1C.x - arg0->unk24.x; + temp_f29 = temp_r31->unk1C.y - arg0->unk24.y; + temp_f30 = temp_r31->unk1C.z - arg0->unk24.z; + temp_f26 = VECMagPoint(temp_f31, temp_f29, temp_f30); + break; + + case 5: + case 6: + temp_f31 = temp_r31->unk1C.x - arg0->unk24.x; + temp_f30 = temp_r31->unk1C.z - arg0->unk24.z; + temp_f26 = VECMagPoint(temp_f31, 0, temp_f30); + break; + } + if (temp_f26 < temp_f23 && 0.0f != temp_f26) { + if (arg0->unk0 != 7 && arg0->unk0 != 8) { + temp_r31->unk4 |= 0x1; + temp_r31->unk40.x = temp_f31; + temp_r31->unk40.z = temp_f30; + lbl_1_bss_D6C[temp_r29].x = (0.5f * temp_f31) + arg0->unk24.x; + lbl_1_bss_D6C[temp_r29].z = (0.5f * temp_f30) + arg0->unk24.z; + lbl_1_bss_D6C[temp_r29].y = temp_r31->unk1C.y; + lbl_1_bss_75A4->work[0] = temp_r29; + } + else { + arg0->unk58 = 1; + if (arg0->unk0 == 8) { + temp_r31->unk14 += 5; + fn_1_67C4(temp_r29, 5); + } + else { + temp_r31->unk14 += 1; + fn_1_67C4(temp_r29, 1); + } + } + } + } } void fn_1_12C6C(StructBssDA4 *arg0) { - Work2FAC *temp_r30; - float temp_f31; - float temp_f30; - float temp_f26; - float temp_f25; - temp_f26 = cosd(arg0->unk30); - temp_f25 = sind(arg0->unk30); - arg0->unkC.x = temp_f26*arg0->unk64; - arg0->unkC.z = temp_f25*arg0->unk64; - temp_f30 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f30) { - arg0->unk60 = 0; - arg0->unk54 = 1; - } - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); - arg0->unk5C = 1; - break; - - case 1: - arg0->unk5C = 0; - arg0->unkC.y = temp_f30; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5.0f; - arg0->unk24.z = arg0->unkC.z; - temp_f31 = fn_1_12674(arg0); - if(temp_f31 >= 0) { - arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f31, 0.1f); - } - arg0->unk34.x = fn_1_883C(arg0->unk34.x, 0, 0.1f); - if(arg0->unk60 < 90.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - } - break; - - case 3: - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); - arg0->unk5C = 1; - if(arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - - case 4: - break; - } + Work2FAC *temp_r30; + float temp_f31; + float temp_f30; + float temp_f26; + float temp_f25; + temp_f26 = cosd(arg0->unk30); + temp_f25 = sind(arg0->unk30); + arg0->unkC.x = temp_f26 * arg0->unk64; + arg0->unkC.z = temp_f25 * arg0->unk64; + temp_f30 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f30) { + arg0->unk60 = 0; + arg0->unk54 = 1; + } + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); + arg0->unk5C = 1; + break; + + case 1: + arg0->unk5C = 0; + arg0->unkC.y = temp_f30; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5.0f; + arg0->unk24.z = arg0->unkC.z; + temp_f31 = fn_1_12674(arg0); + if (temp_f31 >= 0) { + arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f31, 0.1f); + } + arg0->unk34.x = fn_1_883C(arg0->unk34.x, 0, 0.1f); + if (arg0->unk60 < 90.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + } + break; + + case 3: + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); + arg0->unk5C = 1; + if (arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + + case 4: + break; + } } void fn_1_1305C(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - arg0->unk48 += 1.5f; - if(arg0->unk48 > 360.0f) { - arg0->unk48 -= 360.0f; - } - temp_f29 = cosd(arg0->unk30); - temp_f28 = sind(arg0->unk30); - arg0->unk18.x = temp_f29*arg0->unk64; - arg0->unk18.z = temp_f28*arg0->unk64; - temp_f31 = sind(arg0->unk48); - arg0->unkC.x = temp_f29*(60*temp_f31); - arg0->unkC.z = temp_f28*(60*temp_f31); - temp_f30 = -arg0->unk30-90; - if(temp_f31 < 0) { - temp_f30 += 180; - } - arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f30, 0.05f); - temp_f30 = fabs(temp_f31); - arg0->unk34.x = -30*temp_f30; - temp_f26 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f26) { - arg0->unk60 = 0; - arg0->unk54 = 1; - } - arg0->unk5C = 1; - if(temp_f31 >= sind(75.0f)) { - temp_f27 = (arg0->unk48-75)/30; - arg0->unk40[1] = 180+arg0->unk40[0]; - } else if(temp_f31 <= sind(255.0f)) { - temp_f27 = (arg0->unk48-255)/30; - arg0->unk40[1] = 180+arg0->unk40[0]; - } else { - temp_f27 = 0; - if(arg0->unk40[1] > 360.0f) { - arg0->unk40[1] -= 360.0f; - } - arg0->unk40[0] = arg0->unk40[1]; - } - break; - - case 1: - arg0->unk5C = 0; - arg0->unkC.y = temp_f26; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - if(arg0->unk60 < 120.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - } - break; - - case 3: - arg0->unk5C = 1; - if(arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - - case 4: - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + arg0->unk48 += 1.5f; + if (arg0->unk48 > 360.0f) { + arg0->unk48 -= 360.0f; + } + temp_f29 = cosd(arg0->unk30); + temp_f28 = sind(arg0->unk30); + arg0->unk18.x = temp_f29 * arg0->unk64; + arg0->unk18.z = temp_f28 * arg0->unk64; + temp_f31 = sind(arg0->unk48); + arg0->unkC.x = temp_f29 * (60 * temp_f31); + arg0->unkC.z = temp_f28 * (60 * temp_f31); + temp_f30 = -arg0->unk30 - 90; + if (temp_f31 < 0) { + temp_f30 += 180; + } + arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f30, 0.05f); + temp_f30 = fabs(temp_f31); + arg0->unk34.x = -30 * temp_f30; + temp_f26 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f26) { + arg0->unk60 = 0; + arg0->unk54 = 1; + } + arg0->unk5C = 1; + if (temp_f31 >= sind(75.0f)) { + temp_f27 = (arg0->unk48 - 75) / 30; + arg0->unk40[1] = 180 + arg0->unk40[0]; + } + else if (temp_f31 <= sind(255.0f)) { + temp_f27 = (arg0->unk48 - 255) / 30; + arg0->unk40[1] = 180 + arg0->unk40[0]; + } + else { + temp_f27 = 0; + if (arg0->unk40[1] > 360.0f) { + arg0->unk40[1] -= 360.0f; + } + arg0->unk40[0] = arg0->unk40[1]; + } + break; + + case 1: + arg0->unk5C = 0; + arg0->unkC.y = temp_f26; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + if (arg0->unk60 < 120.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + } + break; + + case 3: + arg0->unk5C = 1; + if (arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + + case 4: + break; + } } void fn_1_134D8(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - arg0->unk30 += 1.8f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - temp_f30 = cosd(arg0->unk30); - temp_f29 = sind(arg0->unk30); - arg0->unk64 = 64; - arg0->unkC.x = temp_f30*arg0->unk64; - arg0->unkC.z = temp_f29*arg0->unk64*0.7f; - temp_f31 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f31) { - arg0->unk60 = 0; - arg0->unk54 = 1; - } - arg0->unk5C = 1; - arg0->unk34.y = -arg0->unk30; - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } else if(arg0->unk34.y < 0.0f) { - arg0->unk34.y += 360.0f; - } - break; - - case 1: - arg0->unk5C = 0; - arg0->unkC.y = temp_f31; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - arg0->unk34.y -= 10.0f; - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - if(arg0->unk60 < 120.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - } - break; - - case 3: - arg0->unk5C = 1; - if(arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - - case 4: - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + arg0->unk30 += 1.8f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + temp_f30 = cosd(arg0->unk30); + temp_f29 = sind(arg0->unk30); + arg0->unk64 = 64; + arg0->unkC.x = temp_f30 * arg0->unk64; + arg0->unkC.z = temp_f29 * arg0->unk64 * 0.7f; + temp_f31 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f31) { + arg0->unk60 = 0; + arg0->unk54 = 1; + } + arg0->unk5C = 1; + arg0->unk34.y = -arg0->unk30; + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + else if (arg0->unk34.y < 0.0f) { + arg0->unk34.y += 360.0f; + } + break; + + case 1: + arg0->unk5C = 0; + arg0->unkC.y = temp_f31; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + arg0->unk34.y -= 10.0f; + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + if (arg0->unk60 < 120.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + } + break; + + case 3: + arg0->unk5C = 1; + if (arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + + case 4: + break; + } } void fn_1_13820(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - float temp_f22; - float temp_f21; - float temp_f20; - float temp_f19; - float sp8; - arg0->unk30 += 2.0f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - temp_f26 = cosd(arg0->unk30); - temp_f25 = sind(arg0->unk30); - arg0->unk40[1] = 270.0f; - temp_f29 = arg0->unk18.y; - switch(arg0->unk54) { - case 0: - temp_f31 = 10; - temp_f28 = temp_f26*temp_f31; - temp_f27 = temp_f25*temp_f31; - temp_f29 = arg0->unk18.y; - arg0->unk40[0] = 0; - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1); - arg0->unk34.y = 180.0f+(90.0f+ -arg0->unk30); - temp_f30 = fn_1_6888(); - if(temp_f30 < 5.0f+temp_f29) { - arg0->unk48 = 0; - arg0->unk54 = 1; - arg0->unk40[0] = 8; - } - arg0->unk5C = 1; - break; - - case 1: - arg0->unk48 += 2.0f; - if(arg0->unk48 > 180.0f) { - arg0->unk54 = 3; - } - arg0->unk40[0] = 0; - arg0->unk34.x = fn_1_883C(arg0->unk34.x, 40, 0.1); - arg0->unk34.y = fn_1_883C(arg0->unk34.y, -arg0->unk30, 0.1); - temp_f23 = cosd(arg0->unk48*0.5f); - temp_f31 = (-100*temp_f23)+110; - temp_f30 = fn_1_6888(); - temp_f28 = temp_f26*temp_f31; - temp_f27 = temp_f25*temp_f31; - temp_f29 = temp_f30; - arg0->unk24.x = temp_f28; - arg0->unk24.y = temp_f30; - arg0->unk24.z = temp_f27; - arg0->unk5C = 0; - break; - - case 3: - arg0->unk5C = 1; - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - break; - - case 4: - break; - } - if(arg0->unk34.y > 360) { - arg0->unk34.y -= 360; - } else if(arg0->unk34.y < 0) { - arg0->unk34.y += 360; - } - sp8 = 0; - temp_f22 = -cosd(arg0->unk34.x)*5; - temp_f24 = -sind(arg0->unk34.x)*5; - temp_f21 = temp_f24*sind(arg0->unk34.y); - temp_f20 = temp_f22; - temp_f19 = temp_f24*cosd(arg0->unk34.y); - arg0->unkC.x = temp_f21+temp_f28; - arg0->unkC.y = temp_f20+temp_f29; - arg0->unkC.z = temp_f19+temp_f27; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + float temp_f19; + float sp8; + arg0->unk30 += 2.0f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + temp_f26 = cosd(arg0->unk30); + temp_f25 = sind(arg0->unk30); + arg0->unk40[1] = 270.0f; + temp_f29 = arg0->unk18.y; + switch (arg0->unk54) { + case 0: + temp_f31 = 10; + temp_f28 = temp_f26 * temp_f31; + temp_f27 = temp_f25 * temp_f31; + temp_f29 = arg0->unk18.y; + arg0->unk40[0] = 0; + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1); + arg0->unk34.y = 180.0f + (90.0f + -arg0->unk30); + temp_f30 = fn_1_6888(); + if (temp_f30 < 5.0f + temp_f29) { + arg0->unk48 = 0; + arg0->unk54 = 1; + arg0->unk40[0] = 8; + } + arg0->unk5C = 1; + break; + + case 1: + arg0->unk48 += 2.0f; + if (arg0->unk48 > 180.0f) { + arg0->unk54 = 3; + } + arg0->unk40[0] = 0; + arg0->unk34.x = fn_1_883C(arg0->unk34.x, 40, 0.1); + arg0->unk34.y = fn_1_883C(arg0->unk34.y, -arg0->unk30, 0.1); + temp_f23 = cosd(arg0->unk48 * 0.5f); + temp_f31 = (-100 * temp_f23) + 110; + temp_f30 = fn_1_6888(); + temp_f28 = temp_f26 * temp_f31; + temp_f27 = temp_f25 * temp_f31; + temp_f29 = temp_f30; + arg0->unk24.x = temp_f28; + arg0->unk24.y = temp_f30; + arg0->unk24.z = temp_f27; + arg0->unk5C = 0; + break; + + case 3: + arg0->unk5C = 1; + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + break; + + case 4: + break; + } + if (arg0->unk34.y > 360) { + arg0->unk34.y -= 360; + } + else if (arg0->unk34.y < 0) { + arg0->unk34.y += 360; + } + sp8 = 0; + temp_f22 = -cosd(arg0->unk34.x) * 5; + temp_f24 = -sind(arg0->unk34.x) * 5; + temp_f21 = temp_f24 * sind(arg0->unk34.y); + temp_f20 = temp_f22; + temp_f19 = temp_f24 * cosd(arg0->unk34.y); + arg0->unkC.x = temp_f21 + temp_f28; + arg0->unkC.y = temp_f20 + temp_f29; + arg0->unkC.z = temp_f19 + temp_f27; } void fn_1_13D88(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - arg0->unk30 += 3.0f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - temp_f29 = fn_1_6888(); - arg0->unk34.y = (90+(-arg0->unk30))+180+90; - arg0->unkC.x = 1.5f*(10.0f*temp_f31)+arg0->unk18.x; - arg0->unkC.z = 1.5f*(10.0f*temp_f30)+arg0->unk18.z; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - if(arg0->unkC.y > 5.0f+temp_f29) { - arg0->unk5C = 1; - } else { - arg0->unk5C = 0; - } - if(arg0->unk5C == 1 && arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } else if(arg0->unk34.y < 0.0f) { - arg0->unk34.y += 360.0f; - } - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -35, 0.1f); + float temp_f31; + float temp_f30; + float temp_f29; + arg0->unk30 += 3.0f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + temp_f29 = fn_1_6888(); + arg0->unk34.y = (90 + (-arg0->unk30)) + 180 + 90; + arg0->unkC.x = 1.5f * (10.0f * temp_f31) + arg0->unk18.x; + arg0->unkC.z = 1.5f * (10.0f * temp_f30) + arg0->unk18.z; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + if (arg0->unkC.y > 5.0f + temp_f29) { + arg0->unk5C = 1; + } + else { + arg0->unk5C = 0; + } + if (arg0->unk5C == 1 && arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + else if (arg0->unk34.y < 0.0f) { + arg0->unk34.y += 360.0f; + } + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -35, 0.1f); } void fn_1_1406C(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - float temp_f22; - float temp_f21; - temp_f30 = 1; - temp_f26 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - temp_f29 = cosd(arg0->unk30); - temp_f28 = sind(arg0->unk30); - arg0->unkC.x = temp_f29*(80.0f-(10.0f*temp_f30)); - arg0->unkC.z = temp_f28*(80.0f-(10.0f*temp_f30))*0.7f; - temp_f24 = temp_f26; - if(arg0->unkC.y > temp_f24) { - arg0->unk54 = 1; - arg0->unk18.x = arg0->unkC.x; - arg0->unk18.z = arg0->unkC.z; - } - arg0->unk5C = 1; - arg0->unk48 = 0; - break; - - case 1: - arg0->unk48 += 1.5f; - if(arg0->unk48 > 180.0f) { - arg0->unk54 = 3; - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - - temp_f31 = 180+arg0->unk30; - if(temp_f31 > 360.0f) { - temp_f31 -= 360.0f; - } - temp_f29 = cosd(temp_f31); - temp_f28 = sind(temp_f31); - temp_f25 = cosd(arg0->unk48*0.5f); - temp_f27 = 180.0f; - temp_f30 = temp_f27+(temp_f25*(-temp_f27)); - temp_f23 = arg0->unk18.x+(temp_f29*temp_f30); - temp_f21 = arg0->unk18.z+(temp_f28*temp_f30); - temp_f22 = temp_f26; - arg0->unkC.x = temp_f23; - arg0->unkC.y = temp_f22; - arg0->unkC.z = temp_f21; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - if(arg0->unk34.x < 30.0f) { - arg0->unk34.x += 4.0f; - } else { - arg0->unk34.x = 30.0f; - } - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); - arg0->unk5C = 0; - break; - - case 3: - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - arg0->unk5C = 1; - arg0->unk50 = 0; - arg0->unk54++; - break; - - case 4: - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + float temp_f22; + float temp_f21; + temp_f30 = 1; + temp_f26 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + temp_f29 = cosd(arg0->unk30); + temp_f28 = sind(arg0->unk30); + arg0->unkC.x = temp_f29 * (80.0f - (10.0f * temp_f30)); + arg0->unkC.z = temp_f28 * (80.0f - (10.0f * temp_f30)) * 0.7f; + temp_f24 = temp_f26; + if (arg0->unkC.y > temp_f24) { + arg0->unk54 = 1; + arg0->unk18.x = arg0->unkC.x; + arg0->unk18.z = arg0->unkC.z; + } + arg0->unk5C = 1; + arg0->unk48 = 0; + break; + + case 1: + arg0->unk48 += 1.5f; + if (arg0->unk48 > 180.0f) { + arg0->unk54 = 3; + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + + temp_f31 = 180 + arg0->unk30; + if (temp_f31 > 360.0f) { + temp_f31 -= 360.0f; + } + temp_f29 = cosd(temp_f31); + temp_f28 = sind(temp_f31); + temp_f25 = cosd(arg0->unk48 * 0.5f); + temp_f27 = 180.0f; + temp_f30 = temp_f27 + (temp_f25 * (-temp_f27)); + temp_f23 = arg0->unk18.x + (temp_f29 * temp_f30); + temp_f21 = arg0->unk18.z + (temp_f28 * temp_f30); + temp_f22 = temp_f26; + arg0->unkC.x = temp_f23; + arg0->unkC.y = temp_f22; + arg0->unkC.z = temp_f21; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + if (arg0->unk34.x < 30.0f) { + arg0->unk34.x += 4.0f; + } + else { + arg0->unk34.x = 30.0f; + } + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); + arg0->unk5C = 0; + break; + + case 3: + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + arg0->unk5C = 1; + arg0->unk50 = 0; + arg0->unk54++; + break; + + case 4: + break; + } } void fn_1_144D0(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - float temp_f22; - float temp_f21; - float temp_f20; - float temp_f19; - float temp_f18; - float spC; - float sp8; - - arg0->unk30 += 2.0f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - switch(arg0->unk54) { - case 0: - arg0->unk5C = 1; - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - arg0->unkC.x = 15.0f*temp_f31; - arg0->unkC.z = 15.0f*temp_f30; - arg0->unk34.y = -arg0->unk30+90.0f; - temp_f24 = fn_1_6888(); - temp_f21 = -680.00006f+temp_f24; - if(arg0->unkC.y > temp_f21) { - arg0->unk54 = 1; - arg0->unk60 = 0; - } - break; - - case 1: - if(arg0->unk60 < 102.0f) { - arg0->unk60++; - temp_f27 = arg0->unk60/102.0f; - temp_f29 = 15+(35*temp_f27); - temp_f22 = 90*temp_f27; - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - arg0->unkC.x = temp_f31*temp_f29; - arg0->unkC.z = temp_f30*temp_f29; - arg0->unk34.y = (-arg0->unk30+90.0f)-temp_f22; - } else { - arg0->unk54 = 2; - arg0->unk60 = 0; - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); - } - break; - - case 2: - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - temp_f24 = fn_1_6888(); - temp_f26 = 50*temp_f31; - temp_f28 = temp_f24; - temp_f25 = 50*temp_f30; - arg0->unkC.x = temp_f26; - arg0->unkC.y = temp_f28; - arg0->unkC.z = temp_f25; - if(arg0->unk34.x < 30.0f) { - arg0->unk34.x += 4.0f; - } else { - arg0->unk34.x = 30.0f; - } - arg0->unk34.y = (-arg0->unk30+90.0f)-90.0f; - if(arg0->unk60 < 180.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - arg0->unk60 = 0; - arg0->unk18.y = temp_f28; - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - arg0->unk24.x = temp_f26; - arg0->unk24.y = 5.0f+temp_f28; - arg0->unk24.z = temp_f25; - arg0->unk5C = 0; - break; - - case 3: - if(arg0->unk60 < 150.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 4; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - temp_f27 = 0; - temp_f29 = 50+(40*temp_f27); - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - temp_f26 = temp_f31*temp_f29; - temp_f28 = arg0->unk18.y; - temp_f25 = temp_f30*temp_f29; - spC = 0; - temp_f20 = -cosd(arg0->unk34.x)*5; - temp_f23 = -sind(arg0->unk34.x)*5; - temp_f19 = temp_f23*sind(arg0->unk34.y); - temp_f18 = temp_f20; - sp8 = temp_f23*cosd(arg0->unk34.y); - arg0->unkC.x = temp_f19+temp_f26; - arg0->unkC.y = temp_f18+temp_f28; - arg0->unkC.z = sp8+temp_f25; - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - arg0->unk34.y = (-arg0->unk30+90.0f)-90.0f; - arg0->unk5C = 1; - break; - - case 4: - if(arg0->unk5C == 1 && arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } else if(arg0->unk34.y < 0.0f) { - arg0->unk34.y += 360.0f; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + float temp_f19; + float temp_f18; + float spC; + float sp8; + + arg0->unk30 += 2.0f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + switch (arg0->unk54) { + case 0: + arg0->unk5C = 1; + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + arg0->unkC.x = 15.0f * temp_f31; + arg0->unkC.z = 15.0f * temp_f30; + arg0->unk34.y = -arg0->unk30 + 90.0f; + temp_f24 = fn_1_6888(); + temp_f21 = -680.00006f + temp_f24; + if (arg0->unkC.y > temp_f21) { + arg0->unk54 = 1; + arg0->unk60 = 0; + } + break; + + case 1: + if (arg0->unk60 < 102.0f) { + arg0->unk60++; + temp_f27 = arg0->unk60 / 102.0f; + temp_f29 = 15 + (35 * temp_f27); + temp_f22 = 90 * temp_f27; + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + arg0->unkC.x = temp_f31 * temp_f29; + arg0->unkC.z = temp_f30 * temp_f29; + arg0->unk34.y = (-arg0->unk30 + 90.0f) - temp_f22; + } + else { + arg0->unk54 = 2; + arg0->unk60 = 0; + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); + } + break; + + case 2: + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + temp_f24 = fn_1_6888(); + temp_f26 = 50 * temp_f31; + temp_f28 = temp_f24; + temp_f25 = 50 * temp_f30; + arg0->unkC.x = temp_f26; + arg0->unkC.y = temp_f28; + arg0->unkC.z = temp_f25; + if (arg0->unk34.x < 30.0f) { + arg0->unk34.x += 4.0f; + } + else { + arg0->unk34.x = 30.0f; + } + arg0->unk34.y = (-arg0->unk30 + 90.0f) - 90.0f; + if (arg0->unk60 < 180.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + arg0->unk60 = 0; + arg0->unk18.y = temp_f28; + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + arg0->unk24.x = temp_f26; + arg0->unk24.y = 5.0f + temp_f28; + arg0->unk24.z = temp_f25; + arg0->unk5C = 0; + break; + + case 3: + if (arg0->unk60 < 150.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 4; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + temp_f27 = 0; + temp_f29 = 50 + (40 * temp_f27); + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + temp_f26 = temp_f31 * temp_f29; + temp_f28 = arg0->unk18.y; + temp_f25 = temp_f30 * temp_f29; + spC = 0; + temp_f20 = -cosd(arg0->unk34.x) * 5; + temp_f23 = -sind(arg0->unk34.x) * 5; + temp_f19 = temp_f23 * sind(arg0->unk34.y); + temp_f18 = temp_f20; + sp8 = temp_f23 * cosd(arg0->unk34.y); + arg0->unkC.x = temp_f19 + temp_f26; + arg0->unkC.y = temp_f18 + temp_f28; + arg0->unkC.z = sp8 + temp_f25; + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + arg0->unk34.y = (-arg0->unk30 + 90.0f) - 90.0f; + arg0->unk5C = 1; + break; + + case 4: + if (arg0->unk5C == 1 && arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + else if (arg0->unk34.y < 0.0f) { + arg0->unk34.y += 360.0f; + } } void fn_1_14DB4(StructBssDA4 *arg0) { - s32 temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - temp_f30 = cosd(arg0->unk30); - temp_f29 = sind(arg0->unk30); - arg0->unkC.x = 32.0f*temp_f30; - arg0->unkC.z = 32.0f*temp_f29; - temp_f31 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f31) { - arg0->unk54 = 1; - arg0->unk60 = 0; - } - arg0->unk34.x += 4.0f; - arg0->unk5C = 1; - break; - - case 1: - arg0->unk5C = 0; - if(arg0->unk58) { - arg0->unk5C = 1; - arg0->unk54 = 4; - arg0->unk60 = 0; - temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; - Hu3DModelAttrReset(temp_r30, 1); - fn_1_15B50(temp_r30); - fn_1_155E0(temp_r30, 1); - fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); - HuAudFXPlay(7); - } else { - if(arg0->unk60 < 72.0f) { - arg0->unk60++; - arg0->unkC.y = temp_f31; - } else { - arg0->unk54 = 3; - } - arg0->unk34.x += 8.0f; - arg0->unk34.y += 8.0f; - } - break; - - case 3: - arg0->unk34.x += 4.0f; - arg0->unk5C = 1; - break; - - case 4: - if(arg0->unk60 < 30.0f) { - arg0->unk34.x = 90; - arg0->unk34.y += 32.0f; - if(arg0->unk60 > 5) { - fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); - } - arg0->unk4C *= 0.8f; - arg0->unk60++; - } else { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - } - if(arg0->unk34.x > 360.0f) { - arg0->unk34.x -= 360.0f; - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y; - arg0->unk24.z = arg0->unkC.z; + s32 temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + temp_f30 = cosd(arg0->unk30); + temp_f29 = sind(arg0->unk30); + arg0->unkC.x = 32.0f * temp_f30; + arg0->unkC.z = 32.0f * temp_f29; + temp_f31 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f31) { + arg0->unk54 = 1; + arg0->unk60 = 0; + } + arg0->unk34.x += 4.0f; + arg0->unk5C = 1; + break; + + case 1: + arg0->unk5C = 0; + if (arg0->unk58) { + arg0->unk5C = 1; + arg0->unk54 = 4; + arg0->unk60 = 0; + temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; + Hu3DModelAttrReset(temp_r30, 1); + fn_1_15B50(temp_r30); + fn_1_155E0(temp_r30, 1); + fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); + HuAudFXPlay(7); + } + else { + if (arg0->unk60 < 72.0f) { + arg0->unk60++; + arg0->unkC.y = temp_f31; + } + else { + arg0->unk54 = 3; + } + arg0->unk34.x += 8.0f; + arg0->unk34.y += 8.0f; + } + break; + + case 3: + arg0->unk34.x += 4.0f; + arg0->unk5C = 1; + break; + + case 4: + if (arg0->unk60 < 30.0f) { + arg0->unk34.x = 90; + arg0->unk34.y += 32.0f; + if (arg0->unk60 > 5) { + fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); + } + arg0->unk4C *= 0.8f; + arg0->unk60++; + } + else { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + } + if (arg0->unk34.x > 360.0f) { + arg0->unk34.x -= 360.0f; + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y; + arg0->unk24.z = arg0->unkC.z; } void fn_1_151A4(StructBssDA4 *arg0) { - s32 temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - - arg0->unk48 += 6.0000005f; - if(arg0->unk48 >= 360.0f) { - arg0->unk48 -= 360.0f; - } - arg0->unk34.z = 30*sind(arg0->unk48); - temp_f30 = cosd(arg0->unk30); - temp_f29 = sind(arg0->unk30); - arg0->unkC.x = 32.0f*temp_f30; - arg0->unkC.z = 32.0f*temp_f29; - temp_f31 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f31) { - arg0->unk54 = 1; - arg0->unk60 = 0; - } - arg0->unk34.x = -45; - arg0->unk34.y = 0; - arg0->unk5C = 1; - break; - - case 1: - arg0->unk5C = 0; - if(arg0->unk58) { - arg0->unk5C = 1; - arg0->unk54 = 4; - arg0->unk60 = 0; - temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; - Hu3DModelAttrReset(temp_r30, 1); - fn_1_15B50(temp_r30); - fn_1_155E0(temp_r30, 1); - fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); - HuAudFXPlay(19); - } else { - if(arg0->unk60 < 72.0f) { - arg0->unk60++; - arg0->unkC.y = temp_f31; - } else { - arg0->unk54 = 3; - } - - } - break; - - case 3: - arg0->unk5C = 1; - break; - - case 4: - if(arg0->unk60 < 30.0f) { - arg0->unk34.x = 90; - arg0->unk34.y += 32.0f; - if(arg0->unk60 > 5) { - fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); - } - arg0->unk4C *= 0.8f; - arg0->unk60++; - } else { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - } - if(arg0->unk34.x > 360.0f) { - arg0->unk34.x -= 360.0f; - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y; - arg0->unk24.z = arg0->unkC.z; + s32 temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + + arg0->unk48 += 6.0000005f; + if (arg0->unk48 >= 360.0f) { + arg0->unk48 -= 360.0f; + } + arg0->unk34.z = 30 * sind(arg0->unk48); + temp_f30 = cosd(arg0->unk30); + temp_f29 = sind(arg0->unk30); + arg0->unkC.x = 32.0f * temp_f30; + arg0->unkC.z = 32.0f * temp_f29; + temp_f31 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f31) { + arg0->unk54 = 1; + arg0->unk60 = 0; + } + arg0->unk34.x = -45; + arg0->unk34.y = 0; + arg0->unk5C = 1; + break; + + case 1: + arg0->unk5C = 0; + if (arg0->unk58) { + arg0->unk5C = 1; + arg0->unk54 = 4; + arg0->unk60 = 0; + temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; + Hu3DModelAttrReset(temp_r30, 1); + fn_1_15B50(temp_r30); + fn_1_155E0(temp_r30, 1); + fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); + HuAudFXPlay(19); + } + else { + if (arg0->unk60 < 72.0f) { + arg0->unk60++; + arg0->unkC.y = temp_f31; + } + else { + arg0->unk54 = 3; + } + } + break; + + case 3: + arg0->unk5C = 1; + break; + + case 4: + if (arg0->unk60 < 30.0f) { + arg0->unk34.x = 90; + arg0->unk34.y += 32.0f; + if (arg0->unk60 > 5) { + fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); + } + arg0->unk4C *= 0.8f; + arg0->unk60++; + } + else { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + } + if (arg0->unk34.x > 360.0f) { + arg0->unk34.x -= 360.0f; + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y; + arg0->unk24.z = arg0->unkC.z; } void fn_1_155E0(s16 arg0, s16 arg1) { - ModelData *temp_r31; - ParticleData *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - temp_r30->unk_00 = arg1; + ModelData *temp_r31; + ParticleData *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + temp_r30->unk_00 = arg1; } void fn_1_15618(s16 arg0, float arg1, float arg2, float arg3) { - ParticleData *temp_r31; - ModelData *temp_r30; - temp_r30 = &Hu3DData[arg0]; - temp_r31 = temp_r30->unk_120; - temp_r31->unk_04.x = arg1; - temp_r31->unk_04.y = arg2; - temp_r31->unk_04.z = arg3; + ParticleData *temp_r31; + ModelData *temp_r30; + temp_r30 = &Hu3DData[arg0]; + temp_r31 = temp_r30->unk_120; + temp_r31->unk_04.x = arg1; + temp_r31->unk_04.y = arg2; + temp_r31->unk_04.z = arg3; } void fn_1_15658(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - u32 temp_r29; - s32 temp_r28; - s16 temp_r27; - GXColor *temp_r26; - if(particle->unk_34 == 0) { - temp_f31 = 90; - particle->unk_02 = 0; - particle->unk_10.y = 3; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } - if(particle->unk_00) { - particle->unk_02--; - if(particle->unk_02 <= 0.0f) { - particle->unk_02 = 2; - temp_r27 = 4; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C != 0) { - continue; - } - temp_r31->unk34.x = particle->unk_04.x; - temp_r31->unk34.y = particle->unk_04.y; - temp_r31->unk34.z = particle->unk_04.z; - temp_f30 = frandmod(360); - temp_r29 = frandmod(12); - temp_r29 += 4.0f; - temp_r31->unk34.x = temp_r31->unk34.x+(temp_r29*sind(temp_f30)); - temp_r31->unk34.z = temp_r31->unk34.z+(temp_r29*cosd(temp_f30)); - temp_r31->unk20 = 0; - temp_r31->unk24 = particle->unk_10.y; - temp_r29 = 1; - if(temp_r29 == 1) { - temp_r31->unk14.x = 0.97643f; - } else { - temp_r31->unk14.x = 0.96666664f; - } - temp_r31->unk00 = 60; - temp_r31->unk2C = 8; - temp_r29 = frand()&0x1; - temp_r26 = &lbl_1_data_4F4[temp_r29]; - temp_r31->unk40.r = temp_r26->r; - temp_r31->unk40.g = temp_r26->g; - temp_r31->unk40.b = temp_r26->b; - temp_r31->unk40.a = 0; - temp_r31->unk02 = temp_r29; - temp_r27--; - if(temp_r27 == 0) { - break; - } - } - } - } - temp_r27 = 0; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - continue; - } - temp_r27++; - temp_r31->unk34.y -= 4.0f; - temp_f31 = 1.0+cosd(temp_r31->unk20); - temp_f31 *= 0.5f; - temp_r31->unk40.a = temp_f31*255; - temp_r31->unk20 += temp_r31->unk24; - temp_r31->unk30 = temp_r31->unk20; - temp_r31->unk2C *= temp_r31->unk14.x; - temp_r31->unk02 ^= 0x3; - if(temp_r31->unk02 & 0x1) { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 200; - } else { - temp_r31->unk40.b = 200; - temp_r31->unk40.g = 200; - } - if(temp_r31->unk02 & 0x2) { - temp_r29 = temp_r31->unk40.a+64; - if(temp_r29 > 255) { - temp_r29 -= 128; - } - temp_r31->unk40.a = temp_r29; - } - temp_r31->unk00_s16--; - if(temp_r31->unk00_s16 <= 0) { - temp_r31->unk2C = 0; - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - if(particle->unk_00 == 0 && temp_r27 == 0) { - model->attr |= 0x1; - } + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + u32 temp_r29; + s32 temp_r28; + s16 temp_r27; + GXColor *temp_r26; + if (particle->unk_34 == 0) { + temp_f31 = 90; + particle->unk_02 = 0; + particle->unk_10.y = 3; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + if (particle->unk_00) { + particle->unk_02--; + if (particle->unk_02 <= 0.0f) { + particle->unk_02 = 2; + temp_r27 = 4; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C != 0) { + continue; + } + temp_r31->unk34.x = particle->unk_04.x; + temp_r31->unk34.y = particle->unk_04.y; + temp_r31->unk34.z = particle->unk_04.z; + temp_f30 = frandmod(360); + temp_r29 = frandmod(12); + temp_r29 += 4.0f; + temp_r31->unk34.x = temp_r31->unk34.x + (temp_r29 * sind(temp_f30)); + temp_r31->unk34.z = temp_r31->unk34.z + (temp_r29 * cosd(temp_f30)); + temp_r31->unk20 = 0; + temp_r31->unk24 = particle->unk_10.y; + temp_r29 = 1; + if (temp_r29 == 1) { + temp_r31->unk14.x = 0.97643f; + } + else { + temp_r31->unk14.x = 0.96666664f; + } + temp_r31->unk00 = 60; + temp_r31->unk2C = 8; + temp_r29 = frand() & 0x1; + temp_r26 = &lbl_1_data_4F4[temp_r29]; + temp_r31->unk40.r = temp_r26->r; + temp_r31->unk40.g = temp_r26->g; + temp_r31->unk40.b = temp_r26->b; + temp_r31->unk40.a = 0; + temp_r31->unk02 = temp_r29; + temp_r27--; + if (temp_r27 == 0) { + break; + } + } + } + } + temp_r27 = 0; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + continue; + } + temp_r27++; + temp_r31->unk34.y -= 4.0f; + temp_f31 = 1.0 + cosd(temp_r31->unk20); + temp_f31 *= 0.5f; + temp_r31->unk40.a = temp_f31 * 255; + temp_r31->unk20 += temp_r31->unk24; + temp_r31->unk30 = temp_r31->unk20; + temp_r31->unk2C *= temp_r31->unk14.x; + temp_r31->unk02 ^= 0x3; + if (temp_r31->unk02 & 0x1) { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 200; + } + else { + temp_r31->unk40.b = 200; + temp_r31->unk40.g = 200; + } + if (temp_r31->unk02 & 0x2) { + temp_r29 = temp_r31->unk40.a + 64; + if (temp_r29 > 255) { + temp_r29 -= 128; + } + temp_r31->unk40.a = temp_r29; + } + temp_r31->unk00_s16--; + if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk2C = 0; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (particle->unk_00 == 0 && temp_r27 == 0) { + model->attr |= 0x1; + } } void fn_1_15B50(s16 arg0) { - ParticleData *temp_r31; - HsfanimStruct01 *temp_r30; - s32 temp_r29; - ModelData *temp_r28 = &Hu3DData[arg0]; - temp_r31 = temp_r28->unk_120; - temp_r31->unk_34 = 0; - temp_r30 = temp_r31->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - temp_r30->unk2C = 0; - } + ParticleData *temp_r31; + HsfanimStruct01 *temp_r30; + s32 temp_r29; + ModelData *temp_r28 = &Hu3DData[arg0]; + temp_r31 = temp_r28->unk_120; + temp_r31->unk_34 = 0; + temp_r30 = temp_r31->unk_48; + for (temp_r29 = 0; temp_r29 < temp_r31->unk_30; temp_r29++, temp_r30++) { + temp_r30->unk2C = 0; + } } void fn_1_15CA4(omObjData *object); @@ -1365,172 +1362,173 @@ void fn_1_15D64(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_15BCC(omObjData *object) { - s16 temp_r30; - s32 temp_r29; - omSetStatBit(object, 0x100); - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r30 = Hu3DParticleCreate(HuSprAnimReadFile(0x270019), 9); - object->model[temp_r29] = temp_r30; - Hu3DModelAttrSet(temp_r30, 1); - Hu3DModelLayerSet(temp_r30, 7); - Hu3DParticleColSet(temp_r30, 255, 255, 255); - Hu3DParticleHookSet(temp_r30, fn_1_15D64); - } - object->work[0] = -1; - object->func = fn_1_15CA4; + s16 temp_r30; + s32 temp_r29; + omSetStatBit(object, 0x100); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x19)), 9); + object->model[temp_r29] = temp_r30; + Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelLayerSet(temp_r30, 7); + Hu3DParticleColSet(temp_r30, 255, 255, 255); + Hu3DParticleHookSet(temp_r30, fn_1_15D64); + } + object->work[0] = -1; + object->func = fn_1_15CA4; } void fn_1_15CA4(omObjData *object) { - s32 temp_r31; - s16 temp_r29; - ModelData *temp_r28; - ParticleData *temp_r27; - temp_r31 = object->work[0]; - if(temp_r31 <= -1) { - return; - } - object->work[0] = -1; - temp_r29 = object->model[temp_r31]; - temp_r28 = &Hu3DData[temp_r29]; - temp_r27 = temp_r28->unk_120; - Hu3DModelAttrReset(temp_r29, 1); - Hu3DModelPosSet(temp_r29, lbl_1_bss_D6C[temp_r31].x, lbl_1_bss_D6C[temp_r31].y, lbl_1_bss_D6C[temp_r31].z); - temp_r27->unk_34 = 0; - + s32 temp_r31; + s16 temp_r29; + ModelData *temp_r28; + ParticleData *temp_r27; + temp_r31 = object->work[0]; + if (temp_r31 <= -1) { + return; + } + object->work[0] = -1; + temp_r29 = object->model[temp_r31]; + temp_r28 = &Hu3DData[temp_r29]; + temp_r27 = temp_r28->unk_120; + Hu3DModelAttrReset(temp_r29, 1); + Hu3DModelPosSet(temp_r29, lbl_1_bss_D6C[temp_r31].x, lbl_1_bss_D6C[temp_r31].y, lbl_1_bss_D6C[temp_r31].z); + temp_r27->unk_34 = 0; } void fn_1_15D64(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - u32 temp_r28; - s16 temp_r27; - s16 temp_r26; - if(particle->unk_34 == 0) { - temp_f31 = 72; - particle->unk_00 = 1; - particle->unk_02 = 0; - particle->unk_10.y = 22.5f; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } - if(particle->unk_00) { - particle->unk_00 = 0; - particle->unk_02--; - if(particle->unk_02 <= 0.0f) { - particle->unk_02 =30; - temp_r31 = particle->unk_48; - temp_r26 = -1; - temp_r27 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - continue; - } - if(temp_r27 <= 0) { - temp_r26++; - if(temp_r26 >= 3) { - break; - } - temp_f30 = lbl_1_data_514[temp_r26]; - temp_f28 = lbl_1_data_508[temp_r26]; - temp_f29 = lbl_1_data_520[temp_r26]; - temp_r27 = lbl_1_data_504[temp_r26]; - } - temp_r27--; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - if(90.0f == temp_f29) { - temp_r31->unk08.z = 5; - temp_r31->unk08.x = temp_r31->unk08.y = 0; - } else { - temp_f31 = 5*cosd(temp_f29); - temp_r31->unk08.z = 5.0*sind(temp_f29); - temp_r31->unk08.x = temp_f31*sind(temp_f30); - temp_r31->unk08.y = temp_f31*cosd(temp_f30); - } - temp_r31->unk20 = 0; - temp_r31->unk24 = particle->unk_10.y; - temp_r28 = 1; - temp_r31->unk00 = 8; - temp_r31->unk2C = 10; - temp_r31->unk14.x = 1.125f; - temp_r28 = frand()&0x1; - temp_r31->unk02 = temp_r28; - temp_r31->unk40.r = 255; - temp_r31->unk40.g = 255; - temp_r31->unk40.b = 255; - temp_r31->unk40.a = 0; - if(temp_r28) { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 0; - } - temp_f30 += temp_f28; - } - } - } - temp_r27 = 0; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C == 0) { - continue; - } - temp_r27++; - VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); - temp_f31 = 1.0+cosd(temp_r31->unk20); - temp_f31 *= 0.45f; - temp_r31->unk40.a = temp_f31*255; - temp_r31->unk20 += temp_r31->unk24; - temp_r31->unk2C -= temp_r31->unk14.x; - temp_r31->unk02 ^= 0x3; - if(temp_r31->unk02 & 0x1) { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 100; - } else { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 200; - } - if(temp_r31->unk02 & 0x2) { - temp_r28 = temp_r31->unk40.a+64; - if(temp_r28 > 255) { - temp_r28 -= 128; - } - temp_r31->unk40.a = temp_r28; - } - temp_r31->unk00_s16--; - if(temp_r31->unk00_s16 <= 0) { - temp_r31->unk2C = 0; - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - if(particle->unk_00 == 0 && temp_r27 == 0) { - model->attr |= 0x1; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + u32 temp_r28; + s16 temp_r27; + s16 temp_r26; + if (particle->unk_34 == 0) { + temp_f31 = 72; + particle->unk_00 = 1; + particle->unk_02 = 0; + particle->unk_10.y = 22.5f; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + if (particle->unk_00) { + particle->unk_00 = 0; + particle->unk_02--; + if (particle->unk_02 <= 0.0f) { + particle->unk_02 = 30; + temp_r31 = particle->unk_48; + temp_r26 = -1; + temp_r27 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + continue; + } + if (temp_r27 <= 0) { + temp_r26++; + if (temp_r26 >= 3) { + break; + } + temp_f30 = lbl_1_data_514[temp_r26]; + temp_f28 = lbl_1_data_508[temp_r26]; + temp_f29 = lbl_1_data_520[temp_r26]; + temp_r27 = lbl_1_data_504[temp_r26]; + } + temp_r27--; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + if (90.0f == temp_f29) { + temp_r31->unk08.z = 5; + temp_r31->unk08.x = temp_r31->unk08.y = 0; + } + else { + temp_f31 = 5 * cosd(temp_f29); + temp_r31->unk08.z = 5.0 * sind(temp_f29); + temp_r31->unk08.x = temp_f31 * sind(temp_f30); + temp_r31->unk08.y = temp_f31 * cosd(temp_f30); + } + temp_r31->unk20 = 0; + temp_r31->unk24 = particle->unk_10.y; + temp_r28 = 1; + temp_r31->unk00 = 8; + temp_r31->unk2C = 10; + temp_r31->unk14.x = 1.125f; + temp_r28 = frand() & 0x1; + temp_r31->unk02 = temp_r28; + temp_r31->unk40.r = 255; + temp_r31->unk40.g = 255; + temp_r31->unk40.b = 255; + temp_r31->unk40.a = 0; + if (temp_r28) { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 0; + } + temp_f30 += temp_f28; + } + } + } + temp_r27 = 0; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C == 0) { + continue; + } + temp_r27++; + VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); + temp_f31 = 1.0 + cosd(temp_r31->unk20); + temp_f31 *= 0.45f; + temp_r31->unk40.a = temp_f31 * 255; + temp_r31->unk20 += temp_r31->unk24; + temp_r31->unk2C -= temp_r31->unk14.x; + temp_r31->unk02 ^= 0x3; + if (temp_r31->unk02 & 0x1) { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 100; + } + else { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 200; + } + if (temp_r31->unk02 & 0x2) { + temp_r28 = temp_r31->unk40.a + 64; + if (temp_r28 > 255) { + temp_r28 -= 128; + } + temp_r31->unk40.a = temp_r28; + } + temp_r31->unk00_s16--; + if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk2C = 0; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (particle->unk_00 == 0 && temp_r27 == 0) { + model->attr |= 0x1; + } } s32 fn_1_162CC(Vec *arg0, Vec *arg1) { - Vec spC; - s32 temp_r31; - float temp_f31; - float temp_f30; - temp_f30 = 1000; - if(!lbl_1_bss_168) { - return 0; - } - for(temp_r31=0; temp_r31data = spC = HuMemDirectMallocNum(HEAP_SYSTEM, 436*sizeof(u16), MEMORY_DEFAULT_NUM); - lbl_1_bss_14C[0] = HuSprAnimRead(HuDataReadNum(0x270024, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[1] = HuSprAnimRead(HuDataReadNum(0x270025, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[2] = HuSprAnimRead(HuDataReadNum(0x270026, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[4] = HuSprAnimRead(HuDataReadNum(0x270028, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[3] = HuSprAnimRead(HuDataReadNum(0x270029, MEMORY_DEFAULT_NUM)); - object->model[0] = Hu3DModelCreateFile(0x27001A); - omSetSca(object, 0.1f, 0.1f, 0.1f); - temp_r31 = object->model[0]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelAttrSet(temp_r31, 1); - object->model[4] = Hu3DModelCreateFile(0x27001E); - temp_r31 = object->model[4]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); - object->model[5] = Hu3DModelCreateFile(0x270020); - temp_r31 = object->model[5]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - object->model[2] = Hu3DModelCreateFile(0x27001B); - temp_r31 = object->model[2]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelPosSet(temp_r31, -20, -10, -150); - Hu3DModelScaleSet(temp_r31, 0.14500001f, 0.14500001f, 0.14500001f); - Hu3DModelAttrSet(temp_r31, 1); - object->model[3] = Hu3DModelCreateFile(0x27001D); - temp_r31 = object->model[3]; - Hu3DModelPosSet(temp_r31, 0, -50, -500); - Hu3DModelScaleSet(temp_r31, 0.15f, 0.15f, 0.15f); - Hu3DModelLayerSet(temp_r31, 0); - Hu3DModelAttrSet(temp_r31, 1); - sp8 = fn_1_F4B0(temp_r31, temp_r31); - object->model[9] = Hu3DModelCreateFile(0x27001C); - temp_r31 = object->model[9]; - lbl_1_bss_148 = temp_r31; - Hu3DModelScaleSet(temp_r31, 0.11000001f, 0.1f, 0.11000001f); - Hu3DModelPosSet(temp_r31, 0, 10000, 0); - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelAttrSet(temp_r31, 1); - object->model[11] = Hu3DModelCreateFile(0x27001F); - temp_r31 = object->model[11]; - Hu3DModelPosSet(temp_r31, 0, 10000, 0); - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelScaleSet(temp_r31, 0.105f, 0.1f, 0.105f); - Hu3DModelAttrSet(temp_r31, 1); - object->model[12] = Hu3DModelCreateFile(0x270023); - temp_r31 = object->model[12]; - Hu3DModelLayerSet(temp_r31, 3); - Hu3DModelPosSet(temp_r31, 0, 5000, 0); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); - Hu3DMotionSpeedSet(temp_r31, 0); - object->model[19] = temp_r31 = fn_1_D978(lbl_1_bss_14C[0], 80, fn_1_E310); - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelPosSet(temp_r31, 0, 5100, 0); - Hu3DParticleBlendModeSet(temp_r31, 1); - temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; - temp_r29[2] = 140; - object->model[14] = Hu3DModelCreateFile(0x270021); - object->model[15] = Hu3DModelCreateFile(0x270022); - object->model[16] = Hu3DModelCreateFile(0x270021); - object->model[17] = Hu3DModelCreateFile(0x270022); - for(temp_r28=0; temp_r28<4; temp_r28++) { - temp_r31 = object->model[temp_r28+14]; - Hu3DModelLayerSet(temp_r31, 3); - Hu3DModelRotSet(temp_r31, 0, frandmod(360), 0); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); - Hu3DMotionSpeedSet(temp_r31, 0); - } - object->model[6] = temp_r31 = fn_1_D978(lbl_1_bss_14C[4], 1, fn_1_EEF8); - Hu3DModelPosSet(temp_r31, 0, 5000, 0); - Hu3DModelLayerSet(temp_r31, 3); - Hu3DModelAttrReset(temp_r31, 1); - Hu3DParticleBlendModeSet(temp_r31, 1); - temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; - temp_r29[1] = 800; - object->func = fn_1_CD14; + s32 temp_r31; + float *temp_r29; + s32 temp_r28; + + u16 *spC; + WorkF4B0 *sp8; + object->data = spC = HuMemDirectMallocNum(HEAP_SYSTEM, 436 * sizeof(u16), MEMORY_DEFAULT_NUM); + lbl_1_bss_14C[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x24), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x25), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x26), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[4] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x28), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[3] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x29), MEMORY_DEFAULT_NUM)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1A)); + omSetSca(object, 0.1f, 0.1f, 0.1f); + temp_r31 = object->model[0]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, 1); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1E)); + temp_r31 = object->model[4]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + Hu3DModelAttrSet(temp_r31, 1); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x20)); + temp_r31 = object->model[5]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1B)); + temp_r31 = object->model[2]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelPosSet(temp_r31, -20, -10, -150); + Hu3DModelScaleSet(temp_r31, 0.14500001f, 0.14500001f, 0.14500001f); + Hu3DModelAttrSet(temp_r31, 1); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1D)); + temp_r31 = object->model[3]; + Hu3DModelPosSet(temp_r31, 0, -50, -500); + Hu3DModelScaleSet(temp_r31, 0.15f, 0.15f, 0.15f); + Hu3DModelLayerSet(temp_r31, 0); + Hu3DModelAttrSet(temp_r31, 1); + sp8 = fn_1_F4B0(temp_r31, temp_r31); + object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1C)); + temp_r31 = object->model[9]; + lbl_1_bss_148 = temp_r31; + Hu3DModelScaleSet(temp_r31, 0.11000001f, 0.1f, 0.11000001f); + Hu3DModelPosSet(temp_r31, 0, 10000, 0); + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, 1); + object->model[11] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1F)); + temp_r31 = object->model[11]; + Hu3DModelPosSet(temp_r31, 0, 10000, 0); + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelScaleSet(temp_r31, 0.105f, 0.1f, 0.105f); + Hu3DModelAttrSet(temp_r31, 1); + object->model[12] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x23)); + temp_r31 = object->model[12]; + Hu3DModelLayerSet(temp_r31, 3); + Hu3DModelPosSet(temp_r31, 0, 5000, 0); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + Hu3DModelAttrSet(temp_r31, 1); + Hu3DMotionSpeedSet(temp_r31, 0); + object->model[19] = temp_r31 = fn_1_D978(lbl_1_bss_14C[0], 80, fn_1_E310); + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelPosSet(temp_r31, 0, 5100, 0); + Hu3DParticleBlendModeSet(temp_r31, 1); + temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; + temp_r29[2] = 140; + object->model[14] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x21)); + object->model[15] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x22)); + object->model[16] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x21)); + object->model[17] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x22)); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + temp_r31 = object->model[temp_r28 + 14]; + Hu3DModelLayerSet(temp_r31, 3); + Hu3DModelRotSet(temp_r31, 0, frandmod(360), 0); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + Hu3DModelAttrSet(temp_r31, 1); + Hu3DMotionSpeedSet(temp_r31, 0); + } + object->model[6] = temp_r31 = fn_1_D978(lbl_1_bss_14C[4], 1, fn_1_EEF8); + Hu3DModelPosSet(temp_r31, 0, 5000, 0); + Hu3DModelLayerSet(temp_r31, 3); + Hu3DModelAttrReset(temp_r31, 1); + Hu3DParticleBlendModeSet(temp_r31, 1); + temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; + temp_r29[1] = 800; + object->func = fn_1_CD14; } void fn_1_D004(omObjData *object); void fn_1_CD14(omObjData *object) { - u16 *temp_r30; - u32 temp_r29; - temp_r29 = fn_1_6878(); - temp_r30 = object->data; - switch(temp_r29) { - case 1: - temp_r30[0] = 2; - temp_r30[1] = 0; - lbl_1_bss_140 = 1; - break; - - case 2: - case 3: - fn_1_D004(object); - temp_r30[1]++; - break; - - case 4: - Hu3DModelScaleSet(object->model[2], 0.16000001f, 0.16000001f, 0.16000001f); - Hu3DModelShadowMapSet(object->model[0]); - Hu3DModelShadowSet(object->model[4]); - break; - - default: - break; - } - if(temp_r29 > 3) { - if(lbl_1_bss_134 >= 0) { - HuAudFXStop(lbl_1_bss_134); - lbl_1_bss_134 = -1; - } - if(lbl_1_bss_130 >= 0) { - HuAudFXStop(lbl_1_bss_130); - lbl_1_bss_130 = -1; - } - } + u16 *temp_r30; + u32 temp_r29; + temp_r29 = fn_1_6878(); + temp_r30 = object->data; + switch (temp_r29) { + case 1: + temp_r30[0] = 2; + temp_r30[1] = 0; + lbl_1_bss_140 = 1; + break; + + case 2: + case 3: + fn_1_D004(object); + temp_r30[1]++; + break; + + case 4: + Hu3DModelScaleSet(object->model[2], 0.16000001f, 0.16000001f, 0.16000001f); + Hu3DModelShadowMapSet(object->model[0]); + Hu3DModelShadowSet(object->model[4]); + break; + + default: + break; + } + if (temp_r29 > 3) { + if (lbl_1_bss_134 >= 0) { + HuAudFXStop(lbl_1_bss_134); + lbl_1_bss_134 = -1; + } + if (lbl_1_bss_130 >= 0) { + HuAudFXStop(lbl_1_bss_130); + lbl_1_bss_130 = -1; + } + } } s32 fn_1_CE68(void) { - switch(lbl_1_bss_140) { - case 0: - return 0; - - case 1: - if(lbl_1_bss_144) { - return 2; - } else { - return 1; - } - break; - - case 2: - if(lbl_1_bss_144) { - return 3; - } else { - return 4; - } - break; - } + switch (lbl_1_bss_140) { + case 0: + return 0; + + case 1: + if (lbl_1_bss_144) { + return 2; + } + else { + return 1; + } + break; + + case 2: + if (lbl_1_bss_144) { + return 3; + } + else { + return 4; + } + break; + } } void fn_1_CEEC(void) { - omObjData *temp_r31; - s32 temp_r30; - temp_r31 = lbl_1_bss_13C; - if(lbl_1_bss_140 >= 2) { - return; - } - lbl_1_bss_140 = 2; - Hu3DModelAttrSet(temp_r31->model[5], 1); - Hu3DModelAttrSet(temp_r31->model[9], 1); - Hu3DModelAttrSet(temp_r31->model[11], 1); - Hu3DModelAttrSet(temp_r31->model[12], 1); - Hu3DModelAttrSet(temp_r31->model[19], 1); - for(temp_r30=0; temp_r30<4; temp_r30++) { - Hu3DModelAttrSet(temp_r31->model[temp_r30+14], 1); - } - Hu3DModelAttrReset(temp_r31->model[0], 1); - Hu3DModelAttrReset(temp_r31->model[4], 1); - Hu3DModelAttrReset(temp_r31->model[2], 1); - Hu3DModelAttrReset(temp_r31->model[3], 1); + omObjData *temp_r31; + s32 temp_r30; + temp_r31 = lbl_1_bss_13C; + if (lbl_1_bss_140 >= 2) { + return; + } + lbl_1_bss_140 = 2; + Hu3DModelAttrSet(temp_r31->model[5], 1); + Hu3DModelAttrSet(temp_r31->model[9], 1); + Hu3DModelAttrSet(temp_r31->model[11], 1); + Hu3DModelAttrSet(temp_r31->model[12], 1); + Hu3DModelAttrSet(temp_r31->model[19], 1); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + Hu3DModelAttrSet(temp_r31->model[temp_r30 + 14], 1); + } + Hu3DModelAttrReset(temp_r31->model[0], 1); + Hu3DModelAttrReset(temp_r31->model[4], 1); + Hu3DModelAttrReset(temp_r31->model[2], 1); + Hu3DModelAttrReset(temp_r31->model[3], 1); } void fn_1_D6F0(omObjData *object); void fn_1_D004(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - u16 *temp_r30; - float *temp_r28; - s32 temp_r27; - s32 temp_r26; - CameraData *sp8; - temp_r30 = object->data; - sp8 = &Hu3DCamera[0]; - temp_f30 = fn_1_6888(); - temp_f28 = 7000; - switch(temp_r30[0]) { - case 2: - Hu3DModelAttrReset(object->model[9], 1); - Hu3DModelAttrReset(object->model[11], 1); - Hu3DModelAttrReset(object->model[12], 1); - Hu3DModelAttrReset(object->model[19], 1); - for(temp_r26=0; temp_r26<4; temp_r26++) { - Hu3DModelAttrReset(object->model[temp_r26+14], 1); - } - Hu3DModelAttrReset(object->model[6], 1); - if(lbl_1_bss_134 < 0) { - lbl_1_bss_134 = HuAudFXPlay(1363); - } - temp_r30[2] = 0; - temp_r30[0]++; - - case 3: - temp_f31 = temp_r30[1]*0.25f; - Hu3DModelRotSet(object->model[9], 0, 0.7f*-temp_f31, 0); - Hu3DModelRotSet(object->model[11], 0, 1.3f*temp_f31, 0); - Hu3DModelRotSet(object->model[12], 0, 3.7f*temp_f31, 0); - temp_f29 = 1.0f-((temp_f30-5000)/15000); - Hu3DMotionTimeSet(object->model[12], 95.0f*temp_f29); - temp_r27 = object->model[6]; - temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; - temp_r28[2] = 1.0f-((temp_f30-5000)/(temp_f28-5000)); - if(temp_f30 <= 5400 && temp_r30[2] == 0) { - temp_r30[2] = 30; - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, temp_r30[2]); - lbl_1_bss_44 = 1; - } - lbl_1_bss_144 = 1; - temp_r30[0]++; - } - if(temp_f30 <= 4800) { - temp_r28[1] = 1200; - temp_r30[0]++; - } - fn_1_D6F0(object); - break; - - case 4: - if(temp_r30[2]-- == 0) { - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_44 = 0; - } - if(lbl_1_bss_138 < 0) { - lbl_1_bss_138 = HuAudFXPlay(1357); - } - fn_1_CEEC(); - if(lbl_1_bss_134 >= 0) { - HuAudFXStop(lbl_1_bss_134); - lbl_1_bss_134 = -1; - } - if(lbl_1_bss_130 < 0) { - lbl_1_bss_130 = HuAudFXPlay(1361); - } - temp_r30[0]++; - } - - break; - - case 5: - if(!WipeStatGet()) { - lbl_1_bss_144 = 0; - } - temp_r27 = object->model[6]; - if(temp_r27 != 0) { - Hu3DModelPosSet(temp_r27, 0, 200+temp_f30, 0); - temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; - temp_r28[2] -= 0.025f; - if(temp_r28[2] <= 0) { - Hu3DModelAttrReset(temp_r27, 0x20); - Hu3DModelKill(temp_r27); - object->model[6] = 0; - } - } - temp_f31 = temp_r30[1]%360; - temp_f31 = 0.1f*(1.4f+((0.2f*temp_f30)/5000)); - Hu3DModelScaleSet(object->model[2], temp_f31, temp_f31, temp_f31); - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + u16 *temp_r30; + float *temp_r28; + s32 temp_r27; + s32 temp_r26; + CameraData *sp8; + temp_r30 = object->data; + sp8 = &Hu3DCamera[0]; + temp_f30 = fn_1_6888(); + temp_f28 = 7000; + switch (temp_r30[0]) { + case 2: + Hu3DModelAttrReset(object->model[9], 1); + Hu3DModelAttrReset(object->model[11], 1); + Hu3DModelAttrReset(object->model[12], 1); + Hu3DModelAttrReset(object->model[19], 1); + for (temp_r26 = 0; temp_r26 < 4; temp_r26++) { + Hu3DModelAttrReset(object->model[temp_r26 + 14], 1); + } + Hu3DModelAttrReset(object->model[6], 1); + if (lbl_1_bss_134 < 0) { + lbl_1_bss_134 = HuAudFXPlay(1363); + } + temp_r30[2] = 0; + temp_r30[0]++; + + case 3: + temp_f31 = temp_r30[1] * 0.25f; + Hu3DModelRotSet(object->model[9], 0, 0.7f * -temp_f31, 0); + Hu3DModelRotSet(object->model[11], 0, 1.3f * temp_f31, 0); + Hu3DModelRotSet(object->model[12], 0, 3.7f * temp_f31, 0); + temp_f29 = 1.0f - ((temp_f30 - 5000) / 15000); + Hu3DMotionTimeSet(object->model[12], 95.0f * temp_f29); + temp_r27 = object->model[6]; + temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; + temp_r28[2] = 1.0f - ((temp_f30 - 5000) / (temp_f28 - 5000)); + if (temp_f30 <= 5400 && temp_r30[2] == 0) { + temp_r30[2] = 30; + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, temp_r30[2]); + lbl_1_bss_44 = 1; + } + lbl_1_bss_144 = 1; + temp_r30[0]++; + } + if (temp_f30 <= 4800) { + temp_r28[1] = 1200; + temp_r30[0]++; + } + fn_1_D6F0(object); + break; + + case 4: + if (temp_r30[2]-- == 0) { + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_44 = 0; + } + if (lbl_1_bss_138 < 0) { + lbl_1_bss_138 = HuAudFXPlay(1357); + } + fn_1_CEEC(); + if (lbl_1_bss_134 >= 0) { + HuAudFXStop(lbl_1_bss_134); + lbl_1_bss_134 = -1; + } + if (lbl_1_bss_130 < 0) { + lbl_1_bss_130 = HuAudFXPlay(1361); + } + temp_r30[0]++; + } + + break; + + case 5: + if (!WipeStatGet()) { + lbl_1_bss_144 = 0; + } + temp_r27 = object->model[6]; + if (temp_r27 != 0) { + Hu3DModelPosSet(temp_r27, 0, 200 + temp_f30, 0); + temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; + temp_r28[2] -= 0.025f; + if (temp_r28[2] <= 0) { + Hu3DModelAttrReset(temp_r27, 0x20); + Hu3DModelKill(temp_r27); + object->model[6] = 0; + } + } + temp_f31 = temp_r30[1] % 360; + temp_f31 = 0.1f * (1.4f + ((0.2f * temp_f30) / 5000)); + Hu3DModelScaleSet(object->model[2], temp_f31, temp_f31, temp_f31); + break; + } } void fn_1_D6F0(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - temp_f28 = fn_1_6888()-1500; - temp_f29 = 500.0f*(int)(temp_f28/500.0f); - temp_r30 = (int)(temp_f28/500.0f)%4; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r29 = object->model[temp_r30+14]; - Hu3DModelPosSet(temp_r29, 0, temp_f29, 0); - temp_f31 = temp_f29-temp_f28; - temp_f30 = 0; - if(temp_f31 > -250.0f && temp_f31 < 1525.0f) { - temp_f30 = 45; - if(temp_f31 < 0.0f) { - temp_f31 -= -250.0f; - temp_f30 *= fabs(temp_f31/250.0f); - } else { - if(temp_f31 > 1425) { - temp_f31 -= 1425; - temp_f30 *= 1.0-fabs(temp_f31/100.0f); - } - } - } - Hu3DMotionTimeSet(temp_r29, temp_f30); - temp_f29 += 500.0f; - temp_r30 = (temp_r30+1)%4; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + temp_f28 = fn_1_6888() - 1500; + temp_f29 = 500.0f * (int)(temp_f28 / 500.0f); + temp_r30 = (int)(temp_f28 / 500.0f) % 4; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r29 = object->model[temp_r30 + 14]; + Hu3DModelPosSet(temp_r29, 0, temp_f29, 0); + temp_f31 = temp_f29 - temp_f28; + temp_f30 = 0; + if (temp_f31 > -250.0f && temp_f31 < 1525.0f) { + temp_f30 = 45; + if (temp_f31 < 0.0f) { + temp_f31 -= -250.0f; + temp_f30 *= fabs(temp_f31 / 250.0f); + } + else { + if (temp_f31 > 1425) { + temp_f31 -= 1425; + temp_f30 *= 1.0 - fabs(temp_f31 / 100.0f); + } + } + } + Hu3DMotionTimeSet(temp_r29, temp_f30); + temp_f29 += 500.0f; + temp_r30 = (temp_r30 + 1) % 4; + } } s16 fn_1_D978(AnimData *arg0, s16 arg1, ParticleHook arg2) { - s32 temp_r31; - HsfanimStruct01 *temp_r30; - ParticleData *temp_r29; - s32 temp_r28; - HsfanimStruct01 *temp_r27; - temp_r28 = Hu3DParticleCreate(arg0, arg1); - Hu3DParticleHookSet(temp_r28, arg2); - Hu3DModelAttrSet(temp_r28, 1); - temp_r29 = Hu3DData[temp_r28].unk_120; - temp_r27 = temp_r29->unk_48; - for(temp_r31=0; temp_r31unk_30; temp_r31++, temp_r27++) { - temp_r27->unk2C = 0; - } - temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM); - temp_r29->unk_1C = temp_r30; - temp_r30->unk00_s16 = temp_r28; - temp_r30->unk02 = 0; - for(temp_r31=0; temp_r31<32; temp_r31++) { - //Ugly expression to match store without new type - *((s16 *)(((u8 *)temp_r30)+(temp_r31*2)+4)) = 0; - } - return temp_r28; + s32 temp_r31; + HsfanimStruct01 *temp_r30; + ParticleData *temp_r29; + s32 temp_r28; + HsfanimStruct01 *temp_r27; + temp_r28 = Hu3DParticleCreate(arg0, arg1); + Hu3DParticleHookSet(temp_r28, arg2); + Hu3DModelAttrSet(temp_r28, 1); + temp_r29 = Hu3DData[temp_r28].unk_120; + temp_r27 = temp_r29->unk_48; + for (temp_r31 = 0; temp_r31 < temp_r29->unk_30; temp_r31++, temp_r27++) { + temp_r27->unk2C = 0; + } + temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM); + temp_r29->unk_1C = temp_r30; + temp_r30->unk00_s16 = temp_r28; + temp_r30->unk02 = 0; + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + // Ugly expression to match store without new type + *((s16 *)(((u8 *)temp_r30) + (temp_r31 * 2) + 4)) = 0; + } + return temp_r28; } void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - s32 temp_r27; - s16 temp_r26; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00 = 0; - } - particle->unk_00 = 0; - temp_r29->unk_02++; - temp_r29->unk_04.y = 3; - temp_r29->unk_04.z = 25; - break; - - case 1: - for(temp_r28=0; temp_r28<100; temp_r28++) { - temp_r31 = particle->unk_48; - for(temp_r27=0; temp_r27unk_30; temp_r27++, temp_r31++) { - if(!temp_r31->unk00_s16) { - break; - } - } - if(temp_r27 == particle->unk_30) { - temp_r29->unk_02++; - break; - } - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r26 = fn_1_11670()%360; - temp_r31->unk08.x = sind(temp_r26); - temp_r31->unk08.y = -6.0+(2.0*temp_r29->unk_10.x); - temp_r31->unk08.z = cosd(temp_r26); - temp_r31->unk14.x = ((fn_1_11670() & 0x7)+temp_r29->unk_04.z)-4.0f; - temp_r31->unk14.x *= 0.1f; - temp_f31 = temp_r29->unk_04.y+(0.01*(float)(fn_1_11670()%400)); - temp_f31 *= 0.1f; - temp_r31->unk34.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk34.y = 0; - temp_r31->unk34.z = temp_f31*temp_r31->unk08.z; - temp_r31->unk2C = (0.01*(frand()%2000))+30.0; - temp_r31->unk2C *= 0.1f; - temp_r31->unk40.a = 255; - temp_r31->unk00_s16 = 30; - } - break; - } - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk00_s16 == 0) { - continue; - } - temp_f30 = temp_r31->unk14.x; - temp_r31->unk34.x += temp_r31->unk08.x*temp_f30; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z*temp_f30; - temp_r31->unk2C *= 1.025f; - temp_r31->unk40.a *= 0.95f; - temp_r31->unk40.a--; - temp_r31->unk14.x *= 0.8f; - temp_r31->unk08.y *= 0.85f; - temp_r31->unk08.y += 0.1f; - if(temp_r31->unk40.a < 2) { - temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = 0; - particle->unk_00++; - } - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - if(particle->unk_00 >= particle->unk_30 && temp_r29->unk_02 == 2) { - temp_r29->unk_02 = 0; - Hu3DModelAttrReset(temp_r29->unk_00, 0x20); - Hu3DModelKill(temp_r29->unk_00); - } + float temp_f31; + float temp_f30; + + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + s32 temp_r27; + s16 temp_r26; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00 = 0; + } + particle->unk_00 = 0; + temp_r29->unk_02++; + temp_r29->unk_04.y = 3; + temp_r29->unk_04.z = 25; + break; + + case 1: + for (temp_r28 = 0; temp_r28 < 100; temp_r28++) { + temp_r31 = particle->unk_48; + for (temp_r27 = 0; temp_r27 < particle->unk_30; temp_r27++, temp_r31++) { + if (!temp_r31->unk00_s16) { + break; + } + } + if (temp_r27 == particle->unk_30) { + temp_r29->unk_02++; + break; + } + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r26 = fn_1_11670() % 360; + temp_r31->unk08.x = sind(temp_r26); + temp_r31->unk08.y = -6.0 + (2.0 * temp_r29->unk_10.x); + temp_r31->unk08.z = cosd(temp_r26); + temp_r31->unk14.x = ((fn_1_11670() & 0x7) + temp_r29->unk_04.z) - 4.0f; + temp_r31->unk14.x *= 0.1f; + temp_f31 = temp_r29->unk_04.y + (0.01 * (float)(fn_1_11670() % 400)); + temp_f31 *= 0.1f; + temp_r31->unk34.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk34.y = 0; + temp_r31->unk34.z = temp_f31 * temp_r31->unk08.z; + temp_r31->unk2C = (0.01 * (frand() % 2000)) + 30.0; + temp_r31->unk2C *= 0.1f; + temp_r31->unk40.a = 255; + temp_r31->unk00_s16 = 30; + } + break; + } + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk00_s16 == 0) { + continue; + } + temp_f30 = temp_r31->unk14.x; + temp_r31->unk34.x += temp_r31->unk08.x * temp_f30; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z * temp_f30; + temp_r31->unk2C *= 1.025f; + temp_r31->unk40.a *= 0.95f; + temp_r31->unk40.a--; + temp_r31->unk14.x *= 0.8f; + temp_r31->unk08.y *= 0.85f; + temp_r31->unk08.y += 0.1f; + if (temp_r31->unk40.a < 2) { + temp_r31->unk40.a = 0; + temp_r31->unk00_s16 = 0; + particle->unk_00++; + } + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (particle->unk_00 >= particle->unk_30 && temp_r29->unk_02 == 2) { + temp_r29->unk_02 = 0; + Hu3DModelAttrReset(temp_r29->unk_00, 0x20); + Hu3DModelKill(temp_r29->unk_00); + } } void fn_1_DFD0(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r28; - s16 temp_r27; - s32 temp_r26; - temp_r30 = particle->unk_1C; - switch(temp_r30->unk_02) { - case 0: - temp_r31 = particle->unk_48; - temp_r30->unk_04.x = 10; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r27 = fn_1_11670()%360; - temp_r31->unk08.x = sind(temp_r27); - temp_r31->unk08.y = 0; - temp_r31->unk08.z = cosd(temp_r27); - temp_f31 = temp_r30->unk_04.x+(temp_r30->unk_04.x*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk34.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk34.y = -(100.0*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk34.z = temp_f31*temp_r31->unk08.z; - temp_r31->unk2C = (0.01*(frand()%2000))+40.0; - temp_r26 = frand()&0x2F; - temp_r31->unk40.r = temp_r26+208; - temp_r31->unk40.g = temp_r26+208; - temp_r31->unk40.a = (frand()&0x5F)+32; - } - temp_r30->unk_02++; - particle->unk_00 = 60; - break; - - case 1: - if(--particle->unk_00 == 0) { - Hu3DModelAttrReset(temp_r30->unk_00, 0x20); - Hu3DModelKill(temp_r30->unk_00); - return; - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r28; + s16 temp_r27; + s32 temp_r26; + temp_r30 = particle->unk_1C; + switch (temp_r30->unk_02) { + case 0: + temp_r31 = particle->unk_48; + temp_r30->unk_04.x = 10; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r27 = fn_1_11670() % 360; + temp_r31->unk08.x = sind(temp_r27); + temp_r31->unk08.y = 0; + temp_r31->unk08.z = cosd(temp_r27); + temp_f31 = temp_r30->unk_04.x + (temp_r30->unk_04.x * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk34.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk34.y = -(100.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk34.z = temp_f31 * temp_r31->unk08.z; + temp_r31->unk2C = (0.01 * (frand() % 2000)) + 40.0; + temp_r26 = frand() & 0x2F; + temp_r31->unk40.r = temp_r26 + 208; + temp_r31->unk40.g = temp_r26 + 208; + temp_r31->unk40.a = (frand() & 0x5F) + 32; + } + temp_r30->unk_02++; + particle->unk_00 = 60; + break; + + case 1: + if (--particle->unk_00 == 0) { + Hu3DModelAttrReset(temp_r30->unk_00, 0x20); + Hu3DModelKill(temp_r30->unk_00); + return; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - s32 temp_r27; - s16 temp_r26; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - temp_f30 = 360.0f/particle->unk_30; - - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = (s32)(360.0*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r26 = (temp_f30*temp_r28)+(int)((temp_f30*0.5f)*((1.0/32768.0)*(float)(fn_1_11670()-32768))); - temp_r31->unk20 = temp_r26; - temp_r31->unk30 = (M_PI*(temp_r26+90.0f))/180.0; - temp_r31->unk08.x = sind(temp_r26); - temp_r31->unk08.y = 0; - temp_r31->unk08.z = cosd(temp_r26); - temp_f31 = temp_r29->unk_04.y+((0.25f*temp_r29->unk_04.y)*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk14.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk14.y = 120.0*((1.0/32768.0)*(float)(fn_1_11670()-32768)); - temp_r31->unk14.z = temp_f31*temp_r31->unk08.z; - temp_r31->unk24 = temp_r31->unk2C = (0.01*(frand()%2000))+160; - if(particle->unk_2C == 1) { - temp_r27 = frand()&0x2F; - temp_r31->unk40.r = temp_r27+32; - temp_r31->unk40.g = temp_r27+32; - temp_r31->unk40.b = 64+temp_r27+((int)(((46-temp_r27)*((1.0/65536.0)*(float)fn_1_11670())))); - temp_r31->unk40.a = (frand()&0x2F)+32; - } else { - temp_r27 = frand()&0x2F; - temp_r31->unk40.r = temp_r27+208; - temp_r31->unk40.g = temp_r27+208; - temp_r31->unk40.a = (frand()&0x4F)+176; - } - } - temp_r29->unk_02++; - - case 1: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 4; - if(temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; - } - temp_r31->unk34.x = temp_r31->unk14.x; - temp_r31->unk34.y = temp_r31->unk14.y; - temp_r31->unk34.z = temp_r31->unk14.z; - temp_r31->unk30 = M_PI*(90+(temp_r31->unk20+temp_r29->unk_04.z))/180; - temp_r31->unk2C = temp_r31->unk24*((0.1f*sind(temp_r31->unk00_s16))+1.0); - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + float temp_f30; + + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + s32 temp_r27; + s16 temp_r26; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + temp_f30 = 360.0f / particle->unk_30; + + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r26 = (temp_f30 * temp_r28) + (int)((temp_f30 * 0.5f) * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768))); + temp_r31->unk20 = temp_r26; + temp_r31->unk30 = (M_PI * (temp_r26 + 90.0f)) / 180.0; + temp_r31->unk08.x = sind(temp_r26); + temp_r31->unk08.y = 0; + temp_r31->unk08.z = cosd(temp_r26); + temp_f31 = temp_r29->unk_04.y + ((0.25f * temp_r29->unk_04.y) * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk14.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk14.y = 120.0 * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768)); + temp_r31->unk14.z = temp_f31 * temp_r31->unk08.z; + temp_r31->unk24 = temp_r31->unk2C = (0.01 * (frand() % 2000)) + 160; + if (particle->unk_2C == 1) { + temp_r27 = frand() & 0x2F; + temp_r31->unk40.r = temp_r27 + 32; + temp_r31->unk40.g = temp_r27 + 32; + temp_r31->unk40.b = 64 + temp_r27 + ((int)(((46 - temp_r27) * ((1.0 / 65536.0) * (float)fn_1_11670())))); + temp_r31->unk40.a = (frand() & 0x2F) + 32; + } + else { + temp_r27 = frand() & 0x2F; + temp_r31->unk40.r = temp_r27 + 208; + temp_r31->unk40.g = temp_r27 + 208; + temp_r31->unk40.a = (frand() & 0x4F) + 176; + } + } + temp_r29->unk_02++; + + case 1: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 += 4; + if (temp_r31->unk00_s16 >= 360) { + temp_r31->unk00_s16 -= 360; + } + temp_r31->unk34.x = temp_r31->unk14.x; + temp_r31->unk34.y = temp_r31->unk14.y; + temp_r31->unk34.z = temp_r31->unk14.z; + temp_r31->unk30 = M_PI * (90 + (temp_r31->unk20 + temp_r29->unk_04.z)) / 180; + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f30; - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r28; - s16 temp_r27; - s32 temp_r26; - temp_r30 = particle->unk_1C; - switch(temp_r30->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = fn_1_11670()%360; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r27 = fn_1_11670()%360; - temp_r31->unk20 = temp_r27; - temp_r31->unk08.x = sind(temp_r27); - temp_r31->unk08.y = 0; - temp_r31->unk08.z = cosd(temp_r27); - temp_f31 = temp_r30->unk_04.x+(0.01*((30.0f*temp_r30->unk_04.x)*((1.0/65536.0)*(float)fn_1_11670()))); - temp_f30 = (0.15f+(0.3f*((1.0/65536.0)*(float)fn_1_11670()))); - temp_r31->unk14.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk14.y = 50*((1.0/32768.0)*(float)(fn_1_11670()-32768)); - temp_r31->unk14.z = temp_f31*temp_r31->unk08.z*temp_f30; - temp_r31->unk24 = temp_r31->unk2C = temp_r30->unk_04.x+(0.01*((50.0f*temp_r30->unk_04.x)*((1.0/65536.0)*(float)fn_1_11670()))); - temp_r26 = frand()&0x7F; - temp_r31->unk40.r = temp_r26+64; - temp_r31->unk40.g = temp_r26+64; - temp_f31 -= temp_r30->unk_04.x; - temp_r31->unk40.a = 32+(int)((48.0f*temp_f31)/(0.2f*temp_r30->unk_04.x))+(int)(32*((1.0/65536.0)*(float)fn_1_11670())); - } - temp_r30->unk_02++; - - case 1: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 2; - if(temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; - } - temp_r31->unk34.x = temp_r31->unk14.x; - temp_r31->unk34.y = temp_r31->unk14.y; - temp_r31->unk34.z = temp_r31->unk14.z; - temp_r31->unk2C = temp_r31->unk24*((0.1f*sind(temp_r31->unk00_s16))+1.0); - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f30; + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r28; + s16 temp_r27; + s32 temp_r26; + temp_r30 = particle->unk_1C; + switch (temp_r30->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 = fn_1_11670() % 360; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r27 = fn_1_11670() % 360; + temp_r31->unk20 = temp_r27; + temp_r31->unk08.x = sind(temp_r27); + temp_r31->unk08.y = 0; + temp_r31->unk08.z = cosd(temp_r27); + temp_f31 = temp_r30->unk_04.x + (0.01 * ((30.0f * temp_r30->unk_04.x) * ((1.0 / 65536.0) * (float)fn_1_11670()))); + temp_f30 = (0.15f + (0.3f * ((1.0 / 65536.0) * (float)fn_1_11670()))); + temp_r31->unk14.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk14.y = 50 * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768)); + temp_r31->unk14.z = temp_f31 * temp_r31->unk08.z * temp_f30; + temp_r31->unk24 = temp_r31->unk2C + = temp_r30->unk_04.x + (0.01 * ((50.0f * temp_r30->unk_04.x) * ((1.0 / 65536.0) * (float)fn_1_11670()))); + temp_r26 = frand() & 0x7F; + temp_r31->unk40.r = temp_r26 + 64; + temp_r31->unk40.g = temp_r26 + 64; + temp_f31 -= temp_r30->unk_04.x; + temp_r31->unk40.a + = 32 + (int)((48.0f * temp_f31) / (0.2f * temp_r30->unk_04.x)) + (int)(32 * ((1.0 / 65536.0) * (float)fn_1_11670())); + } + temp_r30->unk_02++; + + case 1: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 += 2; + if (temp_r31->unk00_s16 >= 360) { + temp_r31->unk00_s16 -= 360; + } + temp_r31->unk34.x = temp_r31->unk14.x; + temp_r31->unk34.y = temp_r31->unk14.y; + temp_r31->unk34.z = temp_r31->unk14.z; + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_EEF8(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - u8 temp_r27; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; - temp_r31->unk2C = temp_r29->unk_04.x; - } - temp_r29->unk_02++; - break; - - case 1: - if(temp_r29->unk_04.y < 0.0f) { - break; - } - temp_f31 = 0.1f+temp_r29->unk_04.y; - temp_f31 = 1.2f*(temp_f31*temp_f31); - if(temp_f31 > 1.0f) { - temp_f31 = 1.0f; - } - temp_r27 = 255*temp_f31; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk40.a = temp_r27; - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + u8 temp_r27; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; + temp_r31->unk2C = temp_r29->unk_04.x; + } + temp_r29->unk_02++; + break; + + case 1: + if (temp_r29->unk_04.y < 0.0f) { + break; + } + temp_f31 = 0.1f + temp_r29->unk_04.y; + temp_f31 = 1.2f * (temp_f31 * temp_f31); + if (temp_f31 > 1.0f) { + temp_f31 = 1.0f; + } + temp_r27 = 255 * temp_f31; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk40.a = temp_r27; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - s16 temp_r27; - temp_r27 = 0; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = temp_r31->unk02 = 0; - } - temp_r29->unk_02++; - break; - - case 1: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk00_s16) { - temp_r31->unk00_s16--; - continue; - } - if(temp_r31->unk02 == 0) { - temp_f31 = 360.0f*((1.0/65536.0)*(float)fn_1_11670()); - temp_r31->unk34.x = 10.0*(50.0+(250.0*((1.0/65536.0)*(float)fn_1_11670())))*sind(temp_f31); - temp_r31->unk34.y = 0; - temp_r31->unk34.z = 10.0*(50.0+(250.0*((1.0/65536.0)*(float)fn_1_11670())))*cosd(temp_f31); - temp_r31->unk30 = (M_PI*(temp_f31-90.0f))/180; - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192; - temp_r31->unk40.b = 160; - temp_r31->unk2C = 0; - temp_r31->unk00_s16 = (s32)(90.0*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk02 = 60; - } - temp_r31->unk40.a = 248*sind(temp_r31->unk02*3); - temp_r31->unk2C = temp_r29->unk_04.x*(60-temp_r31->unk02); - temp_r31->unk02--; - } - if(particle->unk_30 == temp_r27) { - Hu3DModelAttrReset(temp_r29->unk_00, 0x20); - Hu3DModelKill(temp_r29->unk_00); - return; - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + s16 temp_r27; + temp_r27 = 0; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 = temp_r31->unk02 = 0; + } + temp_r29->unk_02++; + break; + + case 1: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk00_s16) { + temp_r31->unk00_s16--; + continue; + } + if (temp_r31->unk02 == 0) { + temp_f31 = 360.0f * ((1.0 / 65536.0) * (float)fn_1_11670()); + temp_r31->unk34.x = 10.0 * (50.0 + (250.0 * ((1.0 / 65536.0) * (float)fn_1_11670()))) * sind(temp_f31); + temp_r31->unk34.y = 0; + temp_r31->unk34.z = 10.0 * (50.0 + (250.0 * ((1.0 / 65536.0) * (float)fn_1_11670()))) * cosd(temp_f31); + temp_r31->unk30 = (M_PI * (temp_f31 - 90.0f)) / 180; + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192; + temp_r31->unk40.b = 160; + temp_r31->unk2C = 0; + temp_r31->unk00_s16 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk02 = 60; + } + temp_r31->unk40.a = 248 * sind(temp_r31->unk02 * 3); + temp_r31->unk2C = temp_r29->unk_04.x * (60 - temp_r31->unk02); + temp_r31->unk02--; + } + if (particle->unk_30 == temp_r27) { + Hu3DModelAttrReset(temp_r29->unk_00, 0x20); + Hu3DModelKill(temp_r29->unk_00); + return; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } WorkF4B0 *fn_1_F4B0(s16 arg0, s16 arg1) { - WorkF4B0 *temp_r31; - s32 temp_r30; - ModelData *temp_r29; - temp_r29 = &Hu3DData[arg0]; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkF4B0), MEMORY_DEFAULT_NUM); - temp_r29->unk_120 = temp_r31; - temp_r31->unk0 = arg0; - temp_r31->unk2 = arg1; - temp_r31->unk4 = NULL; - temp_r31->unk8 = NULL; - for(temp_r30=0; temp_r30<32; temp_r30++) { - temp_r31->unk10[temp_r30] = 0; - } - return temp_r31; + WorkF4B0 *temp_r31; + s32 temp_r30; + ModelData *temp_r29; + temp_r29 = &Hu3DData[arg0]; + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkF4B0), MEMORY_DEFAULT_NUM); + temp_r29->unk_120 = temp_r31; + temp_r31->unk0 = arg0; + temp_r31->unk2 = arg1; + temp_r31->unk4 = NULL; + temp_r31->unk8 = NULL; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++) { + temp_r31->unk10[temp_r30] = 0; + } + return temp_r31; } void fn_1_F564(s16 arg0) { - float temp_f31; - WorkF4B0 *temp_r31; - s32 temp_r30; - HsfObject *temp_r29; - s32 temp_r28; - ModelData *temp_r27; - temp_r27 = &Hu3DData[arg0]; - temp_r29 = temp_r27->hsfData->root; - temp_r31 = temp_r27->unk_120; - if(temp_r31->unk8 == NULL) { - temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count*sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); - temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count, MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; - temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; - } - } - temp_r31->unk10_f[0] += 2.0f; - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unkC[temp_r30] = 0; - } - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - if(temp_r31->unkC[temp_r30]) { - continue; - } - temp_r31->unkC[temp_r30]++; - temp_f31 = temp_r31->unk10_f[0]+(60.0f*temp_r30); - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x = temp_r31->unk8[temp_r30].x+(0.005f*sind(temp_f31)); - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y = temp_r31->unk8[temp_r30].y+(0.005f*cosd(temp_f31)); - for(temp_r28=temp_r30; temp_r28data.st->count; temp_r28++) { - if(temp_r31->unkC[temp_r28]) { - continue; - } - if(temp_r31->unk8[temp_r30].x != temp_r31->unk8[temp_r28].x || temp_r31->unk8[temp_r30].y != temp_r31->unk8[temp_r28].y) { - continue; - } - temp_r31->unkC[temp_r28]++; - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; - } - } + float temp_f31; + WorkF4B0 *temp_r31; + s32 temp_r30; + HsfObject *temp_r29; + s32 temp_r28; + ModelData *temp_r27; + temp_r27 = &Hu3DData[arg0]; + temp_r29 = temp_r27->hsfData->root; + temp_r31 = temp_r27->unk_120; + if (temp_r31->unk8 == NULL) { + temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count * sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); + temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count, MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < temp_r29->data.st->count; temp_r30++) { + temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; + temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; + } + } + temp_r31->unk10_f[0] += 2.0f; + for (temp_r30 = 0; temp_r30 < temp_r29->data.st->count; temp_r30++) { + temp_r31->unkC[temp_r30] = 0; + } + for (temp_r30 = 0; temp_r30 < temp_r29->data.st->count; temp_r30++) { + if (temp_r31->unkC[temp_r30]) { + continue; + } + temp_r31->unkC[temp_r30]++; + temp_f31 = temp_r31->unk10_f[0] + (60.0f * temp_r30); + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x = temp_r31->unk8[temp_r30].x + (0.005f * sind(temp_f31)); + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y = temp_r31->unk8[temp_r30].y + (0.005f * cosd(temp_f31)); + for (temp_r28 = temp_r30; temp_r28 < temp_r29->data.st->count; temp_r28++) { + if (temp_r31->unkC[temp_r28]) { + continue; + } + if (temp_r31->unk8[temp_r30].x != temp_r31->unk8[temp_r28].x || temp_r31->unk8[temp_r30].y != temp_r31->unk8[temp_r28].y) { + continue; + } + temp_r31->unkC[temp_r28]++; + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; + } + } } typedef struct unk_fn_10484 { - ModelData *unk0; - HsfObject *unk4; - s32 unk8; - Mtx unkC; - float unk3C[2]; - + ModelData *unk0; + HsfObject *unk4; + s32 unk8; + Mtx unkC; + float unk3C[2]; + } UnkFn10484; void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg3); void fn_1_F8A0(ModelData *arg0, Mtx arg1) { - WorkF4B0 *temp_r31; - GXColor *temp_r30; - s16 temp_r29; - s32 temp_r28; - HsfBuffer *temp_r27; - HsfFace *temp_r26; - - UnkFn10484 spA0; - Mtx sp70; - Mtx sp40; - Mtx sp10; - s16 spC = 0; - temp_r31 = arg0->unk_120; - spA0.unk0 = &Hu3DData[temp_r31->unk2]; - spA0.unk4 = spA0.unk0->hsfData->root; - MTXCopy(arg1, spA0.unkC); - lbl_1_bss_128[0] = spA0.unk4->constData; - lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; - lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; - GXLoadPosMtxImm(spA0.unkC, GX_PNMTX0); - MTXInverse(spA0.unkC, sp70); - MTXTranspose(sp70, sp40); - GXLoadNrmMtxImm(sp40, GX_PNMTX0); - if(Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { - MTXConcat(sp10, spA0.unkC, sp40); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp70); - MTXConcat(sp70, sp40, sp40); - GXLoadTexMtxImm(sp40, GX_TEXMTX9, GX_MTX3x4); - } - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - if(temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, spA0.unk4->data.color->count*sizeof(GXColor), MEMORY_DEFAULT_NUM); - for(temp_r29=0; temp_r29data.color->count; temp_r29++) { - temp_r30 = &temp_r31->unk4[temp_r29]; - temp_r30->r = temp_r31->unk10[0]; - temp_r30->g = temp_r31->unk10[1]; - temp_r30->b = temp_r31->unk10[2]; - if(((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a == 255) { - temp_r30->a = temp_r31->unk10[3]; - } else { - temp_r30->a = ((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a; - } - } - } - temp_r27 = spA0.unk4->data.face; - temp_r26 = temp_r27->data; - temp_r28 = 0; - for(temp_r29=0; temp_r29count;) { - fn_1_10484(&spA0, temp_r26, &lbl_1_bss_11C[temp_r28], temp_r31->unk4); - temp_r28++; - temp_r29 += lbl_1_bss_11C[temp_r28-1].polyCnt; - temp_r26 += lbl_1_bss_11C[temp_r28-1].polyCnt; - } + WorkF4B0 *temp_r31; + GXColor *temp_r30; + s16 temp_r29; + s32 temp_r28; + HsfBuffer *temp_r27; + HsfFace *temp_r26; + + UnkFn10484 spA0; + Mtx sp70; + Mtx sp40; + Mtx sp10; + s16 spC = 0; + temp_r31 = arg0->unk_120; + spA0.unk0 = &Hu3DData[temp_r31->unk2]; + spA0.unk4 = spA0.unk0->hsfData->root; + MTXCopy(arg1, spA0.unkC); + lbl_1_bss_128[0] = spA0.unk4->constData; + lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; + lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; + GXLoadPosMtxImm(spA0.unkC, GX_PNMTX0); + MTXInverse(spA0.unkC, sp70); + MTXTranspose(sp70, sp40); + GXLoadNrmMtxImm(sp40, GX_PNMTX0); + if (Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { + MTXConcat(sp10, spA0.unkC, sp40); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp70); + MTXConcat(sp70, sp40, sp40); + GXLoadTexMtxImm(sp40, GX_TEXMTX9, GX_MTX3x4); + } + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + if (temp_r31->unk4 == NULL) { + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, spA0.unk4->data.color->count * sizeof(GXColor), MEMORY_DEFAULT_NUM); + for (temp_r29 = 0; temp_r29 < spA0.unk4->data.color->count; temp_r29++) { + temp_r30 = &temp_r31->unk4[temp_r29]; + temp_r30->r = temp_r31->unk10[0]; + temp_r30->g = temp_r31->unk10[1]; + temp_r30->b = temp_r31->unk10[2]; + if (((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a == 255) { + temp_r30->a = temp_r31->unk10[3]; + } + else { + temp_r30->a = ((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a; + } + } + } + temp_r27 = spA0.unk4->data.face; + temp_r26 = temp_r27->data; + temp_r28 = 0; + for (temp_r29 = 0; temp_r29 < temp_r27->count;) { + fn_1_10484(&spA0, temp_r26, &lbl_1_bss_11C[temp_r28], temp_r31->unk4); + temp_r28++; + temp_r29 += lbl_1_bss_11C[temp_r28 - 1].polyCnt; + temp_r26 += lbl_1_bss_11C[temp_r28 - 1].polyCnt; + } } void fn_1_FB98(ModelData *arg0, Mtx arg1) { - WorkF4B0 *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - GXColor *temp_r27; - s32 temp_r26; - HsfBuffer *temp_r25; - HsfFace *temp_r24; - s32 temp_r23; - void *temp_r22; - - UnkFn10484 sp120; - Mtx spF0; - Mtx spC0; - Mtx sp90; - float sp50[2][8]; - float sp10[2][8]; - s16 spC = 0; - temp_r31 = arg0->unk_120; - sp120.unk0 = &Hu3DData[temp_r31->unk2]; - sp120.unk4 = sp120.unk0->hsfData->root; - MTXCopy(arg1, sp120.unkC); - lbl_1_bss_128[0] = sp120.unk4->constData; - lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; - lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; - GXLoadPosMtxImm(sp120.unkC, GX_PNMTX0); - MTXInverse(sp120.unkC, spF0); - MTXTranspose(spF0, spC0); - GXLoadNrmMtxImm(spC0, GX_PNMTX0); - if(Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { - MTXConcat(sp90, sp120.unkC, spC0); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, spF0); - MTXConcat(spF0, spC0, spC0); - GXLoadTexMtxImm(spC0, GX_TEXMTX9, GX_MTX3x4); - } - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - if(temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.color->count*sizeof(GXColor), MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30data.color->count; temp_r30++) { - temp_r27 = &temp_r31->unk4[temp_r30]; - temp_r27->r = temp_r31->unk10[0]; - temp_r27->g = temp_r31->unk10[1]; - temp_r27->b = temp_r31->unk10[2]; - temp_r27->a = temp_r31->unk10[3]; - } - } - if(temp_r31->unk8 == NULL) { - temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count*sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); - temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count, MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x; - temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y; - } - } - temp_r31->unk10_f[15] += 0.5f; - for(temp_r30=0; temp_r30<8; temp_r30++) { - float temp_f31 = temp_r31->unk10_f[15]+(40.0f*temp_r30); - sp50[0][temp_r30] = sind(temp_f31); - sp10[0][temp_r30] = cosd(temp_f31); - } - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unkC[temp_r30] = 0; - } - for(temp_r30=0, temp_r29=0; temp_r30data.st->count; temp_r30++, temp_r29++) { - if(temp_r31->unkC[temp_r30]) { - continue; - } - temp_r31->unkC[temp_r30]++; - if(temp_r31->unk10[4]) { - temp_r31->unk8[temp_r30].x = (1.5f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x)+(0.04f*sp50[0][temp_r29 & 0x7]); - temp_r31->unk8[temp_r30].y = (2.0f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y)+(0.04f*sp10[0][temp_r29 & 0x7]); - } else { - temp_r31->unk8[temp_r30].x = (1.25f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x)+(0.04f*sp50[0][temp_r29 & 0x7]); - temp_r31->unk8[temp_r30].y = (1.75f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y)+(0.04f*sp10[0][temp_r29 & 0x7]); - } - temp_r23 = temp_r31->unk10[3]+((0.8f*temp_r31->unk10[3])*sind((3.0f*temp_r31->unk10_f[15])+(120.0f*temp_r29))); - temp_r31->unk4[temp_r30].a = temp_r23; - for(temp_r28=temp_r30; temp_r28data.st->count; temp_r28++) { - temp_r29++; - if(temp_r31->unkC[temp_r28]) { - continue; - } - if(((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].x - || ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].y) { - continue; - } - temp_r31->unkC[temp_r28]++; - temp_r31->unk8[temp_r28].x = temp_r31->unk8[temp_r30].x; - temp_r31->unk8[temp_r28].y = temp_r31->unk8[temp_r30].y; - temp_r31->unk4[temp_r28].a = temp_r23; - temp_r29--; - } - } - temp_r22 = sp120.unk4->data.st->data; - sp120.unk4->data.st->data = temp_r31->unk8; - temp_r25 = sp120.unk4->data.face; - temp_r24 = temp_r25->data; - temp_r26 = 0; - for(temp_r30=0; temp_r30count;) { - fn_1_10484(&sp120, temp_r24, &lbl_1_bss_11C[temp_r26], temp_r31->unk4); - temp_r26++; - temp_r30 += lbl_1_bss_11C[temp_r26-1].polyCnt; - temp_r24 += lbl_1_bss_11C[temp_r26-1].polyCnt; - } - sp120.unk4->data.st->data = temp_r22; + WorkF4B0 *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + GXColor *temp_r27; + s32 temp_r26; + HsfBuffer *temp_r25; + HsfFace *temp_r24; + s32 temp_r23; + void *temp_r22; + + UnkFn10484 sp120; + Mtx spF0; + Mtx spC0; + Mtx sp90; + float sp50[2][8]; + float sp10[2][8]; + s16 spC = 0; + temp_r31 = arg0->unk_120; + sp120.unk0 = &Hu3DData[temp_r31->unk2]; + sp120.unk4 = sp120.unk0->hsfData->root; + MTXCopy(arg1, sp120.unkC); + lbl_1_bss_128[0] = sp120.unk4->constData; + lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; + lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; + GXLoadPosMtxImm(sp120.unkC, GX_PNMTX0); + MTXInverse(sp120.unkC, spF0); + MTXTranspose(spF0, spC0); + GXLoadNrmMtxImm(spC0, GX_PNMTX0); + if (Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { + MTXConcat(sp90, sp120.unkC, spC0); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, spF0); + MTXConcat(spF0, spC0, spC0); + GXLoadTexMtxImm(spC0, GX_TEXMTX9, GX_MTX3x4); + } + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + if (temp_r31->unk4 == NULL) { + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.color->count * sizeof(GXColor), MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < sp120.unk4->data.color->count; temp_r30++) { + temp_r27 = &temp_r31->unk4[temp_r30]; + temp_r27->r = temp_r31->unk10[0]; + temp_r27->g = temp_r31->unk10[1]; + temp_r27->b = temp_r31->unk10[2]; + temp_r27->a = temp_r31->unk10[3]; + } + } + if (temp_r31->unk8 == NULL) { + temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count * sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); + temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count, MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < sp120.unk4->data.st->count; temp_r30++) { + temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x; + temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y; + } + } + temp_r31->unk10_f[15] += 0.5f; + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + float temp_f31 = temp_r31->unk10_f[15] + (40.0f * temp_r30); + sp50[0][temp_r30] = sind(temp_f31); + sp10[0][temp_r30] = cosd(temp_f31); + } + for (temp_r30 = 0; temp_r30 < sp120.unk4->data.st->count; temp_r30++) { + temp_r31->unkC[temp_r30] = 0; + } + for (temp_r30 = 0, temp_r29 = 0; temp_r30 < sp120.unk4->data.st->count; temp_r30++, temp_r29++) { + if (temp_r31->unkC[temp_r30]) { + continue; + } + temp_r31->unkC[temp_r30]++; + if (temp_r31->unk10[4]) { + temp_r31->unk8[temp_r30].x = (1.5f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x) + (0.04f * sp50[0][temp_r29 & 0x7]); + temp_r31->unk8[temp_r30].y = (2.0f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y) + (0.04f * sp10[0][temp_r29 & 0x7]); + } + else { + temp_r31->unk8[temp_r30].x = (1.25f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x) + (0.04f * sp50[0][temp_r29 & 0x7]); + temp_r31->unk8[temp_r30].y = (1.75f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y) + (0.04f * sp10[0][temp_r29 & 0x7]); + } + temp_r23 = temp_r31->unk10[3] + ((0.8f * temp_r31->unk10[3]) * sind((3.0f * temp_r31->unk10_f[15]) + (120.0f * temp_r29))); + temp_r31->unk4[temp_r30].a = temp_r23; + for (temp_r28 = temp_r30; temp_r28 < sp120.unk4->data.st->count; temp_r28++) { + temp_r29++; + if (temp_r31->unkC[temp_r28]) { + continue; + } + if (((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].x + || ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].y) { + continue; + } + temp_r31->unkC[temp_r28]++; + temp_r31->unk8[temp_r28].x = temp_r31->unk8[temp_r30].x; + temp_r31->unk8[temp_r28].y = temp_r31->unk8[temp_r30].y; + temp_r31->unk4[temp_r28].a = temp_r23; + temp_r29--; + } + } + temp_r22 = sp120.unk4->data.st->data; + sp120.unk4->data.st->data = temp_r31->unk8; + temp_r25 = sp120.unk4->data.face; + temp_r24 = temp_r25->data; + temp_r26 = 0; + for (temp_r30 = 0; temp_r30 < temp_r25->count;) { + fn_1_10484(&sp120, temp_r24, &lbl_1_bss_11C[temp_r26], temp_r31->unk4); + temp_r26++; + temp_r30 += lbl_1_bss_11C[temp_r26 - 1].polyCnt; + temp_r24 += lbl_1_bss_11C[temp_r26 - 1].polyCnt; + } + sp120.unk4->data.st->data = temp_r22; } void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3); -void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial*arg1); +void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1); void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg3) { - HsfMaterial *temp_r31; - HsfObject *temp_r30; - HsfAttribute *temp_r29; - s16 temp_r27; - s16 temp_r25; - HsfdrawStruct01 *temp_r24; - ModelData *temp_r23; - Hu3DTexAnimDataStruct *temp_r22; - void *temp_r20; - GXColor sp14; - temp_r30 = arg0->unk4; - temp_r23 = arg0->unk0; - temp_r31 = &temp_r30->data.material[arg1->mat & 0xFFF]; - sp14.r = temp_r31->litColor[0]; - sp14.g = temp_r31->litColor[1]; - sp14.b = temp_r31->litColor[2]; - sp14.a = 255; - GXSetChanAmbColor(GX_COLOR0A0, sp14); - sp14.r = temp_r31->color[0]; - sp14.g = temp_r31->color[1]; - sp14.b = temp_r31->color[2]; - sp14.a = 255; - GXSetChanMatColor(GX_COLOR0A0, sp14); - if((temp_r31->invAlpha != 0 || temp_r31->pass == 1) && !(temp_r23->attr & 0x2)) { - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - } else { - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } - if(temp_r31->numAttrs == 0) { - return; - } - temp_r25 = (temp_r30->data.color) ? 5 : 1; - if(arg2->flags & 0x2) { - temp_r25 |= 0x2; - } - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, temp_r30->data.vertex->data, sizeof(HsfVector3f)); - if(temp_r25 & 0x2) { - GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); - } else { - GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSetArray(GX_VA_NRM, temp_r30->data.normal->data, sizeof(HsfVector3f)); - } - GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX0, temp_r30->data.st->data, sizeof(HsfVector2f)); - if(temp_r25 & 0x4) { - GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSetArray(GX_VA_CLR0, arg3, sizeof(GXColor)); - } - GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); - GXSetZCompLoc(GX_FALSE); - for(temp_r27=0; temp_r27numAttrs; temp_r27++) { - temp_r29 = &temp_r30->data.attribute[temp_r31->attrs[temp_r27]]; - if(temp_r29->unk04) { - temp_r24 = temp_r29->unk04; - temp_r22 = &Hu3DTexAnimData[temp_r24->unk02]; - if((temp_r24->unk00 & 0x1) && !(temp_r22->unk00 & 0x4)) { - if(Hu3DAnimSet(arg0->unk0, temp_r29, (s16)temp_r27)) { - continue; - } - } - } - fn_1_10830(arg0->unk0, temp_r29->bitmap, temp_r29, (s16)temp_r27); - } - fn_1_10B60(arg0, temp_r31); - temp_r20 = (void *)(arg2->dlOfs+((u32)lbl_1_bss_120[0])); - GXCallDisplayList(temp_r20, arg2->dlSize); + HsfMaterial *temp_r31; + HsfObject *temp_r30; + HsfAttribute *temp_r29; + s16 temp_r27; + s16 temp_r25; + HsfdrawStruct01 *temp_r24; + ModelData *temp_r23; + Hu3DTexAnimDataStruct *temp_r22; + void *temp_r20; + GXColor sp14; + temp_r30 = arg0->unk4; + temp_r23 = arg0->unk0; + temp_r31 = &temp_r30->data.material[arg1->mat & 0xFFF]; + sp14.r = temp_r31->litColor[0]; + sp14.g = temp_r31->litColor[1]; + sp14.b = temp_r31->litColor[2]; + sp14.a = 255; + GXSetChanAmbColor(GX_COLOR0A0, sp14); + sp14.r = temp_r31->color[0]; + sp14.g = temp_r31->color[1]; + sp14.b = temp_r31->color[2]; + sp14.a = 255; + GXSetChanMatColor(GX_COLOR0A0, sp14); + if ((temp_r31->invAlpha != 0 || temp_r31->pass == 1) && !(temp_r23->attr & 0x2)) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + if (temp_r31->numAttrs == 0) { + return; + } + temp_r25 = (temp_r30->data.color) ? 5 : 1; + if (arg2->flags & 0x2) { + temp_r25 |= 0x2; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->data.vertex->data, sizeof(HsfVector3f)); + if (temp_r25 & 0x2) { + GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); + } + else { + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r30->data.normal->data, sizeof(HsfVector3f)); + } + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r30->data.st->data, sizeof(HsfVector2f)); + if (temp_r25 & 0x4) { + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, arg3, sizeof(GXColor)); + } + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + for (temp_r27 = 0; temp_r27 < temp_r31->numAttrs; temp_r27++) { + temp_r29 = &temp_r30->data.attribute[temp_r31->attrs[temp_r27]]; + if (temp_r29->unk04) { + temp_r24 = temp_r29->unk04; + temp_r22 = &Hu3DTexAnimData[temp_r24->unk02]; + if ((temp_r24->unk00 & 0x1) && !(temp_r22->unk00 & 0x4)) { + if (Hu3DAnimSet(arg0->unk0, temp_r29, (s16)temp_r27)) { + continue; + } + } + } + fn_1_10830(arg0->unk0, temp_r29->bitmap, temp_r29, (s16)temp_r27); + } + fn_1_10B60(arg0, temp_r31); + temp_r20 = (void *)(arg2->dlOfs + ((u32)lbl_1_bss_120[0])); + GXCallDisplayList(temp_r20, arg2->dlSize); } void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3) { - GXTexObj sp1C; - GXTlutObj sp10; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - temp_r29 = arg1->sizeX; - temp_r28 = arg1->sizeY; - temp_r27 = (arg2->wrap_s == 1) ? 1 : 0; - temp_r26 = (arg2->wrap_t == 1) ? 1 : 0; - switch(arg1->dataFmt) { - case 6: - GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGBA8, temp_r27, temp_r26, GX_FALSE); - break; - - case 4: - GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB565, temp_r27, temp_r26, GX_FALSE); - break; - - case 5: - GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB5A3, temp_r27, temp_r26, GX_FALSE); - break; - - case 9: - if(arg1->pixSize < 8) { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); - } else { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); - } - break; - - case 10: - if(arg1->pixSize < 8) { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); - } else { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); - } - break; - } - if(arg0->attr & 0x40) { - GXInitTexObjLOD(&sp1C, GX_NEAR, GX_NEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); - } else { - GXInitTexObjLOD(&sp1C, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); - } - GXLoadTexObj(&sp1C, arg3); + GXTexObj sp1C; + GXTlutObj sp10; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + temp_r29 = arg1->sizeX; + temp_r28 = arg1->sizeY; + temp_r27 = (arg2->wrap_s == 1) ? 1 : 0; + temp_r26 = (arg2->wrap_t == 1) ? 1 : 0; + switch (arg1->dataFmt) { + case 6: + GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGBA8, temp_r27, temp_r26, GX_FALSE); + break; + + case 4: + GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB565, temp_r27, temp_r26, GX_FALSE); + break; + + case 5: + GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB5A3, temp_r27, temp_r26, GX_FALSE); + break; + + case 9: + if (arg1->pixSize < 8) { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); + } + else { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); + } + break; + + case 10: + if (arg1->pixSize < 8) { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); + } + else { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); + } + break; + } + if (arg0->attr & 0x40) { + GXInitTexObjLOD(&sp1C, GX_NEAR, GX_NEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + else { + GXInitTexObjLOD(&sp1C, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + GXLoadTexObj(&sp1C, arg3); } -#define SET_TEVCOLOR_ALPHA(reg, color_var, value) \ -{ \ - color_var.a = (value); \ - GXSetTevColor(reg, color_var); \ -} +#define SET_TEVCOLOR_ALPHA(reg, color_var, value) \ + { \ + color_var.a = (value); \ + GXSetTevColor(reg, color_var); \ + } extern u32 texMtxTbl[]; void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1) { - GXColor sp28; - GXColor sp24; - GXColor sp20; - u16 temp_r31; - HsfAttribute *temp_r29; - u16 temp_r28; - HsfObject *temp_r27; - HsfdrawStruct01 *temp_r26; - u16 temp_r25; - u16 temp_r24; - s32 temp_r23; - s32 temp_r22; - u16 temp_r20; - temp_r27 = arg0->unk4; - if(arg1->vtxMode == 2 || arg1->vtxMode == 3) { - temp_r24 = 1; - } else { - temp_r24 = 0; - if(arg1->vtxMode == 0 && !temp_r27->data.color) { - temp_r23 = 0; - } else { - temp_r23 = 1; - } - } - - if(arg1->numAttrs == 1) { - temp_r28 = temp_r31 = 1; - temp_r29 = &temp_r27->data.attribute[arg1->attrs[0]]; - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - if(temp_r29->unk04) { - temp_r26 = temp_r29->unk04; - if(temp_r26->unk00 & 0x2) { - GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, GX_TEXMTX0, GX_MTX2x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0); - } - } - if(temp_r29->unk8[2] == 0) { - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetTevOrder(temp_r31, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } else { - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - } - SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255*(1.0f-arg1->invAlpha)); - if(temp_r24) { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } else if(0.0f != arg1->invAlpha) { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_RASA, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } - GXSetNumTexGens(temp_r28); - GXSetNumTevStages(temp_r31); - } else { - temp_r22 = 0; - temp_r28 = 1; - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - for(temp_r25=temp_r31=0; temp_r25numAttrs; temp_r31++, temp_r25++) { - temp_r29 = &temp_r27->data.attribute[arg1->attrs[temp_r25]]; - if(0.0f != temp_r29->unk14) { - GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_BUMP0, GX_TG_TEXCOORD0, GX_IDENTITY); - SET_TEVCOLOR_ALPHA(GX_TEVREG1, sp24, 10*temp_r29->unk14); - GXSetTevOrder(temp_r31, GX_TEXCOORD0, temp_r25, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - temp_r31++; - GXSetTevOrder(temp_r31, GX_TEXCOORD1, temp_r25, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); - GXSetTevColorOp(temp_r31, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - temp_r28++; - temp_r22 = 1; - } else { - if(temp_r29->unk04) { - temp_r26 = temp_r29->unk04; - if(temp_r26->unk00 & 0x2) { - GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, texMtxTbl[temp_r28], GX_MTX2x4); - GXSetTexCoordGen(temp_r28, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[temp_r28]); - temp_r20 = (u16)temp_r28; - temp_r28++; - } - } else { - temp_r20 = 0; - } - GXSetTevOrder(temp_r31, temp_r20, temp_r25, GX_COLOR0A0); - if(temp_r25 == 0) { - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - } else if(temp_r22 != 0) { - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - temp_r22 = 0; - } else if(temp_r29->unk8[2] == 0) { - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); - } else { - SET_TEVCOLOR_ALPHA(GX_TEVREG2, sp20, 255*temp_r29->unk0C); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); - } - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - } - } - SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255*(1.0f-arg1->invAlpha)); - if(temp_r24) { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } else { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } - GXSetNumTexGens(temp_r28); - GXSetNumTevStages(temp_r31); - } - lbl_1_bss_118 = Hu3DLightSet(arg0->unk0, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, (temp_r24) ? arg1->hilite_scale : 0); - if(temp_r24) { - GXSetNumChans(2); - if(temp_r27->data.color) { - GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); - } else { - GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); - } - } else { - GXSetNumChans(1); - if(temp_r27->data.color) { - GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); - } else { - GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); - } - } + GXColor sp28; + GXColor sp24; + GXColor sp20; + u16 temp_r31; + HsfAttribute *temp_r29; + u16 temp_r28; + HsfObject *temp_r27; + HsfdrawStruct01 *temp_r26; + u16 temp_r25; + u16 temp_r24; + s32 temp_r23; + s32 temp_r22; + u16 temp_r20; + temp_r27 = arg0->unk4; + if (arg1->vtxMode == 2 || arg1->vtxMode == 3) { + temp_r24 = 1; + } + else { + temp_r24 = 0; + if (arg1->vtxMode == 0 && !temp_r27->data.color) { + temp_r23 = 0; + } + else { + temp_r23 = 1; + } + } + + if (arg1->numAttrs == 1) { + temp_r28 = temp_r31 = 1; + temp_r29 = &temp_r27->data.attribute[arg1->attrs[0]]; + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + if (temp_r29->unk04) { + temp_r26 = temp_r29->unk04; + if (temp_r26->unk00 & 0x2) { + GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, GX_TEXMTX0, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0); + } + } + if (temp_r29->unk8[2] == 0) { + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevOrder(temp_r31, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + else { + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255 * (1.0f - arg1->invAlpha)); + if (temp_r24) { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + else if (0.0f != arg1->invAlpha) { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + GXSetNumTexGens(temp_r28); + GXSetNumTevStages(temp_r31); + } + else { + temp_r22 = 0; + temp_r28 = 1; + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + for (temp_r25 = temp_r31 = 0; temp_r25 < arg1->numAttrs; temp_r31++, temp_r25++) { + temp_r29 = &temp_r27->data.attribute[arg1->attrs[temp_r25]]; + if (0.0f != temp_r29->unk14) { + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_BUMP0, GX_TG_TEXCOORD0, GX_IDENTITY); + SET_TEVCOLOR_ALPHA(GX_TEVREG1, sp24, 10 * temp_r29->unk14); + GXSetTevOrder(temp_r31, GX_TEXCOORD0, temp_r25, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + temp_r31++; + GXSetTevOrder(temp_r31, GX_TEXCOORD1, temp_r25, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp(temp_r31, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + temp_r28++; + temp_r22 = 1; + } + else { + if (temp_r29->unk04) { + temp_r26 = temp_r29->unk04; + if (temp_r26->unk00 & 0x2) { + GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, texMtxTbl[temp_r28], GX_MTX2x4); + GXSetTexCoordGen(temp_r28, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[temp_r28]); + temp_r20 = (u16)temp_r28; + temp_r28++; + } + } + else { + temp_r20 = 0; + } + GXSetTevOrder(temp_r31, temp_r20, temp_r25, GX_COLOR0A0); + if (temp_r25 == 0) { + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + } + else if (temp_r22 != 0) { + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + temp_r22 = 0; + } + else if (temp_r29->unk8[2] == 0) { + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); + } + else { + SET_TEVCOLOR_ALPHA(GX_TEVREG2, sp20, 255 * temp_r29->unk0C); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + } + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + } + SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255 * (1.0f - arg1->invAlpha)); + if (temp_r24) { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + else { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + GXSetNumTexGens(temp_r28); + GXSetNumTevStages(temp_r31); + } + lbl_1_bss_118 = Hu3DLightSet(arg0->unk0, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, (temp_r24) ? arg1->hilite_scale : 0); + if (temp_r24) { + GXSetNumChans(2); + if (temp_r27->data.color) { + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); + } + else { + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); + } + } + else { + GXSetNumChans(1); + if (temp_r27->data.color) { + GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); + } + else { + GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); + } + } } #undef SET_TEVCOLOR_ALPHA s32 fn_1_11670(void) { - lbl_1_data_19C *= 0x41C64E6D; - lbl_1_data_19C += 0x3039; - return lbl_1_data_19C >> 16; + lbl_1_data_19C *= 0x41C64E6D; + lbl_1_data_19C += 0x3039; + return lbl_1_data_19C >> 16; } float fn_1_116C4(float arg0, float arg1) { - float temp_f31; - float temp_f30; - temp_f30 = 360; - temp_f31 = atan2d(arg0, arg1); - if(temp_f31 < -180) { - temp_f31 += temp_f30; - } else if(temp_f31 >= 180.0) { - temp_f31 -= temp_f30; - } - return temp_f31; + float temp_f31; + float temp_f30; + temp_f30 = 360; + temp_f31 = atan2d(arg0, arg1); + if (temp_f31 < -180) { + temp_f31 += temp_f30; + } + else if (temp_f31 >= 180.0) { + temp_f31 -= temp_f30; + } + return temp_f31; } float fn_1_11780(Vec *arg0, Vec *arg1) { - return VECDistanceXYZ(arg0, arg1); -} \ No newline at end of file + return VECDistanceXYZ(arg0, arg1); +} diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index b7a816d0..0b6f1ca4 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -13,10 +13,10 @@ void fn_1_BF88(s16 arg0, s16 arg1) { lbl_1_bss_F0.unk4 = Hu3DHookFuncCreate(fn_1_CB98); Hu3DModelLayerSet(lbl_1_bss_F0.unk4, 6); lbl_1_bss_F0.unk0 = arg0; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8), 0x10000000); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unk10 = var_r29; lbl_1_bss_F0.unk2 = arg1; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), 0x10000000); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unkC = var_r30; for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { @@ -264,7 +264,7 @@ void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { s32 var_r30; unkStruct11* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), MEMORY_DEFAULT_NUM); for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); @@ -287,7 +287,7 @@ void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { s32 var_r28; Vec* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { @@ -303,7 +303,7 @@ void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { s32 var_r28; GXColor* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), 0x10000000U); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { @@ -319,7 +319,7 @@ void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { s32 var_r29; Vec* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), 0x10000000U); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; @@ -333,7 +333,7 @@ void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { s32 var_r29; HsfVector2f* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), 0x10000000U); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); for (var_r28 = 0; var_r28 < arg1; var_r28++) { for (var_r29 = 0; var_r29 < 4; var_r31++, arg2++, var_r29++) { @@ -371,14 +371,14 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { if (arg0->unk48 != NULL) { HuMemDirectFree(arg0->unk48); } - arg0->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec), 0x10000000); + arg0->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec), MEMORY_DEFAULT_NUM); arg0->unk48->x = 0.0f; arg0->unk48->y = 0.0f; arg0->unk48->z = 1.0f; if (arg0->unk3C != NULL) { HuMemDirectFree(arg0->unk3C); } - temp_r3_3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, 0x10000000); + temp_r3_3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, MEMORY_DEFAULT_NUM); arg0->unk3C = temp_r3_3; DCFlushRange(arg0->unk3C, 0x1000); GXBeginDisplayList(temp_r3_3, 0x1000); @@ -526,9 +526,9 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r30->unk30 = NULL; var_r30->unk2 = arg0; var_r30->unk4 = arg1; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8Sub), 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8Sub), MEMORY_DEFAULT_NUM); var_r30->unk3C = var_r31; - var_r30->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), 0x10000000); + var_r30->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), MEMORY_DEFAULT_NUM); var_r30->unkC.x = var_r30->unkC.y = var_r30->unkC.z = 0.0f; var_r30->unk18.x = var_r30->unk18.y = var_r30->unk18.z = 0.0f; var_r30->unk24.x = var_r30->unk24.y = var_r30->unk24.z = 1.0f; @@ -551,7 +551,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk4C.a = 0xFF; var_r31->unk50.r = var_r31->unk50.g = var_r31->unk50.b = 0xFF; var_r31->unk50.a = 0xFF; - var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), 0x10000000); + var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), MEMORY_DEFAULT_NUM); for (var_r28 = 0; var_r28 < arg1; var_r28++) { var_r31->unk54[var_r28].unk0 = var_r31->unk54[var_r28].unk1 = 0; @@ -644,7 +644,7 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { } var_r31->unk8 = arg0; var_r31->unk6 = 1; - temp_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); + temp_r30 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); if ((arg1 == 0) || (arg2 == 0)) { arg1 = temp_r30->bmp->sizeX; arg2 = temp_r30->bmp->sizeY; @@ -716,7 +716,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { } temp_f30 = temp_r30->unk50; temp_f31 = temp_r30->unk4E; - var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, 0x10000000); + var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) { var_r29->unk0.x = (-0.5f * temp_f31); @@ -739,7 +739,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_r31->unkC = 1.0f; temp_r31->unk10 = 0.0f; if (temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, 0x10000000U); + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, MEMORY_DEFAULT_NUM); } temp_r31->unk4[0].x = temp_r31->unk0 * temp_r30->unk54; temp_r31->unk4[0].y = temp_r31->unk0 * temp_r30->unk58; @@ -1205,4 +1205,4 @@ void fn_1_F4F0(s16 arg0, u8 arg1) { } } } -} \ No newline at end of file +} diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 4ecd2f94..bb73b325 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -1,23 +1,23 @@ #include "REL/m409Dll.h" -#include "rel_sqrt_consts.h" -#include "math.h" #include "ext_math.h" -#include "game/hsfman.h" -#include "game/objsub.h" #include "game/audio.h" -#include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/sprite.h" -#include "game/pad.h" -#include "game/hsfmotion.h" #include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" // bss -Process* lbl_1_bss_E8; +Process *lbl_1_bss_E8; s16 lbl_1_bss_E4; -omObjData* lbl_1_bss_E0; -omObjData* lbl_1_bss_DC; +omObjData *lbl_1_bss_E0; +omObjData *lbl_1_bss_DC; Vec lbl_1_bss_D0; unkStruct4 lbl_1_bss_40[4]; s32 lbl_1_bss_3C; @@ -40,29 +40,23 @@ s8 lbl_1_bss_0; // data Vec lbl_1_data_0 = { 800.0f, 1300.0f, 1000.0f }; Vec lbl_1_data_C = { 0.0f, 0.0f, 0.0f }; -unkStruct2 lbl_1_data_18 = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 10.0f, 45.0f, 0.0f } -}; +unkStruct2 lbl_1_data_18 = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 10.0f, 45.0f, 0.0f } }; Vec lbl_1_data_28 = { 1300.0f, 2500.0f, 1300.0f }; Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_40 = { 0.0f, 0.0f, -1200.0f }; -unkStruct lbl_1_data_4C[4] = { - { 469.8f, { 225.0f, 184.0f, -1358.0f }, { 10.62f, -109.0f, 0.0f } }, - { 1800.0f, { 0.0f, 300.0f, -1316.0f }, { -20.38f, 0.0f, 0.0f } }, - { 2209.82f, { 0.0f, 478.0f, -1316.0f }, { 4.62f, 0.0f, 0.0f } }, - { 2059.82f, { 0.0f, 528.0f, -1316.0f }, { 10.62f, 0.0f, 0.0f } } -}; +unkStruct lbl_1_data_4C[4] + = { { 469.8f, { 225.0f, 184.0f, -1358.0f }, { 10.62f, -109.0f, 0.0f } }, { 1800.0f, { 0.0f, 300.0f, -1316.0f }, { -20.38f, 0.0f, 0.0f } }, + { 2209.82f, { 0.0f, 478.0f, -1316.0f }, { 4.62f, 0.0f, 0.0f } }, { 2059.82f, { 0.0f, 528.0f, -1316.0f }, { 10.62f, 0.0f, 0.0f } } }; u32 lbl_1_data_BC = 0xFFFFFFFF; s32 lbl_1_data_C0 = -1; - -void ObjectSetup(void) { +void ObjectSetup(void) +{ Vec sp2C; Vec sp20; Vec sp14; Vec sp8; - LightData* temp_r31; + LightData *temp_r31; Hu3DLightAllKill(); lbl_1_bss_E4 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_18.unk0); @@ -103,7 +97,8 @@ void ObjectSetup(void) { fn_1_67E0(lbl_1_bss_E8); } -void fn_1_434(omObjData* object) { +void fn_1_434(omObjData *object) +{ if ((omSysExitReq != 0) || (lbl_1_bss_0 != 0)) { HuAudFXListnerKill(); fn_1_5F5C(lbl_1_bss_E0->model[0]); @@ -114,20 +109,22 @@ void fn_1_434(omObjData* object) { } } -void fn_1_4DC(omObjData* object) { +void fn_1_4DC(omObjData *object) +{ if ((WipeStatGet() == 0) && (MGSeqDoneCheck() != 0)) { fn_1_6900(); omOvlReturnEx(1, 1); } } -s8 fn_1_524(void) { +s8 fn_1_524(void) +{ Vec sp8; f32 temp_f29; f32 var_f30; f32 temp_f31; s8 var_r30; - unkStruct* var_r31; + unkStruct *var_r31; var_r31 = lbl_1_data_4C; var_r30 = 0; @@ -168,11 +165,12 @@ s8 fn_1_524(void) { return var_r30; } -s8 fn_1_B80(void) { +s8 fn_1_B80(void) +{ f32 temp_f30; f32 temp_f31; s8 var_r30; - unkStruct* var_r31; + unkStruct *var_r31; var_r31 = &lbl_1_data_4C[2]; var_r30 = 0; @@ -192,18 +190,19 @@ s8 fn_1_B80(void) { return var_r30; } -void fn_1_DDC(omObjData* object) { - s16* var_r29; - AnimData* var_r30; - - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 6, 0x10000000); - var_r29 = (s16*)object->data; +void fn_1_DDC(omObjData *object) +{ + s16 *var_r29; + AnimData *var_r30; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 6, MEMORY_DEFAULT_NUM); + var_r29 = (s16 *)object->data; var_r29[0] = 1; - var_r30 = HuSprAnimRead(HuDataReadNum(0x28000D, 0x10000000)); + var_r30 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M409, 0x0D), MEMORY_DEFAULT_NUM)); object->model[0] = fn_1_5A18(var_r30, 0x800, 10.0f, 0x40, 0x40); fn_1_5FBC(object->model[0], fn_1_5408); Hu3DModelLayerSet(object->model[0], 5); - var_r30 = HuSprAnimRead(HuDataReadNum(0x28000E, 0x10000000)); + var_r30 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M409, 0x0E), MEMORY_DEFAULT_NUM)); object->model[1] = fn_1_5A18(var_r30, 0x400, 2.0f, 0, 0); fn_1_5FBC(object->model[1], fn_1_55E0); fn_1_5FF4(object->model[1], 1); @@ -212,13 +211,14 @@ void fn_1_DDC(omObjData* object) { object->func = fn_1_F70; } -void fn_1_F70(omObjData* object) { - s16* sp8; +void fn_1_F70(omObjData *object) +{ + s16 *sp8; s16 temp_r3; s16 temp_r3_2; s32 var_r31; - sp8 = (s16*)object->data; + sp8 = (s16 *)object->data; switch (fn_1_2454(7)) { case 1: if (lbl_1_bss_6 == 0) { @@ -227,7 +227,7 @@ void fn_1_F70(omObjData* object) { } if (WipeStatGet() == 0) { fn_1_2414(7, 2); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { omVibrate(var_r31, 0xC8, 6, 6); } @@ -259,9 +259,10 @@ void fn_1_F70(omObjData* object) { } } -s8 fn_1_10E8(omObjData* object) { +s8 fn_1_10E8(omObjData *object) +{ Vec sp8; - ModelData* temp_r31; + ModelData *temp_r31; f32 var_f26; f32 var_f27; f32 temp_f29; @@ -269,14 +270,14 @@ s8 fn_1_10E8(omObjData* object) { f32 temp_f30; f32 var_f31; s8 var_r29; - unkStruct3* temp_r30; + unkStruct3 *temp_r30; temp_r31 = &Hu3DData[lbl_1_bss_DC->model[4]]; - temp_r30 = (unkStruct3*)object->data; + temp_r30 = (unkStruct3 *)object->data; if (lbl_1_bss_A != 0) { var_r29 = fn_1_524(); } - switch (lbl_1_bss_8) { /* irregular */ + switch (lbl_1_bss_8) { /* irregular */ case -1: if ((HuPadBtnDown[0] & 0x100) != 0) { lbl_1_bss_8 = 0; @@ -296,7 +297,8 @@ s8 fn_1_10E8(omObjData* object) { if (lbl_1_bss_C >= 1.0f) { lbl_1_bss_C = 1.0f; lbl_1_bss_8 = 0x63; - } else if (lbl_1_bss_C > 0.2f) { + } + else if (lbl_1_bss_C > 0.2f) { lbl_1_bss_A = 1; } var_f31 = sin((M_PI * (90.0f * lbl_1_bss_C)) / 180.0); @@ -321,13 +323,15 @@ s8 fn_1_10E8(omObjData* object) { } if (var_f31 >= 1.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = sin((M_PI * (90.0f + (90.0f * var_f31))) / 180.0); } Hu3DMotionSpeedSet(lbl_1_bss_DC->model[4], 2.0f * var_f31); if (lbl_1_bss_C > 0.5f) { var_f31 = 2.0f * (9.0f * (1.0f - lbl_1_bss_C)); - } else { + } + else { var_f31 = 9.0f; } fn_1_44F0(lbl_1_bss_E0->model[0], 0.0f, 0.0f, 0.0f, 0, var_f31); @@ -377,14 +381,15 @@ s8 fn_1_10E8(omObjData* object) { return 0; } -s8 fn_1_1B74(omObjData* object) { +s8 fn_1_1B74(omObjData *object) +{ f32 temp_f30; f32 temp_f31; s16 temp_r27; s32 temp_r28; - unkStruct4* temp_r30; + unkStruct4 *temp_r30; - temp_r30 = (unkStruct4*)object->data; + temp_r30 = (unkStruct4 *)object->data; switch (lbl_1_bss_8) { case 0: temp_r30->unk2 = MGSeqCreate(3, 1); @@ -409,7 +414,8 @@ s8 fn_1_1B74(omObjData* object) { GWPlayerCoinWinAdd(temp_r30->unk4, 10); temp_r30->unk2 = MGSeqCreate(5, 3, GWPlayerCfg[temp_r30->unk4].character, -1, -1, -1); HuAudSStreamPlay(1); - } else { + } + else { temp_r30->unk2 = MGSeqCreate(3, 2); HuAudSStreamPlay(4); } @@ -433,8 +439,9 @@ s8 fn_1_1B74(omObjData* object) { return 0; } -void fn_1_2098(omObjData* object) { - ModelData* temp_r31; +void fn_1_2098(omObjData *object) +{ + ModelData *temp_r31; f32 var_f28; f32 var_f29; f32 var_f31; @@ -463,31 +470,35 @@ void fn_1_2098(omObjData* object) { } } -void fn_1_23EC(s16 arg0) { - unkStruct4* var_r31; +void fn_1_23EC(s16 arg0) +{ + unkStruct4 *var_r31; - var_r31 = (unkStruct4*)lbl_1_bss_E0->data; + var_r31 = (unkStruct4 *)lbl_1_bss_E0->data; var_r31->unk4 = arg0; } -void fn_1_2414(u16 arg0, u16 arg1) { - unkStruct4* var_r31; +void fn_1_2414(u16 arg0, u16 arg1) +{ + unkStruct4 *var_r31; - var_r31 = (unkStruct4*)lbl_1_bss_E0->data; + var_r31 = (unkStruct4 *)lbl_1_bss_E0->data; var_r31->unk0 &= ~arg0; var_r31->unk0 |= arg1; } -u16 fn_1_2454(u16 arg0) { - unkStruct4* var_r31; +u16 fn_1_2454(u16 arg0) +{ + unkStruct4 *var_r31; - var_r31 = (unkStruct4*)lbl_1_bss_E0->data; + var_r31 = (unkStruct4 *)lbl_1_bss_E0->data; return var_r31->unk0 & arg0; } -static inline void unkInline(unkStruct4* var_r31, s16 var_r29, s16* var_r28, s16 arg3) { - var_r31[var_r29].unk2 = Hu3DModelCreateFile(0x280002); - var_r31[var_r29].unk4 = Hu3DModelCreateFile(0x280003); +static inline void unkInline(unkStruct4 *var_r31, s16 var_r29, s16 *var_r28, s16 arg3) +{ + var_r31[var_r29].unk2 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x02)); + var_r31[var_r29].unk4 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x03)); Hu3DModelAttrSet(var_r31[var_r29].unk2, 0x40000001); Hu3DModelAttrSet(var_r31[var_r29].unk4, 0x40000002); if (arg3) { @@ -495,14 +506,15 @@ static inline void unkInline(unkStruct4* var_r31, s16 var_r29, s16* var_r28, s16 Hu3DModelAttrSet(var_r31[var_r29].unk4, 0x00000001); } var_r31[var_r29].unk6 = Hu3DModelCreateFile(0x2001C); - var_r31[var_r29].unk8 = Hu3DJointMotion(var_r31[var_r29].unk6, HuDataSelHeapReadNum(0x28000B, 0x10000000, HEAP_DATA)); - var_r31[var_r29].unkA = Hu3DJointMotion(var_r31[var_r29].unk6, HuDataSelHeapReadNum(0x28000C, 0x10000000, HEAP_DATA)); + var_r31[var_r29].unk8 = Hu3DJointMotionFile(var_r31[var_r29].unk6, DATA_MAKE_NUM(DATADIR_M409, 11)); + var_r31[var_r29].unkA = Hu3DJointMotionFile(var_r31[var_r29].unk6, DATA_MAKE_NUM(DATADIR_M409, 12)); Hu3DModelAttrSet(var_r31[var_r29].unk6, 0x40000001); Hu3DMotionSet(var_r31[var_r29].unk6, var_r31[var_r29].unk8); var_r31[var_r29].unkC = var_r29 + 3; if (arg3) { *var_r28 += (((rand8() << 8) | rand8()) % 4) + 2; - } else { + } + else { *var_r28 = 2; } fn_1_3988(&var_r31[var_r29], *var_r28, var_r29); @@ -510,19 +522,20 @@ static inline void unkInline(unkStruct4* var_r31, s16 var_r29, s16* var_r28, s16 Hu3DModelPosSet(var_r31[var_r29].unk4, var_r31[var_r29].unk18, 0.0f, -1200.0f); } -void fn_1_2484(omObjData* object) { +void fn_1_2484(omObjData *object) +{ s16 var_r28; // ! - uninitialized s16 var_r29; - unkStruct4* var_r31; + unkStruct4 *var_r31; var_r31 = &lbl_1_bss_40[0]; object->stat |= 0x100; - object->model[0] = Hu3DModelCreateFile(0x280000); - object->model[5] = Hu3DModelCreateFile(0x280008); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x00)); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x08)); Hu3DModelLayerSet(object->model[0], 2); Hu3DModelLayerSet(object->model[5], 2); - object->model[2] = Hu3DModelCreateFile(0x280005); - object->model[3] = Hu3DModelCreateFile(0x280006); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x05)); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x06)); Hu3DModelScaleSet(object->model[2], 1.1f, 1.0f, 1.0f); Hu3DModelScaleSet(object->model[3], 1.1f, 1.0f, 1.0f); Hu3DModelRotSet(object->model[2], 0.2f * lbl_1_data_4C->rot.x, 0.85f * lbl_1_data_4C->rot.y, 0.0f); @@ -533,35 +546,35 @@ void fn_1_2484(omObjData* object) { Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unkE, -0.0002f, 0.0f, 0.0f); lbl_1_bss_24.unk10 = Hu3DTexScrollCreate(object->model[3], "cr_kumo3"); Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unk10, -0.0003f, 0.0f, 0.0f); - var_r29 = Hu3DModelCreateFile(0x28000A); + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x0A)); Hu3DModelLayerSet(var_r29, 0); - object->model[6] = Hu3DModelCreateFile(0x280007); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x07)); Hu3DModelAttrSet(object->model[6], 2); Hu3DModelScaleSet(object->model[6], 1.1f, 1.0f, 1.0f); Hu3DModelRotSet(object->model[6], 0.2f * lbl_1_data_4C->rot.x, 0.85f * lbl_1_data_4C->rot.y, 0.0f); Hu3DModelLayerSet(object->model[6], 1); lbl_1_bss_24.unk12 = Hu3DTexScrollCreate(object->model[6], "bg"); lbl_1_bss_24.unk14 = 0.0f; - object->model[4] = Hu3DModelCreateFile(0x280001); - object->model[1] = Hu3DModelCreateFile(0x280004); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x01)); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x04)); Hu3DModelAttrSet(object->model[4], 0x40000001); Hu3DModelPosSet(object->model[4], 1660.0f, 0.0f, -1200.0f); Hu3DModelPosSet(object->model[1], 1660.0f, 0.0f, -1200.0f); Hu3DModelLayerSet(object->model[1], 6); Hu3DModelAttrSet(object->model[1], 0x40000002); - + unkInline(var_r31, 0, &var_r28, 0); for (var_r29 = 1; var_r29 < 4; var_r29++) { unkInline(var_r31, var_r29, &var_r28, 1); } - + lbl_1_bss_24.unk0 = 0; lbl_1_bss_24.unk1 = 0; lbl_1_bss_24.unk8 = 0; lbl_1_bss_24.unkA = 0xB4; Hu3DModelShadowMapSet(object->model[0]); Hu3DModelShadowSet(object->model[4]); - + for (var_r29 = 0; var_r29 < 4; var_r29++) { Hu3DModelShadowSet(var_r31[var_r29].unk2); Hu3DModelShadowSet(var_r31[var_r29].unk4); @@ -570,12 +583,13 @@ void fn_1_2484(omObjData* object) { object->func = fn_1_2DCC; } -void fn_1_2DCC(omObjData* object) { +void fn_1_2DCC(omObjData *object) +{ u16 spE; u16 spC; u16 spA; u16 sp8; - ModelData* temp_r30; + ModelData *temp_r30; f32 temp_f29; f32 var_f31; f32 var_f30; @@ -586,7 +600,7 @@ void fn_1_2DCC(omObjData* object) { s16 var_r29; s32 temp_r16; s16 var_r18; - unkStruct4* var_r31; + unkStruct4 *var_r31; if ((lbl_1_bss_24.unk0 == 0) || (fn_1_2454(0x18) == 0x18)) { if (lbl_1_bss_24.unk1 != 0) { @@ -607,19 +621,20 @@ void fn_1_2DCC(omObjData* object) { HuAudFXPlay(0x55B); HuAudFXPlay(0x55D); } - break; - case 2: - temp_f29 = Hu3DMotionMaxTimeGet(var_r31->unk4); - if (Hu3DMotionTimeGet(var_r31->unk4) >= temp_f29) { - Hu3DMotionSet(var_r31->unk6, var_r31->unk8); - Hu3DModelAttrSet(var_r31->unk6, 0x40000001); - Hu3DModelAttrSet(var_r31->unk4, 0x40000002); - fn_1_2414(24, 8); - lbl_1_bss_24.unk1 = 0; - } - break; + break; + case 2: + temp_f29 = Hu3DMotionMaxTimeGet(var_r31->unk4); + if (Hu3DMotionTimeGet(var_r31->unk4) >= temp_f29) { + Hu3DMotionSet(var_r31->unk6, var_r31->unk8); + Hu3DModelAttrSet(var_r31->unk6, 0x40000001); + Hu3DModelAttrSet(var_r31->unk4, 0x40000002); + fn_1_2414(24, 8); + lbl_1_bss_24.unk1 = 0; + } + break; } - } else { + } + else { var_r31 = lbl_1_bss_24.unk4; switch (fn_1_2454(0x18)) { case 16: @@ -645,20 +660,23 @@ void fn_1_2DCC(omObjData* object) { break; } } - } else { + } + else { if (fn_1_2454(7) == 2) { var_f30 = 0.004f; - } else { + } + else { var_f30 = 0.008f; } var_r29 = 0; var_r23 = 0; var_r31 = lbl_1_bss_40; - - for (;var_r29 < 4; var_r29++, var_r31++) { + + for (; var_r29 < 4; var_r29++, var_r31++) { if ((s8)var_r31->unk0b == 0) { var_r23++; - } else { + } + else { if (var_r31->unkE-- <= 0) { temp_r30 = &Hu3DData[var_r31->unk2]; if ((var_r31->unkC < 2) && (lbl_1_bss_3C < 0xBU)) { @@ -684,7 +702,8 @@ void fn_1_2DCC(omObjData* object) { var_r27 = 1; } fn_1_3988(var_r31, 0, var_r27); - } else { + } + else { temp_r30->pos.x = var_r31->unk18 + (var_f31 * (var_r31->unk1C - var_r31->unk18)); } if (var_f31 > 0.1f) { @@ -699,8 +718,10 @@ void fn_1_2DCC(omObjData* object) { if (++lbl_1_bss_1C > (40.0f * var_f31)) { lbl_1_bss_1C = 0.0f; var_f31 = 1.0f - var_f31; - fn_1_4FFC(lbl_1_bss_E0->model[1], 130.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, (u8)(2.0f * var_f31)); - fn_1_4FFC(lbl_1_bss_E0->model[1], 630.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, (u8)var_f31); + fn_1_4FFC(lbl_1_bss_E0->model[1], 130.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, + (u8)(2.0f * var_f31)); + fn_1_4FFC( + lbl_1_bss_E0->model[1], 630.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, (u8)var_f31); } if (var_r31->unk10 < (0.7f + var_f30)) { HuAudFXEmiterPlay(0x55E, &temp_r30->pos); @@ -716,13 +737,13 @@ void fn_1_2DCC(omObjData* object) { if (var_r23 == 4) { var_r22 = 0x63; lbl_1_bss_24.unk0 = 0; - + for (var_r29 = 0, var_r31 = &lbl_1_bss_40[0]; var_r29 < 4; var_r29++, var_r31++) { if (var_r31->unkC < var_r22) { var_r22 = var_r31->unkC; var_r27 = var_r29; } - + for (var_r28 = 0, var_r31->unk20 = NULL; var_r28 < 4; var_r28++) { if ((var_r31->unkC + 1) == lbl_1_bss_40[var_r28].unkC) { var_r31->unk20 = &lbl_1_bss_40[var_r28]; @@ -734,7 +755,7 @@ void fn_1_2DCC(omObjData* object) { loop: if (var_r31->unk20) { - var_r31->unk20->unkE = 2 + (((rand8() << 8) | rand8()) % 4) + var_r31->unkE ; + var_r31->unk20->unkE = 2 + (((rand8() << 8) | rand8()) % 4) + var_r31->unkE; var_r31 = var_r31->unk20; goto loop; } @@ -743,17 +764,18 @@ void fn_1_2DCC(omObjData* object) { } } -void fn_1_3840(void) { +void fn_1_3840(void) +{ s16 var_r31; if ((lbl_1_bss_24.unk0 == 0) && (fn_1_2454(7) != 4)) { lbl_1_bss_24.unk0 = 1; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_40[var_r31].unk0b = 1; } if (++lbl_1_bss_20 == 2) { - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_40[var_r31].unkE += 3; } @@ -763,7 +785,8 @@ void fn_1_3840(void) { } } -void fn_1_3988(unkStruct4* arg0, s16 arg1, s16 arg2) { +void fn_1_3988(unkStruct4 *arg0, s16 arg1, s16 arg2) +{ arg0->unk0b = 0; arg0->unkE = arg1; arg0->unk10 = 0.0f; @@ -777,10 +800,11 @@ void fn_1_3988(unkStruct4* arg0, s16 arg1, s16 arg2) { } } -s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 argD) { +s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 argD) +{ f32 sp1C; f32 temp; - ModelData* temp_r31; + ModelData *temp_r31; f32 temp_f31; f32 temp_f30; f32 temp_f29; @@ -788,11 +812,12 @@ s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 ar f32 temp_f27; f32 temp_f26; s16 var_r29; - unkStruct4* var_r30; - + unkStruct4 *var_r30; + var_r30 = lbl_1_bss_24.unk4; - if (!var_r30) return; - + if (!var_r30) + return; + for (var_r29 = 0; var_r29 < 2; var_r29++) { temp_r31 = &Hu3DData[var_r30->unk6]; temp_f31 = temp_r31->pos.x; @@ -801,17 +826,21 @@ s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 ar temp_f28 = arg8 + argB; temp_f27 = arg9 + argC; temp_f26 = argA + argD; - temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); + temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); if (temp < 50.0f) { return 1; } - sp1C = -((argA * argD) + (((arg9 * argC) + (((-temp_f31 * argB) + (arg8 * argB)) - (temp_f30 * argC))) - (temp_f29 * argD))) / ((argD * argD) + ((argB * argB) + (argC * argC))); - if (sp1C >= 1.0f) continue; - + sp1C = -((argA * argD) + (((arg9 * argC) + (((-temp_f31 * argB) + (arg8 * argB)) - (temp_f30 * argC))) - (temp_f29 * argD))) + / ((argD * argD) + ((argB * argB) + (argC * argC))); + if (sp1C >= 1.0f) + continue; + temp_f28 = arg8 + (argB * sp1C); temp_f27 = arg9 + (argC * sp1C); temp_f26 = argA + (argD * sp1C); - temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); + temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); if (temp < 50.0f) { return 1; } @@ -821,7 +850,8 @@ s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 ar return 0; } -void fn_1_40A4(Mtx arg0, Mtx arg1) { +void fn_1_40A4(Mtx arg0, Mtx arg1) +{ arg1[0][0] = arg0[0][0]; arg1[1][0] = arg0[0][1]; arg1[2][0] = arg0[0][2]; @@ -836,14 +866,16 @@ void fn_1_40A4(Mtx arg0, Mtx arg1) { arg1[2][3] = 0.0f; } -f32 fn_1_4120(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { +f32 fn_1_4120(f32 arg0, f32 arg1, f32 arg2, f32 arg3) +{ f32 temp_f31; temp_f31 = 1.0f - arg3; return (arg2 * (arg3 * arg3)) + ((arg0 * (temp_f31 * temp_f31)) + (arg1 * (2.0f * temp_f31 * arg3))); } -void fn_1_417C(void) { +void fn_1_417C(void) +{ if ((HuPadBtnDown[0] & 0x40) != 0) { lbl_1_bss_21 ^= 1; @@ -864,7 +896,8 @@ void fn_1_417C(void) { Center.x += HuPadSubStkX[0]; if ((HuPadBtn[0] & 0x20) != 0) { Center.y += HuPadSubStkY[0]; - } else { + } + else { Center.z += HuPadSubStkY[0]; } if ((HuPadBtn[0] & 0x400) != 0) { @@ -881,26 +914,27 @@ void fn_1_417C(void) { } } -void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { +void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) +{ Vec sp20; Vec sp14; - unkStruct4* sp10; + unkStruct4 *sp10; GXColor spA; - ModelData* temp_r30; + ModelData *temp_r30; f32 temp_f31; s16 var_r29; - unkStruct5* var_r31; + unkStruct5 *var_r31; temp_r30 = &Hu3DData[lbl_1_bss_DC->model[4]]; - sp10 = (unkStruct4*)temp_r30->unk_120; + sp10 = (unkStruct4 *)temp_r30->unk_120; if (arg1 == 0) { arg8 = 150.0f + temp_r30->pos.x; arg9 = 360.0f + temp_r30->pos.y; argA = temp_r30->pos.z; } - + for (var_r29 = 0; var_r29 < arg2; var_r29++) { - switch (arg1) { /* irregular */ + switch (arg1) { /* irregular */ case 0: sp20.x = arg8 + ((((rand8() << 8) | rand8()) % 41) - 20); sp20.z = argA + ((((rand8() << 8) | rand8()) % 41) - 20); @@ -911,8 +945,9 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { spA.r = spA.g = spA.b = (((rand8() << 8) | rand8()) % 33) + 32; spA.a = 0xFF; var_r31 = fn_1_58E0(arg0, &sp20, &sp14, 0.0f, &spA); - if (!var_r31) return; - + if (!var_r31) + return; + temp_f31 = (((rand8() << 8) | rand8()) % 361); var_r31->unk0.x = (2.0 + (3.0 * sin((M_PI * temp_f31) / 180.0))); var_r31->unk0.y = (0.1f * ((((rand8() << 8) | rand8()) % 31) + 40)); @@ -936,8 +971,9 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { spA.b = 0x8C; spA.a = 0x80; var_r31 = fn_1_58E0(arg0, &sp20, &sp14, 0.0f, &spA); - if (!var_r31) return; - + if (!var_r31) + return; + var_r31->unk28 = 0; var_r31->unk2A = ((((rand8() << 8) | rand8()) % 3) + 2); var_r31->unk0.x = (0.1f * ((((rand8() << 8) | rand8()) % 11) + 30)); @@ -951,15 +987,16 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { } } -void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { +void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) +{ Vec sp2C; Vec sp20; GXColor sp1A; s16 sp18; f32 temp_f31; s16 var_r30; - unkStruct5* temp_r31; - + unkStruct5 *temp_r31; + for (var_r30 = 0; var_r30 < arg4; var_r30++) { sp2C.x = arg1 + ((((rand8() << 8) | rand8()) % 21) - 10); sp2C.y = arg2; @@ -969,8 +1006,9 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { sp20.z = 1.0f; sp1A.r = sp1A.g = sp1A.b = sp1A.a = 0xFF; temp_r31 = fn_1_58E0(arg0, &sp2C, &sp20, 0.0f, &sp1A); - if (!temp_r31) break; - + if (!temp_r31) + break; + temp_r31->unk4C = -1; temp_f31 = ((((rand8() << 8) | rand8()) % 81) - 40); temp_r31->unk0.x = (13.0 * cosd(temp_f31)); @@ -983,16 +1021,17 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { } } -void fn_1_5408(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { +void fn_1_5408(ModelData *arg0, struct _unkStruct6 *arg1, Mtx arg2) +{ s16 var_r29; - GXColor* var_r30; - unkStruct5* var_r31; + GXColor *var_r30; + unkStruct5 *var_r31; var_r29 = 0; var_r31 = arg1->unk18; var_r30 = arg1->unk24; - - for (;var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { + + for (; var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { if (var_r31->unk4E != 0) { switch (var_r31->unk2C) { case 0: @@ -1028,19 +1067,20 @@ void fn_1_5408(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } } -void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { - GXColor* var_r30; +void fn_1_55E0(ModelData *arg0, struct _unkStruct6 *arg1, Mtx arg2) +{ + GXColor *var_r30; f32 var_f31; f32 var_f30; s16 var_r29; s32 var_r28; - unkStruct5* var_r31; + unkStruct5 *var_r31; var_r29 = 0; var_r31 = arg1->unk18; var_r30 = arg1->unk24; - - for (;var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { + + for (; var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { if (var_r31->unk4E != 0) { var_r31->unk0.x -= var_r31->unkC.x; var_r31->unk0.y -= 0.2f; @@ -1050,12 +1090,14 @@ void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } if (var_r31->unkC.z < 0.0f) { var_f31 = -var_r31->unkC.z; - } else { + } + else { var_f31 = var_r31->unkC.z; } if (var_r31->unk0.z < 0.0f) { var_f30 = -var_r31->unk0.z; - } else { + } + else { var_f30 = var_r31->unk0.z; } if (var_f30 < var_f31) { @@ -1070,7 +1112,8 @@ void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } if (var_r31->unk18 > 255.0f) { var_r28 = 0xFF; - } else { + } + else { var_r28 = (u8)var_r31->unk18; } var_r30->a = var_r28; @@ -1081,12 +1124,13 @@ void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } } -void fn_1_57DC(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { +void fn_1_57DC(ModelData *arg0, struct _unkStruct6 *arg1, Mtx arg2) +{ Vec sp18; Vec spC; GXColor sp8; - ModelData* temp_r30; - unkStruct5* temp_r31; + ModelData *temp_r30; + unkStruct5 *temp_r31; temp_r30 = &Hu3DData[lbl_1_bss_DC->model[4]]; temp_r31 = arg1->unk18; @@ -1100,18 +1144,19 @@ void fn_1_57DC(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { temp_r31->unk40.z = temp_r30->pos.z; } -unkStruct5* fn_1_58E0(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { +unkStruct5 *fn_1_58E0(s16 arg0, Vec *arg1, Vec *arg2, f32 arg3, GXColor *arg4) +{ s16 var_r29; - unkStruct5* var_r31; - unkStruct6* temp_r30; - ModelData* var_r28; + unkStruct5 *var_r31; + unkStruct6 *temp_r30; + ModelData *var_r28; var_r28 = &Hu3DData[arg0]; - temp_r30 = (unkStruct6*)var_r28->unk_120; - + temp_r30 = (unkStruct6 *)var_r28->unk_120; + var_r29 = 0; var_r31 = temp_r30->unk18; - for (;var_r29 < temp_r30->unk0; var_r29++, var_r31++) { + for (; var_r29 < temp_r30->unk0; var_r29++, var_r31++) { if (var_r31->unk4E == 0) { break; } @@ -1132,21 +1177,22 @@ unkStruct5* fn_1_58E0(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { return var_r31; } -s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { - ModelData* temp_r28; +s16 fn_1_5A18(AnimData *arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) +{ + ModelData *temp_r28; f32 temp_f0; s16 var_r21; s16 var_r22; s16 var_r30; s16 var_r20; - unkStruct6* var_r31; - void* var_r19; - void* var_r18; - unkStruct5* var_r24; - Vec* var_r25; - GXColor* var_r27; - HsfVector2f* var_r29; - + unkStruct6 *var_r31; + void *var_r19; + void *var_r18; + unkStruct5 *var_r24; + Vec *var_r25; + GXColor *var_r27; + HsfVector2f *var_r29; + var_r21 = Hu3DHookFuncCreate(fn_1_602C); temp_r28 = &Hu3DData[var_r21]; var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(unkStruct6), temp_r28->unk_48); @@ -1158,26 +1204,26 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { var_r31->unkC = NULL; var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(unkStruct5), temp_r28->unk_48); var_r31->unk18 = var_r24; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { var_r24->unk4C = -1; var_r24->unk4E = 0; } var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, temp_r28->unk_48); var_r31->unk1C = var_r25; - + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) { var_r25->x = var_r25->y = var_r25->z = 0.0f; } var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), temp_r28->unk_48); var_r31->unk24 = var_r27; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) { var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF; } var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(HsfVector2f) * 4, temp_r28->unk_48); var_r31->unk20 = var_r29; - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { var_r29->x = 0.0f; var_r29->y = 0.0f; @@ -1198,7 +1244,8 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { var_r31->unk14 = (var_r22 * var_r20); var_r31->unk60 = (1.0f / var_r22); var_r31->unk64 = (1.0f / var_r20); - } else { + } + else { var_r22 = 1; var_r31->unk14 = 1; var_r31->unk60 = 1.0f; @@ -1213,7 +1260,7 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { DCFlushRange(var_r19, 0x20000); GXBeginDisplayList(var_r19, 0x20000); GXBegin(GX_QUADS, GX_VTXFMT0, (arg1 * 4)); - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { GXPosition1x16(var_r30 * 4); GXColor1x16(var_r30); @@ -1236,35 +1283,39 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { return var_r21; } -void fn_1_5F5C(s16 arg0) { - ModelData* var_r31; - unkStruct6* var_r30; +void fn_1_5F5C(s16 arg0) +{ + ModelData *var_r31; + unkStruct6 *var_r30; var_r31 = &Hu3DData[arg0]; - var_r30 = (unkStruct6*)var_r31->unk_120; + var_r30 = (unkStruct6 *)var_r31->unk_120; HuSprAnimKill(var_r30->unk10); Hu3DModelKill(arg0); } -void fn_1_5FBC(s16 arg0, m409Func6 arg1) { - ModelData* var_r31; - unkStruct6* var_r30; +void fn_1_5FBC(s16 arg0, m409Func6 arg1) +{ + ModelData *var_r31; + unkStruct6 *var_r30; var_r31 = &Hu3DData[arg0]; - var_r30 = (unkStruct6*)var_r31->unk_120; + var_r30 = (unkStruct6 *)var_r31->unk_120; var_r30->unkC = arg1; } -void fn_1_5FF4(s16 arg0, u8 arg1) { - ModelData* var_r31; - unkStruct6* var_r30; +void fn_1_5FF4(s16 arg0, u8 arg1) +{ + ModelData *var_r31; + unkStruct6 *var_r30; var_r31 = &Hu3DData[arg0]; - var_r30 = (unkStruct6*)var_r31->unk_120; + var_r30 = (unkStruct6 *)var_r31->unk_120; var_r30->unk8 = arg1; } -void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { +void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) +{ Mtx sp128; ROMtx spF8; Mtx spC8; @@ -1278,15 +1329,15 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { Vec sp20; Vec sp14; Vec sp8; - Vec* var_r31; + Vec *var_r31; s16 var_r24; - HsfVector2f* var_r26; + HsfVector2f *var_r26; s16 var_r25; - unkStruct6* temp_r30; - unkStruct5* var_r29; + unkStruct6 *temp_r30; + unkStruct5 *var_r29; m409Func6 var_r23; - temp_r30 = (unkStruct6*)arg0->unk_120; + temp_r30 = (unkStruct6 *)arg0->unk_120; GXLoadPosMtxImm(arg1, 0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -1295,7 +1346,8 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { var_r24 = temp_r30->unk10->bmp->dataFmt & 0xF; if ((var_r24 == 7) || (var_r24 == 8)) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -1305,22 +1357,23 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); if ((arg0->attr & 2) != 0) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); } HuSprTexLoad(temp_r30->unk10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(0); switch (temp_r30->unk8) { - case 0: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - break; - case 1: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - break; - case 2: - GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); - break; + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); @@ -1342,8 +1395,8 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { var_r31 = temp_r30->unk1C; var_r26 = temp_r30->unk20; PSMTXROMultVecArray(spF8, &temp_r30->unk2C, &sp68[0], 4); - - for (var_r25 = 0; var_r25 < temp_r30->unk0; var_r25++, var_r29++, var_r26+=4) { + + for (var_r25 = 0; var_r25 < temp_r30->unk0; var_r25++, var_r29++, var_r26 += 4) { if (var_r29->unk4E == 0) { var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; @@ -1353,14 +1406,16 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { var_r31++; var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; - } else { + } + else { if (var_r29->unk30 == 0.0f) { fn_1_6778(&sp68[0], &sp38, &var_r29->unk34, 4); PSVECAdd(&sp38, &var_r29->unk40, var_r31++); PSVECAdd(&sp44, &var_r29->unk40, var_r31++); PSVECAdd(&sp50, &var_r29->unk40, var_r31++); PSVECAdd(&sp5C, &var_r29->unk40, var_r31++); - } else { + } + else { fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4); PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); PSMTXConcat(sp128, spC8, sp98); @@ -1381,11 +1436,12 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } -void fn_1_6608(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) { +void fn_1_6608(HsfVector2f *arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) +{ s16 var_r31; s16 var_r30; s16 var_r29; - + for (var_r31 = 0; var_r31 < arg1; var_r31++, arg0++) { var_r30 = (var_r31 % arg2); var_r29 = (var_r31 / arg2); @@ -1394,7 +1450,8 @@ void fn_1_6608(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) { } } -void fn_1_66D4(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg4) { +void fn_1_66D4(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, f32 arg3, f32 arg4) +{ arg0[0].x = arg1[arg2].x; arg0[0].y = arg1[arg2].y; arg0[1].x = (arg3 + arg1[arg2].x); @@ -1405,12 +1462,13 @@ void fn_1_66D4(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg arg0[3].y = (arg4 + arg1[arg2].y); } -void fn_1_6778(Vec* arg0, Vec* arg1, Vec* arg2, s16 arg3) { +void fn_1_6778(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ s16 var_r31; - + for (var_r31 = 0; var_r31 < arg3; var_r31++, arg0++, arg1++) { arg1->x = arg0->x * arg2->x; arg1->y = arg0->y * arg2->y; arg1->z = arg0->z * arg2->z; } -} \ No newline at end of file +} diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index 9e0a7b69..743d0adf 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -21,7 +21,7 @@ unkStruct9 lbl_1_bss_F0; // data u32 lbl_1_data_138 = 0xFFFF0000; -s32 lbl_1_data_13C[7] = { 0x30, 0x2D, 0x3A, 0x2E, 0x280032, 0x17, 0x18 }; +s32 lbl_1_data_13C[7] = { 0x30, 0x2D, 0x3A, 0x2E, DATA_MAKE_NUM(DATADIR_M409, 0x32), 0x17, 0x18 }; GXColor lbl_1_data_158[8] = { { 0xFF, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0xFF, 0xFF }, @@ -61,7 +61,7 @@ void fn_1_67E0(Process* arg0) { } lbl_1_bss_39C = var_r30 = omAddObjEx(arg0, 0x40, 8, 0xA, 4, fn_1_91C0); fn_1_BF88(0x40, 0x40); - fn_1_DF20(0x28002C, 0x40, 0x40); + fn_1_DF20(DATA_MAKE_NUM(DATADIR_M409, 0x2C), 0x40, 0x40); temp_r28 = (u8)frand(); for (var_r31 = 0; var_r31 < (temp_r28 + 1); var_r31++) { @@ -95,7 +95,7 @@ void fn_1_6928(omObjData* arg0) { s32 var_r30; s32 var_r28; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), MEMORY_DEFAULT_NUM); arg0->data = var_r31; var_r31->unk0 = arg0->work[0]; var_r31->unk1 = GWPlayerCfg[var_r31->unk0].character; @@ -133,12 +133,12 @@ void fn_1_6928(omObjData* arg0) { Hu3DModelPosSet(var_r30, var_r31->unk24.x, var_r31->unk24.y, var_r31->unk24.z); Hu3DModelRotSet(var_r30, 0.0f, 30.0f, 0.0f); CharModelStepTypeSet(var_r31->unk1, 0); - arg0->model[1] = var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum(0x280012, 0x10000000, HEAP_DATA)); + arg0->model[1] = var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x12)); Hu3DModelHookSet(arg0->model[0], (char*)sp38[var_r31->unk1], arg0->model[1]); var_r30 = fn_1_DA48(2, 1); var_r31->unk57 = var_r30; lbl_1_bss_F0.unk10[var_r30].unk30 = fn_1_8838; - fn_1_E2A8(var_r30, 0, 0x28002B, 0x40, 0x40); + fn_1_E2A8(var_r30, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2B), 0x40, 0x40); fn_1_F098(var_r30, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, lbl_1_data_158[var_r31->unk1].a); fn_1_F024(var_r30, 1, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, 0x98); fn_1_E85C(var_r30, 0, var_r31->unk24.x, 100.0f + var_r31->unk24.y, -1200.0f); @@ -149,7 +149,7 @@ void fn_1_6928(omObjData* arg0) { fn_1_F408(var_r30, 1, 1); var_r30 = fn_1_DA48(1, 1); fn_1_DEF4(var_r30, 0, 0); - fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002D); + fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2D)); var_r31->unk58 = var_r30; lbl_1_bss_F0.unk10[var_r30].unk30 = &fn_1_8D6C; fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 4); @@ -158,27 +158,27 @@ void fn_1_6928(omObjData* arg0) { fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0.5f, 0.5f, 1.0f); var_r31->unk59 = 0; var_r31->unk60 = 0; - var_r30 = espEntry(0x280031, 1, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_M409, 0x31), 1, 0); var_r31->unk55 = var_r30; espColorSet(var_r30, 0, 0, 0); espTPLvlSet(var_r30, 0.5); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y); espAttrSet(var_r30, 4); - var_r30 = espEntry(0x280030, 1, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_M409, 0x30), 1, 0); var_r31->unk54 = var_r30; espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y); espAttrSet(var_r30, 4); - var_r30 = espEntry(var_r31->unk1 + 0x610000, 1, 0); + var_r30 = espEntry(var_r31->unk1 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), 1, 0); var_r31->unk56 = var_r30; espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 27.0f, lbl_1_data_178[var_r31->unk0].y - 20.0f); espAttrSet(var_r30, 4); for (var_r28 = 0; var_r28 < 3; var_r28++) { - var_r30 = espEntry(0x61000A, 0, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0A), 0, 0); var_r31->unk5A[var_r28][0] = var_r30; espAttrSet(var_r30, 4); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y); - var_r30 = espEntry(0x61000B, 0, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0B), 0, 0); var_r31->unk5A[var_r28][1] = var_r30; espAttrSet(var_r30, 4); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y); @@ -286,7 +286,7 @@ void fn_1_7344(omObjData* arg0) { Hu3DModelAttrSet(arg0->model[1], 1); temp_r23 = fn_1_DA48(1, 1); fn_1_DEF4(temp_r23, 0, 0); - fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002C); + fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2C)); fn_1_E85C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 20.0f + temp_r31->unk24.x, 100.0f + temp_r31->unk24.y, temp_r31->unk24.z - 25.0f); fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 2.0f, 2.0f, 1.0f); fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x80000000); @@ -693,7 +693,7 @@ void fn_1_91C0(omObjData* arg0) { Hu3DModelAttrSet(var_r28, 0x40000001); for (var_r30 = 0; var_r30 < 3; var_r30++) { - arg0->motion[var_r30] = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + 0x28000F, 0x10000000, HEAP_DATA)); + arg0->motion[var_r30] = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x0F), MEMORY_DEFAULT_NUM, HEAP_DATA)); } Hu3DMotionSet(var_r28, arg0->motion[0]); omSetTra(arg0, 419.99997f, 250.0f, -180.0f); @@ -704,7 +704,7 @@ void fn_1_91C0(omObjData* arg0) { } for (var_r30 = 0; var_r30 < 8; var_r30++) { - var_r28 = Hu3DModelCreateFile(var_r30 + 0x28001B); + var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x1B)); arg0->model[var_r30 + 1] = var_r28; Hu3DModelAttrSet(var_r28, 1); } @@ -712,7 +712,7 @@ void fn_1_91C0(omObjData* arg0) { for (var_r31 = lbl_1_bss_10C, var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { - var_r28 = Hu3DModelCreateFile(var_r30 + 0x280013); + var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x13)); var_r31->unk0 = var_r28; Hu3DModelLayerSet(var_r28, 3); var_r31->unkC.x = -400.0f + (100.0f * var_r30); @@ -728,7 +728,7 @@ void fn_1_91C0(omObjData* arg0) { var_r31->unk30.z = var_r31->unkC.z; var_r31->unk48 = var_r30; fn_1_DEF4((var_r31->unk1 = fn_1_DA48(1, 1)), 0, 0); - fn_1_E2A8(lbl_1_bss_F0.unk6, 0, var_r30 + 0x280023, 0x40, 0x40); + fn_1_E2A8(lbl_1_bss_F0.unk6, 0, var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x23), 0x40, 0x40); fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 2.0f, 2.0f, 1.0f); fn_1_F024(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0xFF, 0xFF, 0xFF, 0xA0); fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x40000004); @@ -892,7 +892,7 @@ void fn_1_962C(omObjData* arg0) { } var_r26 = fn_1_DA48(1, 1); fn_1_DEF4(var_r26, 0, 0); - fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002C); + fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2C)); fn_1_E85C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 4.0f, 4.0f, 1.0f); fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x80000000); @@ -1232,4 +1232,4 @@ f32 fn_1_BF38(s16 arg0) { hsfMotionData = motionData->unk_04->motion; length = hsfMotionData->len; return length; -} \ No newline at end of file +} diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index 6af51bc0..44ed28b2 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -20,21 +20,53 @@ char *lbl_1_data_140[] = { "dmy-itemhook-r", "dmy-itemhook-r", "dmy-itemhook-r", char *lbl_1_data_16C[] = { "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r" }; -s32 lbl_1_data_18C[] - = { DATA_MAKE_NUM(DATADIR_M410, 0), DATA_MAKE_NUM(DATADIR_M410, 1), DATA_MAKE_NUM(DATADIR_M410, 2), DATA_MAKE_NUM(DATADIR_M410, 3), - DATA_MAKE_NUM(DATADIR_M410, 4), DATA_MAKE_NUM(DATADIR_M410, 5), DATA_MAKE_NUM(DATADIR_M410, 6), DATA_MAKE_NUM(DATADIR_M410, 7) }; +s32 lbl_1_data_18C[] = { + DATA_MAKE_NUM(DATADIR_M410, 0), + DATA_MAKE_NUM(DATADIR_M410, 1), + DATA_MAKE_NUM(DATADIR_M410, 2), + DATA_MAKE_NUM(DATADIR_M410, 3), + DATA_MAKE_NUM(DATADIR_M410, 4), + DATA_MAKE_NUM(DATADIR_M410, 5), + DATA_MAKE_NUM(DATADIR_M410, 6), + DATA_MAKE_NUM(DATADIR_M410, 7), +}; -u32 lbl_1_data_1AC[] = { 0, DATA_MAKE_NUM(DATADIR_M410, 70), DATA_MAKE_NUM(DATADIR_M410, 22), DATA_MAKE_NUM(DATADIR_M410, 30), - DATA_MAKE_NUM(DATADIR_M410, 38), DATA_MAKE_NUM(DATADIR_M410, 46), DATA_MAKE_NUM(DATADIR_M410, 62), DATA_MAKE_NUM(DATADIR_M410, 54), - DATA_MAKE_NUM(DATADIR_E3SETUP, 23), DATA_MAKE_NUM(DATADIR_E3SETUP, 24) }; +u32 lbl_1_data_1AC[] = { + 0, + DATA_MAKE_NUM(DATADIR_M410, 70), + DATA_MAKE_NUM(DATADIR_M410, 22), + DATA_MAKE_NUM(DATADIR_M410, 30), + DATA_MAKE_NUM(DATADIR_M410, 38), + DATA_MAKE_NUM(DATADIR_M410, 46), + DATA_MAKE_NUM(DATADIR_M410, 62), + DATA_MAKE_NUM(DATADIR_M410, 54), + DATA_MAKE_NUM(DATADIR_E3SETUP, 23), + DATA_MAKE_NUM(DATADIR_E3SETUP, 24), +}; -UnkM410Struct10 lbl_1_data_1D4[] = { { 0.0f, 0.0f, 12.0f, 0x40000001 }, { 0.0f, 0.0f, 1.1999999, 0 }, { 0.0f, 0.0f, 12.0f, 0x40000001 }, - { 0.0f, 0.0f, 6.0f, 0 }, { 6.0f, 0.0f, 4.7999997f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, - { 0.0f, 0.0f, 12.0f, 0 }, { 0.0f, 0.0f, 12.0f, 0 } }; +UnkM410Struct10 lbl_1_data_1D4[] = { + { 0.0f, 0.0f, 12.0f, 0x40000001 }, + { 0.0f, 0.0f, 1.1999999, 0 }, + { 0.0f, 0.0f, 12.0f, 0x40000001 }, + { 0.0f, 0.0f, 6.0f, 0 }, + { 6.0f, 0.0f, 4.7999997f, 0 }, + { 0.0f, 0.0f, 1.1999999f, 0 }, + { 0.0f, 0.0f, 1.1999999f, 0 }, + { 0.0f, 0.0f, 1.1999999f, 0 }, + { 0.0f, 0.0f, 12.0f, 0 }, + { 0.0f, 0.0f, 12.0f, 0 }, +}; -s32 lbl_1_data_274[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_MGCONST, 1), DATA_MAKE_NUM(DATADIR_MGCONST, 2), - DATA_MAKE_NUM(DATADIR_MGCONST, 3), DATA_MAKE_NUM(DATADIR_MGCONST, 4), DATA_MAKE_NUM(DATADIR_MGCONST, 5), DATA_MAKE_NUM(DATADIR_MGCONST, 6), - DATA_MAKE_NUM(DATADIR_MGCONST, 7) }; +s32 lbl_1_data_274[] = { + DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_MGCONST, 1), + DATA_MAKE_NUM(DATADIR_MGCONST, 2), + DATA_MAKE_NUM(DATADIR_MGCONST, 3), + DATA_MAKE_NUM(DATADIR_MGCONST, 4), + DATA_MAKE_NUM(DATADIR_MGCONST, 5), + DATA_MAKE_NUM(DATADIR_MGCONST, 6), + DATA_MAKE_NUM(DATADIR_MGCONST, 7), +}; GXColor lbl_1_data_294[] = { { 102, 0, 0, 255 }, @@ -144,9 +176,9 @@ void fn_1_80A0(omObjData *object) for (var_r29 = 0; var_r29 < 10; var_r29++) { if (lbl_1_data_1AC[var_r29] < 0x10000) { object->motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_1AC[var_r29]); - } else { - object->motion[var_r29] - = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r28 + lbl_1_data_1AC[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA)); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_1AC[var_r29]); } } CharModelMotionDataClose(var_r28); @@ -178,40 +210,40 @@ void fn_1_8414(omObjData *object) UnkM410Struct7 sp8 = { { 42, 78, 108, 125 } }; switch (var_r31->unk_34) { - case 0: - fn_1_9F70(object, 0); - if (fn_1_2804()) { - var_r31->unk_38 = 0; - var_r31->unk_34++; - } - break; - case 1: - if (var_r31->unk_38 >= sp8.unk_00[var_r31->unk_04]) { - var_r31->unk_28 = 1; - var_r31->unk_34++; - } - break; - case 2: - fn_1_96F4(object); - if (var_r31->unk_38 >= (2.8f + 0.00040000002f * frandmod(1000)) * 60.0f) { - var_r31->unk_2C = 1; - var_r31->unk_38 = 0; - var_r31->unk_34++; - } - break; - case 3: - if (var_r31->unk_24) { - if (var_r31->unk_38 >= 27.0f) { - var_r31->unk_30 = 1; + case 0: + fn_1_9F70(object, 0); + if (fn_1_2804()) { + var_r31->unk_38 = 0; + var_r31->unk_34++; } - } - if (fn_1_9A90(object)) { - var_r31->unk_34++; - } - break; - case 4: - fn_1_9F70(object, 0); - break; + break; + case 1: + if (var_r31->unk_38 >= sp8.unk_00[var_r31->unk_04]) { + var_r31->unk_28 = 1; + var_r31->unk_34++; + } + break; + case 2: + fn_1_96F4(object); + if (var_r31->unk_38 >= (2.8f + 0.00040000002f * frandmod(1000)) * 60.0f) { + var_r31->unk_2C = 1; + var_r31->unk_38 = 0; + var_r31->unk_34++; + } + break; + case 3: + if (var_r31->unk_24) { + if (var_r31->unk_38 >= 27.0f) { + var_r31->unk_30 = 1; + } + } + if (fn_1_9A90(object)) { + var_r31->unk_34++; + } + break; + case 4: + fn_1_9F70(object, 0); + break; } } fn_1_8A10(object); @@ -241,35 +273,37 @@ void fn_1_8678(omObjData *object) } } switch (var_r31->unk_34) { - case 0: - if (fn_1_9F70(object, 0)) { - var_r31->unk_28 = 1; - } - fn_1_96F4(object); - if (var_r31->unk_18) { - var_r31->unk_34++; - } - break; - case 1: - if (!var_r31->unk_1C && !var_r31->unk_20) { - if (var_r31->unk_10 & 0x100) { - if (fn_1_281C() == 2) { - var_r31->unk_2C = 1; - } - } else if (var_r31->unk_10 & 0x200 && fn_1_281C() == 2) { - if (fabs(fn_1_30F0(var_r31->unk_3C, var_r31->unk_40)) < 45.0) { - var_r31->unk_30 = 1; - } + case 0: + if (fn_1_9F70(object, 0)) { + var_r31->unk_28 = 1; } - var_r29 = 1; - } else if (var_r31->unk_24 && var_r31->unk_10 & 0x200) { - var_r31->unk_30 = 1; - } - if (fn_1_9A90(object) || fn_1_9C84(object)) { - var_r31->unk_36 = 0; - var_r31->unk_34--; - } - break; + fn_1_96F4(object); + if (var_r31->unk_18) { + var_r31->unk_34++; + } + break; + case 1: + if (!var_r31->unk_1C && !var_r31->unk_20) { + if (var_r31->unk_10 & 0x100) { + if (fn_1_281C() == 2) { + var_r31->unk_2C = 1; + } + } + else if (var_r31->unk_10 & 0x200 && fn_1_281C() == 2) { + if (fabs(fn_1_30F0(var_r31->unk_3C, var_r31->unk_40)) < 45.0) { + var_r31->unk_30 = 1; + } + } + var_r29 = 1; + } + else if (var_r31->unk_24 && var_r31->unk_10 & 0x200) { + var_r31->unk_30 = 1; + } + if (fn_1_9A90(object) || fn_1_9C84(object)) { + var_r31->unk_36 = 0; + var_r31->unk_34--; + } + break; } fn_1_8A10(object); if (fn_1_281C() == 3 && var_r29) { @@ -286,32 +320,33 @@ void fn_1_88D8(omObjData *object) var_r31 = object->data; fn_1_8A10(object); switch (var_r31->unk_34) { - case 0: - var_r31->unk_34++; - return; - case 1: - if (fn_1_2834() == 1) { - Hu3DModelHookReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); - if ((1 << object->work[0]) & fn_1_2864()) { - fn_1_9E0C(object, 8); - } else { - fn_1_9E0C(object, 9); + case 0: + var_r31->unk_34++; + return; + case 1: + if (fn_1_2834() == 1) { + Hu3DModelHookReset(object->model[0]); + Hu3DModelAttrSet(object->model[1], 1); + if ((1 << object->work[0]) & fn_1_2864()) { + fn_1_9E0C(object, 8); + } + else { + fn_1_9E0C(object, 9); + } + var_r31->unk_40 = 0.0f; + var_r31->unk_44 = 0.0f; + var_r31->unk_48 = 0.005f; + var_r31->unk_34++; } - var_r31->unk_40 = 0.0f; - var_r31->unk_44 = 0.0f; - var_r31->unk_48 = 0.005f; - var_r31->unk_34++; - } - break; - case 2: - if (fn_1_9EFC(object)) { - fn_1_28AC(object->work[0]); - var_r31->unk_34++; - } - break; - default: - break; + break; + case 2: + if (fn_1_9EFC(object)) { + fn_1_28AC(object->work[0]); + var_r31->unk_34++; + } + break; + default: + break; } } @@ -351,72 +386,75 @@ void fn_1_8ABC(omObjData *object) var_r31 = object->data; var_r31->unk_10 = 0; switch (var_r31->unk_50) { - case 0: - if (!var_r31->unk_18) { - return; - } - if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { - var_f28 = 42.0f; - if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { - var_f29 = 280.0f; - var_r31->unk_54 = 31.8f + frandmod(6); - } else { - var_f29 = 419.99997f; - var_r31->unk_54 = 9.0f + frandmod(15); + case 0: + if (!var_r31->unk_18) { + return; } - var_f27 = var_f28 + var_r31->unk_54; - var_r29 = -1; - var_f31 = 10000.0f; - for (var_r30 = 0; var_r30 < 18; var_r30++) { - fn_1_7888(var_r30, (s32)var_f27, &sp28); - if (fabs(sp28.y - var_f29) > 10.0) { - continue; + if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { + var_f28 = 42.0f; + if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { + var_f29 = 280.0f; + var_r31->unk_54 = 31.8f + frandmod(6); } - fn_1_7840(var_r30, &sp34); - if (fabs(sp34.x) < 1.9166667461395264) { - continue; + else { + var_f29 = 419.99997f; + var_r31->unk_54 = 9.0f + frandmod(15); } - var_f30 = sp28.x - var_r31->unk_88.x; - if (sp34.x >= 0.0f) { - if (var_f30 < 0.0f) { + var_f27 = var_f28 + var_r31->unk_54; + var_r29 = -1; + var_f31 = 10000.0f; + for (var_r30 = 0; var_r30 < 18; var_r30++) { + fn_1_7888(var_r30, (s32)var_f27, &sp28); + if (fabs(sp28.y - var_f29) > 10.0) { + continue; + } + fn_1_7840(var_r30, &sp34); + if (fabs(sp34.x) < 1.9166667461395264) { + continue; + } + var_f30 = sp28.x - var_r31->unk_88.x; + if (sp34.x >= 0.0f) { + if (var_f30 < 0.0f) { + if (fabs(var_f30) < var_f31) { + var_r29 = var_r30; + var_f31 = fabs(var_f30); + } + } + } + else if (var_f30 > 0.0f) { if (fabs(var_f30) < var_f31) { var_r29 = var_r30; var_f31 = fabs(var_f30); } } - } else if (var_f30 > 0.0f) { - if (fabs(var_f30) < var_f31) { - var_r29 = var_r30; - var_f31 = fabs(var_f30); - } } + if (var_r29 < 0) { + return; + } + fn_1_7840(var_r29, &sp34); + var_f31 /= fabs(sp34.x); + var_r31->unk_52 = var_f27 + var_f31 - var_f28 - var_r31->unk_54; } - if (var_r29 < 0) { - return; + else { + var_r31->unk_52 = 24.0f + frandmod(36); + var_r31->unk_54 = 12.0f + frandmod(18); } - fn_1_7840(var_r29, &sp34); - var_f31 /= fabs(sp34.x); - var_r31->unk_52 = var_f27 + var_f31 - var_f28 - var_r31->unk_54; - } else { - var_r31->unk_52 = 24.0f + frandmod(36); - var_r31->unk_54 = 12.0f + frandmod(18); - } - var_r31->unk_50++; - return; - case 1: - if (!var_r31->unk_52) { - var_r31->unk_10 |= 256; var_r31->unk_50++; - } - var_r31->unk_52--; - return; - case 2: - if (!var_r31->unk_54) { - var_r31->unk_10 |= 512; - var_r31->unk_50 = 0; - } - var_r31->unk_54--; - break; + return; + case 1: + if (!var_r31->unk_52) { + var_r31->unk_10 |= 256; + var_r31->unk_50++; + } + var_r31->unk_52--; + return; + case 2: + if (!var_r31->unk_54) { + var_r31->unk_10 |= 512; + var_r31->unk_50 = 0; + } + var_r31->unk_54--; + break; } } @@ -480,7 +518,8 @@ void fn_1_9040(omObjData *object) sp2C.x = (0.016666668f * (sp20.x - var_r31->unk_70.x)) / var_f31; sp2C.y = 0.016666668f * var_f27; sp2C.z = (0.016666668f * (sp20.z - var_r31->unk_70.z)) / var_f31; - } else { + } + else { if (var_r31->unk_20 != 0) { var_f30 = -450.0f + (0.05f * frandmod(1000)); var_f29 = -100.0f; @@ -488,7 +527,8 @@ void fn_1_9040(omObjData *object) sp20.x = var_r31->unk_70.x + (0.05f * (frandmod(2000) - 1000)); sp20.y = var_f29; sp20.z = var_f30; - } else { + } + else { var_f30 = -700.0f; var_f29 = 420.0f; if (var_r31->unk_68 < -600.0f) { @@ -516,7 +556,8 @@ void fn_1_9040(omObjData *object) } if (var_r28 >= 0 && var_f30 <= var_f25) { fn_1_7888(var_r28, var_r27, &sp20); - } else { + } + else { sp20.x = var_r31->unk_88.x; sp20.y = var_f29; sp20.z = -700.0f; @@ -585,7 +626,8 @@ void fn_1_96F4(omObjData *object) } if (var_r31->unk_18 != 0) { Hu3DModelPosSet(object->model[1], 0.0f, 0.0f, 0.0f); - } else { + } + else { Hu3DModelPosSet(object->model[1], var_r31->unk_70.x, var_r31->unk_70.y, var_r31->unk_70.z); } if (var_r31->unk_36 >= (60.0f * (var_f31 - 0.17f))) { @@ -621,7 +663,8 @@ s32 fn_1_9A90(omObjData *object) var_r31->unk_1C = 0; if (var_r31->unk_18) { fn_1_9E0C(object, 7); - } else { + } + else { var_r29 = 1; fn_1_9E0C(object, 6); } @@ -636,7 +679,8 @@ s32 fn_1_9A90(omObjData *object) var_r31->unk_30 = 0; } } - } else if (var_r31->unk_18) { + } + else if (var_r31->unk_18) { fn_1_9F70(object, 2); } return var_r29; @@ -658,12 +702,14 @@ s32 fn_1_9C84(omObjData *object) var_r31->unk_30 = 0; var_r31->unk_20 = 1; var_r31->unk_36 = 0; - } else if (var_r31->unk_20) { + } + else if (var_r31->unk_20) { if (var_r31->unk_18) { if (var_r31->unk_36 >= 18.0f) { fn_1_9040(object); } - } else if (var_r31->unk_36 >= 30.0f && fn_1_9EFC(object)) { + } + else if (var_r31->unk_36 >= 30.0f && fn_1_9EFC(object)) { var_r31->unk_30 = 0; var_r31->unk_2C = 0; var_r31->unk_20 = 0; @@ -786,49 +832,50 @@ void fn_1_A3C0(omObjData *object) for (var_r29 = 0; var_r29 < 4; var_r29++, var_r31++) { switch (var_r31->unk_14) { - case 0: - if (fn_1_281C() == 2) { - var_r31->unk_14 = 1; - } - break; - case 1: - var_r31->unk_18 = 0; - var_r31->unk_20 = var_r31->unk_08 % 10; - var_r31->unk_1C = (var_r31->unk_08 / 10) % 10; - espDispOn(var_r31->unk_3C[0]); - espDispOn(var_r31->unk_3C[1]); - espDispOn(var_r31->unk_40); - espDispOn(var_r31->unk_42); - espDispOn(var_r31->unk_44); - espBankSet(var_r31->unk_3C[0], var_r31->unk_1C); - espBankSet(var_r31->unk_3C[1], var_r31->unk_20); - espBankSet(var_r31->unk_40, var_r31->unk_24); - if (var_r31->unk_00) { - var_r31->unk_2C[0] = var_r31->unk_2C[1] = 0.5f; - var_r31->unk_14++; - } else { - var_r31->unk_00 = 1; - var_r31->unk_2C[0] = var_r31->unk_2C[1] = 1.0f; - var_r31->unk_14 += 3; + case 0: + if (fn_1_281C() == 2) { + var_r31->unk_14 = 1; + } + break; + case 1: + var_r31->unk_18 = 0; + var_r31->unk_20 = var_r31->unk_08 % 10; + var_r31->unk_1C = (var_r31->unk_08 / 10) % 10; + espDispOn(var_r31->unk_3C[0]); + espDispOn(var_r31->unk_3C[1]); + espDispOn(var_r31->unk_40); + espDispOn(var_r31->unk_42); + espDispOn(var_r31->unk_44); + espBankSet(var_r31->unk_3C[0], var_r31->unk_1C); + espBankSet(var_r31->unk_3C[1], var_r31->unk_20); + espBankSet(var_r31->unk_40, var_r31->unk_24); + if (var_r31->unk_00) { + var_r31->unk_2C[0] = var_r31->unk_2C[1] = 0.5f; + var_r31->unk_14++; + } + else { + var_r31->unk_00 = 1; + var_r31->unk_2C[0] = var_r31->unk_2C[1] = 1.0f; + var_r31->unk_14 += 3; + break; + } + case 2: + var_f31 = var_r31->unk_2C[0]; + var_f31 += 0.10000001f; + if (var_f31 >= 1.5f) { + var_r31->unk_14++; + } + var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; + break; + case 3: + var_f31 = var_r31->unk_2C[0]; + var_f31 -= 0.10000001f; + if (var_f31 <= 1.0f) { + var_f31 = 1.0f; + var_r31->unk_14 = var_r31->unk_14 + 1; + } + var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; break; - } - case 2: - var_f31 = var_r31->unk_2C[0]; - var_f31 += 0.10000001f; - if (var_f31 >= 1.5f) { - var_r31->unk_14++; - } - var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; - break; - case 3: - var_f31 = var_r31->unk_2C[0]; - var_f31 -= 0.10000001f; - if (var_f31 <= 1.0f) { - var_f31 = 1.0f; - var_r31->unk_14 = var_r31->unk_14 + 1; - } - var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; - break; } var_r31->unk_18++; @@ -845,7 +892,8 @@ void fn_1_A3C0(omObjData *object) var_r30->unk_00++; if (var_r30->unk_00 < 12.0f) { var_r30->unk_04 += 0.058333337f; - } else { + } + else { var_r30->unk_04 += 0.025000002f; var_r30->unk_0C -= 0.050000004f; } diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 7d49eb7f..059cae2c 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -1,8 +1,6 @@ #include "REL/m412Dll.h" -#include "math.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #include "game/audio.h" #include "game/chrman.h" #include "game/frand.h" @@ -13,6 +11,8 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" // bss s16 lbl_1_bss_7A0; @@ -28,8 +28,8 @@ f32 lbl_1_bss_774; unkStruct3 lbl_1_bss_4D4[4]; unkStruct2 lbl_1_bss_33C[6]; unkStruct2 lbl_1_bss_2F8; -unkStruct* lbl_1_bss_278[0x20]; -Process* lbl_1_bss_274; +unkStruct *lbl_1_bss_278[0x20]; +Process *lbl_1_bss_274; Vec lbl_1_bss_268; Vec lbl_1_bss_25C; Vec lbl_1_bss_250; @@ -41,57 +41,24 @@ Vec lbl_1_bss_C; Vec lbl_1_bss_0; // data -s32 lbl_1_data_0[8] = { - 0, 1, 2, 3, 4, 5, 6, 7 -}; -s32 lbl_1_data_20[8] = { - 0x5E0001, 0x190001, 0x6C0001, 0x890001, - 0x840001, 0x100001, 0x0C0001, 0x800001 -}; -s32 lbl_1_data_40[8] = { - 0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, - 0x850000, 0x110000, 0x0D0000, 0x810000 -}; -s32 lbl_1_data_60[6] = { - 0x5F0000, 0x5F0002, 0x5F0003, - 0x5F001A, 0x5F001B, 0x5F004B -}; -Vec lbl_1_data_78[7] = { - { 474.0f, 30.0f, -497.0f }, - { 330.0f, 30.0f, 562.0f }, - { -694.0f, 30.0f, 43.0f }, - { -375.0f, 30.0f, -483.0f }, - { 715.0f, 30.0f, 62.0f }, - { -334.0f, 30.0f, 570.0f }, - { 100.0f, 30.0f, -630.0f } -}; -char* lbl_1_data_298[0x17] = { - "sb_hahen-sb_hahen01", - "sb_hahen-sb_hahen02", - "sb_hahen-sb_hahen03", - "sb_hahen-sb_hahen04", - "sb_hahen-sb_hahen05", - "sb_hahen-sb_hahen06", - "sb_hahen-sb_hahen07", - "sb_hahen-sb_hahen08", - "sb_hahen-sb_hahen09", - "sb_hahen-sb_hahen10", - "sb_hahen-sb_hahen11", - "sb_hahen-sb_hahen12", - "sb_hahen-sb_hahen13", - "sb_hahen-sb_hahen14", - "sb_hahen-sb_hahen15", - "sb_hahen-sb_hahen16", - "sb_hahen-sb_hahen17", - "sb_hahen-sb_hahen18", - "sb_hahen-sb_hahen19", - "sb_hahen-sb_hahen20", - "sb_hahen-sb_hahen21", - "sb_hahen-sb_hahen22", - "sb_hahen-sb_hahen23" -}; +s32 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +s32 lbl_1_data_20[8] = { DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x01), DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x01), DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x01), + DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0x01), DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0x01), DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0x01), + DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0x01), DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0x01) }; +s32 lbl_1_data_40[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00) }; +s32 lbl_1_data_60[6] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4B) }; +Vec lbl_1_data_78[7] = { { 474.0f, 30.0f, -497.0f }, { 330.0f, 30.0f, 562.0f }, { -694.0f, 30.0f, 43.0f }, { -375.0f, 30.0f, -483.0f }, + { 715.0f, 30.0f, 62.0f }, { -334.0f, 30.0f, 570.0f }, { 100.0f, 30.0f, -630.0f } }; +char *lbl_1_data_298[0x17] = { "sb_hahen-sb_hahen01", "sb_hahen-sb_hahen02", "sb_hahen-sb_hahen03", "sb_hahen-sb_hahen04", "sb_hahen-sb_hahen05", + "sb_hahen-sb_hahen06", "sb_hahen-sb_hahen07", "sb_hahen-sb_hahen08", "sb_hahen-sb_hahen09", "sb_hahen-sb_hahen10", "sb_hahen-sb_hahen11", + "sb_hahen-sb_hahen12", "sb_hahen-sb_hahen13", "sb_hahen-sb_hahen14", "sb_hahen-sb_hahen15", "sb_hahen-sb_hahen16", "sb_hahen-sb_hahen17", + "sb_hahen-sb_hahen18", "sb_hahen-sb_hahen19", "sb_hahen-sb_hahen20", "sb_hahen-sb_hahen21", "sb_hahen-sb_hahen22", "sb_hahen-sb_hahen23" }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ f32 temp_f30; f32 temp_f29; f32 temp_f31; @@ -139,18 +106,20 @@ void ObjectSetup(void) { WipeCreate(1, 0, 0x3C); } -void* fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) { +void *fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) +{ Vec sp8; sp8.x = arg8; sp8.y = arg9; sp8.z = argA; - return (void*)HuAudFXEmiterPlay(arg0, &sp8); + return (void *)HuAudFXEmiterPlay(arg0, &sp8); } -void fn_1_73C(void) { +void fn_1_73C(void) +{ Vec sp8; - CameraData* camera; + CameraData *camera; camera = &Hu3DCamera[0]; @@ -160,7 +129,8 @@ void fn_1_73C(void) { while (1) { HuAudFXListnerUpdate(&camera->pos, &sp8); - if (lbl_1_bss_794 >= 3) break; + if (lbl_1_bss_794 >= 3) + break; HuPrcVSleep(); } HuPrcKill(HuPrcCurrentGet()); @@ -169,7 +139,8 @@ void fn_1_73C(void) { } } -void fn_1_7BC(void) { +void fn_1_7BC(void) +{ Vec sp14; Vec sp8; s32 temp_r30; @@ -182,7 +153,7 @@ void fn_1_7BC(void) { sp8.x = sp14.x - 474.0f; sp8.y = sp14.y - 30.0f; sp8.z = sp14.z - -497.0f; - + for (var_r31 = 0; var_r31 < 0x168; var_r31++) { HuAudFXEmiterUpDate(temp_r30, &sp14); PSVECAdd(&sp8, &sp14, &sp14); @@ -194,37 +165,40 @@ void fn_1_7BC(void) { } } -void fn_1_894(omObjData* object) { +void fn_1_894(omObjData *object) +{ return; } -void fn_1_898(omObjData* object) { +void fn_1_898(omObjData *object) +{ object->model[0] = lbl_1_bss_79C; object->func = &fn_1_894; } -void fn_1_8BC(void) { +void fn_1_8BC(void) +{ Vec sp20; Vec sp14; s32 sp10; volatile u32 spC; volatile u32 sp8; - unkStruct2* temp_r31; - unkStruct3* temp_r30; + unkStruct2 *temp_r31; + unkStruct3 *temp_r30; s16 var_r29; - void* var_r27; + void *var_r27; s32 var_r28; s32 var_r26; - unkStruct2* temp_r25; - HsfTransform* temp_r24; - Process* var_r23; + unkStruct2 *temp_r25; + HsfTransform *temp_r24; + Process *var_r23; s32 temp_r22; - AnimData* var_r21; + AnimData *var_r21; s16 var_r20; s16 var_r19; s32 var_r18; - HsfObject* var_r17; - + HsfObject *var_r17; + nMap = 0; HuAudSndGrpSet(0x25); sp20.x = 1100.0f; @@ -234,44 +208,45 @@ void fn_1_8BC(void) { sp14.y = 0.0f; sp14.z = -1.0f; HuAudFXListnerSetEX(&sp20, &sp14, 10000.0f, 0.5666667f, 0.0f, 300.0f, 300.0f); - var_r27 = HuDataSelHeapReadNum(0x2B0000, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x00), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); Hu3DModelShadowMapSet(var_r29); Hu3DModelAttrSet(var_r29, 0x40000001); - var_r27 = HuDataSelHeapReadNum(0x2B0001, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x01), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_79C = Hu3DModelCreate(var_r27); Hu3DModelAttrSet(lbl_1_bss_79C, 1); MapObject[nMap++] = omAddObjEx(lbl_1_bss_274, 0x100, 1, 0, -1, fn_1_898); - var_r27 = HuDataSelHeapReadNum(0x2B0002, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x02), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 0); Hu3DModelAttrSet(var_r29, 0x40000001); - + for (var_r28 = 0; var_r28 < 0x20; var_r28++) { lbl_1_bss_278[var_r28] = NULL; } - var_r27 = HuDataSelHeapReadNum(0x2B001F, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1F), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_79E = var_r29 = Hu3DModelCameraCreate(Hu3DMotionCreate(var_r27), 1); Hu3DCameraMotionStart(var_r29, 1); - + for (var_r28 = 0; var_r28 < 2; var_r28++) { - var_r27 = HuDataSelHeapReadNum(0x2B001D, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_798[var_r28] = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 2); Hu3DModelAttrSet(var_r29, 0x40000002); Hu3DModelAttrSet(var_r29, 1); } - + for (var_r28 = 0; var_r28 < 6; var_r28++) { temp_r31 = &lbl_1_bss_33C[var_r28]; temp_r31->unk24 = var_r28; temp_r31->unk28 = var_r28; temp_r31->unk20 = 0; if (var_r28 == 0) { - var_r27 = HuDataSelHeapReadNum(0x2B0006, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x06), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r20 = var_r29 = Hu3DModelCreate(var_r27); - } else { + } + else { var_r29 = Hu3DModelLink(var_r20); } temp_r31->unk0 = var_r29; @@ -284,12 +259,12 @@ void fn_1_8BC(void) { Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelLayerSet(var_r29, 1); Hu3DModelShadowSet(var_r29); - + for (var_r26 = 0; var_r26 < 3; var_r26++) { - var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0007, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r26 + DATA_MAKE_NUM(DATADIR_M412, 0x07), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); } - var_r27 = HuDataSelHeapReadNum(var_r28 + 0x2B000A, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r28 + DATA_MAKE_NUM(DATADIR_M412, 0x0A), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); Hu3DMotionSet(var_r29, temp_r31->unkC[3]); temp_r31->unk2 = var_r29 = Hu3DModelLink(var_r20); @@ -300,7 +275,7 @@ void fn_1_8BC(void) { Hu3DModelShadowReset(var_r29); Hu3DMotionSet(var_r29, temp_r31->unkC[3]); Hu3DModelAttrSet(var_r29, 0x800000); - var_r27 = HuDataSelHeapReadNum(var_r28 + 0x2B0010, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r28 + DATA_MAKE_NUM(DATADIR_M412, 0x10), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk4 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); if (var_r28 >= 3) { @@ -309,9 +284,10 @@ void fn_1_8BC(void) { Hu3DModelAttrSet(temp_r31->unk4, 0x40000002); } if (var_r28 == 0) { - var_r27 = HuDataSelHeapReadNum(0x2B0003, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x03), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r19 = var_r29 = Hu3DModelCreate(var_r27); - } else { + } + else { var_r29 = Hu3DModelLink(var_r19); } temp_r31->unk6 = var_r29; @@ -325,7 +301,7 @@ void fn_1_8BC(void) { var_r23 = HuPrcChildCreate(fn_1_2A1C, 0x2000, 0x3000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r31; } - + for (var_r28 = 0, var_r18 = 0; var_r28 < 50; var_r28++) { temp_r31 = &lbl_1_bss_33C[frandmod(3) + var_r18]; temp_r25 = &lbl_1_bss_33C[frandmod(3) + var_r18]; @@ -346,7 +322,7 @@ void fn_1_8BC(void) { temp_r25->unk28 = temp_r22; } temp_r31 = &lbl_1_bss_2F8; - var_r27 = HuDataSelHeapReadNum(0x2B0016, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x16), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r20 = var_r29 = Hu3DModelCreate(var_r27); temp_r31->unk0 = var_r29; temp_r31->unk2C.x = lbl_1_data_78[6].x; @@ -358,16 +334,16 @@ void fn_1_8BC(void) { Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelLayerSet(var_r29, 1); Hu3DModelShadowSet(var_r29); - + for (var_r26 = 0; var_r26 < 5; var_r26++) { - var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0017, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r26 + DATA_MAKE_NUM(DATADIR_M412, 0x17), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); } - var_r27 = HuDataSelHeapReadNum(0x2B0016, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x16), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk2 = var_r29 = Hu3DModelCreate(var_r27); - + for (var_r26 = 0; var_r26 < 5; var_r26++) { - var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0017, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r26 + DATA_MAKE_NUM(DATADIR_M412, 0x17), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk16[var_r26] = Hu3DJointMotion(var_r29, var_r27); } Hu3DModelPosSet(var_r29, temp_r31->unk2C.x, temp_r31->unk2C.y - 10.0f, temp_r31->unk2C.z); @@ -376,7 +352,7 @@ void fn_1_8BC(void) { Hu3DModelLayerSet(var_r29, 0); Hu3DModelShadowReset(var_r29); Hu3DModelAttrSet(var_r29, 0x800000); - var_r27 = HuDataSelHeapReadNum(0x2B0004, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x04), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk6 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); Hu3DModelAttrSet(var_r29, 1); @@ -385,13 +361,13 @@ void fn_1_8BC(void) { temp_r31->unk8 = Hu3DModelLink(temp_r31->unk6); Hu3DModelLayerSet(temp_r31->unk8, 0); Hu3DModelAttrSet(temp_r31->unk8, 1); - var_r27 = HuDataSelHeapReadNum(0x2B0005, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x05), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkA = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelShadowSet(var_r29); Hu3DModelShadowDispOff(var_r29); Hu3DModelLayerSet(var_r29, 1); Hu3DModelAttrSet(var_r29, 1); - + for (var_r28 = 0; var_r28 < 0x17; var_r28++) { var_r17 = Hu3DModelObjPtrGet(var_r29, lbl_1_data_298[var_r28]); if (!var_r17) { @@ -408,11 +384,11 @@ void fn_1_8BC(void) { } var_r23 = HuPrcChildCreate(fn_1_3950, 0x2000, 0x3000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r31; - + for (var_r28 = 0; var_r28 < 4; var_r28++) { lbl_1_bss_4D4[var_r28].unk3C = var_r28; } - + for (var_r28 = 0; var_r28 < 50; var_r28++) { spC = frandmod(4); sp8 = frandmod(4); @@ -420,7 +396,7 @@ void fn_1_8BC(void) { lbl_1_bss_4D4[sp8].unk3C = lbl_1_bss_4D4[spC].unk3C; lbl_1_bss_4D4[spC].unk3C = sp10; } - + for (var_r28 = 0; var_r28 < 4; var_r28++) { temp_r30 = &lbl_1_bss_4D4[var_r28]; temp_r30->unk24 = var_r28; @@ -428,7 +404,7 @@ void fn_1_8BC(void) { temp_r30->unk2C = GWPlayerCfg[var_r28].pad_idx; temp_r30->unk0 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[var_r28].character], 4); Hu3DModelLayerSet(temp_r30->unk0, 1); - var_r27 = HuDataSelHeapReadNum(lbl_1_data_20[GWPlayerCfg[var_r28].character], 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(lbl_1_data_20[GWPlayerCfg[var_r28].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk2 = Hu3DModelCreate(var_r27); Hu3DModelScaleSet(temp_r30->unk2, 1.0f, -1.0f, 1.0f); Hu3DModelAttrSet(temp_r30->unk2, 0x800000); @@ -449,10 +425,11 @@ void fn_1_8BC(void) { Hu3DModelPosSet(temp_r30->unk2, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); Hu3DModelRotSet(temp_r30->unk2, temp_r30->unk54.x, temp_r30->unk54.y, temp_r30->unk54.z); Hu3DModelShadowSet(temp_r30->unk0); - + for (var_r26 = 0; var_r26 < 6; var_r26++) { temp_r30->unkC[var_r26] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[var_r28].character], lbl_1_data_60[var_r26]); - var_r27 = HuDataSelHeapReadNum((u16)lbl_1_data_60[var_r26] | lbl_1_data_40[GWPlayerCfg[var_r28].character], 0x10000000, HEAP_DATA); + var_r27 + = HuDataSelHeapReadNum((u16)lbl_1_data_60[var_r26] | lbl_1_data_40[GWPlayerCfg[var_r28].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk18[var_r26] = Hu3DJointMotion(temp_r30->unk2, var_r27); } CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[var_r28].character], temp_r30->unkC[0]); @@ -460,7 +437,7 @@ void fn_1_8BC(void) { Hu3DMotionSet(temp_r30->unk2, temp_r30->unk18[0]); Hu3DModelAttrSet(temp_r30->unk2, 0x40000001); CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[var_r28].character]); - var_r27 = HuDataSelHeapReadNum(0x2B001C, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1C), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk6 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); Hu3DModelAttrSet(var_r29, 0x40000001); @@ -471,7 +448,7 @@ void fn_1_8BC(void) { Hu3DModelLayerSet(var_r29, 0); Hu3DModelAttrSet(var_r29, 0x40000001); Hu3DModelAttrSet(var_r29, 0x800001); - var_r27 = HuDataSelHeapReadNum(0x2B001D, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unkA = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 3); Hu3DModelAttrSet(var_r29, 0x40000002); @@ -479,7 +456,7 @@ void fn_1_8BC(void) { var_r23 = HuPrcChildCreate(fn_1_7C60, 0x2000, 0x4000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r30; } - var_r21 = HuSprAnimRead(HuDataReadNum(0x2B001E, 0x10000000)); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1E), MEMORY_DEFAULT_NUM)); var_r29 = Hu3DParticleCreate(var_r21, 0x100); Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); @@ -487,7 +464,7 @@ void fn_1_8BC(void) { Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); Hu3DParticleScaleSet(var_r29, 0.0f); Hu3DParticleHookSet(var_r29, fn_1_A01C); - var_r21 = HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), MEMORY_DEFAULT_NUM)); var_r29 = Hu3DParticleCreate(var_r21, 0x40); Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); @@ -495,7 +472,7 @@ void fn_1_8BC(void) { Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); Hu3DParticleScaleSet(var_r29, 0.0f); Hu3DParticleHookSet(var_r29, fn_1_A618); - var_r21 = HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), MEMORY_DEFAULT_NUM)); var_r29 = Hu3DParticleCreate(var_r21, 3); Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); @@ -503,11 +480,12 @@ void fn_1_8BC(void) { Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); Hu3DParticleScaleSet(var_r29, 0.0f); Hu3DParticleHookSet(var_r29, fn_1_AA88); - HuDataDirClose(0x120000); + HuDataDirClose(DATADIR_EFFECT); HuPrcChildCreate(fn_1_B160, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -f32 fn_1_1D08(f32 arg0) { +f32 fn_1_1D08(f32 arg0) +{ while (arg0 >= 360.0f || arg0 < 0.0f) { if (arg0 >= 360.0f) { arg0 -= 360.0f; @@ -519,19 +497,21 @@ f32 fn_1_1D08(f32 arg0) { return arg0; } -void fn_1_1D88(void) { - void* var_r31; +void fn_1_1D88(void) +{ + void *var_r31; var_r31 = HuPrcCurrentGet()->user_data; HuMemDirectFree(var_r31); } -void fn_1_1DBC(void) { +void fn_1_1DBC(void) +{ Vec sp8; - HsfObject* var_r27; - HsfTransform* temp_r31; - unkStruct4* temp_r30; - Vec* temp_r29; + HsfObject *var_r27; + HsfTransform *temp_r31; + unkStruct4 *temp_r30; + Vec *temp_r29; s32 var_r28; f32 var_f31; f32 var_f30; @@ -576,34 +556,37 @@ void fn_1_1DBC(void) { } } -void fn_1_2014(void) { - unkStruct2* temp_r31; // could also be unkStruct3 `\_("/)_/` +void fn_1_2014(void) +{ + unkStruct2 *temp_r31; // could also be unkStruct3 `\_("/)_/` - temp_r31 = (unkStruct2*)HuPrcCurrentGet()->user_data; + temp_r31 = (unkStruct2 *)HuPrcCurrentGet()->user_data; lbl_1_bss_278[temp_r31->unk6] = NULL; HuMemDirectFree(temp_r31); } -void fn_1_2064(void) { +void fn_1_2064(void) +{ Vec sp28; Vec sp1C; Vec sp10; f32 spC; f32 sp8; - Process* temp_r26; + Process *temp_r26; s32 var_r30; - unkStruct* temp_r28; - unkStruct3* temp_r29; - unkStruct* temp_r31; - unkStruct4* var_r27; + unkStruct *temp_r28; + unkStruct3 *temp_r29; + unkStruct *temp_r31; + unkStruct4 *var_r27; - temp_r31 = (unkStruct*)HuPrcCurrentGet()->user_data; + temp_r31 = (unkStruct *)HuPrcCurrentGet()->user_data; temp_r31->unk8 = 0; temp_r31->unkA = 0; HuPrcDestructorSet(fn_1_2014); - + do { - if ((temp_r31->unk8 != 0) || (lbl_1_bss_794 >= 4)) break; + if ((temp_r31->unk8 != 0) || (lbl_1_bss_794 >= 4)) + break; temp_r31->unk10.x += (temp_r31->unk24.y * sind(temp_r31->unk24.x)); temp_r31->unk10.z += (temp_r31->unk24.y * cosd(temp_r31->unk24.x)); temp_r31->unk10.y += temp_r31->unk24.z; @@ -625,18 +608,19 @@ void fn_1_2064(void) { } } HuSetVecF(&sp28, temp_r31->unk10.x, 0.0, temp_r31->unk10.z); - + for (var_r30 = 0; var_r30 < 4; var_r30++) { temp_r29 = &lbl_1_bss_4D4[var_r30]; HuSetVecF(&sp1C, temp_r29->unk40.x, 0.0, temp_r29->unk40.z); HuSubVecF(&sp10, &sp28, &sp1C); if ((sqrtf((sp10.z * sp10.z) + ((sp10.x * sp10.x) + (sp10.y * sp10.y))) < (temp_r31->unk30 + temp_r29->unk60.x)) && ((150.0f + temp_r29->unk40.y + temp_r31->unk30) > temp_r31->unk10.y)) { - + if (temp_r29->unk30 != 3) { if (temp_r31->unkC == 0) { omVibrate(temp_r29->unk24, 0xC, 4, 2); - } else { + } + else { omVibrate(temp_r29->unk24, 0xC, 0xC, 0); } } @@ -651,12 +635,14 @@ void fn_1_2064(void) { } Hu3DModelPosSet(temp_r31->unk0, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); Hu3DModelPosSet(temp_r31->unk2, temp_r31->unk10.x, -temp_r31->unk10.y, temp_r31->unk10.z); - if (temp_r31->unk8 != 0) break; + if (temp_r31->unk8 != 0) + break; HuPrcVSleep(); } while (1); if (temp_r31->unkC == 1) { HuAudFXPlay(0x58D); - } else { + } + else { HuAudFXPlay(0x58C); } Hu3DModelAttrSet(temp_r31->unk0, 1); @@ -664,7 +650,7 @@ void fn_1_2064(void) { Hu3DModelShadowDispOff(temp_r31->unk0); temp_r31->unkA = 1; if (temp_r31->unkC == 1) { - + for (var_r30 = 0; var_r30 < 4; var_r30++) { if (lbl_1_bss_4D4[var_r30].unk30 != 3) { omVibrate(lbl_1_bss_4D4[var_r30].unk24, 0xC, 6, 6); @@ -673,7 +659,7 @@ void fn_1_2064(void) { Hu3DModelPosSet(temp_r31->unk4, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); Hu3DModelAttrReset(temp_r31->unk4, 1); Hu3DModelShadowDispOn(temp_r31->unk4); - + for (var_r30 = 0; var_r30 < 0x17; var_r30++) { temp_r26 = HuPrcChildCreate(fn_1_1DBC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); var_r27 = HuMemDirectMalloc(HEAP_DATA, 0x18); @@ -696,11 +682,13 @@ void fn_1_2064(void) { } } -s32 fn_1_2708(void) { +s32 fn_1_2708(void) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { - if (!lbl_1_bss_278[var_r31]) break; + if (!lbl_1_bss_278[var_r31]) + break; } if (var_r31 >= 0x20) { var_r31 = -1; @@ -711,14 +699,15 @@ s32 fn_1_2708(void) { return var_r31; } -f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) { +f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) +{ f32 temp_f31; f32 var_f25; f32 var_f26; f32 var_f27; f32 var_f28; f32 var_f29; - + temp_f31 = arg8 - fn_1_1D08(arg9); if ((temp_f31 < 0.0f) || (ABS_INV(temp_f31) > 180.0f)) { if (ABS_INV(temp_f31) > 180.0f) { @@ -726,33 +715,26 @@ f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) { if (temp_f31 > 0.0f) { var_f29 = -var_f29; } - } else { + } + else { var_f29 = temp_f31 / arg0; } - } else { + } + else { var_f29 = temp_f31 / arg0; } return var_f29; } -s32 lbl_1_data_310[6][2] = { - { 0x09249222, 0x22210842 }, - { 0x04924888, 0x88842108 }, - { 0x12492222, 0x22108420 }, - { 0x04444444, 0x44444400 }, - { 0x11111111, 0x11100000 }, - { 0x04444444, 0x40000000 } -}; +s32 lbl_1_data_310[6][2] = { { 0x09249222, 0x22210842 }, { 0x04924888, 0x88842108 }, { 0x12492222, 0x22108420 }, { 0x04444444, 0x44444400 }, + { 0x11111111, 0x11100000 }, { 0x04444444, 0x40000000 } }; -s32 lbl_1_data_340[1][2] = { - { 0x00040008, 0x02000000 } -}; +s32 lbl_1_data_340[1][2] = { { 0x00040008, 0x02000000 } }; -s32 lbl_1_data_348[6] = { - 0x0, 0x0, 0x0, 0x8, 0x12, 0x1C -}; +s32 lbl_1_data_348[6] = { 0x0, 0x0, 0x0, 0x8, 0x12, 0x1C }; -void fn_1_2A1C(void) { +void fn_1_2A1C(void) +{ Vec sp68; Vec sp5C; Vec sp50; @@ -769,11 +751,11 @@ void fn_1_2A1C(void) { s32 var_r24; s32 var_r26; s32 var_r29; - unkStruct* temp_r30; - unkStruct3* temp_r27; - unkStruct2* temp_r31; + unkStruct *temp_r30; + unkStruct3 *temp_r27; + unkStruct2 *temp_r31; s32 var_r21; - Process* var_r20; + Process *var_r20; temp_r31 = HuPrcCurrentGet()->user_data; switch (temp_r31->unk24) { @@ -794,7 +776,7 @@ void fn_1_2A1C(void) { var_r24 = 0x5D; break; } - + loop_10: var_r29 = lbl_1_bss_790 / 60; if (var_r29 >= 0x3C) { @@ -822,18 +804,20 @@ loop_10: } if (((1 << (var_r29 % 32)) & lbl_1_data_310[temp_r31->unk28][var_r22]) != 0) { var_r21 = fn_1_2708(); - } else { + } + else { HuPrcVSleep(); goto loop_10; } var_r26 = frandmod(4); if (lbl_1_bss_4D4[var_r26].unk30 == 3) { - for (var_r23 = 3; var_r23 != 0; var_r23--) { + for (var_r23 = 3; var_r23 != 0; var_r23--) { var_r26++; if (var_r26 >= 4) { var_r26 = 0; } - if (lbl_1_bss_4D4[var_r26].unk30 != 3) break; + if (lbl_1_bss_4D4[var_r26].unk30 != 3) + break; } } temp_r27 = &lbl_1_bss_4D4[var_r26]; @@ -844,7 +828,7 @@ loop_10: var_r29 = Hu3DMotionMaxTimeGet(temp_r31->unk0); var_f24 = fn_1_1D08(atan2d(temp_r27->unk40.x - temp_r31->unk2C.x, temp_r27->unk40.z - temp_r31->unk2C.z)); temp_f18 = (temp_r27->unk40.x + (50.0 * sind(var_f24))); - sp44.y = (temp_r27->unk40.z + (50.0 * cosd(var_f24))); + sp44.y = (temp_r27->unk40.z + (50.0 * cosd(var_f24))); sp44.x = 360.0f * frandf(); var_f23 = 50.0f * frandf(); temp_f18 += (var_f23 * sind(sp44.x)); @@ -852,7 +836,7 @@ loop_10: sp44.z = fn_1_27C4(var_r29, var_f24, temp_r31->unk38.y); HuAudFXPlay(0x583); - for (;var_r29 != 0; var_r29--) { + for (; var_r29 != 0; var_r29--) { temp_r31->unk38.y += sp44.z; Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); @@ -907,25 +891,27 @@ loop_10: var_f19 += var_f22; var_f22 -= 0.9f; } - if (var_f19 >= (var_f23 / 2.0f)) break; + if (var_f19 >= (var_f23 / 2.0f)) + break; sp40++; } - for (;var_f19 > 0.0f; var_r29++) { + for (; var_f19 > 0.0f; var_r29++) { var_f19 += var_f22; var_f22 -= 0.9f; } temp_r30->unk24.z = sp40; temp_r30->unk24.x = fn_1_1D08(atan2d(temp_f18 - temp_r30->unk10.x, sp44.y - temp_r30->unk10.z)); temp_r30->unk24.y = var_f23 / var_r29; - + while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { HuPrcVSleep(); } goto loop_10; } -void fn_1_3950(void) { +void fn_1_3950(void) +{ Vec sp8C; Vec sp80; Vec sp74; @@ -953,11 +939,11 @@ void fn_1_3950(void) { s32 var_r25; s32 var_r29; s32 var_r26; - unkStruct* temp_r30; - unkStruct3* temp_r27; - unkStruct2* temp_r31; + unkStruct *temp_r30; + unkStruct3 *temp_r27; + unkStruct2 *temp_r31; s32 var_r23; - Process* var_r22; + Process *var_r22; temp_r31 = HuPrcCurrentGet()->user_data; loop_1: @@ -976,7 +962,8 @@ loop_1: } if (((1 << (var_r29 % 32)) & lbl_1_data_340[temp_r31->unk28][var_r24]) != 0) { var_r23 = fn_1_2708(); - } else { + } + else { HuPrcVSleep(); goto loop_1; } @@ -1007,7 +994,8 @@ loop_1: } Hu3DModelPosSet(temp_r31->unk6, temp_f31, var_f18, temp_f30); Hu3DModelPosSet(temp_r31->unk8, temp_f31, -var_f18, temp_f30); - if (var_f18 == (304.52f + temp_r31->unk2C.y)) break; + if (var_f18 == (304.52f + temp_r31->unk2C.y)) + break; HuPrcVSleep(); } Hu3DModelPosSet(temp_r31->unk6, 0.0f, 0.0f, 0.0f); @@ -1017,7 +1005,7 @@ loop_1: Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, 0); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[2], 0.0f, 5.0f, 0); HuPrcSleep(10); - + while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { HuPrcVSleep(); } @@ -1029,7 +1017,8 @@ loop_1: if (var_r26 >= 4) { var_r26 = 0; } - if (lbl_1_bss_4D4[var_r26].unk30 != 3) break; + if (lbl_1_bss_4D4[var_r26].unk30 != 3) + break; } } temp_r27 = &lbl_1_bss_4D4[var_r26]; @@ -1048,7 +1037,7 @@ loop_1: sp70 = fn_1_27C4(var_r29, var_f29, temp_r31->unk38.y); HuAudFXPlay(0x587); - for (;var_r29 != 0; var_r29--) { + for (; var_r29 != 0; var_r29--) { temp_r31->unk38.y += sp70; Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); @@ -1058,7 +1047,7 @@ loop_1: Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[4], 0.0f, 5.0f, 0); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[4], 0.0f, 5.0f, 0); HuPrcSleep(10); - + while (Hu3DMotionTimeGet(temp_r31->unk0) < 24.0f) { HuPrcVSleep(); } @@ -1097,10 +1086,11 @@ loop_1: sp5C += sp58; sp58 -= 0.9f; } - if (sp5C >= 600.0f) break; + if (sp5C >= 600.0f) + break; sp54++; } - for (;sp5C > 0.0f; var_r29++) { + for (; sp5C > 0.0f; var_r29++) { sp5C += sp58; sp58 -= 0.9f; } @@ -1113,45 +1103,52 @@ loop_1: goto loop_1; } -s8 fn_1_4BE4(s32 arg0, s32 arg1) { +s8 fn_1_4BE4(s32 arg0, s32 arg1) +{ s8 var_r30; s8 var_r29; s8 var_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { if (arg1 != 0) { var_r29 = var_r30 = HuPadStkY[temp_r31->unk2C]; - } else { + } + else { var_r29 = var_r30 = HuPadStkX[temp_r31->unk2C]; } (void)var_r30; // used to make the else branch go here instead of returning - } else { + } + else { if (arg1 != 0) { var_r28 = var_r30 = temp_r31->unk89; - } else { + } + else { var_r28 = var_r30 = temp_r31->unk88; } } return var_r30; } -void fn_1_4C9C(Vec* arg0, f32 arg8, f32 arg9) { +void fn_1_4C9C(Vec *arg0, f32 arg8, f32 arg9) +{ f32 temp_f29; - + temp_f29 = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); temp_f29 *= arg9; arg0->x = (temp_f29 * sind(arg8)); arg0->z = (temp_f29 * cosd(arg8)); } -static inline f32 unkInline(void) { +static inline f32 unkInline(void) +{ return 1.0f; // huh? } -s8 fn_1_4E58(s32 arg0, s32 arg1) { +s8 fn_1_4E58(s32 arg0, s32 arg1) +{ Vec spC; f32 sp8; f32 temp_f28; @@ -1161,7 +1158,7 @@ s8 fn_1_4E58(s32 arg0, s32 arg1) { s8 temp_r28; s8 var_r27; s8 var_r26; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { @@ -1176,14 +1173,17 @@ s8 fn_1_4E58(s32 arg0, s32 arg1) { spC.z = (temp_f27 * cosd(temp_f28)); if (arg1 != 0) { var_r27 = var_r30 = spC.z; - } else { + } + else { var_r27 = var_r30 = spC.x; } (void)var_r30; // used to make the else branch go here instead of returning - } else if (arg1 != 0) { + } + else if (arg1 != 0) { var_r26 = var_r30 = temp_r31->unk89; - } else { + } + else { var_r26 = var_r30 = temp_r31->unk88; } return var_r30; @@ -1196,9 +1196,10 @@ static inline void DummyInline2(Vec *arg0, float arg1, float arg2) arg0->z = (arg1 * cosd(arg2)); } -static inline s8 fn_1_4E58_0(s32 arg0) { +static inline s8 fn_1_4E58_0(s32 arg0) +{ Vec spC; - float temp; + float temp; f32 sp8; f32 temp_f28; f32 temp_f27; @@ -1206,7 +1207,7 @@ static inline s8 fn_1_4E58_0(s32 arg0) { s8 temp_r29; s8 temp_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { @@ -1215,17 +1216,19 @@ static inline s8 fn_1_4E58_0(s32 arg0) { temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); temp_f28 -= lbl_1_bss_778; HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); var_r30 = spC.x; - } else { - var_r30 = temp_r31->unk88; - } + } + else { + var_r30 = temp_r31->unk88; + } return var_r30; } -static inline s8 fn_1_4E58_1(s32 arg0) { +static inline s8 fn_1_4E58_1(s32 arg0) +{ Vec spC; - float temp; + float temp; f32 sp8; f32 temp_f28; f32 temp_f27; @@ -1233,7 +1236,7 @@ static inline s8 fn_1_4E58_1(s32 arg0) { s8 temp_r29; s8 temp_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { @@ -1242,94 +1245,106 @@ static inline s8 fn_1_4E58_1(s32 arg0) { temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); temp_f28 -= lbl_1_bss_778; HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); var_r30 = spC.z; - } else { + } + else { var_r30 = temp_r31->unk89; } return var_r30; } -u8 fn_1_525C(s32 arg0, s32 arg1) { +u8 fn_1_525C(s32 arg0, s32 arg1) +{ s8 var_r30; s8 var_r29; s8 var_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { if (arg1 != 0) { var_r29 = var_r30 = HuPadTrigR[temp_r31->unk2C]; - } else { + } + else { var_r29 = var_r30 = HuPadTrigL[temp_r31->unk2C]; } (void)var_r30; // used to make the else branch go here instead of returning - } else if (arg1 != 0) { + } + else if (arg1 != 0) { var_r28 = var_r30 = temp_r31->unk8A; - } else { + } + else { var_r28 = var_r30 = temp_r31->unk8B; } return var_r30; } -u16 fn_1_531C(s32 arg0) { +u16 fn_1_531C(s32 arg0) +{ u16 var_r30; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtnDown[temp_r31->unk2C]; - } else { + } + else { var_r30 = temp_r31->unk8E; } return var_r30; } -u16 fn_1_5388(s32 arg0) { +u16 fn_1_5388(s32 arg0) +{ u16 var_r30; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtn[temp_r31->unk2C]; - } else { + } + else { var_r30 = temp_r31->unk8C; } return var_r30; } -s32 fn_1_53F4(unkStruct3* arg0, f32 arg8, f32 arg9, f32 argA) { +s32 fn_1_53F4(unkStruct3 *arg0, f32 arg8, f32 arg9, f32 argA) +{ Vec sp30; Vec sp24; Vec sp18; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; s32 var_r30; s32 var_r28; f32 var_f27; f32 var_f28; var_r28 = -1; - + for (var_r30 = 0, var_f28 = 10000.0f; var_r30 < 4; var_r30++) { if (var_r30 != arg0->unk24) { temp_r31 = &lbl_1_bss_4D4[var_r30]; HuSetVecF(&sp30, arg8, arg9, argA); HuSetVecF(&sp24, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); HuSubVecF(&sp18, &sp30, &sp24); - if (((var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)))) < (arg0->unk60.x + temp_r31->unk60.x)) && (var_f27 < var_f28)) { + if (((var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)))) < (arg0->unk60.x + temp_r31->unk60.x)) + && (var_f27 < var_f28)) { var_f28 = var_f27; var_r28 = var_r30; arg0->unkA4 = 0; - (void)temp_r31; - (void)temp_r31; + (void)temp_r31; + (void)temp_r31; } } } return var_r28; } -s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { +s32 fn_1_561C(unkStruct3 *arg0, s32 *arg1) +{ Vec sp24; Vec sp18; Vec spC; @@ -1338,14 +1353,14 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { s32 var_r27; s32 var_r28; s32 var_r29; - unkStruct3* temp_r30; + unkStruct3 *temp_r30; var_r27 = -1; var_r29 = 0; var_f28 = 10000.0f; var_r28 = 0; - - for (;var_r29 < 4; var_r29++) { + + for (; var_r29 < 4; var_r29++) { if (var_r29 != arg0->unk24) { temp_r30 = &lbl_1_bss_4D4[var_r29]; HuSetVecF(&sp24, arg0->unk40.x, arg0->unk40.y, arg0->unk40.z); @@ -1365,7 +1380,8 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { return var_r27; } -void fn_1_5838(unkStruct3* arg0) { +void fn_1_5838(unkStruct3 *arg0) +{ Vec spA8; Vec sp9C; Vec sp90; @@ -1386,10 +1402,10 @@ void fn_1_5838(unkStruct3* arg0) { f32 var_f26; s32 var_r25; s32 var_r29; - unkStruct3* temp_r27; - unkStruct3* var_r30; + unkStruct3 *temp_r27; + unkStruct3 *var_r30; s32 var_r24; - + var_r24 = fn_1_561C(arg0, &sp68); if (var_r24 != -1) { var_f20 = fn_1_1D08(atan2d((arg0->unk40.x - arg0->unk4C.x), (arg0->unk40.z - arg0->unk4C.y))); @@ -1397,25 +1413,28 @@ void fn_1_5838(unkStruct3* arg0) { sp54 = var_f26 = arg0->unk4C.y; sp4C = 1.0f; var_r25 = (1.0f + (10.0f / sp4C)); - + while (var_r25 != 0) { var_f27 += sp4C * sind(var_f20); var_f26 += sp4C * cosd(var_f20); HuSetVecF(&spA8, var_f27, arg0->unk40.y, var_f26); - + for (var_r29 = 0; var_r29 < 4; var_r29++) { - if (var_r29 == arg0->unk24) continue; + if (var_r29 == arg0->unk24) + continue; var_r30 = &lbl_1_bss_4D4[var_r29]; HuSetVecF(&sp9C, var_r30->unk40.x, var_r30->unk40.y, var_r30->unk40.z); HuSubVecF(&sp90, &spA8, &sp9C); if (sqrtf((sp90.z * sp90.z) + ((sp90.x * sp90.x) + (sp90.y * sp90.y))) < (arg0->unk60.x + var_r30->unk60.x)) break; } - if (var_r29 < 4) break; + if (var_r29 < 4) + break; AddX = 0.0f; AddZ = 0.0f; MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26); - if ((AddX + AddZ) != 0.0f) goto end; + if ((AddX + AddZ) != 0.0f) + goto end; sp58 = var_f27; sp54 = var_f26; var_r25--; @@ -1425,7 +1444,8 @@ void fn_1_5838(unkStruct3* arg0) { sp60 = var_f20 - var_f25; if (sp60 > 0.0f) { sp5C = -0.5f; - } else { + } + else { sp5C = 0.5f; } if (ABS_INV(var_f20 - var_f25) > 180.0f) { @@ -1441,32 +1461,38 @@ void fn_1_5838(unkStruct3* arg0) { HuSetVecF(&spA8, var_f27, 0.0, var_f26); for (var_r29 = 0; var_r29 < 4; var_r29++) { - if ((var_r29 == arg0->unk24) || (var_r29 == var_r24)) continue; + if ((var_r29 == arg0->unk24) || (var_r29 == var_r24)) + continue; temp_r27 = &lbl_1_bss_4D4[var_r29]; HuSetVecF(&sp9C, temp_r27->unk40.x, 0.0, temp_r27->unk40.z); HuSubVecF(&sp90, &spA8, &sp9C); - if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) < (arg0->unk60.x + temp_r27->unk60.x)) break; + if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) < (arg0->unk60.x + temp_r27->unk60.x)) + break; } - if (var_r29 < 4) break; + if (var_r29 < 4) + break; AddX = 0.0f; AddZ = 0.0f; MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26); - if ((AddX + AddZ) != 0.0f) break; + if ((AddX + AddZ) != 0.0f) + break; sp58 = var_f27; sp54 = var_f26; HuSetVecF(&spA8, arg0->unk4C.x, 0.0, arg0->unk4C.y); HuSetVecF(&sp9C, var_f27, 0.0, var_f26); HuSubVecF(&sp90, &spA8, &sp9C); - if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) > sp50) break; + if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) > sp50) + break; var_f25 += sp5C; } -end: + end: arg0->unk40.x = sp58; arg0->unk40.z = sp54; } } -f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) { +f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) +{ f32 var_f31; f32 var_f30; @@ -1484,7 +1510,8 @@ f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) { return var_f30; } -f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3* arg0) { +f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3 *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1497,8 +1524,8 @@ f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3* arg0) { static inline void PadInline(void) { - float var_f27; - (void)var_f27; + float var_f27; + (void)var_f27; (void)var_f27; (void)var_f27; (void)var_f27; @@ -1515,7 +1542,8 @@ static inline void PadInline(void) } // fn_1_6814: https://decomp.me/scratch/WQPjD -void fn_1_6814(unkStruct3* arg0) { +void fn_1_6814(unkStruct3 *arg0) +{ Vec sp104; Vec spF8; Vec spEC; @@ -1536,15 +1564,15 @@ void fn_1_6814(unkStruct3* arg0) { s32 var_r22; s32 var_r21; s32 var_r20; - unkStruct* temp_r27; + unkStruct *temp_r27; s32 var_r28; - unkStruct3* temp_r29; - unkStruct* var_r30; + unkStruct3 *temp_r29; + unkStruct *var_r30; arg0->unk88 = arg0->unk89 = 0; arg0->unk8B = arg0->unk8A = 0; arg0->unk8C = arg0->unk8E = 0; - + switch (GWPlayerCfg[arg0->unk24].diff) { case 0: var_r22 = 0x3C; @@ -1573,7 +1601,7 @@ void fn_1_6814(unkStruct3* arg0) { spA0 = 350.0f; break; } - + for (var_r28 = 0, sp98 = 10000.0f; var_r28 < 0x20; var_r28++) { temp_r27 = lbl_1_bss_278[var_r28]; if (temp_r27 && (temp_r27->unk6 != -1)) { @@ -1593,8 +1621,9 @@ void fn_1_6814(unkStruct3* arg0) { if (arg0->unkA0 != var_r30->unk6) { if (frandmod(0x64) < 0) { (void)var_r21; // probably debug code - PadInline(); - } else { + PadInline(); + } + else { (void)var_r21; } } @@ -1603,8 +1632,8 @@ void fn_1_6814(unkStruct3* arg0) { sp104.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x + 90.0f))); sp104.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x + 90.0f))); var_f29 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); - spF8.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x - 90.0f))); - spF8.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x - 90.0f))); + spF8.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x - 90.0f))); + spF8.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x - 90.0f))); spA0 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); if (sqrtf((arg0->unk40.x * arg0->unk40.x) + (arg0->unk40.z * arg0->unk40.z)) < 400.0f) { spEC.x = var_f29; @@ -1614,7 +1643,8 @@ void fn_1_6814(unkStruct3* arg0) { if (var_f29 > spA0) { spEC.x = spF8.x; spEC.z = spF8.z; - } else { + } + else { spEC.x = sp104.x; spEC.z = sp104.z; } @@ -1623,16 +1653,17 @@ void fn_1_6814(unkStruct3* arg0) { arg0->unk90.x = spEC.x; arg0->unk90.y = spEC.z; } - + var_f18 = atan2d((arg0->unk90.x - arg0->unk40.x), (arg0->unk90.y - arg0->unk40.z)); - + if (fn_1_53F4(arg0, arg0->unk40.x + arg0->unk7C.x, arg0->unk40.y, arg0->unk40.z + arg0->unk7C.z) != -1) { var_f18 += 90.0f; } - arg0->unk88 = 50.0 * sind(var_f18); + arg0->unk88 = 50.0 * sind(var_f18); arg0->unk89 = -50.0f * cosd(var_f18); } - } else { + } + else { if (arg0->unk9C == 0) { arg0->unk9C = 1; arg0->unk98 = (250.0f + (90.0f * frandf())); @@ -1645,15 +1676,15 @@ void fn_1_6814(unkStruct3* arg0) { arg0->unkA4 = 0; var_f18 += 90.0f; } - arg0->unk88 = 25.0 * sind(var_f18); + arg0->unk88 = 25.0 * sind(var_f18); arg0->unk89 = -25.0 * cosd(var_f18); return; } var_r28 = 0; sp98 = 10000.0f; var_r20 = -1; - - for (;var_r28 < 4; var_r28++) { + + for (; var_r28 < 4; var_r28++) { if (var_r28 != arg0->unk24) { temp_r29 = &lbl_1_bss_4D4[var_r28]; HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z); @@ -1675,20 +1706,18 @@ void fn_1_6814(unkStruct3* arg0) { if ((var_f29 < 200.0f) && (var_f29 > 150.0f)) { var_f18 = atan2d((arg0->unk40.x - temp_r29->unk40.x), (arg0->unk40.z - temp_r29->unk40.z)); (void)var_f29; - arg0->unk88 = 30.0f * sind(var_f18); + arg0->unk88 = 30.0f * sind(var_f18); arg0->unk89 = -30.0f * cosd(var_f18); } } } - - } static inline DummyInline(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, float arg4, float arg5) { float spB8; float spBC; - HuSetVecF(arg0, arg1->x, 0.0, arg1->z); + HuSetVecF(arg0, arg1->x, 0.0, arg1->z); spBC = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); spBC *= (1.0f - arg3); arg0->x = spBC * sind(arg4); @@ -1702,7 +1731,8 @@ static inline DummyInline(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, float arg HuSetVecF(arg1, arg0->x, 0.0, arg0->z); } -void fn_1_7C60(void) { +void fn_1_7C60(void) +{ Vec sp1A0; Vec sp188; Vec sp17C; @@ -1749,18 +1779,18 @@ void fn_1_7C60(void) { f32 var_f21; f32 var_f31; s32 var_r27; - unkStruct3* temp_r30; - unkStruct3* temp_r31; + unkStruct3 *temp_r30; + unkStruct3 *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; temp_r31->unk30 = 0; temp_r31->unk9C = 0; temp_r31->unkA0 = -1; - + while (lbl_1_bss_794 == 0) { HuPrcVSleep(); } - + lbl_1_bss_794 = 2; while (lbl_1_bss_794 == 2) { HuPrcVSleep(); @@ -1790,14 +1820,16 @@ loop_6: CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, 0x40000001U); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[2], 0.0f, 8.0f, 0x40000001U); } - } else if (temp_r31->unk30 != 1) { + } + else if (temp_r31->unk30 != 1) { temp_r31->unk30 = 1; CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[1], 0.0f, 8.0f, 0x40000001U); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[1], 0.0f, 8.0f, 0x40000001U); } temp_r31->unk7C.x += 0.1f * sp1A0.x; temp_r31->unk7C.z += 0.1f * sp1A0.z; - } else if (temp_r31->unk30 != 0) { + } + else if (temp_r31->unk30 != 0) { temp_r31->unk30 = 0; CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0]); Hu3DModelAttrSet(temp_r31->unk0, 0x40000001); @@ -1810,13 +1842,15 @@ loop_6: if (var_f21 > 0.25f) { var_f21 -= 0.25f; } - } else { + } + else { var_f21 -= 0.25f; } if (var_f21 < 0.0f) { HuSetVecF(&temp_r31->unk7C, 0.0, 0.0, 0.0); var_f21 = 0.0f; - } else { + } + else { if (var_f21 > 10.0f) { var_f21 = 10.0f; } @@ -1851,7 +1885,8 @@ loop_6: MapWall(temp_r31->unk60.x, temp_r31->unk40.x, temp_r31->unk40.y + temp_r31->unk60.x, temp_r31->unk40.z); temp_r31->unk40.x += AddX; temp_r31->unk40.z += AddZ; - if ((temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z)) == -1) break; + if ((temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z)) == -1) + break; temp_r31->unk40.x = temp_r31->unk4C.x; temp_r31->unk40.z = temp_r31->unk4C.y; } @@ -1865,7 +1900,8 @@ loop_6: HuAudFXPlay(0x584); Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); - Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778))); + Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, + temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778))); Hu3DModelAttrReset(temp_r31->unkA, 1); Hu3DModelAttrReset(temp_r31->unkA, 0x40000002); HuPrcSleep(10); @@ -1877,7 +1913,7 @@ loop_6: Hu3DModelAttrReset(temp_r31->unk6, 1); Hu3DModelAttrReset(temp_r31->unk8, 1); Hu3DModelShadowDispOn(temp_r31->unk6); - + for (sp134 = 0.0f, sp130 = 1.0f; sp134 < 1; sp134 += 0.05f, sp130 -= 0.1f) { Hu3DModelScaleSet(temp_r31->unk6, 1.0f, sp134, 1.0f); Hu3DModelScaleSet(temp_r31->unk8, 1.0f, -sp134, 1.0f); @@ -1896,8 +1932,8 @@ loop_6: Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[0], 0.0f, 5.0f, 0x40000001); var_r27 = 30; sp12C = fn_1_27C4(var_r27, lbl_1_bss_778, temp_r31->unk54.y); - - for (;var_r27 != 0; var_r27--) { + + for (; var_r27 != 0; var_r27--) { temp_r31->unk54.y += sp12C; Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); @@ -1910,15 +1946,16 @@ loop_6: } CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[5], 0.0f, 5.0f, 0U); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[5], 0.0f, 5.0f, 0); - + while (1) { HuPrcVSleep(); } } } -void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { - HsfanimStruct01* var_r31; +void fn_1_A01C(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ + HsfanimStruct01 *var_r31; f32 var_f29; f32 var_f28; f32 var_f30; @@ -1928,7 +1965,7 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { s16 var_r26; s16 var_r28; s32 var_r27; - unkStruct* temp_r30; + unkStruct *temp_r30; if (particle->unk_34 == 0) { var_r31 = particle->unk_48; @@ -1937,20 +1974,23 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } var_r31 = particle->unk_48; - + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { temp_r30 = lbl_1_bss_278[var_r26]; if (temp_r30 && (temp_r30->unkA != 0)) { for (var_r25 = 0, var_f30 = 0.0f; var_r25 < 4; var_r25++, var_f30 += 45.0f) { for (var_r24 = 0, var_f31 = 0.0f; var_r24 < 8; var_r24++, var_f31 += 45.0f) { for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk14.x == 0.0f) break; + if (var_r31->unk14.x == 0.0f) + break; } - if (var_r28 == particle->unk_30) break; + if (var_r28 == particle->unk_30) + break; if (temp_r30->unkC == 1) { var_f29 = 2.0f + (2.0f * frandf()); var_f28 = 10.0f; - } else { + } + else { var_f29 = 1.0f + frandf(); var_f28 = 3.0f; } @@ -1964,7 +2004,8 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { if (temp_r30->unkC == 1) { var_r31->unk2C = 20.0f + (2.0f * frandf()); var_r31->unk14.y = 0.0f; - } else { + } + else { var_r31->unk2C = 15.0f; var_r31->unk14.y = 0.0f; } @@ -2000,8 +2041,9 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } -void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { - HsfanimStruct01* var_r31; +void fn_1_A618(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ + HsfanimStruct01 *var_r31; f32 var_f31; f32 var_f30; f32 var_f29; @@ -2010,31 +2052,34 @@ void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { s16 var_r25; s16 var_r29; s32 var_r27; - unkStruct* temp_r28; + unkStruct *temp_r28; if (particle->unk_34 == 0) { var_r31 = particle->unk_48; - + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { var_r31->unk14.x = var_r31->unk2C = 0.0f; } } var_r31 = particle->unk_48; - + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { temp_r28 = lbl_1_bss_278[var_r26]; if (temp_r28 && (temp_r28->unkA != 0)) { - + for (var_r25 = 0, var_f28 = 0.0f; var_r25 < 9; var_r25++, var_f28 += 45.0f) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk14.x == 0.0f) break; + if (var_r31->unk14.x == 0.0f) + break; } - if (var_r29 == particle->unk_30) break; + if (var_r29 == particle->unk_30) + break; var_f31 = var_f28; if (var_r25 < 8) { var_f30 = 1.0f + frandf(); var_f29 = 2.0f; - } else { + } + else { var_f30 = var_f29 = 0.0f; } var_r31->unk34.x = temp_r28->unk10.x + (var_f30 * sind(var_f31)); @@ -2077,29 +2122,33 @@ void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } -void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { - HsfanimStruct01* var_r31; +void fn_1_AA88(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ + HsfanimStruct01 *var_r31; f32 var_f31; s16 var_r27; s16 var_r28; - unkStruct2* temp_r29; + unkStruct2 *temp_r29; if (particle->unk_34 == 0) { var_r31 = particle->unk_48; - + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { var_r31->unk14.x = var_r31->unk2C = 0.0f; } } var_r31 = particle->unk_48; - + for (var_r27 = 0; var_r27 < 6; var_r27++) { temp_r29 = &lbl_1_bss_33C[var_r27]; - if (temp_r29->unk20 == 0) continue; + if (temp_r29->unk20 == 0) + continue; for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk14.x == 0.0f) break; + if (var_r31->unk14.x == 0.0f) + break; } - if (var_r28 == particle->unk_30) break; + if (var_r28 == particle->unk_30) + break; var_r31->unk34.x = temp_r29->unk2C.x + (-100.0 * cosd(temp_r29->unk38.y)); var_r31->unk34.y = 98.0f + temp_r29->unk2C.y; var_r31->unk34.z = temp_r29->unk2C.z + (100.0 * sind(temp_r29->unk38.y)); @@ -2111,7 +2160,7 @@ void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { temp_r29->unk20 = 0; } var_r31 = particle->unk_48; - + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { if (0.0f != var_r31->unk14.x) { var_r31->unk2C += var_r31->unk14.y; @@ -2135,18 +2184,19 @@ void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } -void fn_1_ADC8(void) { +void fn_1_ADC8(void) +{ Vec sp14; Vec sp8; f32 var_f31; - void* temp_r28; - Process* var_r29; + void *temp_r28; + Process *var_r29; s32 var_r31; - unkStruct3* temp_r30; + unkStruct3 *temp_r30; fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x588); HuAudFXPlay(0x58B); - + var_r31 = 0; var_f31 = Hu3DMotionMaxTimeGet(lbl_1_bss_79E); for (; var_f31; var_r31++, var_f31--) { @@ -2175,7 +2225,7 @@ void fn_1_ADC8(void) { HuPrcVSleep(); } HuPrcSleep(30); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = &lbl_1_bss_4D4[var_r31]; HuAudPlayerVoicePlay(temp_r30->unk24, 0x128); @@ -2184,14 +2234,17 @@ void fn_1_ADC8(void) { } } -void fn_1_B13C(void) { +void fn_1_B13C(void) +{ HuPrcSleep(0x1E); } -void fn_1_B160(void) { +void fn_1_B160(void) +{ while (1) { while (1) { - if (omSysExitReq != 1) break; + if (omSysExitReq != 1) + break; WipeCreate(2, 0, 0x3C); HuAudFadeOut(0x3E8); HuPrcSleep(0x3C); @@ -2205,7 +2258,8 @@ void fn_1_B160(void) { } } -void fn_1_B1C0(void) { +void fn_1_B1C0(void) +{ s16 temp_r27; s16 temp_r30; s16 var_r29; @@ -2214,7 +2268,7 @@ void fn_1_B1C0(void) { s32 var_r31; lbl_1_bss_794 = 0; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_780[var_r31] = -1; } @@ -2234,7 +2288,7 @@ void fn_1_B1C0(void) { } var_r26 = HuAudSeqPlay(0x43); temp_r30 = MGSeqCreate(3, 0); - + while (MGSeqStatGet(temp_r30) != 0) { HuPrcVSleep(); } @@ -2248,7 +2302,8 @@ void fn_1_B1C0(void) { var_r28++; } } - if ((var_r28 <= 1) || (var_r29 < 0x3B)) break; + if ((var_r28 <= 1) || (var_r29 < 0x3B)) + break; MGSeqParamSet(temp_r27, 1, var_r29-- / 60); lbl_1_bss_790++; HuPrcVSleep(); @@ -2268,19 +2323,21 @@ void fn_1_B1C0(void) { HuAudSeqFadeOut(var_r26, 0x64); MGSeqParamSet(temp_r27, 2, -1); temp_r30 = MGSeqCreate(3, 1); - + while (MGSeqStatGet(temp_r30) != 0) { HuPrcVSleep(); } HuPrcSleep(30); lbl_1_bss_794 = 5; for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (lbl_1_bss_780[var_r31] != -1) break; + if (lbl_1_bss_780[var_r31] != -1) + break; } if (var_r31 < 4) { HuAudSStreamPlay(1); temp_r30 = MGSeqCreate(5, 3, lbl_1_bss_780[0], lbl_1_bss_780[1], lbl_1_bss_780[2], lbl_1_bss_780[3]); - } else { + } + else { HuAudSStreamPlay(4); temp_r30 = MGSeqCreate(3, 2); } @@ -2293,4 +2350,4 @@ void fn_1_B1C0(void) { while (1) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index 395125bc..2041f1b1 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -1,14 +1,14 @@ +#include "game/audio.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/audio.h" #include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" -#include "game/sprite.h" -#include "game/pad.h" -#include "game/hsfman.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/pad.h" +#include "game/sprite.h" #include "game/hsfmotion.h" @@ -21,112 +21,112 @@ typedef struct struct_bss_2A6C StructBss2A6C; typedef struct struct_sp_14C8 StructSp14C8; typedef struct struct_sp_14C8 { - u8 unk0; - u8 unk1; - u8 unk2; - s32 unk4[4]; - StructBss2A6C *unk14; - StructBss2A6C *unk18; - StructSp14C8 *unk1C; + u8 unk0; + u8 unk1; + u8 unk2; + s32 unk4[4]; + StructBss2A6C *unk14; + StructBss2A6C *unk18; + StructSp14C8 *unk1C; } StructSp14C8; typedef struct work_19C8 { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; - s32 unk24; - s32 unk28; - s32 unk2C; - u8 unk30[0x10]; - float unk40; - s32 unk44; - StructBss2A6C *unk48[2]; - u8 unk50[8][2]; - u8 unk60; - u8 unk61; - u8 unk62; - u8 unk63[2]; - u8 unk65[2]; - s32 unk68; - s32 unk6C; - u8 unk70; - u8 unk71; - u8 unk72; - s32 unk74; - u8 unk78; - u8 unk79; - s32 unk7C; - s32 unk80; - s32 unk84; - s32 unk88; - s32 unk8C; - s32 unk90; - s32 unk94; - float unk98; - float unk9C; - float unkA0; - s16 unkA4; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + u8 unk30[0x10]; + float unk40; + s32 unk44; + StructBss2A6C *unk48[2]; + u8 unk50[8][2]; + u8 unk60; + u8 unk61; + u8 unk62; + u8 unk63[2]; + u8 unk65[2]; + s32 unk68; + s32 unk6C; + u8 unk70; + u8 unk71; + u8 unk72; + s32 unk74; + u8 unk78; + u8 unk79; + s32 unk7C; + s32 unk80; + s32 unk84; + s32 unk88; + s32 unk8C; + s32 unk90; + s32 unk94; + float unk98; + float unk9C; + float unkA0; + s16 unkA4; } Work19C8; typedef struct struct_bss_2A6C { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - s32 unk8[4]; - union { - s8 unk18; - u8 unk18_u; - }; - - Vec unk1C; - u32 unk28; - StructSp14C8 *unk2C; - StructBss2A6C *unk30; - StructBss2A6C *unk34; - StructBss2A6C *unk38; - StructBss2A6C *unk3C; - StructBss2A6C *unk40; - StructBss2A6C *unk44; - StructBss2A6C *unk48; - StructBss2A6C *unk4C; - Work19C8 *unk50; + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + s32 unk8[4]; + union { + s8 unk18; + u8 unk18_u; + }; + + Vec unk1C; + u32 unk28; + StructSp14C8 *unk2C; + StructBss2A6C *unk30; + StructBss2A6C *unk34; + StructBss2A6C *unk38; + StructBss2A6C *unk3C; + StructBss2A6C *unk40; + StructBss2A6C *unk44; + StructBss2A6C *unk48; + StructBss2A6C *unk4C; + Work19C8 *unk50; } StructBss2A6C; typedef struct struct_bss_2684 { - float unk0; - float unk4; - s32 unk8; - s32 unkC; - u8 unk10; + float unk0; + float unk4; + s32 unk8; + s32 unkC; + u8 unk10; } StructBss2684; typedef struct struct_bss_100 { - u8 unk0; - Vec unk4; - Vec unk10; - u8 unk1C; - u8 unk1D; + u8 unk0; + Vec unk4; + Vec unk10; + u8 unk1C; + u8 unk1D; } StructBss100; typedef struct struct_bss_b8 { - s32 unk0; - s32 unk4; - float unk8; - Vec unkC; + s32 unk0; + s32 unk4; + float unk8; + Vec unkC; } StructBssB8; typedef struct struct_bss_48 { - s32 unk0; - float unk4[3]; + s32 unk0; + float unk4[3]; } StructBss48; StructBss2A6C *lbl_1_bss_7884[12]; @@ -159,2037 +159,2054 @@ s32 lbl_1_data_4[2] = { -1, -1 }; s32 lbl_1_data_C[4] = { 0, 1, 2, 3 }; float lbl_1_data_1C[7] = { 1000, 1000, 1000, 0, 0, 0, 30 }; -const Vec lbl_1_rodata_10[2] = { - 0, 7955, 3436, - 0, -0.898794f, -0.43837115f -}; +const Vec lbl_1_rodata_10[2] = { 0, 7955, 3436, 0, -0.898794f, -0.43837115f }; -const GXColor lbl_1_rodata_28 = { - 0, 0, 0, 255 -}; +const GXColor lbl_1_rodata_28 = { 0, 0, 0, 255 }; -const Vec lbl_1_rodata_2C[2] = { - 0, 5966.25f, 3436, - 0, -0.6740955f, -0.43837115f -}; +const Vec lbl_1_rodata_2C[2] = { 0, 5966.25f, 3436, 0, -0.6740955f, -0.43837115f }; -const GXColor lbl_1_rodata_44 = { - 0, 0, 0, 255 -}; +const GXColor lbl_1_rodata_44 = { 0, 0, 0, 255 }; void fn_1_A0(s32 arg0) { - Mtx44 sp10C; - Mtx44 spCC; - Mtx44 sp8C; - Mtx44 sp4C; - Mtx44 spC; - CameraData *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - - MTXRotDeg(sp8C, 'y', HuPadSubStkX[0]/16.0); - MTXRotDeg(spCC, 'x', HuPadSubStkY[0]/-16.0); - MTXTrans(spC, (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0)-((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0))*10.0, - (((HuPadBtn[0] & PAD_BUTTON_UP) != 0)-((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0))*10.0, - ((HuPadTrigL[0]-HuPadTrigR[0])/128.0)*30.0); - MTXConcat(spCC, sp8C, sp4C); - MTXConcat(spC, sp4C, sp10C); - for(temp_r30=0, temp_r29=1; temp_r30<16; temp_r30++, temp_r29 <<= 1) { - if(arg0 & temp_r29) { - temp_r31 = &Hu3DCamera[temp_r30]; - MTXMultVec(sp10C, &temp_r31->pos, &temp_r31->pos); - MTXMultVec(sp4C, &temp_r31->up, &temp_r31->up); - MTXMultVec(sp10C, &temp_r31->target, &temp_r31->target); - } - } - (void)temp_r28; - (void)temp_r27; - (void)temp_r26; - (void)temp_r25; - (void)temp_r28; - (void)temp_r27; - (void)temp_r26; - (void)temp_r25; + Mtx44 sp10C; + Mtx44 spCC; + Mtx44 sp8C; + Mtx44 sp4C; + Mtx44 spC; + CameraData *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + + MTXRotDeg(sp8C, 'y', HuPadSubStkX[0] / 16.0); + MTXRotDeg(spCC, 'x', HuPadSubStkY[0] / -16.0); + MTXTrans(spC, (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)) * 10.0, + (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)) * 10.0, ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0) * 30.0); + MTXConcat(spCC, sp8C, sp4C); + MTXConcat(spC, sp4C, sp10C); + for (temp_r30 = 0, temp_r29 = 1; temp_r30 < 16; temp_r30++, temp_r29 <<= 1) { + if (arg0 & temp_r29) { + temp_r31 = &Hu3DCamera[temp_r30]; + MTXMultVec(sp10C, &temp_r31->pos, &temp_r31->pos); + MTXMultVec(sp4C, &temp_r31->up, &temp_r31->up); + MTXMultVec(sp10C, &temp_r31->target, &temp_r31->target); + } + } + (void)temp_r28; + (void)temp_r27; + (void)temp_r26; + (void)temp_r25; + (void)temp_r28; + (void)temp_r27; + (void)temp_r26; + (void)temp_r25; } s32 fn_1_38C(u8 *arg0, s32 *arg1) { - s32 temp_r28; - s32 temp_r27 = rand8()%4; - - if(!arg0 || *arg0 == 0) { - return 0; - } - for(temp_r28=0; temp_r28<4; temp_r28++) { - s32 temp_r31 = (temp_r28+temp_r27)%4; - if(*arg0 & (1 << temp_r31)) { - *arg0 = 1 << temp_r31; - if(arg1) { - arg1[(temp_r31+1)%4] = arg1[(temp_r31+2)%4] = arg1[(temp_r31+3)%4] = 0; - } - return temp_r31; - } - } - return 0; + s32 temp_r28; + s32 temp_r27 = rand8() % 4; + + if (!arg0 || *arg0 == 0) { + return 0; + } + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + s32 temp_r31 = (temp_r28 + temp_r27) % 4; + if (*arg0 & (1 << temp_r31)) { + *arg0 = 1 << temp_r31; + if (arg1) { + arg1[(temp_r31 + 1) % 4] = arg1[(temp_r31 + 2) % 4] = arg1[(temp_r31 + 3) % 4] = 0; + } + return temp_r31; + } + } + return 0; } s32 fn_1_4C0(u8 *arg0, s32 *arg1) { - s32 temp_r31; - - s32 temp_r28 = rand8()%4; - if(!arg0 || *arg0 == 0) { - return 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - s32 temp_r29 = (temp_r31+temp_r28)%4; - if(*arg0 & (1 << temp_r29)) { - return arg1[temp_r29]; - } - } - return 0; + s32 temp_r31; + + s32 temp_r28 = rand8() % 4; + if (!arg0 || *arg0 == 0) { + return 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + s32 temp_r29 = (temp_r31 + temp_r28) % 4; + if (*arg0 & (1 << temp_r29)) { + return arg1[temp_r29]; + } + } + return 0; } #pragma dont_inline on s32 fn_1_57C(s8 arg0, float arg1, StructBss2A6C *arg2, StructBss2A6C **arg3) { - StructBss2A6C *temp_r31; - if(arg3) { - *arg3 = NULL; - } - if(arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { - return 1; - } - for(temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { - if(arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { - if(temp_r31->unk1C.y > arg1-1.0f && temp_r31->unk1C.y < arg1+1.0f) { - if(arg3) { - *arg3 = temp_r31; - } - return 1; - } - } - temp_r31 = temp_r31->unk48; - if(!temp_r31) { - continue; - } - if(temp_r31->unk1C.y >= arg1+1.0f) { - break; - } - } - return 0; + StructBss2A6C *temp_r31; + if (arg3) { + *arg3 = NULL; + } + if (arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { + return 1; + } + for (temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { + if (arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { + if (temp_r31->unk1C.y > arg1 - 1.0f && temp_r31->unk1C.y < arg1 + 1.0f) { + if (arg3) { + *arg3 = temp_r31; + } + return 1; + } + } + temp_r31 = temp_r31->unk48; + if (!temp_r31) { + continue; + } + if (temp_r31->unk1C.y >= arg1 + 1.0f) { + break; + } + } + return 0; } #pragma dont_inline off - static inline s32 fn_1_57C_inline(s8 arg0, float arg1, StructBss2A6C *arg2, StructBss2A6C **arg3) { - StructBss2A6C *temp_r31; - if(arg3) { - *arg3 = NULL; - } - if(arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { - return 1; - } - for(temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { - if(arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { - if(temp_r31->unk1C.y > arg1-1.0f && temp_r31->unk1C.y < arg1+1.0f) { - if(arg3) { - *arg3 = temp_r31; - } - return 1; - } - } - temp_r31 = temp_r31->unk48; - if(!temp_r31) { - continue; - } - if(temp_r31->unk1C.y >= arg1+1.0f) { - break; - } - } - return 0; + StructBss2A6C *temp_r31; + if (arg3) { + *arg3 = NULL; + } + if (arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { + return 1; + } + for (temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { + if (arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { + if (temp_r31->unk1C.y > arg1 - 1.0f && temp_r31->unk1C.y < arg1 + 1.0f) { + if (arg3) { + *arg3 = temp_r31; + } + return 1; + } + } + temp_r31 = temp_r31->unk48; + if (!temp_r31) { + continue; + } + if (temp_r31->unk1C.y >= arg1 + 1.0f) { + break; + } + } + return 0; } void fn_1_6D0(s8 arg0, float arg1, StructBss2A6C *arg2) { - StructBss2A6C *temp_r31; - StructBss2A6C *temp_r30; - if(arg2->unk4C == NULL) { - lbl_1_bss_7884[arg2->unk18] = arg2->unk48; - } else { - arg2->unk4C->unk48 = arg2->unk48; - } - if(arg2->unk48 != NULL) { - arg2->unk48->unk4C = arg2->unk4C; - } - for(temp_r31=lbl_1_bss_7884[arg0], temp_r30 = NULL; temp_r31; temp_r31=temp_r31->unk48) { - if(temp_r31->unk1C.y > arg1) { - break; - } - temp_r30 = temp_r31; - } - arg2->unk18 = arg0; - arg2->unk1C.y = arg1; - arg2->unk48 = temp_r31; - if(arg2->unk48) { - arg2->unk48->unk4C = arg2; - } - arg2->unk4C = temp_r30; - if(arg2->unk4C) { - arg2->unk4C->unk48 = arg2; - } - if(lbl_1_bss_7884[arg0] == arg2->unk48) { - lbl_1_bss_7884[arg0] = arg2; - } + StructBss2A6C *temp_r31; + StructBss2A6C *temp_r30; + if (arg2->unk4C == NULL) { + lbl_1_bss_7884[arg2->unk18] = arg2->unk48; + } + else { + arg2->unk4C->unk48 = arg2->unk48; + } + if (arg2->unk48 != NULL) { + arg2->unk48->unk4C = arg2->unk4C; + } + for (temp_r31 = lbl_1_bss_7884[arg0], temp_r30 = NULL; temp_r31; temp_r31 = temp_r31->unk48) { + if (temp_r31->unk1C.y > arg1) { + break; + } + temp_r30 = temp_r31; + } + arg2->unk18 = arg0; + arg2->unk1C.y = arg1; + arg2->unk48 = temp_r31; + if (arg2->unk48) { + arg2->unk48->unk4C = arg2; + } + arg2->unk4C = temp_r30; + if (arg2->unk4C) { + arg2->unk4C->unk48 = arg2; + } + if (lbl_1_bss_7884[arg0] == arg2->unk48) { + lbl_1_bss_7884[arg0] = arg2; + } } - s32 fn_1_7F8(StructBss2A6C *arg0, StructSp14C8 *arg1) { - s32 temp_r29; - Work19C8 *temp_r28; - Work19C8 *temp_r27; - Work19C8 *temp_r26; - Work19C8 *temp_r25; - s32 temp_r23; - temp_r29 = 0; - if(!arg0) { - return temp_r29; - } - if(arg0->unk0 == 0) { - return temp_r29; - } - if(lbl_1_bss_7884[arg0->unk18] == arg0) { - lbl_1_bss_7884[arg0->unk18] = arg0->unk48; - } - if(arg0->unk4C) { - arg0->unk4C->unk48 = arg0->unk48; - } - if(arg0->unk48) { - arg0->unk48->unk4C = arg0->unk4C; - } - if(arg0->unk38) { - arg0->unk38->unk3C = NULL; - } - if(arg0->unk3C) { - arg0->unk3C->unk38 = NULL; - } - if(arg0->unk44) { - arg0->unk44->unk40 = NULL; - } - if(arg0->unk40) { - arg0->unk40->unk44 = NULL; - } - - if(arg0->unk0 >= 1 && arg0->unk0 <= 4) { - temp_r28 = lbl_1_bss_34[0]->data; - temp_r27 = lbl_1_bss_34[1]->data; - temp_r26 = lbl_1_bss_34[2]->data; - temp_r25 = lbl_1_bss_34[3]->data; - temp_r29 = (fn_1_4C0(&arg1->unk2, arg1->unk4) > 0) ? 2 : 1; - if(lbl_1_bss_18 == -1) { - if(arg1->unk2 & 0x1) { - temp_r28->unk24 += temp_r29; - temp_r28->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - if(arg1->unk2 & 0x2) { - temp_r27->unk24 += temp_r29; - temp_r27->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - if(arg1->unk2 & 0x4) { - temp_r26->unk24 += temp_r29; - temp_r26->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - if(arg1->unk2 & 0x8) { - temp_r25->unk24 += temp_r29; - temp_r25->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - } - for(temp_r23=0; temp_r23<2; temp_r23++) { - lbl_1_bss_100[lbl_1_bss_FC].unk0 = arg0->unk0; - lbl_1_bss_100[lbl_1_bss_FC].unk4.x = ((arg0->unk18*100)-500.0)-50.0; - lbl_1_bss_100[lbl_1_bss_FC].unk4.y = ((100.0f*arg0->unk1C.y)-500.0f)+50.0f; - lbl_1_bss_100[lbl_1_bss_FC].unk4.z = 120; - lbl_1_bss_100[lbl_1_bss_FC].unk10.x = ((rand8()/255.0)*24.0)-12; - lbl_1_bss_100[lbl_1_bss_FC].unk10.y = (rand8()/255.0)*16.0; - lbl_1_bss_100[lbl_1_bss_FC].unk10.z = ((rand8()/255.0)*10.0)+6; - lbl_1_bss_100[lbl_1_bss_FC].unk1C = rand8(); - lbl_1_bss_100[lbl_1_bss_FC].unk1D = rand8(); - lbl_1_bss_FC++; - lbl_1_bss_FC = (lbl_1_bss_FC >= 300) ? 0 : lbl_1_bss_FC; - } - } - arg0->unk0 = arg0->unk1 = arg0->unk2 = arg0->unk3 = 0; - arg0->unk48 = arg0->unk4C = NULL; - return temp_r29; + s32 temp_r29; + Work19C8 *temp_r28; + Work19C8 *temp_r27; + Work19C8 *temp_r26; + Work19C8 *temp_r25; + s32 temp_r23; + temp_r29 = 0; + if (!arg0) { + return temp_r29; + } + if (arg0->unk0 == 0) { + return temp_r29; + } + if (lbl_1_bss_7884[arg0->unk18] == arg0) { + lbl_1_bss_7884[arg0->unk18] = arg0->unk48; + } + if (arg0->unk4C) { + arg0->unk4C->unk48 = arg0->unk48; + } + if (arg0->unk48) { + arg0->unk48->unk4C = arg0->unk4C; + } + if (arg0->unk38) { + arg0->unk38->unk3C = NULL; + } + if (arg0->unk3C) { + arg0->unk3C->unk38 = NULL; + } + if (arg0->unk44) { + arg0->unk44->unk40 = NULL; + } + if (arg0->unk40) { + arg0->unk40->unk44 = NULL; + } + + if (arg0->unk0 >= 1 && arg0->unk0 <= 4) { + temp_r28 = lbl_1_bss_34[0]->data; + temp_r27 = lbl_1_bss_34[1]->data; + temp_r26 = lbl_1_bss_34[2]->data; + temp_r25 = lbl_1_bss_34[3]->data; + temp_r29 = (fn_1_4C0(&arg1->unk2, arg1->unk4) > 0) ? 2 : 1; + if (lbl_1_bss_18 == -1) { + if (arg1->unk2 & 0x1) { + temp_r28->unk24 += temp_r29; + temp_r28->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + if (arg1->unk2 & 0x2) { + temp_r27->unk24 += temp_r29; + temp_r27->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + if (arg1->unk2 & 0x4) { + temp_r26->unk24 += temp_r29; + temp_r26->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + if (arg1->unk2 & 0x8) { + temp_r25->unk24 += temp_r29; + temp_r25->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + } + for (temp_r23 = 0; temp_r23 < 2; temp_r23++) { + lbl_1_bss_100[lbl_1_bss_FC].unk0 = arg0->unk0; + lbl_1_bss_100[lbl_1_bss_FC].unk4.x = ((arg0->unk18 * 100) - 500.0) - 50.0; + lbl_1_bss_100[lbl_1_bss_FC].unk4.y = ((100.0f * arg0->unk1C.y) - 500.0f) + 50.0f; + lbl_1_bss_100[lbl_1_bss_FC].unk4.z = 120; + lbl_1_bss_100[lbl_1_bss_FC].unk10.x = ((rand8() / 255.0) * 24.0) - 12; + lbl_1_bss_100[lbl_1_bss_FC].unk10.y = (rand8() / 255.0) * 16.0; + lbl_1_bss_100[lbl_1_bss_FC].unk10.z = ((rand8() / 255.0) * 10.0) + 6; + lbl_1_bss_100[lbl_1_bss_FC].unk1C = rand8(); + lbl_1_bss_100[lbl_1_bss_FC].unk1D = rand8(); + lbl_1_bss_FC++; + lbl_1_bss_FC = (lbl_1_bss_FC >= 300) ? 0 : lbl_1_bss_FC; + } + } + arg0->unk0 = arg0->unk1 = arg0->unk2 = arg0->unk3 = 0; + arg0->unk48 = arg0->unk4C = NULL; + return temp_r29; } void fn_1_EC0(Work19C8 *arg0) { - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r26; - s32 temp_r27; - s32 temp_r25; - u8 temp_r24; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r26; + s32 temp_r27; + s32 temp_r25; + u8 temp_r24; - for(temp_r30=0; temp_r30<8; temp_r30++) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - arg0->unk50[temp_r30][temp_r29] = 1; - } - } - for(temp_r30=1; temp_r30<4; temp_r30++) { - for(temp_r29=0; temp_r29<4;) { - temp_r26 = rand8()%8; - temp_r28 = rand8()%2; - if(arg0->unk50[temp_r26][temp_r28] == 1) { - arg0->unk50[temp_r26][temp_r28] = temp_r30+1; - temp_r29++; - } - } - } - for(temp_r30=0; temp_r30<8; temp_r30++) { - if(arg0->unk50[temp_r30][0] == arg0->unk50[temp_r30][1]) { - do { - temp_r29 = rand8()%8; - } while(temp_r30 == temp_r29 || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][0] || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][1]); - - temp_r27 = rand8()%2; - temp_r25 = arg0->unk50[temp_r30][0]; - temp_r24 = arg0->unk50[temp_r29][temp_r27]; - arg0->unk50[temp_r30][rand8()%2] = temp_r24; - arg0->unk50[temp_r29][temp_r27] = temp_r25; - } - } + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + arg0->unk50[temp_r30][temp_r29] = 1; + } + } + for (temp_r30 = 1; temp_r30 < 4; temp_r30++) { + for (temp_r29 = 0; temp_r29 < 4;) { + temp_r26 = rand8() % 8; + temp_r28 = rand8() % 2; + if (arg0->unk50[temp_r26][temp_r28] == 1) { + arg0->unk50[temp_r26][temp_r28] = temp_r30 + 1; + temp_r29++; + } + } + } + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + if (arg0->unk50[temp_r30][0] == arg0->unk50[temp_r30][1]) { + do { + temp_r29 = rand8() % 8; + } while ( + temp_r30 == temp_r29 || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][0] || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][1]); + + temp_r27 = rand8() % 2; + temp_r25 = arg0->unk50[temp_r30][0]; + temp_r24 = arg0->unk50[temp_r29][temp_r27]; + arg0->unk50[temp_r30][rand8() % 2] = temp_r24; + arg0->unk50[temp_r29][temp_r27] = temp_r25; + } + } } void fn_1_10B8(Work19C8 *arg0) { - s32 temp_r31; - s32 temp_r30; - u8 sp16C[12][17] = {}; - u8 sp6C[12] = {}; - s32 temp_r22 = (arg0->unk48[0]->unk18-4 < 0) ? 0 : (arg0->unk48[0]->unk18-4); - s32 temp_r21 = (arg0->unk48[0]->unk18+4 > 11) ? 11 : (arg0->unk48[0]->unk18+4); - s32 sp44[2] = {}; - s32 sp3C[2] = {}; - s32 sp34[2] = { 9, 9 }; - s32 temp_r20 = 0; - s32 temp_r19 = 0; - s32 temp_r18 = 0; - u8 sp8[2]; - sp44[0] = sp44[1] = temp_r22; - sp3C[0] = sp3C[1] = temp_r21; - sp34[0] = arg0->unk48[0]->unk1C.y-0.5; - sp34[1] = arg0->unk48[0]->unk1C.y-1.5; - sp34[1] = (sp34[1] < 0) ? 0 : sp34[1]; - sp8[0] = arg0->unk48[0]->unk0; - sp8[1] = arg0->unk48[1]->unk0; - for(temp_r31=temp_r22; temp_r31<=temp_r21; temp_r31++) { - StructBss2A6C *temp_r27; - s32 temp_r26; - for(temp_r27 = lbl_1_bss_7884[temp_r31], temp_r26=0; temp_r27; temp_r27=temp_r27->unk48) { - if(temp_r27->unk1 & 0x2) { - continue; - } - sp16C[temp_r31][temp_r26] = temp_r27->unk0; - temp_r26++; - } - sp6C[temp_r31] = temp_r26; - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r26 > sp34[temp_r30]) { - if(temp_r31 <= arg0->unk48[0]->unk18) { - sp44[temp_r30] = temp_r31+1; - } else { - sp3C[temp_r30] = temp_r31-1; - } - } - } - } - for(temp_r30=0; temp_r30<4; temp_r30++) { - for(temp_r31=sp44[temp_r30==2]; temp_r31<=sp3C[temp_r30==2]; temp_r31++) { - if(temp_r31 != sp44[temp_r30==2] || temp_r30 != 3) { - if(temp_r31 != sp3C[temp_r30==2]-1 || temp_r30 != 1) { - s32 temp_r25; - s32 spAC[4][12]; - for(temp_r25=0; temp_r25<2; temp_r25++) { - s32 sp5C[4] = { 0, 1, 0, -1 }; - s32 sp4C[4] = { 1, 0, -1, 0 }; - s32 temp_r29; - s32 temp_r28; - s32 temp_r24; - s32 temp_r23; - - spAC[temp_r30][temp_r31] = arg0->unk48[0]->unk18-temp_r31; - spAC[temp_r30][temp_r31] = (spAC[temp_r30][temp_r31] < 0) ? (-spAC[temp_r30][temp_r31]) : spAC[temp_r30][temp_r31]; - spAC[temp_r30][temp_r31] = (spAC[temp_r30][temp_r31] < 3) ? ((3-spAC[temp_r30][temp_r31])*(3-spAC[temp_r30][temp_r31])) : 0; - spAC[temp_r30][temp_r31] *= (arg0->unk20 == 0) ? 4 : ((arg0->unk20 == 1) ? 2 : 1); - temp_r24 = temp_r31+((temp_r25 == 1) ? sp5C[temp_r30] : 0); - for(temp_r28=temp_r24-2; temp_r28<=temp_r24+2; temp_r28++) { - temp_r23 = sp6C[temp_r24]+((temp_r25 == 1) ? sp4C[temp_r30] : 0); - for(temp_r29=temp_r23-2; temp_r29<=temp_r23+2; temp_r29++) { - if(temp_r28 < 0 || temp_r28 >= 12 || temp_r29 < 0 || temp_r29 >= 9) { - continue; - } - if(sp16C[temp_r28][temp_r29] != 5 && arg0->unk48[temp_r25]->unk0 == sp16C[temp_r28][temp_r29]) { - u8 sp91[5][5] = { - 0, 3, 0, 3, 0, - 2, 10, 24, 10, 2, - 10, 24, 0, 24, 10, - 2, 10, 24, 10, 2, - 0, 2, 10, 2, 0 - }; - spAC[temp_r30][temp_r31] += sp91[temp_r28-(temp_r24-2)][temp_r29-(temp_r23-2)]; - } - if(sp16C[temp_r28][temp_r29] == 5) { - u8 sp78[5][5] = { - 0, 0, 0, 0, 0, - 0, 40, 40, 40, 0, - 0, 40, 0, 40, 0, - 0, 40, 40, 40, 0, - 0, 0, 0, 0, 0 - }; - spAC[temp_r30][temp_r31] += sp78[temp_r28-(temp_r24-2)][temp_r29-(temp_r23-2)]/((arg0->unk20 == 0) ? 4 : 1); - } - } - } - } - if(spAC[temp_r30][temp_r31] > temp_r20) { - temp_r20 = spAC[temp_r30][temp_r31]; - temp_r18 = temp_r30; - temp_r19 = temp_r31; - } - } - } - } - } - arg0->unk7C = temp_r19; - arg0->unk80 = temp_r18; + s32 temp_r31; + s32 temp_r30; + u8 sp16C[12][17] = {}; + u8 sp6C[12] = {}; + s32 temp_r22 = (arg0->unk48[0]->unk18 - 4 < 0) ? 0 : (arg0->unk48[0]->unk18 - 4); + s32 temp_r21 = (arg0->unk48[0]->unk18 + 4 > 11) ? 11 : (arg0->unk48[0]->unk18 + 4); + s32 sp44[2] = {}; + s32 sp3C[2] = {}; + s32 sp34[2] = { 9, 9 }; + s32 temp_r20 = 0; + s32 temp_r19 = 0; + s32 temp_r18 = 0; + u8 sp8[2]; + sp44[0] = sp44[1] = temp_r22; + sp3C[0] = sp3C[1] = temp_r21; + sp34[0] = arg0->unk48[0]->unk1C.y - 0.5; + sp34[1] = arg0->unk48[0]->unk1C.y - 1.5; + sp34[1] = (sp34[1] < 0) ? 0 : sp34[1]; + sp8[0] = arg0->unk48[0]->unk0; + sp8[1] = arg0->unk48[1]->unk0; + for (temp_r31 = temp_r22; temp_r31 <= temp_r21; temp_r31++) { + StructBss2A6C *temp_r27; + s32 temp_r26; + for (temp_r27 = lbl_1_bss_7884[temp_r31], temp_r26 = 0; temp_r27; temp_r27 = temp_r27->unk48) { + if (temp_r27->unk1 & 0x2) { + continue; + } + sp16C[temp_r31][temp_r26] = temp_r27->unk0; + temp_r26++; + } + sp6C[temp_r31] = temp_r26; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r26 > sp34[temp_r30]) { + if (temp_r31 <= arg0->unk48[0]->unk18) { + sp44[temp_r30] = temp_r31 + 1; + } + else { + sp3C[temp_r30] = temp_r31 - 1; + } + } + } + } + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + for (temp_r31 = sp44[temp_r30 == 2]; temp_r31 <= sp3C[temp_r30 == 2]; temp_r31++) { + if (temp_r31 != sp44[temp_r30 == 2] || temp_r30 != 3) { + if (temp_r31 != sp3C[temp_r30 == 2] - 1 || temp_r30 != 1) { + s32 temp_r25; + s32 spAC[4][12]; + for (temp_r25 = 0; temp_r25 < 2; temp_r25++) { + s32 sp5C[4] = { 0, 1, 0, -1 }; + s32 sp4C[4] = { 1, 0, -1, 0 }; + s32 temp_r29; + s32 temp_r28; + s32 temp_r24; + s32 temp_r23; + + spAC[temp_r30][temp_r31] = arg0->unk48[0]->unk18 - temp_r31; + spAC[temp_r30][temp_r31] = (spAC[temp_r30][temp_r31] < 0) ? (-spAC[temp_r30][temp_r31]) : spAC[temp_r30][temp_r31]; + spAC[temp_r30][temp_r31] + = (spAC[temp_r30][temp_r31] < 3) ? ((3 - spAC[temp_r30][temp_r31]) * (3 - spAC[temp_r30][temp_r31])) : 0; + spAC[temp_r30][temp_r31] *= (arg0->unk20 == 0) ? 4 : ((arg0->unk20 == 1) ? 2 : 1); + temp_r24 = temp_r31 + ((temp_r25 == 1) ? sp5C[temp_r30] : 0); + for (temp_r28 = temp_r24 - 2; temp_r28 <= temp_r24 + 2; temp_r28++) { + temp_r23 = sp6C[temp_r24] + ((temp_r25 == 1) ? sp4C[temp_r30] : 0); + for (temp_r29 = temp_r23 - 2; temp_r29 <= temp_r23 + 2; temp_r29++) { + if (temp_r28 < 0 || temp_r28 >= 12 || temp_r29 < 0 || temp_r29 >= 9) { + continue; + } + if (sp16C[temp_r28][temp_r29] != 5 && arg0->unk48[temp_r25]->unk0 == sp16C[temp_r28][temp_r29]) { + u8 sp91[5][5] = { 0, 3, 0, 3, 0, 2, 10, 24, 10, 2, 10, 24, 0, 24, 10, 2, 10, 24, 10, 2, 0, 2, 10, 2, 0 }; + spAC[temp_r30][temp_r31] += sp91[temp_r28 - (temp_r24 - 2)][temp_r29 - (temp_r23 - 2)]; + } + if (sp16C[temp_r28][temp_r29] == 5) { + u8 sp78[5][5] = { 0, 0, 0, 0, 0, 0, 40, 40, 40, 0, 0, 40, 0, 40, 0, 0, 40, 40, 40, 0, 0, 0, 0, 0, 0 }; + spAC[temp_r30][temp_r31] + += sp78[temp_r28 - (temp_r24 - 2)][temp_r29 - (temp_r23 - 2)] / ((arg0->unk20 == 0) ? 4 : 1); + } + } + } + } + if (spAC[temp_r30][temp_r31] > temp_r20) { + temp_r20 = spAC[temp_r30][temp_r31]; + temp_r18 = temp_r30; + temp_r19 = temp_r31; + } + } + } + } + } + arg0->unk7C = temp_r19; + arg0->unk80 = temp_r18; } -void fn_1_19C4(omObjData *object) -{ - -} +void fn_1_19C4(omObjData *object) { } void fn_1_19C8(omObjData *object) { - Work19C8 *temp_r31; - s32 sp19C; - s32 spC4; - s32 spC0; - - temp_r31 = object->data; - temp_r31->unk28 = temp_r31->unk24; + Work19C8 *temp_r31; + s32 sp19C; + s32 spC4; + s32 spC0; - temp_r31->unk65[0] = (temp_r31->unk65[0] == 0 || temp_r31->unk65[0] >= 15) ? 0 : temp_r31->unk65[0]+1; - if(temp_r31->unk1C != -1) { - sp19C = (HuPadStkX[temp_r31->unk1C] > 26)-(HuPadStkX[temp_r31->unk1C] < -26); - } else { - sp19C = (temp_r31->unk72 == 1 && temp_r31->unk7C != -1) ? ((temp_r31->unk48[0]) ? ((temp_r31->unk7C < temp_r31->unk48[0]->unk18) ? -1 : (temp_r31->unk7C > temp_r31->unk48[0]->unk18) ? 1 : 0) : 0) : 0; - } - temp_r31->unk88 = ((temp_r31->unk72 == 1 && temp_r31->unk48[0]) && temp_r31->unk7C == temp_r31->unk48[0]->unk18) ? (temp_r31->unk88+1) : 0; - if(sp19C != temp_r31->unk0){ - temp_r31->unkC = (sp19C == 0) ? 0 : 1; - } else { - temp_r31->unkC = (temp_r31->unk0 != 0) ? temp_r31->unkC+1 : 0; - } - temp_r31->unkC = (temp_r31->unkC >= 17) ? 14 : temp_r31->unkC; - temp_r31->unk0 = sp19C; - if(temp_r31->unk72 == 2) { - float temp_f30; - float temp_f24; - s32 temp_r25; - s32 temp_r23; - s32 temp_r22; - StructBss2A6C *sp198; - - for(temp_r23=0; temp_r23<3; temp_r23++) { - s32 sp24C[3] = { 1, 2, 0 }; - temp_r22 = (temp_r31->unk10*3)+((temp_r31->unk10 < 2) ? sp24C[temp_r23] : (2-sp24C[temp_r23])); - if(fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { - if(fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { - break; - } - } - } - temp_r22 = (temp_r23 == 3) ? ((temp_r31->unk10*3)+1) : temp_r22; - temp_f30 = (temp_r22*100)-490; - temp_r31->unkA0 = (temp_r31->unk74 == 0) ? temp_f30 : ((temp_r31->unkA0-10 > temp_f30) ? (temp_r31->unkA0-10) : (((temp_r31->unkA0 > temp_f30) ? temp_f30 : ((temp_r31->unkA0+10 < temp_f30) ? (temp_r31->unkA0+10) : ((temp_r31->unkA0 < temp_f30) ? temp_f30 : temp_r31->unkA0))))); - temp_r31->unk74++; - temp_f30 = temp_r31->unk74/24.0f; - temp_f30 = (temp_f30 > 1.0f) ? 1.0f : temp_f30; - temp_f30 = (0.5*sind((temp_f30*180.0f)+270.0f))+0.5; - temp_f24 = 1.0f-temp_f30; - if(lbl_1_bss_18 == -1) { - Vec sp240; - Vec sp234; - sp240.x = (temp_r31->unkA0*temp_f30)+(temp_r31->unk98*temp_f24); - sp240.y = (425.0f*temp_f30)+(temp_r31->unk9C*temp_f24); - sp240.z = 55; - Hu3D3Dto2D(&sp240, 1, &sp234); - HuSprPosSet(temp_r31->unkA4, 0, sp234.x, sp234.y); - } - if(lbl_1_bss_44->work[0] == 1002 && temp_r31->unk74 >= 24) { - for(temp_r23=0; temp_r23<3; temp_r23++) { - s32 sp228[3] = { 1, 2, 0 }; - temp_r22 = (temp_r31->unk10*3)+((temp_r31->unk10 < 2) ? sp228[temp_r23] : (2-sp228[temp_r23])); - if(fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { - if(fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { - break; - } - } - } - if(temp_r23 != 3) { - for(sp198 = lbl_1_bss_7884[temp_r22]; sp198 && sp198->unk48; sp198 = sp198->unk48); - for(temp_r23=0; temp_r23<2; temp_r23++) { - temp_r25 = (lbl_1_bss_0+1)%238; - while(temp_r25 != lbl_1_bss_0) { - if(lbl_1_bss_2A6C[temp_r25].unk0 == 0) { - break; - } - temp_r25++; - temp_r25 = temp_r25%238; - if(temp_r25 == 0) { - OSReport("looped.\n"); - } - } - if(temp_r25 == lbl_1_bss_0) { - OSReport("m413:error:block empty.\n"); - } - lbl_1_bss_0 = temp_r25; - temp_r31->unk48[temp_r23] = &lbl_1_bss_2A6C[temp_r25]; - lbl_1_bss_2A6C[temp_r25].unk0 = temp_r31->unk50[temp_r31->unk60][temp_r23]; - lbl_1_bss_2A6C[temp_r25].unk1 = 2; - lbl_1_bss_2A6C[temp_r25].unk3 = 1 << temp_r31->unk10; - lbl_1_bss_2A6C[temp_r25].unk2 = temp_r31->unk10; - lbl_1_bss_2A6C[temp_r25].unk18 = temp_r22; - lbl_1_bss_2A6C[temp_r25].unk1C.x = temp_r22; - lbl_1_bss_2A6C[temp_r25].unk1C.y = temp_r23+8.9375f; - lbl_1_bss_2A6C[temp_r25].unk1C.z = 0; - lbl_1_bss_2A6C[temp_r25].unk8[0] = lbl_1_bss_2A6C[temp_r25].unk8[1] = lbl_1_bss_2A6C[temp_r25].unk8[2] = lbl_1_bss_2A6C[temp_r25].unk8[3] = 0; - lbl_1_bss_2A6C[temp_r25].unk2C = 0; - lbl_1_bss_2A6C[temp_r25].unk30 = 0; - lbl_1_bss_2A6C[temp_r25].unk34 = 0; - lbl_1_bss_2A6C[temp_r25].unk50 = temp_r31; - } - temp_r31->unk48[1]->unk48 = NULL; - temp_r31->unk48[1]->unk4C = temp_r31->unk48[0]; - temp_r31->unk48[0]->unk48 = temp_r31->unk48[1]; - temp_r31->unk48[0]->unk4C = sp198; - if(!sp198) { - lbl_1_bss_7884[temp_r31->unk48[0]->unk18] = temp_r31->unk48[0]; - } else { - temp_r31->unk48[0]->unk4C->unk48 = temp_r31->unk48[0]; - } - temp_r31->unk60++; - if(temp_r31->unk60 >= 8) { - fn_1_EC0(temp_r31); - temp_r31->unk60 = 0; - } - temp_r31->unk63[0] = temp_r31->unk48[0]->unk0; - temp_r31->unk63[1] = temp_r31->unk48[1]->unk0; - temp_r31->unk65[0] = 1; - if(((temp_r31->unk68+5)/7) != ((temp_r31->unk6C+5)/7)) { - if(((temp_r31->unk68+5)/7)%4 == 2) { - temp_r31->unk50[temp_r31->unk60][0] = 5; - temp_r31->unk50[temp_r31->unk60][1] = 5; - } else { - temp_r31->unk50[temp_r31->unk60][rand8()%2] = 5; - } - } - temp_r31->unk6C = temp_r31->unk68; - temp_r31->unk72 = 1; - temp_r31->unk74 = 0; - temp_r31->unk71 = 20; - temp_r31->unk70 = 0; - temp_r31->unk7C = -1; - temp_r31->unk80 = -1; - if(temp_r31->unk1C == -1) { - temp_r31->unk84 = 0; - temp_r31->unk88 = 0; - temp_r31->unk8C = temp_r31->unk48[0]->unk18; - temp_r31->unk90 = 0; - } - temp_r31->unk78 = 0; - temp_r31->unk79 = 0; - HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); - { - s32 sp258[12] = {}; - s32 sp194; - for(sp194=0; sp194<3; sp194++) { - StructBss2A6C *sp190; - for(sp190 = lbl_1_bss_7884[sp194+(temp_r31->unk10*3)]; sp190; sp190 = sp190->unk48) { - - sp258[sp194] += (sp190 && sp190->unk0 && (sp190->unk1 & 0x2) == 0 && sp258[sp194] < 9); - } - } - Hu3DModelRotSet(object->model[4], 0, ((sp258[0]+sp258[1]+sp258[2] >= 22) ? -90 : 0), 0); - } - } else { - s32 sp21C[3]; - s32 sp18C; - for(sp18C=0; sp18C<3; sp18C++) { - s32 sp188; - StructBss2A6C *sp184; - for(sp184 = lbl_1_bss_7884[sp18C+(temp_r31->unk10*3)], sp188=0; sp188<9; sp184 = sp184->unk48, sp188++) { - if(!sp184 || sp184->unk1 != 1) { - break; - } - } - sp21C[sp18C] = sp188; - } - if(sp21C[0] >= 9 && sp21C[1] >= 9 && sp21C[2] >= 9) { - temp_r31->unk78 += temp_r31->unk78 < 255; - Hu3DModelRotSet(object->model[4], 0, -90, 0); - temp_r31->unk79 = 1; - } else { - temp_r31->unk79 = 0; - } - } - } - - } else if(temp_r31->unk72 == 1) { - if(!temp_r31->unk48[0] || !temp_r31->unk48[1]) { - temp_r31->unk72 = 2; - temp_r31->unk74 = 0; - HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); - } else { - s32 temp_r26; - s32 sp180; + temp_r31 = object->data; + temp_r31->unk28 = temp_r31->unk24; - sp180 = (temp_r31->unkC == 1 || temp_r31->unkC == 14) ? temp_r31->unk0 : 0; - temp_r26 = temp_r31->unk70; - if(temp_r31->unk1C != -1) { - temp_r26 = (HuPadBtnDown[temp_r31->unk1C] & (PAD_BUTTON_X|PAD_BUTTON_Y)) ? (temp_r31->unk70+2) : (temp_r31->unk70+((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_A) ? 1 : 0) + ((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_B) ? -1 : 0)); - } else { - if(temp_r31->unk80 != -1 && temp_r31->unk80 != temp_r31->unk70 && temp_r31->unk84 > 5) { - temp_r26 = temp_r31->unk80; - temp_r31->unk84 = 0; - } else { - temp_r31->unk84++; - } - } - temp_r26 = (temp_r26 >= 4) ? (temp_r26-4) : ((temp_r26 < 0) ? (temp_r26+4) : temp_r26); - temp_r31->unk74++; - if(temp_r31->unk1C == -1) { - s32 sp20C[4] = { 120, 50, 25, 2 }; - s32 sp200[3] = { 60, 45, 25 }; - temp_r31->unk90 = (temp_r31->unk8C == temp_r31->unk48[0]->unk18 && temp_r31->unk8C != temp_r31->unk7C) ? (temp_r31->unk90+1) : 0; - temp_r31->unk8C = temp_r31->unk48[0]->unk18; - if(temp_r31->unk7C == -1 && temp_r31->unk90 >= sp20C[temp_r31->unk20] || (temp_r31->unk20 >= 1 && (temp_r31->unk90 >= sp200[temp_r31->unk20-1]))) { - s32 sp1F0[4] = { 30, 30, 20, 10 }; - fn_1_10B8(temp_r31); - temp_r31->unk84 = 0; - temp_r31->unk88 = 0; - temp_r31->unk94 = (rand8()%sp1F0[temp_r31->unk20])-(sp1F0[temp_r31->unk20]/2); - } - } - if(lbl_1_bss_18 == -1) { - if(temp_r31->unk1C != -1) { - temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = -0.03125f+((HuPadStkY[temp_r31->unk1C] < -36) ? (-0.26875f*((-HuPadStkY[temp_r31->unk1C]-36)/36.0f)) : 0); - temp_r31->unk4 = (HuPadStkY[temp_r31->unk1C] < -36) ? 1 : 0; - } else { - s32 sp1E4[3] = { 50, 30, 25 }; - s32 sp1D8[3] = { 90, 80, 70 }; + temp_r31->unk65[0] = (temp_r31->unk65[0] == 0 || temp_r31->unk65[0] >= 15) ? 0 : temp_r31->unk65[0] + 1; + if (temp_r31->unk1C != -1) { + sp19C = (HuPadStkX[temp_r31->unk1C] > 26) - (HuPadStkX[temp_r31->unk1C] < -26); + } + else { + sp19C = (temp_r31->unk72 == 1 && temp_r31->unk7C != -1) ? ((temp_r31->unk48[0]) ? ((temp_r31->unk7C < temp_r31->unk48[0]->unk18) ? -1 + : (temp_r31->unk7C > temp_r31->unk48[0]->unk18) ? 1 + : 0) + : 0) + : 0; + } + temp_r31->unk88 = ((temp_r31->unk72 == 1 && temp_r31->unk48[0]) && temp_r31->unk7C == temp_r31->unk48[0]->unk18) ? (temp_r31->unk88 + 1) : 0; + if (sp19C != temp_r31->unk0) { + temp_r31->unkC = (sp19C == 0) ? 0 : 1; + } + else { + temp_r31->unkC = (temp_r31->unk0 != 0) ? temp_r31->unkC + 1 : 0; + } + temp_r31->unkC = (temp_r31->unkC >= 17) ? 14 : temp_r31->unkC; + temp_r31->unk0 = sp19C; + if (temp_r31->unk72 == 2) { + float temp_f30; + float temp_f24; + s32 temp_r25; + s32 temp_r23; + s32 temp_r22; + StructBss2A6C *sp198; - temp_r31->unk4 = ((temp_r31->unk20 && (temp_r31->unk88 > temp_r31->unk94+sp1E4[temp_r31->unk20-1] || temp_r31->unk90 > sp1D8[temp_r31->unk20-1]))) ? 1 : 0; - temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = -0.03125f+(temp_r31->unk4 ? -0.26875f : 0.0f); - } - } else { - temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = 0; - } - if(lbl_1_bss_18 == -1 && sp180) { - if(fn_1_57C_inline(temp_r31->unk48[0]->unk18_u+sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0], NULL) == 0) { - if(fn_1_57C_inline(temp_r31->unk48[1]->unk18_u+sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1], NULL) == 0) { - float sp17C = temp_r31->unk48[0]->unk18; - float sp178 = temp_r31->unk48[1]->unk18; - fn_1_6D0(temp_r31->unk48[0]->unk18_u+sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0]); - fn_1_6D0(temp_r31->unk48[1]->unk18_u+sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1]); - temp_r31->unk48[0]->unk1C.x = (sp17C*0.5)+(0.5*temp_r31->unk48[0]->unk18); - temp_r31->unk48[1]->unk1C.x = (sp178*0.5)+(0.5*temp_r31->unk48[1]->unk18); - } - } - } - if(lbl_1_bss_18 != -1) { - temp_r26 = temp_r31->unk70; - } - if(temp_r26 != temp_r31->unk70) { - StructBss2A6C *temp_r29 = temp_r31->unk48[0]; - StructBss2A6C *temp_r30 = temp_r31->unk48[1]; - s32 sp174 = temp_r29->unk18; - float temp_f25 = temp_r29->unk1C.y; - s32 sp1C8[4] = { 0, 1, 0, -1 }; - s32 sp1B8[4] = { 1, 0, -1, 0 }; - StructBss2A6C *sp170; - if(fn_1_57C_inline(sp174+sp1C8[temp_r26], temp_f25+sp1B8[temp_r26], temp_r30, &sp170) == 0) { - if(temp_r31->unk70 != temp_r26) { - temp_r30->unk5 = 1; - temp_r30->unk4 = (((((temp_r26-temp_r31->unk70)+8)%4)-1)*4)+temp_r31->unk70+1; - } - temp_r31->unk70 = temp_r26; - fn_1_6D0(sp174+sp1C8[temp_r26], temp_f25+sp1B8[temp_r26], temp_r30); - temp_r30->unk1C.x = temp_r30->unk18; - } else { - float temp_f31; - s32 temp_r24; - if(temp_r26%2 == 0) { - s32 sp16C = (temp_r26 == 2) ? 1 : 0; - temp_f31 = temp_f25+((sp16C == 1) ? sp1B8[temp_r26] : sp1B8[temp_r26]); - fn_1_57C_inline(sp174, temp_f31, (sp16C == 0) ? temp_r30 : temp_r30, &sp170); - if(temp_r26 == 2) { - if(!sp170 || sp170->unk1C.y <= temp_f31) { - temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f)+((sp170) ? sp170->unk1C.y+1.0f : 0.0f); - temp_r24 = sp174; - } else { - temp_f31 = (sp170->unk1C.y-1.0f)-(sp16C==0); - temp_r24 = sp174; - } - } else { - if(sp170->unk1C.y >= temp_f31) { - temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f)+((sp170) ? sp170->unk1C.y-2.0f : 0.0f); - temp_r24 = sp174; - } else { - temp_f31 = (sp170->unk1C.y-1.0f)-(sp16C==0); - temp_r24 = sp174; - } - } - } else { - temp_r24 = sp174-sp1C8[temp_r26]; - temp_f31 = temp_f25; - } - if(fn_1_57C_inline(temp_r24, temp_f31, temp_r29, NULL) == 0) { - if(fn_1_57C_inline(temp_r24+sp1C8[temp_r26], temp_f31+sp1B8[temp_r26], temp_r30, NULL) == 0) { - float sp168 = temp_r31->unk48[0]->unk18; - float sp164 = temp_r31->unk48[1]->unk18; - if(temp_r31->unk70 != temp_r26) { - temp_r30->unk5 = 1; - temp_r30->unk4 = (((((temp_r26-temp_r31->unk70)+8)%4)-1)*4)+temp_r31->unk70+1; - } + for (temp_r23 = 0; temp_r23 < 3; temp_r23++) { + s32 sp24C[3] = { 1, 2, 0 }; + temp_r22 = (temp_r31->unk10 * 3) + ((temp_r31->unk10 < 2) ? sp24C[temp_r23] : (2 - sp24C[temp_r23])); + if (fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { + if (fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { + break; + } + } + } + temp_r22 = (temp_r23 == 3) ? ((temp_r31->unk10 * 3) + 1) : temp_r22; + temp_f30 = (temp_r22 * 100) - 490; + temp_r31->unkA0 = (temp_r31->unk74 == 0) + ? temp_f30 + : ((temp_r31->unkA0 - 10 > temp_f30) + ? (temp_r31->unkA0 - 10) + : (((temp_r31->unkA0 > temp_f30) + ? temp_f30 + : ((temp_r31->unkA0 + 10 < temp_f30) ? (temp_r31->unkA0 + 10) + : ((temp_r31->unkA0 < temp_f30) ? temp_f30 : temp_r31->unkA0))))); + temp_r31->unk74++; + temp_f30 = temp_r31->unk74 / 24.0f; + temp_f30 = (temp_f30 > 1.0f) ? 1.0f : temp_f30; + temp_f30 = (0.5 * sind((temp_f30 * 180.0f) + 270.0f)) + 0.5; + temp_f24 = 1.0f - temp_f30; + if (lbl_1_bss_18 == -1) { + Vec sp240; + Vec sp234; + sp240.x = (temp_r31->unkA0 * temp_f30) + (temp_r31->unk98 * temp_f24); + sp240.y = (425.0f * temp_f30) + (temp_r31->unk9C * temp_f24); + sp240.z = 55; + Hu3D3Dto2D(&sp240, 1, &sp234); + HuSprPosSet(temp_r31->unkA4, 0, sp234.x, sp234.y); + } + if (lbl_1_bss_44->work[0] == 1002 && temp_r31->unk74 >= 24) { + for (temp_r23 = 0; temp_r23 < 3; temp_r23++) { + s32 sp228[3] = { 1, 2, 0 }; + temp_r22 = (temp_r31->unk10 * 3) + ((temp_r31->unk10 < 2) ? sp228[temp_r23] : (2 - sp228[temp_r23])); + if (fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { + if (fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { + break; + } + } + } + if (temp_r23 != 3) { + for (sp198 = lbl_1_bss_7884[temp_r22]; sp198 && sp198->unk48; sp198 = sp198->unk48) + ; + for (temp_r23 = 0; temp_r23 < 2; temp_r23++) { + temp_r25 = (lbl_1_bss_0 + 1) % 238; + while (temp_r25 != lbl_1_bss_0) { + if (lbl_1_bss_2A6C[temp_r25].unk0 == 0) { + break; + } + temp_r25++; + temp_r25 = temp_r25 % 238; + if (temp_r25 == 0) { + OSReport("looped.\n"); + } + } + if (temp_r25 == lbl_1_bss_0) { + OSReport("m413:error:block empty.\n"); + } + lbl_1_bss_0 = temp_r25; + temp_r31->unk48[temp_r23] = &lbl_1_bss_2A6C[temp_r25]; + lbl_1_bss_2A6C[temp_r25].unk0 = temp_r31->unk50[temp_r31->unk60][temp_r23]; + lbl_1_bss_2A6C[temp_r25].unk1 = 2; + lbl_1_bss_2A6C[temp_r25].unk3 = 1 << temp_r31->unk10; + lbl_1_bss_2A6C[temp_r25].unk2 = temp_r31->unk10; + lbl_1_bss_2A6C[temp_r25].unk18 = temp_r22; + lbl_1_bss_2A6C[temp_r25].unk1C.x = temp_r22; + lbl_1_bss_2A6C[temp_r25].unk1C.y = temp_r23 + 8.9375f; + lbl_1_bss_2A6C[temp_r25].unk1C.z = 0; + lbl_1_bss_2A6C[temp_r25].unk8[0] = lbl_1_bss_2A6C[temp_r25].unk8[1] = lbl_1_bss_2A6C[temp_r25].unk8[2] + = lbl_1_bss_2A6C[temp_r25].unk8[3] = 0; + lbl_1_bss_2A6C[temp_r25].unk2C = 0; + lbl_1_bss_2A6C[temp_r25].unk30 = 0; + lbl_1_bss_2A6C[temp_r25].unk34 = 0; + lbl_1_bss_2A6C[temp_r25].unk50 = temp_r31; + } + temp_r31->unk48[1]->unk48 = NULL; + temp_r31->unk48[1]->unk4C = temp_r31->unk48[0]; + temp_r31->unk48[0]->unk48 = temp_r31->unk48[1]; + temp_r31->unk48[0]->unk4C = sp198; + if (!sp198) { + lbl_1_bss_7884[temp_r31->unk48[0]->unk18] = temp_r31->unk48[0]; + } + else { + temp_r31->unk48[0]->unk4C->unk48 = temp_r31->unk48[0]; + } + temp_r31->unk60++; + if (temp_r31->unk60 >= 8) { + fn_1_EC0(temp_r31); + temp_r31->unk60 = 0; + } + temp_r31->unk63[0] = temp_r31->unk48[0]->unk0; + temp_r31->unk63[1] = temp_r31->unk48[1]->unk0; + temp_r31->unk65[0] = 1; + if (((temp_r31->unk68 + 5) / 7) != ((temp_r31->unk6C + 5) / 7)) { + if (((temp_r31->unk68 + 5) / 7) % 4 == 2) { + temp_r31->unk50[temp_r31->unk60][0] = 5; + temp_r31->unk50[temp_r31->unk60][1] = 5; + } + else { + temp_r31->unk50[temp_r31->unk60][rand8() % 2] = 5; + } + } + temp_r31->unk6C = temp_r31->unk68; + temp_r31->unk72 = 1; + temp_r31->unk74 = 0; + temp_r31->unk71 = 20; + temp_r31->unk70 = 0; + temp_r31->unk7C = -1; + temp_r31->unk80 = -1; + if (temp_r31->unk1C == -1) { + temp_r31->unk84 = 0; + temp_r31->unk88 = 0; + temp_r31->unk8C = temp_r31->unk48[0]->unk18; + temp_r31->unk90 = 0; + } + temp_r31->unk78 = 0; + temp_r31->unk79 = 0; + HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); + { + s32 sp258[12] = {}; + s32 sp194; + for (sp194 = 0; sp194 < 3; sp194++) { + StructBss2A6C *sp190; + for (sp190 = lbl_1_bss_7884[sp194 + (temp_r31->unk10 * 3)]; sp190; sp190 = sp190->unk48) { + + sp258[sp194] += (sp190 && sp190->unk0 && (sp190->unk1 & 0x2) == 0 && sp258[sp194] < 9); + } + } + Hu3DModelRotSet(object->model[4], 0, ((sp258[0] + sp258[1] + sp258[2] >= 22) ? -90 : 0), 0); + } + } + else { + s32 sp21C[3]; + s32 sp18C; + for (sp18C = 0; sp18C < 3; sp18C++) { + s32 sp188; + StructBss2A6C *sp184; + for (sp184 = lbl_1_bss_7884[sp18C + (temp_r31->unk10 * 3)], sp188 = 0; sp188 < 9; sp184 = sp184->unk48, sp188++) { + if (!sp184 || sp184->unk1 != 1) { + break; + } + } + sp21C[sp18C] = sp188; + } + if (sp21C[0] >= 9 && sp21C[1] >= 9 && sp21C[2] >= 9) { + temp_r31->unk78 += temp_r31->unk78 < 255; + Hu3DModelRotSet(object->model[4], 0, -90, 0); + temp_r31->unk79 = 1; + } + else { + temp_r31->unk79 = 0; + } + } + } + } + else if (temp_r31->unk72 == 1) { + if (!temp_r31->unk48[0] || !temp_r31->unk48[1]) { + temp_r31->unk72 = 2; + temp_r31->unk74 = 0; + HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); + } + else { + s32 temp_r26; + s32 sp180; + + sp180 = (temp_r31->unkC == 1 || temp_r31->unkC == 14) ? temp_r31->unk0 : 0; + temp_r26 = temp_r31->unk70; + if (temp_r31->unk1C != -1) { + temp_r26 = (HuPadBtnDown[temp_r31->unk1C] & (PAD_BUTTON_X | PAD_BUTTON_Y)) + ? (temp_r31->unk70 + 2) + : (temp_r31->unk70 + ((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_A) ? 1 : 0) + + ((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_B) ? -1 : 0)); + } + else { + if (temp_r31->unk80 != -1 && temp_r31->unk80 != temp_r31->unk70 && temp_r31->unk84 > 5) { + temp_r26 = temp_r31->unk80; + temp_r31->unk84 = 0; + } + else { + temp_r31->unk84++; + } + } + temp_r26 = (temp_r26 >= 4) ? (temp_r26 - 4) : ((temp_r26 < 0) ? (temp_r26 + 4) : temp_r26); + temp_r31->unk74++; + if (temp_r31->unk1C == -1) { + s32 sp20C[4] = { 120, 50, 25, 2 }; + s32 sp200[3] = { 60, 45, 25 }; + temp_r31->unk90 = (temp_r31->unk8C == temp_r31->unk48[0]->unk18 && temp_r31->unk8C != temp_r31->unk7C) ? (temp_r31->unk90 + 1) : 0; + temp_r31->unk8C = temp_r31->unk48[0]->unk18; + if (temp_r31->unk7C == -1 && temp_r31->unk90 >= sp20C[temp_r31->unk20] + || (temp_r31->unk20 >= 1 && (temp_r31->unk90 >= sp200[temp_r31->unk20 - 1]))) { + s32 sp1F0[4] = { 30, 30, 20, 10 }; + fn_1_10B8(temp_r31); + temp_r31->unk84 = 0; + temp_r31->unk88 = 0; + temp_r31->unk94 = (rand8() % sp1F0[temp_r31->unk20]) - (sp1F0[temp_r31->unk20] / 2); + } + } + if (lbl_1_bss_18 == -1) { + if (temp_r31->unk1C != -1) { + temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z + = -0.03125f + ((HuPadStkY[temp_r31->unk1C] < -36) ? (-0.26875f * ((-HuPadStkY[temp_r31->unk1C] - 36) / 36.0f)) : 0); + temp_r31->unk4 = (HuPadStkY[temp_r31->unk1C] < -36) ? 1 : 0; + } + else { + s32 sp1E4[3] = { 50, 30, 25 }; + s32 sp1D8[3] = { 90, 80, 70 }; + + temp_r31->unk4 + = ((temp_r31->unk20 + && (temp_r31->unk88 > temp_r31->unk94 + sp1E4[temp_r31->unk20 - 1] || temp_r31->unk90 > sp1D8[temp_r31->unk20 - 1]))) + ? 1 + : 0; + temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = -0.03125f + (temp_r31->unk4 ? -0.26875f : 0.0f); + } + } + else { + temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = 0; + } + if (lbl_1_bss_18 == -1 && sp180) { + if (fn_1_57C_inline(temp_r31->unk48[0]->unk18_u + sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0], NULL) == 0) { + if (fn_1_57C_inline(temp_r31->unk48[1]->unk18_u + sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1], NULL) == 0) { + float sp17C = temp_r31->unk48[0]->unk18; + float sp178 = temp_r31->unk48[1]->unk18; + fn_1_6D0(temp_r31->unk48[0]->unk18_u + sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0]); + fn_1_6D0(temp_r31->unk48[1]->unk18_u + sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1]); + temp_r31->unk48[0]->unk1C.x = (sp17C * 0.5) + (0.5 * temp_r31->unk48[0]->unk18); + temp_r31->unk48[1]->unk1C.x = (sp178 * 0.5) + (0.5 * temp_r31->unk48[1]->unk18); + } + } + } + if (lbl_1_bss_18 != -1) { + temp_r26 = temp_r31->unk70; + } + if (temp_r26 != temp_r31->unk70) { + StructBss2A6C *temp_r29 = temp_r31->unk48[0]; + StructBss2A6C *temp_r30 = temp_r31->unk48[1]; + s32 sp174 = temp_r29->unk18; + float temp_f25 = temp_r29->unk1C.y; + s32 sp1C8[4] = { 0, 1, 0, -1 }; + s32 sp1B8[4] = { 1, 0, -1, 0 }; + StructBss2A6C *sp170; + if (fn_1_57C_inline(sp174 + sp1C8[temp_r26], temp_f25 + sp1B8[temp_r26], temp_r30, &sp170) == 0) { + if (temp_r31->unk70 != temp_r26) { + temp_r30->unk5 = 1; + temp_r30->unk4 = (((((temp_r26 - temp_r31->unk70) + 8) % 4) - 1) * 4) + temp_r31->unk70 + 1; + } + temp_r31->unk70 = temp_r26; + fn_1_6D0(sp174 + sp1C8[temp_r26], temp_f25 + sp1B8[temp_r26], temp_r30); + temp_r30->unk1C.x = temp_r30->unk18; + } + else { + float temp_f31; + s32 temp_r24; + if (temp_r26 % 2 == 0) { + s32 sp16C = (temp_r26 == 2) ? 1 : 0; + temp_f31 = temp_f25 + ((sp16C == 1) ? sp1B8[temp_r26] : sp1B8[temp_r26]); + fn_1_57C_inline(sp174, temp_f31, (sp16C == 0) ? temp_r30 : temp_r30, &sp170); + if (temp_r26 == 2) { + if (!sp170 || sp170->unk1C.y <= temp_f31) { + temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f) + ((sp170) ? sp170->unk1C.y + 1.0f : 0.0f); + temp_r24 = sp174; + } + else { + temp_f31 = (sp170->unk1C.y - 1.0f) - (sp16C == 0); + temp_r24 = sp174; + } + } + else { + if (sp170->unk1C.y >= temp_f31) { + temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f) + ((sp170) ? sp170->unk1C.y - 2.0f : 0.0f); + temp_r24 = sp174; + } + else { + temp_f31 = (sp170->unk1C.y - 1.0f) - (sp16C == 0); + temp_r24 = sp174; + } + } + } + else { + temp_r24 = sp174 - sp1C8[temp_r26]; + temp_f31 = temp_f25; + } + if (fn_1_57C_inline(temp_r24, temp_f31, temp_r29, NULL) == 0) { + if (fn_1_57C_inline(temp_r24 + sp1C8[temp_r26], temp_f31 + sp1B8[temp_r26], temp_r30, NULL) == 0) { + float sp168 = temp_r31->unk48[0]->unk18; + float sp164 = temp_r31->unk48[1]->unk18; + if (temp_r31->unk70 != temp_r26) { + temp_r30->unk5 = 1; + temp_r30->unk4 = (((((temp_r26 - temp_r31->unk70) + 8) % 4) - 1) * 4) + temp_r31->unk70 + 1; + } temp_r31->unk70 = temp_r26; - if(temp_r26 == 2) { - fn_1_6D0(temp_r24, temp_f31+(0.5*(float)sp1B8[temp_r26]), temp_r29); - fn_1_6D0(temp_r24+sp1C8[temp_r26], temp_f31+sp1B8[temp_r26], temp_r30); - fn_1_6D0(temp_r24, temp_f31, temp_r29); - } else { - fn_1_6D0(temp_r24, temp_f31, temp_r29); - fn_1_6D0(temp_r24+sp1C8[temp_r26], temp_f31+sp1B8[temp_r26], temp_r30); - - } - temp_r31->unk48[0]->unk1C.x = (sp168*0.5)+(0.5*temp_r31->unk48[0]->unk18); - temp_r31->unk48[1]->unk1C.x = (sp164*0.5)+(0.5*temp_r31->unk48[1]->unk18); - } - } - - } - } - } - if(temp_r31->unk48[0]) { - temp_r31->unk98 = 10.0+((100.0*((temp_r31->unk48[0]->unk18+temp_r31->unk48[0]->unk1C.x)/2.0))-500); - temp_r31->unk9C = 25.0f+((100.0f*temp_r31->unk48[0]->unk1C.y)-500.0f); - } - if(lbl_1_bss_18 == -1) { - Vec sp1AC; - Vec sp1A0; - sp1AC.x = temp_r31->unk98; - sp1AC.y = temp_r31->unk9C; - sp1AC.z = 55; - Hu3D3Dto2D(&sp1AC, 1, &sp1A0); - HuSprPosSet(temp_r31->unkA4, 0, sp1A0.x, sp1A0.y); - } - } + if (temp_r26 == 2) { + fn_1_6D0(temp_r24, temp_f31 + (0.5 * (float)sp1B8[temp_r26]), temp_r29); + fn_1_6D0(temp_r24 + sp1C8[temp_r26], temp_f31 + sp1B8[temp_r26], temp_r30); + fn_1_6D0(temp_r24, temp_f31, temp_r29); + } + else { + fn_1_6D0(temp_r24, temp_f31, temp_r29); + fn_1_6D0(temp_r24 + sp1C8[temp_r26], temp_f31 + sp1B8[temp_r26], temp_r30); + } + temp_r31->unk48[0]->unk1C.x = (sp168 * 0.5) + (0.5 * temp_r31->unk48[0]->unk18); + temp_r31->unk48[1]->unk1C.x = (sp164 * 0.5) + (0.5 * temp_r31->unk48[1]->unk18); + } + } + } + } + } + if (temp_r31->unk48[0]) { + temp_r31->unk98 = 10.0 + ((100.0 * ((temp_r31->unk48[0]->unk18 + temp_r31->unk48[0]->unk1C.x) / 2.0)) - 500); + temp_r31->unk9C = 25.0f + ((100.0f * temp_r31->unk48[0]->unk1C.y) - 500.0f); + } + if (lbl_1_bss_18 == -1) { + Vec sp1AC; + Vec sp1A0; + sp1AC.x = temp_r31->unk98; + sp1AC.y = temp_r31->unk9C; + sp1AC.z = 55; + Hu3D3Dto2D(&sp1AC, 1, &sp1A0); + HuSprPosSet(temp_r31->unkA4, 0, sp1A0.x, sp1A0.y); + } + } } void fn_1_8AC8(StructBss2A6C *arg0, StructSp14C8 *arg1); -#define CHECK_2E48(arg0, arg1, arg2) \ - (((arg0)-1 <= 0 || (arg2[(arg0)-1][(arg1)] && arg2[(arg0)-1][(arg1)]->unk0)) && \ - ((arg0)-1 >= 11 || (arg2[(arg0)+1][(arg1)] && arg2[(arg0)+1][(arg1)]->unk0)) && \ - ((arg1)-1 <= 0 || (arg2[(arg0)][(arg1)-1] && arg2[(arg0)][(arg1)-1]->unk0)) && \ - ((arg1)-1 >= 8 || (arg2[(arg0)][(arg1)+1] && arg2[(arg0)][(arg1)+1]->unk0)) && \ - ((arg0)-1 >= 11 || (arg1)-1 <= 0 || (arg2[(arg0)+1][(arg1)-1] && arg2[(arg0)+1][(arg1)-1]->unk0)) && \ - ((arg0)-1 >= 11 || (arg1)-1 >= 8 || (arg2[(arg0)+1][(arg1)+1] && arg2[(arg0)+1][(arg1)+1]->unk0)) && \ - ((arg0)-1 <= 0 || (arg1)-1 <= 0 || (arg2[(arg0)-1][(arg1)-1] && arg2[(arg0)-1][(arg1)-1]->unk0)) && \ - ((arg0)-1 <= 0 || (arg1)-1 >= 8 || (arg2[(arg0)-1][(arg1)+1] && arg2[(arg0)-1][(arg1)+1]->unk0))) - +#define CHECK_2E48(arg0, arg1, arg2) \ + (((arg0)-1 <= 0 || (arg2[(arg0)-1][(arg1)] && arg2[(arg0)-1][(arg1)]->unk0)) \ + && ((arg0)-1 >= 11 || (arg2[(arg0) + 1][(arg1)] && arg2[(arg0) + 1][(arg1)]->unk0)) \ + && ((arg1)-1 <= 0 || (arg2[(arg0)][(arg1)-1] && arg2[(arg0)][(arg1)-1]->unk0)) \ + && ((arg1)-1 >= 8 || (arg2[(arg0)][(arg1) + 1] && arg2[(arg0)][(arg1) + 1]->unk0)) \ + && ((arg0)-1 >= 11 || (arg1)-1 <= 0 || (arg2[(arg0) + 1][(arg1)-1] && arg2[(arg0) + 1][(arg1)-1]->unk0)) \ + && ((arg0)-1 >= 11 || (arg1)-1 >= 8 || (arg2[(arg0) + 1][(arg1) + 1] && arg2[(arg0) + 1][(arg1) + 1]->unk0)) \ + && ((arg0)-1 <= 0 || (arg1)-1 <= 0 || (arg2[(arg0)-1][(arg1)-1] && arg2[(arg0)-1][(arg1)-1]->unk0)) \ + && ((arg0)-1 <= 0 || (arg1)-1 >= 8 || (arg2[(arg0)-1][(arg1) + 1] && arg2[(arg0)-1][(arg1) + 1]->unk0))) + void fn_1_52A4(s32 arg0) { - omObjData *sp1EC = lbl_1_bss_30; - StructBss2A6C *sp2E48[14][19] = {}; - StructBss2A6C *sp1E8 = NULL; - StructBss2A6C *temp_r31; - StructBss2A6C *temp_r30; - s32 temp_r29; - s32 temp_r23; - s32 temp_r19; - s32 temp_r18; - float temp_f31; - float temp_f30; - float temp_f29; - - StructSp14C8 sp14C8[204]; - StructBss2A6C *spD58[476]; - StructSp14C8 *spA28[204]; - float sp6F8[204]; - float sp3C8[204]; - s16 sp230[204]; - - for(temp_r18=0; temp_r18<12; temp_r18++) { - for(temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31=temp_r31->unk48) { - s32 sp1E4 = temp_r31->unk1; - s32 sp1E0 = (((sp1E4 & 0x2) == 0 && (arg0 == 4)) || ((sp1E4 & 0x2) && (temp_r31->unk3 & (1 << arg0)))); - temp_f29 = (sp1E0) ? temp_r31->unk1C.z : 0; - temp_r31->unk2C = (void *)(temp_r31->unk30 = temp_r31->unk34 = NULL); - temp_r31->unk38 = temp_r31->unk3C = temp_r31->unk40 = temp_r31->unk44 = NULL; - if(arg0 == 4) { - temp_r31->unk5 +=temp_r31->unk4 != 0 && temp_r31->unk5 != 0; - temp_r31->unk5 = (temp_r31->unk4 == 0 || (temp_r31->unk5 > (((temp_r31->unk4-1)/4 == 1) ? 15 : 15))) ? 0 : temp_r31->unk5; - temp_r31->unk4 = (temp_r31->unk5 == 0) ? 0 : temp_r31->unk4; - temp_r31->unk1C.x = (0.5*temp_r31->unk18)+(0.5*temp_r31->unk1C.x); - } - if(temp_r31->unk0) { - s32 sp1DC = 0; - StructBss2A6C *sp1D8; - if((temp_r31->unk1 & 0x1) && temp_r31->unk1C.y == 0.0f && !temp_r31->unk4C) { - sp1DC = 1; - sp1D8 = NULL; - } else if((temp_r31->unk1 & 0x1) && temp_r31->unk4C && (temp_r31->unk4C->unk1C.y == temp_r31->unk1C.y-1.0f)) { - sp1DC = 2; - sp1D8 = temp_r31->unk4C; - } else { - if(fn_1_57C(temp_r18, temp_r31->unk1C.y+temp_f29, temp_r31, &sp1D8)) { - if(!sp1D8 || temp_r31->unk1C.y+temp_f29 >= sp1D8->unk1C.y) { - sp1DC = 2; - } - } - } - if(sp1DC != 0) { - if(temp_r31->unk1 & 0x2) { - float temp_f28 = (temp_r31->unk1C.y+temp_f29)-((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - temp_f28 = temp_r31->unk1C.y-((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - if(temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { - temp_r31->unk50->unk48[0]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - temp_r31->unk50->unk48[1]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - } else { - temp_r31->unk50->unk48[0]->unk1C.y -= temp_f28; - temp_r31->unk50->unk48[1]->unk1C.y -= temp_f28; - } - temp_r31->unk50->unk48[0]->unk1C.z = 0; - temp_r31->unk50->unk48[1]->unk1C.z = 0; - if(sp1E0) { - if(!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0)) { - temp_r31->unk50->unk71 -= (temp_r31->unk50->unk71 != 0 && lbl_1_bss_18 == -1); - - } - } - if(temp_r31->unk50->unk71 == 0 || temp_r31->unk50->unk4 != 0 && (!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0))) { - temp_r31->unk50->unk48[0]->unk1 &= ~0x2; - temp_r31->unk50->unk48[1]->unk1 &= ~0x2; - temp_r31->unk50->unk48[0]->unk1 |= 0x10; - temp_r31->unk50->unk48[1]->unk1 |= 0x10; - temp_r31->unk1 |= 0x1; - if(temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { - s32 sp1D4; - s32 sp1D0 = (temp_r31 == temp_r31->unk50->unk48[1]) ? 1 : 0; - s32 sp1CC = temp_r31->unk50->unk48[sp1D0]->unk18; - s32 sp1C8 = temp_r31->unk50->unk48[1-sp1D0]->unk18; - float sp1C4 = temp_r31->unk50->unk48[sp1D0]->unk1C.y; - float sp1C0 = temp_r31->unk50->unk48[1-sp1D0]->unk1C.y; - sp1D4 = (sp1CC < sp1C8 || (sp1CC == sp1C8 && sp1C4 < sp1C0)) ? 1 : 0; - if(sp1D4 == 1) { - StructBss2A6C *temp_r21 = temp_r31->unk50->unk48[1-sp1D0]; - StructBss2A6C *temp_r20 = (temp_r21) ? temp_r21->unk4C : NULL; - if(temp_r21) { - if((!temp_r20 && temp_r21->unk1C.y == 0.0f) || (temp_r20 && temp_r21->unk1C.y == temp_r20->unk1C.y+1.0f && (temp_r20->unk1 & 0x1) && (temp_r20->unk1 & 0x2) == 0)) { - temp_r21->unk1C.y = (temp_r20) ? (temp_r20->unk1C.y+1.0f) : 0.0f; - temp_r21->unk1 &= ~0x1; - temp_r21->unk1 |= (temp_r20 && ((temp_r20->unk1 & 0x1) == 0 || (temp_r20->unk1 & 0x2) != 0)) ? 0 : 1; - temp_r21->unk1C.z = (temp_r21->unk1 & 0x1) ? -0.010416667f : ((!temp_r20) ? -0.010416667f : temp_r20->unk1C.z); - sp1E8 = temp_r21; - } - } - } - } - temp_r31->unk4 = temp_r31->unk5 = 0; - if(temp_r31->unk50->unk48[0]->unk18 == temp_r31->unk50->unk48[1]->unk18) { - s32 sp1BC = (temp_r31->unk50->unk48[1] == temp_r31) ? 1 : 0; - s32 sp1B8 = temp_r31->unk50->unk48[0]->unk1C.y > temp_r31->unk50->unk48[1]->unk1C.y; - temp_r31->unk50->unk48[1-sp1B8]->unk1C.y = 1+temp_r31->unk50->unk48[sp1B8]->unk1C.y; - temp_r31->unk50->unk48[1-sp1B8]->unk1C.z = -0.010416667f; - temp_r31->unk50->unk48[0]->unk1 |= 0x1; - temp_r31->unk50->unk48[1]->unk1 |= 0x1; - temp_r31->unk50->unk48[0]->unk4 = temp_r31->unk50->unk48[0]->unk5 = 0; - temp_r31->unk50->unk48[1]->unk4 = temp_r31->unk50->unk48[1]->unk5 = 0; - temp_r31->unk38 = (temp_r31->unk50->unk48[1] == temp_r31) ? temp_r31->unk50->unk48[0] : temp_r31->unk50->unk48[1]; - if(sp1BC) { - temp_r31->unk50->unk48[0]->unk1 |= 0x8; - } else { - temp_r31->unk50->unk48[1]->unk1 |= 0x8; - } - - } - temp_r31->unk50->unk48[0] = NULL; - temp_r31->unk50->unk48[1] = NULL; - } - } else { - temp_r31->unk1C.y = (sp1D8) ? (1.0f+sp1D8->unk1C.y) : 0.0f; - temp_r31->unk1 &= ~0x1; - temp_r31->unk1 |= (sp1D8 && ((sp1D8->unk1 & 0x1) == 0 || (sp1D8->unk1 & 0x2) != 0)) ? 0 : 1; - temp_r31->unk1C.z = (temp_r31->unk1 & 0x1) ? -0.010416667f : ((!sp1D8) ? -0.010416667f : sp1D8->unk1C.z); - } - } else { - temp_r31->unk1C.y += temp_f29; - temp_r31->unk1C.z = (sp1E0) ? ((temp_r31->unk1 & 0x3) ? 0.0f : -0.010416667f+temp_r31->unk1C.z) : temp_r31->unk1C.z; - if(temp_r31->unk1 & 0x1) { - temp_r31->unk1 &= ~0x1; - } - } - } - if((temp_r31->unk1 & 0x1) && (sp1E4 & 0x1) && (temp_r31->unk1 & 0x8) == 0 && temp_r31 != sp1E8) { - temp_r31->unk8[0] = temp_r31->unk8[1] = temp_r31->unk8[2] = temp_r31->unk8[3] = 0; - temp_r31->unk3 = 0; - temp_r31->unk1 &= ~0x10; - } - temp_r31->unk1 &= ~0x8; - if((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { - sp2E48[temp_r31->unk18+1][(int)temp_r31->unk1C.y+1] = temp_r31; - } - if(temp_r31->unk1 & 0x2) { - temp_r31->unk1C.z = 0; - } - } - } - temp_r23 = 0; - { - s32 sp1B4; - for(temp_r18=0; temp_r18<12; temp_r18++) { - StructBss2A6C *sp1B0 = (temp_r18 < 11) ? lbl_1_bss_7884[temp_r18+1] : NULL; - StructBss2A6C *sp1AC = NULL; - StructBss2A6C *sp1A8 = NULL; - float sp1A4 = (sp1B0) ? (sp1B0->unk1C.y) : 0.0f; - for(temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31=temp_r31->unk48) { - s32 sp1A0 = temp_r31->unk18+1; - s32 sp19C = (int)temp_r31->unk1C.y+1; - if((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { - if(sp2E48[sp1A0][sp19C+1]) { - temp_r31->unk38 = sp2E48[sp1A0][sp19C+1]; - temp_r31->unk38->unk3C = temp_r31; - } - if(sp2E48[sp1A0+1][sp19C]) { - sp1B0 = sp2E48[sp1A0+1][sp19C]; - temp_r31->unk44 = sp1B0; - temp_r31->unk44->unk40 = temp_r31; - } - sp1AC = sp2E48[sp1A0+1][sp19C+1]; - sp1A8 = sp2E48[sp1A0+1][sp19C-1]; - if(temp_r31->unk0 == 5 && temp_r31->unk2C == NULL && temp_r31->unk1C.y <= 8.0f && sp19C-1 < 9) { - s32 sp198 = temp_r31->unk0 == 5; - sp14C8[temp_r23].unk0 = 5; - sp14C8[temp_r23].unk4[0] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[0]; - sp14C8[temp_r23].unk4[1] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[1]; - sp14C8[temp_r23].unk4[2] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[2]; - sp14C8[temp_r23].unk4[3] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[3]; - sp14C8[temp_r23].unk1 = 1; - sp14C8[temp_r23].unk2 = 0; - sp14C8[temp_r23].unk14 = (sp198) ? temp_r31 : temp_r30; - sp14C8[temp_r23].unk18 = (sp198) ? temp_r31 : temp_r30; - sp14C8[temp_r23].unk1C = 0; - if(sp198) { - temp_r31->unk30 = NULL; - temp_r31->unk34 = NULL; - temp_r31->unk2C = &sp14C8[temp_r23]; - } else { - temp_r30->unk30 = NULL; - temp_r30->unk34 = NULL; - temp_r30->unk2C = &sp14C8[temp_r23]; - } - temp_r23++; - } - for(temp_r29=0; temp_r29<((temp_r31 && temp_r31->unk0 == 5) ? 2 : 0)+2; temp_r29++) { - temp_r30 = (temp_r29 == 0) ? temp_r31->unk48 : ((temp_r29 == 1) ? sp1B0 : ((temp_r29 == 2) ? sp1AC : sp1A8)); - if(temp_r30 && (temp_r30->unk1 & 0x1)) { - if(temp_r29 != 1 || temp_r31->unk1C.y == temp_r30->unk1C.y) { - if(temp_r31->unk0 == temp_r30->unk0) { - if((temp_r31->unk0 >= 1 && temp_r31->unk0 <= 4) || (temp_r31->unk0 == 5 && (temp_r31->unk1C.y <= 8.0f || temp_r30->unk1C.y <= 8.0f))) { - StructSp14C8 *temp_r28 = temp_r31->unk2C; - StructSp14C8 *temp_r27 = temp_r30->unk2C; - if(temp_r31->unk2C && temp_r30->unk2C) { - if(temp_r31->unk2C != temp_r30->unk2C) { - StructBss2A6C *sp194 = temp_r28->unk14; - StructBss2A6C *sp190 = temp_r27->unk14; - while(1) { - sp190->unk2C = temp_r28; - if(!sp190->unk34) { - break; - } - sp190 = sp190->unk34; - } - temp_r27->unk14->unk30 = temp_r28->unk18; - temp_r28->unk18->unk34 = temp_r27->unk14; - temp_r28->unk4[0] = (temp_r28->unk4[0] > temp_r27->unk4[0]) ? temp_r28->unk4[0] : temp_r27->unk4[0]; - temp_r28->unk4[1] = (temp_r28->unk4[1] > temp_r27->unk4[1]) ? temp_r28->unk4[1] : temp_r27->unk4[1]; - temp_r28->unk4[2] = (temp_r28->unk4[2] > temp_r27->unk4[2]) ? temp_r28->unk4[2] : temp_r27->unk4[2]; - temp_r28->unk4[3] = (temp_r28->unk4[3] > temp_r27->unk4[3]) ? temp_r28->unk4[3] : temp_r27->unk4[3]; - temp_r28->unk1 = temp_r28->unk1+temp_r27->unk1; - temp_r28->unk2 |= temp_r27->unk2; - temp_r28->unk18 = sp190; - temp_r27->unk14 = temp_r27->unk18 = NULL; - temp_r27->unk1 = 0; - temp_r27->unk0 = 0; - temp_r27->unk1C = temp_r28; - } - } else { - if(temp_r31->unk2C) { - temp_r30->unk2C = temp_r31->unk2C; - temp_r28->unk18->unk34 = temp_r30; - temp_r30->unk30 = temp_r28->unk18; - temp_r28->unk18 = temp_r30; - temp_r28->unk1++; - temp_r28->unk2 |= temp_r30->unk3; - temp_r28->unk4[0] = (temp_r28->unk4[0] < temp_r30->unk8[0]) ? temp_r30->unk8[0] : temp_r28->unk4[0]; - temp_r28->unk4[1] = (temp_r28->unk4[1] < temp_r30->unk8[1]) ? temp_r30->unk8[1] : temp_r28->unk4[1]; - temp_r28->unk4[2] = (temp_r28->unk4[2] < temp_r30->unk8[2]) ? temp_r30->unk8[2] : temp_r28->unk4[2]; - temp_r28->unk4[3] = (temp_r28->unk4[3] < temp_r30->unk8[3]) ? temp_r30->unk8[3] : temp_r28->unk4[3]; - } else if(temp_r30->unk2C) { - temp_r31->unk2C = temp_r30->unk2C; - temp_r27->unk18->unk34 = temp_r31; - temp_r31->unk30 = temp_r27->unk18; - temp_r27->unk18 = temp_r31; - temp_r27->unk1++; - temp_r27->unk2 |= temp_r31->unk3; - temp_r27->unk4[0] = (temp_r27->unk4[0] < temp_r31->unk8[0]) ? temp_r31->unk8[0] : temp_r27->unk4[0]; - temp_r27->unk4[1] = (temp_r27->unk4[1] < temp_r31->unk8[1]) ? temp_r31->unk8[1] : temp_r27->unk4[1]; - temp_r27->unk4[2] = (temp_r27->unk4[2] < temp_r31->unk8[2]) ? temp_r31->unk8[2] : temp_r27->unk4[2]; - temp_r27->unk4[3] = (temp_r27->unk4[3] < temp_r31->unk8[3]) ? temp_r31->unk8[3] : temp_r27->unk4[3]; - } else { - sp14C8[temp_r23].unk0 = temp_r31->unk0; - sp14C8[temp_r23].unk4[0] = (temp_r31->unk8[0] > temp_r30->unk8[0]) ? temp_r31->unk8[0] : temp_r30->unk8[0]; - sp14C8[temp_r23].unk4[1] = (temp_r31->unk8[1] > temp_r30->unk8[1]) ? temp_r31->unk8[1] : temp_r30->unk8[1]; - sp14C8[temp_r23].unk4[2] = (temp_r31->unk8[2] > temp_r30->unk8[2]) ? temp_r31->unk8[2] : temp_r30->unk8[2]; - sp14C8[temp_r23].unk4[3] = (temp_r31->unk8[3] > temp_r30->unk8[3]) ? temp_r31->unk8[3] : temp_r30->unk8[3]; - sp14C8[temp_r23].unk1 = 2; - sp14C8[temp_r23].unk2 = (temp_r31->unk3 | temp_r30->unk3); - sp14C8[temp_r23].unk14 = temp_r31; - sp14C8[temp_r23].unk18 = temp_r30; - sp14C8[temp_r23].unk1C = NULL; - temp_r31->unk30 = NULL; - temp_r31->unk34 = temp_r30; - temp_r30->unk30 = temp_r31; - temp_r30->unk34 = NULL; - temp_r31->unk2C = &sp14C8[temp_r23]; - temp_r30->unk2C = &sp14C8[temp_r23]; - temp_r23++; - } - } - } - } - } - } - } - } - } - } - for(temp_r29=0; temp_r29unk18+1; - s32 temp_r25 = (int)sp18C->unk1C.y+1; - if(sp14C8[temp_r29].unk0 != 0 && temp_r25 <= 9) { - if(!CHECK_2E48(temp_r24, temp_r25, sp2E48)) { - sp14C8[temp_r29].unk0 = 0; - } else { - sp14C8[temp_r29].unk2 |= - ((sp2E48[temp_r24-1][temp_r25]) ? sp2E48[temp_r24-1][temp_r25]->unk3 : 0) | - ((sp2E48[temp_r24+1][temp_r25]) ? sp2E48[temp_r24+1][temp_r25]->unk3 : 0) | - ((sp2E48[temp_r24][temp_r25-1]) ? sp2E48[temp_r24][temp_r25-1]->unk3 : 0) | - ((sp2E48[temp_r24][temp_r25+1]) ? sp2E48[temp_r24][temp_r25+1]->unk3 : 0) | - ((sp2E48[temp_r24+1][temp_r25-1]) ? sp2E48[temp_r24+1][temp_r25-1]->unk3 : 0) | - ((sp2E48[temp_r24+1][temp_r25+1]) ? sp2E48[temp_r24+1][temp_r25+1]->unk3 : 0) | - ((sp2E48[temp_r24-1][temp_r25-1]) ? sp2E48[temp_r24-1][temp_r25-1]->unk3 : 0) | - ((sp2E48[temp_r24-1][temp_r25+1]) ? sp2E48[temp_r24-1][temp_r25+1]->unk3 : 0); - } - sp18C = sp18C->unk34; - if(!sp18C) { - break; - } - } - } - } - for(temp_r29=0; temp_r29= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3) || sp14C8[temp_r29].unk0 == 5) { - fn_1_38C(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); - } - } - sp1B4 = 1; - while(sp1B4 >= 0) { - s32 temp_r22 = 0; - s32 sp188 = 0; - for(temp_r29=0; temp_r29= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3)) || (sp1B4 == 1 && sp14C8[temp_r29].unk0 == 5)) { - StructBss2A6C *temp_r26 = sp14C8[temp_r29].unk14; - s32 sp184 = 0; - s32 sp180 = 0; - float temp_f31 = -1; - float temp_f30 = -1; - if(sp14C8[temp_r29].unk0 == 5) { - lbl_1_bss_D0++; - lbl_1_bss_D0 %= 5; - lbl_1_bss_D4[lbl_1_bss_D0][1] = 1; - lbl_1_bss_D4[lbl_1_bss_D0][0] = 0; - for(temp_r19=0; temp_r19<10; temp_r19++) { - Hu3DModelAttrSet(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+temp_r19)], 1); - } - } - for(temp_r19=0; temp_r19unk18; - temp_f30 = temp_r26->unk1C.y; - } else { - sp180++; - temp_f31 = (temp_f31*(1.0-(1.0/sp180)))+(temp_r26->unk18*(1.0/sp180)); - temp_f30 = (temp_f30*(1.0-(1.0/sp180)))+(temp_r26->unk1C.y*(1.0/sp180)); - } - if(sp14C8[temp_r29].unk0 == 5) { - if(lbl_1_bss_D4[lbl_1_bss_D0][0] < 10) { - Hu3DModelPosSet(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+lbl_1_bss_D4[lbl_1_bss_D0][0])], (((temp_r26->unk18*100)-500.0)-50.0), 50.0f+((100.0f*temp_r26->unk1C.y)-500.0f), 120); - Hu3DModelAttrReset(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+lbl_1_bss_D4[lbl_1_bss_D0][0])], 1); - Hu3DMotionTimeSet(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+lbl_1_bss_D4[lbl_1_bss_D0][0])], 2.0f); - lbl_1_bss_D4[lbl_1_bss_D0][0]++; - lbl_1_bss_B8.unk4 += 4; - if(lbl_1_bss_D4[lbl_1_bss_D0][0] == 1) { - lbl_1_bss_B8.unk4 += 7; - } - } - fn_1_8AC8(temp_r26->unk38, &sp14C8[temp_r29]); - fn_1_8AC8((temp_r26->unk44 && temp_r26->unk44->unk38) ? temp_r26->unk44->unk38 : temp_r26->unk44, &sp14C8[temp_r29]); - fn_1_8AC8((temp_r26->unk40 && temp_r26->unk40->unk38) ? temp_r26->unk40->unk38 : temp_r26->unk40, &sp14C8[temp_r29]); - spD58[temp_r22] = temp_r26->unk38; - temp_r22++; - spD58[temp_r22] = temp_r26->unk3C; - temp_r22++; - if(temp_r26->unk44) { - spD58[temp_r22] = temp_r26->unk44->unk38; - temp_r22++; - spD58[temp_r22] = temp_r26->unk44->unk3C; - temp_r22++; - } - spD58[temp_r22] = temp_r26->unk44; - temp_r22++; - if(temp_r26->unk40) { - spD58[temp_r22] = temp_r26->unk40->unk38; - temp_r22++; - spD58[temp_r22] = temp_r26->unk40->unk3C; - temp_r22++; - } - spD58[temp_r22] = temp_r26->unk40; - temp_r22++; - spD58[temp_r22] = temp_r26; - temp_r22++; - } else { - fn_1_8AC8(temp_r26, &sp14C8[temp_r29]); - sp184 += fn_1_7F8(temp_r26, &sp14C8[temp_r29]); - } - temp_r26 = temp_r26->unk34; - if(!temp_r26) { - break; - } - } - if(sp14C8[temp_r29].unk0 == 5 && (sp14C8[temp_r29].unk2 & 0xF)) { - Work19C8 *sp220[4]; - s32 sp17C; - for(sp17C=0; sp17C<4; sp17C++) { - if((1 << sp17C) & (sp14C8[temp_r29].unk2)) { - sp220[sp17C] = lbl_1_bss_34[sp17C]->data; - omVibrate(sp220[sp17C]->unk14, 12, 6, 6); - } - } - } - if(lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0 < 3) { - lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk4[lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0] = 0.45*(((temp_f31-5.0)-0.5)/5.5); - lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0++; - } - if(sp1B4 == 0 && sp184 > 0 && lbl_1_bss_18 == -1) { - s32 sp178 = 0; - s32 sp174 = fn_1_4C0(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); - Vec sp214 = { 0, 0, 50 }; - s32 temp_r17; - for(temp_r17=0; temp_r17<4; temp_r17++) { - sp178 += ((1 << temp_r17) != 0) & sp14C8[temp_r29].unk2; - } - sp178--; - sp214.x = (100.0f*temp_f31)-500.0; - sp214.y = 100+((100*temp_f30)-500); - sp214.x += sp178*12; - sp214.y -= sp178*30; - for(temp_r17=3; temp_r17>=0; temp_r17--) { - if((1 << temp_r17) & sp14C8[temp_r29].unk2) { - Vec sp208; - lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; - lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp184; - lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1< 3) ? 3 : sp174; - if(lbl_1_bss_48[sp174+3].unk0 < 3) { - lbl_1_bss_48[sp174+3].unk4[lbl_1_bss_48[sp174+3].unk0] = 0.45*(((temp_f31-5.0)-0.5)/5.5); - lbl_1_bss_48[sp174+3].unk0++; - } - } - spA28[sp188] = &sp14C8[temp_r29]; - sp230[sp188] = temp_r22; - sp6F8[sp188] = temp_f31; - sp3C8[sp188] = temp_f30; - sp188++; - } - } - for(temp_r29=0; temp_r29 0 && lbl_1_bss_18 == -1) { - s32 sp16C; - s32 sp168 = 0; - s32 sp164 = fn_1_4C0(&spA28[temp_r29]->unk2, spA28[temp_r29]->unk4); - Vec sp1FC = { 0, 0, 50 }; - for(sp16C=0; sp16C<4; sp16C++) { - sp168 += ((1 << sp16C) != 0) & spA28[temp_r29]->unk2; - } - sp168--; - sp1FC.x = (100.0f*sp6F8[temp_r29])-500.0; - sp1FC.y = 100+((100*sp3C8[temp_r29])-500); - sp1FC.x += sp168*12; - sp1FC.y -= sp168*30; - for(sp16C=3; sp16C>=0; sp16C--) { - if((1 << sp16C) & spA28[temp_r29]->unk2) { - Vec sp1F0; - lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; - lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp170; - lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1< 3) ? 3 : sp164; - if(lbl_1_bss_48[sp164+3].unk0 < 3) { - lbl_1_bss_48[sp164+3].unk4[lbl_1_bss_48[sp164+3].unk0] = 0.45*(((sp6F8[temp_r29]-5.0)-0.5)/5.5); - lbl_1_bss_48[sp164+3].unk0++; - } - } - } - sp1B4--; - } - } - + omObjData *sp1EC = lbl_1_bss_30; + StructBss2A6C *sp2E48[14][19] = {}; + StructBss2A6C *sp1E8 = NULL; + StructBss2A6C *temp_r31; + StructBss2A6C *temp_r30; + s32 temp_r29; + s32 temp_r23; + s32 temp_r19; + s32 temp_r18; + float temp_f31; + float temp_f30; + float temp_f29; + + StructSp14C8 sp14C8[204]; + StructBss2A6C *spD58[476]; + StructSp14C8 *spA28[204]; + float sp6F8[204]; + float sp3C8[204]; + s16 sp230[204]; + + for (temp_r18 = 0; temp_r18 < 12; temp_r18++) { + for (temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31 = temp_r31->unk48) { + s32 sp1E4 = temp_r31->unk1; + s32 sp1E0 = (((sp1E4 & 0x2) == 0 && (arg0 == 4)) || ((sp1E4 & 0x2) && (temp_r31->unk3 & (1 << arg0)))); + temp_f29 = (sp1E0) ? temp_r31->unk1C.z : 0; + temp_r31->unk2C = (void *)(temp_r31->unk30 = temp_r31->unk34 = NULL); + temp_r31->unk38 = temp_r31->unk3C = temp_r31->unk40 = temp_r31->unk44 = NULL; + if (arg0 == 4) { + temp_r31->unk5 += temp_r31->unk4 != 0 && temp_r31->unk5 != 0; + temp_r31->unk5 = (temp_r31->unk4 == 0 || (temp_r31->unk5 > (((temp_r31->unk4 - 1) / 4 == 1) ? 15 : 15))) ? 0 : temp_r31->unk5; + temp_r31->unk4 = (temp_r31->unk5 == 0) ? 0 : temp_r31->unk4; + temp_r31->unk1C.x = (0.5 * temp_r31->unk18) + (0.5 * temp_r31->unk1C.x); + } + if (temp_r31->unk0) { + s32 sp1DC = 0; + StructBss2A6C *sp1D8; + if ((temp_r31->unk1 & 0x1) && temp_r31->unk1C.y == 0.0f && !temp_r31->unk4C) { + sp1DC = 1; + sp1D8 = NULL; + } + else if ((temp_r31->unk1 & 0x1) && temp_r31->unk4C && (temp_r31->unk4C->unk1C.y == temp_r31->unk1C.y - 1.0f)) { + sp1DC = 2; + sp1D8 = temp_r31->unk4C; + } + else { + if (fn_1_57C(temp_r18, temp_r31->unk1C.y + temp_f29, temp_r31, &sp1D8)) { + if (!sp1D8 || temp_r31->unk1C.y + temp_f29 >= sp1D8->unk1C.y) { + sp1DC = 2; + } + } + } + if (sp1DC != 0) { + if (temp_r31->unk1 & 0x2) { + float temp_f28 = (temp_r31->unk1C.y + temp_f29) - ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + temp_f28 = temp_r31->unk1C.y - ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + if (temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { + temp_r31->unk50->unk48[0]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + temp_r31->unk50->unk48[1]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + } + else { + temp_r31->unk50->unk48[0]->unk1C.y -= temp_f28; + temp_r31->unk50->unk48[1]->unk1C.y -= temp_f28; + } + temp_r31->unk50->unk48[0]->unk1C.z = 0; + temp_r31->unk50->unk48[1]->unk1C.z = 0; + if (sp1E0) { + if (!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0)) { + temp_r31->unk50->unk71 -= (temp_r31->unk50->unk71 != 0 && lbl_1_bss_18 == -1); + } + } + if (temp_r31->unk50->unk71 == 0 + || temp_r31->unk50->unk4 != 0 && (!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0))) { + temp_r31->unk50->unk48[0]->unk1 &= ~0x2; + temp_r31->unk50->unk48[1]->unk1 &= ~0x2; + temp_r31->unk50->unk48[0]->unk1 |= 0x10; + temp_r31->unk50->unk48[1]->unk1 |= 0x10; + temp_r31->unk1 |= 0x1; + if (temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { + s32 sp1D4; + s32 sp1D0 = (temp_r31 == temp_r31->unk50->unk48[1]) ? 1 : 0; + s32 sp1CC = temp_r31->unk50->unk48[sp1D0]->unk18; + s32 sp1C8 = temp_r31->unk50->unk48[1 - sp1D0]->unk18; + float sp1C4 = temp_r31->unk50->unk48[sp1D0]->unk1C.y; + float sp1C0 = temp_r31->unk50->unk48[1 - sp1D0]->unk1C.y; + sp1D4 = (sp1CC < sp1C8 || (sp1CC == sp1C8 && sp1C4 < sp1C0)) ? 1 : 0; + if (sp1D4 == 1) { + StructBss2A6C *temp_r21 = temp_r31->unk50->unk48[1 - sp1D0]; + StructBss2A6C *temp_r20 = (temp_r21) ? temp_r21->unk4C : NULL; + if (temp_r21) { + if ((!temp_r20 && temp_r21->unk1C.y == 0.0f) + || (temp_r20 && temp_r21->unk1C.y == temp_r20->unk1C.y + 1.0f && (temp_r20->unk1 & 0x1) + && (temp_r20->unk1 & 0x2) == 0)) { + temp_r21->unk1C.y = (temp_r20) ? (temp_r20->unk1C.y + 1.0f) : 0.0f; + temp_r21->unk1 &= ~0x1; + temp_r21->unk1 |= (temp_r20 && ((temp_r20->unk1 & 0x1) == 0 || (temp_r20->unk1 & 0x2) != 0)) ? 0 : 1; + temp_r21->unk1C.z + = (temp_r21->unk1 & 0x1) ? -0.010416667f : ((!temp_r20) ? -0.010416667f : temp_r20->unk1C.z); + sp1E8 = temp_r21; + } + } + } + } + temp_r31->unk4 = temp_r31->unk5 = 0; + if (temp_r31->unk50->unk48[0]->unk18 == temp_r31->unk50->unk48[1]->unk18) { + s32 sp1BC = (temp_r31->unk50->unk48[1] == temp_r31) ? 1 : 0; + s32 sp1B8 = temp_r31->unk50->unk48[0]->unk1C.y > temp_r31->unk50->unk48[1]->unk1C.y; + temp_r31->unk50->unk48[1 - sp1B8]->unk1C.y = 1 + temp_r31->unk50->unk48[sp1B8]->unk1C.y; + temp_r31->unk50->unk48[1 - sp1B8]->unk1C.z = -0.010416667f; + temp_r31->unk50->unk48[0]->unk1 |= 0x1; + temp_r31->unk50->unk48[1]->unk1 |= 0x1; + temp_r31->unk50->unk48[0]->unk4 = temp_r31->unk50->unk48[0]->unk5 = 0; + temp_r31->unk50->unk48[1]->unk4 = temp_r31->unk50->unk48[1]->unk5 = 0; + temp_r31->unk38 = (temp_r31->unk50->unk48[1] == temp_r31) ? temp_r31->unk50->unk48[0] : temp_r31->unk50->unk48[1]; + if (sp1BC) { + temp_r31->unk50->unk48[0]->unk1 |= 0x8; + } + else { + temp_r31->unk50->unk48[1]->unk1 |= 0x8; + } + } + temp_r31->unk50->unk48[0] = NULL; + temp_r31->unk50->unk48[1] = NULL; + } + } + else { + temp_r31->unk1C.y = (sp1D8) ? (1.0f + sp1D8->unk1C.y) : 0.0f; + temp_r31->unk1 &= ~0x1; + temp_r31->unk1 |= (sp1D8 && ((sp1D8->unk1 & 0x1) == 0 || (sp1D8->unk1 & 0x2) != 0)) ? 0 : 1; + temp_r31->unk1C.z = (temp_r31->unk1 & 0x1) ? -0.010416667f : ((!sp1D8) ? -0.010416667f : sp1D8->unk1C.z); + } + } + else { + temp_r31->unk1C.y += temp_f29; + temp_r31->unk1C.z = (sp1E0) ? ((temp_r31->unk1 & 0x3) ? 0.0f : -0.010416667f + temp_r31->unk1C.z) : temp_r31->unk1C.z; + if (temp_r31->unk1 & 0x1) { + temp_r31->unk1 &= ~0x1; + } + } + } + if ((temp_r31->unk1 & 0x1) && (sp1E4 & 0x1) && (temp_r31->unk1 & 0x8) == 0 && temp_r31 != sp1E8) { + temp_r31->unk8[0] = temp_r31->unk8[1] = temp_r31->unk8[2] = temp_r31->unk8[3] = 0; + temp_r31->unk3 = 0; + temp_r31->unk1 &= ~0x10; + } + temp_r31->unk1 &= ~0x8; + if ((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { + sp2E48[temp_r31->unk18 + 1][(int)temp_r31->unk1C.y + 1] = temp_r31; + } + if (temp_r31->unk1 & 0x2) { + temp_r31->unk1C.z = 0; + } + } + } + temp_r23 = 0; + { + s32 sp1B4; + for (temp_r18 = 0; temp_r18 < 12; temp_r18++) { + StructBss2A6C *sp1B0 = (temp_r18 < 11) ? lbl_1_bss_7884[temp_r18 + 1] : NULL; + StructBss2A6C *sp1AC = NULL; + StructBss2A6C *sp1A8 = NULL; + float sp1A4 = (sp1B0) ? (sp1B0->unk1C.y) : 0.0f; + for (temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31 = temp_r31->unk48) { + s32 sp1A0 = temp_r31->unk18 + 1; + s32 sp19C = (int)temp_r31->unk1C.y + 1; + if ((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { + if (sp2E48[sp1A0][sp19C + 1]) { + temp_r31->unk38 = sp2E48[sp1A0][sp19C + 1]; + temp_r31->unk38->unk3C = temp_r31; + } + if (sp2E48[sp1A0 + 1][sp19C]) { + sp1B0 = sp2E48[sp1A0 + 1][sp19C]; + temp_r31->unk44 = sp1B0; + temp_r31->unk44->unk40 = temp_r31; + } + sp1AC = sp2E48[sp1A0 + 1][sp19C + 1]; + sp1A8 = sp2E48[sp1A0 + 1][sp19C - 1]; + if (temp_r31->unk0 == 5 && temp_r31->unk2C == NULL && temp_r31->unk1C.y <= 8.0f && sp19C - 1 < 9) { + s32 sp198 = temp_r31->unk0 == 5; + sp14C8[temp_r23].unk0 = 5; + sp14C8[temp_r23].unk4[0] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[0]; + sp14C8[temp_r23].unk4[1] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[1]; + sp14C8[temp_r23].unk4[2] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[2]; + sp14C8[temp_r23].unk4[3] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[3]; + sp14C8[temp_r23].unk1 = 1; + sp14C8[temp_r23].unk2 = 0; + sp14C8[temp_r23].unk14 = (sp198) ? temp_r31 : temp_r30; + sp14C8[temp_r23].unk18 = (sp198) ? temp_r31 : temp_r30; + sp14C8[temp_r23].unk1C = 0; + if (sp198) { + temp_r31->unk30 = NULL; + temp_r31->unk34 = NULL; + temp_r31->unk2C = &sp14C8[temp_r23]; + } + else { + temp_r30->unk30 = NULL; + temp_r30->unk34 = NULL; + temp_r30->unk2C = &sp14C8[temp_r23]; + } + temp_r23++; + } + for (temp_r29 = 0; temp_r29 < ((temp_r31 && temp_r31->unk0 == 5) ? 2 : 0) + 2; temp_r29++) { + temp_r30 = (temp_r29 == 0) ? temp_r31->unk48 : ((temp_r29 == 1) ? sp1B0 : ((temp_r29 == 2) ? sp1AC : sp1A8)); + if (temp_r30 && (temp_r30->unk1 & 0x1)) { + if (temp_r29 != 1 || temp_r31->unk1C.y == temp_r30->unk1C.y) { + if (temp_r31->unk0 == temp_r30->unk0) { + if ((temp_r31->unk0 >= 1 && temp_r31->unk0 <= 4) + || (temp_r31->unk0 == 5 && (temp_r31->unk1C.y <= 8.0f || temp_r30->unk1C.y <= 8.0f))) { + StructSp14C8 *temp_r28 = temp_r31->unk2C; + StructSp14C8 *temp_r27 = temp_r30->unk2C; + if (temp_r31->unk2C && temp_r30->unk2C) { + if (temp_r31->unk2C != temp_r30->unk2C) { + StructBss2A6C *sp194 = temp_r28->unk14; + StructBss2A6C *sp190 = temp_r27->unk14; + while (1) { + sp190->unk2C = temp_r28; + if (!sp190->unk34) { + break; + } + sp190 = sp190->unk34; + } + temp_r27->unk14->unk30 = temp_r28->unk18; + temp_r28->unk18->unk34 = temp_r27->unk14; + temp_r28->unk4[0] = (temp_r28->unk4[0] > temp_r27->unk4[0]) ? temp_r28->unk4[0] : temp_r27->unk4[0]; + temp_r28->unk4[1] = (temp_r28->unk4[1] > temp_r27->unk4[1]) ? temp_r28->unk4[1] : temp_r27->unk4[1]; + temp_r28->unk4[2] = (temp_r28->unk4[2] > temp_r27->unk4[2]) ? temp_r28->unk4[2] : temp_r27->unk4[2]; + temp_r28->unk4[3] = (temp_r28->unk4[3] > temp_r27->unk4[3]) ? temp_r28->unk4[3] : temp_r27->unk4[3]; + temp_r28->unk1 = temp_r28->unk1 + temp_r27->unk1; + temp_r28->unk2 |= temp_r27->unk2; + temp_r28->unk18 = sp190; + temp_r27->unk14 = temp_r27->unk18 = NULL; + temp_r27->unk1 = 0; + temp_r27->unk0 = 0; + temp_r27->unk1C = temp_r28; + } + } + else { + if (temp_r31->unk2C) { + temp_r30->unk2C = temp_r31->unk2C; + temp_r28->unk18->unk34 = temp_r30; + temp_r30->unk30 = temp_r28->unk18; + temp_r28->unk18 = temp_r30; + temp_r28->unk1++; + temp_r28->unk2 |= temp_r30->unk3; + temp_r28->unk4[0] = (temp_r28->unk4[0] < temp_r30->unk8[0]) ? temp_r30->unk8[0] : temp_r28->unk4[0]; + temp_r28->unk4[1] = (temp_r28->unk4[1] < temp_r30->unk8[1]) ? temp_r30->unk8[1] : temp_r28->unk4[1]; + temp_r28->unk4[2] = (temp_r28->unk4[2] < temp_r30->unk8[2]) ? temp_r30->unk8[2] : temp_r28->unk4[2]; + temp_r28->unk4[3] = (temp_r28->unk4[3] < temp_r30->unk8[3]) ? temp_r30->unk8[3] : temp_r28->unk4[3]; + } + else if (temp_r30->unk2C) { + temp_r31->unk2C = temp_r30->unk2C; + temp_r27->unk18->unk34 = temp_r31; + temp_r31->unk30 = temp_r27->unk18; + temp_r27->unk18 = temp_r31; + temp_r27->unk1++; + temp_r27->unk2 |= temp_r31->unk3; + temp_r27->unk4[0] = (temp_r27->unk4[0] < temp_r31->unk8[0]) ? temp_r31->unk8[0] : temp_r27->unk4[0]; + temp_r27->unk4[1] = (temp_r27->unk4[1] < temp_r31->unk8[1]) ? temp_r31->unk8[1] : temp_r27->unk4[1]; + temp_r27->unk4[2] = (temp_r27->unk4[2] < temp_r31->unk8[2]) ? temp_r31->unk8[2] : temp_r27->unk4[2]; + temp_r27->unk4[3] = (temp_r27->unk4[3] < temp_r31->unk8[3]) ? temp_r31->unk8[3] : temp_r27->unk4[3]; + } + else { + sp14C8[temp_r23].unk0 = temp_r31->unk0; + sp14C8[temp_r23].unk4[0] + = (temp_r31->unk8[0] > temp_r30->unk8[0]) ? temp_r31->unk8[0] : temp_r30->unk8[0]; + sp14C8[temp_r23].unk4[1] + = (temp_r31->unk8[1] > temp_r30->unk8[1]) ? temp_r31->unk8[1] : temp_r30->unk8[1]; + sp14C8[temp_r23].unk4[2] + = (temp_r31->unk8[2] > temp_r30->unk8[2]) ? temp_r31->unk8[2] : temp_r30->unk8[2]; + sp14C8[temp_r23].unk4[3] + = (temp_r31->unk8[3] > temp_r30->unk8[3]) ? temp_r31->unk8[3] : temp_r30->unk8[3]; + sp14C8[temp_r23].unk1 = 2; + sp14C8[temp_r23].unk2 = (temp_r31->unk3 | temp_r30->unk3); + sp14C8[temp_r23].unk14 = temp_r31; + sp14C8[temp_r23].unk18 = temp_r30; + sp14C8[temp_r23].unk1C = NULL; + temp_r31->unk30 = NULL; + temp_r31->unk34 = temp_r30; + temp_r30->unk30 = temp_r31; + temp_r30->unk34 = NULL; + temp_r31->unk2C = &sp14C8[temp_r23]; + temp_r30->unk2C = &sp14C8[temp_r23]; + temp_r23++; + } + } + } + } + } + } + } + } + } + } + for (temp_r29 = 0; temp_r29 < temp_r23; temp_r29++) { + StructBss2A6C *sp18C; + if (sp14C8[temp_r29].unk0 != 5) { + continue; + } + sp18C = sp14C8[temp_r29].unk14; + for (temp_r19 = 0; temp_r19 < sp14C8[temp_r29].unk1; temp_r19++) { + s32 temp_r24 = sp18C->unk18 + 1; + s32 temp_r25 = (int)sp18C->unk1C.y + 1; + if (sp14C8[temp_r29].unk0 != 0 && temp_r25 <= 9) { + if (!CHECK_2E48(temp_r24, temp_r25, sp2E48)) { + sp14C8[temp_r29].unk0 = 0; + } + else { + sp14C8[temp_r29].unk2 |= ((sp2E48[temp_r24 - 1][temp_r25]) ? sp2E48[temp_r24 - 1][temp_r25]->unk3 : 0) + | ((sp2E48[temp_r24 + 1][temp_r25]) ? sp2E48[temp_r24 + 1][temp_r25]->unk3 : 0) + | ((sp2E48[temp_r24][temp_r25 - 1]) ? sp2E48[temp_r24][temp_r25 - 1]->unk3 : 0) + | ((sp2E48[temp_r24][temp_r25 + 1]) ? sp2E48[temp_r24][temp_r25 + 1]->unk3 : 0) + | ((sp2E48[temp_r24 + 1][temp_r25 - 1]) ? sp2E48[temp_r24 + 1][temp_r25 - 1]->unk3 : 0) + | ((sp2E48[temp_r24 + 1][temp_r25 + 1]) ? sp2E48[temp_r24 + 1][temp_r25 + 1]->unk3 : 0) + | ((sp2E48[temp_r24 - 1][temp_r25 - 1]) ? sp2E48[temp_r24 - 1][temp_r25 - 1]->unk3 : 0) + | ((sp2E48[temp_r24 - 1][temp_r25 + 1]) ? sp2E48[temp_r24 - 1][temp_r25 + 1]->unk3 : 0); + } + sp18C = sp18C->unk34; + if (!sp18C) { + break; + } + } + } + } + for (temp_r29 = 0; temp_r29 < temp_r23; temp_r29++) { + if ((sp14C8[temp_r29].unk0 >= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3) || sp14C8[temp_r29].unk0 == 5) { + fn_1_38C(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); + } + } + sp1B4 = 1; + while (sp1B4 >= 0) { + s32 temp_r22 = 0; + s32 sp188 = 0; + for (temp_r29 = 0; temp_r29 < temp_r23; temp_r29++) { + if ((!sp1B4 && (sp14C8[temp_r29].unk0 >= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3)) + || (sp1B4 == 1 && sp14C8[temp_r29].unk0 == 5)) { + StructBss2A6C *temp_r26 = sp14C8[temp_r29].unk14; + s32 sp184 = 0; + s32 sp180 = 0; + float temp_f31 = -1; + float temp_f30 = -1; + if (sp14C8[temp_r29].unk0 == 5) { + lbl_1_bss_D0++; + lbl_1_bss_D0 %= 5; + lbl_1_bss_D4[lbl_1_bss_D0][1] = 1; + lbl_1_bss_D4[lbl_1_bss_D0][0] = 0; + for (temp_r19 = 0; temp_r19 < 10; temp_r19++) { + Hu3DModelAttrSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + temp_r19)], 1); + } + } + for (temp_r19 = 0; temp_r19 < sp14C8[temp_r29].unk1; temp_r19++) { + if (-1.0f == temp_f31) { + sp180 = 1; + temp_f31 = temp_r26->unk18; + temp_f30 = temp_r26->unk1C.y; + } + else { + sp180++; + temp_f31 = (temp_f31 * (1.0 - (1.0 / sp180))) + (temp_r26->unk18 * (1.0 / sp180)); + temp_f30 = (temp_f30 * (1.0 - (1.0 / sp180))) + (temp_r26->unk1C.y * (1.0 / sp180)); + } + if (sp14C8[temp_r29].unk0 == 5) { + if (lbl_1_bss_D4[lbl_1_bss_D0][0] < 10) { + Hu3DModelPosSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], + (((temp_r26->unk18 * 100) - 500.0) - 50.0), 50.0f + ((100.0f * temp_r26->unk1C.y) - 500.0f), 120); + Hu3DModelAttrReset(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], 1); + Hu3DMotionTimeSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], 2.0f); + lbl_1_bss_D4[lbl_1_bss_D0][0]++; + lbl_1_bss_B8.unk4 += 4; + if (lbl_1_bss_D4[lbl_1_bss_D0][0] == 1) { + lbl_1_bss_B8.unk4 += 7; + } + } + fn_1_8AC8(temp_r26->unk38, &sp14C8[temp_r29]); + fn_1_8AC8((temp_r26->unk44 && temp_r26->unk44->unk38) ? temp_r26->unk44->unk38 : temp_r26->unk44, &sp14C8[temp_r29]); + fn_1_8AC8((temp_r26->unk40 && temp_r26->unk40->unk38) ? temp_r26->unk40->unk38 : temp_r26->unk40, &sp14C8[temp_r29]); + spD58[temp_r22] = temp_r26->unk38; + temp_r22++; + spD58[temp_r22] = temp_r26->unk3C; + temp_r22++; + if (temp_r26->unk44) { + spD58[temp_r22] = temp_r26->unk44->unk38; + temp_r22++; + spD58[temp_r22] = temp_r26->unk44->unk3C; + temp_r22++; + } + spD58[temp_r22] = temp_r26->unk44; + temp_r22++; + if (temp_r26->unk40) { + spD58[temp_r22] = temp_r26->unk40->unk38; + temp_r22++; + spD58[temp_r22] = temp_r26->unk40->unk3C; + temp_r22++; + } + spD58[temp_r22] = temp_r26->unk40; + temp_r22++; + spD58[temp_r22] = temp_r26; + temp_r22++; + } + else { + fn_1_8AC8(temp_r26, &sp14C8[temp_r29]); + sp184 += fn_1_7F8(temp_r26, &sp14C8[temp_r29]); + } + temp_r26 = temp_r26->unk34; + if (!temp_r26) { + break; + } + } + if (sp14C8[temp_r29].unk0 == 5 && (sp14C8[temp_r29].unk2 & 0xF)) { + Work19C8 *sp220[4]; + s32 sp17C; + for (sp17C = 0; sp17C < 4; sp17C++) { + if ((1 << sp17C) & (sp14C8[temp_r29].unk2)) { + sp220[sp17C] = lbl_1_bss_34[sp17C]->data; + omVibrate(sp220[sp17C]->unk14, 12, 6, 6); + } + } + } + if (lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0 < 3) { + lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk4[lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0] + = 0.45 * (((temp_f31 - 5.0) - 0.5) / 5.5); + lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0++; + } + if (sp1B4 == 0 && sp184 > 0 && lbl_1_bss_18 == -1) { + s32 sp178 = 0; + s32 sp174 = fn_1_4C0(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); + Vec sp214 = { 0, 0, 50 }; + s32 temp_r17; + for (temp_r17 = 0; temp_r17 < 4; temp_r17++) { + sp178 += ((1 << temp_r17) != 0) & sp14C8[temp_r29].unk2; + } + sp178--; + sp214.x = (100.0f * temp_f31) - 500.0; + sp214.y = 100 + ((100 * temp_f30) - 500); + sp214.x += sp178 * 12; + sp214.y -= sp178 * 30; + for (temp_r17 = 3; temp_r17 >= 0; temp_r17--) { + if ((1 << temp_r17) & sp14C8[temp_r29].unk2) { + Vec sp208; + lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; + lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp184; + lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1 << temp_r17; + Hu3D3Dto2D(&sp214, 1, &sp208); + lbl_1_bss_2684[lbl_1_bss_2680].unk0 = sp208.x; + lbl_1_bss_2684[lbl_1_bss_2680].unk4 = sp208.y; + lbl_1_bss_2680++; + lbl_1_bss_2680 %= 50; + sp214.x -= 24.0f; + sp214.y += 60.0f; + } + } + sp174 = (sp174 > 3) ? 3 : sp174; + if (lbl_1_bss_48[sp174 + 3].unk0 < 3) { + lbl_1_bss_48[sp174 + 3].unk4[lbl_1_bss_48[sp174 + 3].unk0] = 0.45 * (((temp_f31 - 5.0) - 0.5) / 5.5); + lbl_1_bss_48[sp174 + 3].unk0++; + } + } + spA28[sp188] = &sp14C8[temp_r29]; + sp230[sp188] = temp_r22; + sp6F8[sp188] = temp_f31; + sp3C8[sp188] = temp_f30; + sp188++; + } + } + for (temp_r29 = 0; temp_r29 < sp188; temp_r29++) { + s32 sp170 = 0; + + for (temp_r19 = (temp_r29 < 1) ? 0 : sp230[temp_r29 - 1]; temp_r19 < sp230[temp_r29]; temp_r19++) { + sp170 += fn_1_7F8(spD58[temp_r19], spA28[temp_r29]); + } + if (sp1B4 == 1 && sp170 > 0 && lbl_1_bss_18 == -1) { + s32 sp16C; + s32 sp168 = 0; + s32 sp164 = fn_1_4C0(&spA28[temp_r29]->unk2, spA28[temp_r29]->unk4); + Vec sp1FC = { 0, 0, 50 }; + for (sp16C = 0; sp16C < 4; sp16C++) { + sp168 += ((1 << sp16C) != 0) & spA28[temp_r29]->unk2; + } + sp168--; + sp1FC.x = (100.0f * sp6F8[temp_r29]) - 500.0; + sp1FC.y = 100 + ((100 * sp3C8[temp_r29]) - 500); + sp1FC.x += sp168 * 12; + sp1FC.y -= sp168 * 30; + for (sp16C = 3; sp16C >= 0; sp16C--) { + if ((1 << sp16C) & spA28[temp_r29]->unk2) { + Vec sp1F0; + lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; + lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp170; + lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1 << sp16C; + Hu3D3Dto2D(&sp1FC, 1, &sp1F0); + lbl_1_bss_2684[lbl_1_bss_2680].unk0 = sp1F0.x; + lbl_1_bss_2684[lbl_1_bss_2680].unk4 = sp1F0.y; + lbl_1_bss_2680++; + lbl_1_bss_2680 %= 50; + sp1FC.x -= 24.0f; + sp1FC.y += 60.0f; + } + } + sp164 = (sp164 > 3) ? 3 : sp164; + if (lbl_1_bss_48[sp164 + 3].unk0 < 3) { + lbl_1_bss_48[sp164 + 3].unk4[lbl_1_bss_48[sp164 + 3].unk0] = 0.45 * (((sp6F8[temp_r29] - 5.0) - 0.5) / 5.5); + lbl_1_bss_48[sp164 + 3].unk0++; + } + } + } + sp1B4--; + } + } } #undef CHECK_2E48 void fn_1_8AC8(StructBss2A6C *arg0, StructSp14C8 *arg1) { - StructBss2A6C *temp_r31 = arg0; - if(!arg0) { - return; - } - if(arg0->unk0 == 0) { - return; - } - while(temp_r31->unk48) { - if(!temp_r31->unk48->unk0 || (temp_r31->unk48->unk1 & 0x1) == 0 || temp_r31->unk48->unk1C.y != temp_r31->unk1C.y+1.0f) { - break; - } - temp_r31 = temp_r31->unk48; - temp_r31->unk8[0] = arg1->unk4[0]+((arg1->unk2 & 0x1) ? 1 : 0); - temp_r31->unk8[1] = arg1->unk4[1]+((arg1->unk2 & 0x2) ? 1 : 0); - temp_r31->unk8[2] = arg1->unk4[2]+((arg1->unk2 & 0x4) ? 1 : 0); - temp_r31->unk8[3] = arg1->unk4[3]+((arg1->unk2 & 0x8) ? 1 : 0); - temp_r31->unk3 = arg1->unk2; - - } + StructBss2A6C *temp_r31 = arg0; + if (!arg0) { + return; + } + if (arg0->unk0 == 0) { + return; + } + while (temp_r31->unk48) { + if (!temp_r31->unk48->unk0 || (temp_r31->unk48->unk1 & 0x1) == 0 || temp_r31->unk48->unk1C.y != temp_r31->unk1C.y + 1.0f) { + break; + } + temp_r31 = temp_r31->unk48; + temp_r31->unk8[0] = arg1->unk4[0] + ((arg1->unk2 & 0x1) ? 1 : 0); + temp_r31->unk8[1] = arg1->unk4[1] + ((arg1->unk2 & 0x2) ? 1 : 0); + temp_r31->unk8[2] = arg1->unk4[2] + ((arg1->unk2 & 0x4) ? 1 : 0); + temp_r31->unk8[3] = arg1->unk4[3] + ((arg1->unk2 & 0x8) ? 1 : 0); + temp_r31->unk3 = arg1->unk2; + } } -//decomp.me link is https://decomp.me/scratch/PbkiW +// decomp.me link is https://decomp.me/scratch/PbkiW void fn_1_8C10(omObjData *object) { - s32 temp_r31; - s32 temp_r30; - - Work19C8 *sp88[4]; - lbl_1_bss_4++; - { - s32 temp_r23; - for(temp_r23=0; temp_r23<4; temp_r23++) { - fn_1_19C8(lbl_1_bss_34[temp_r23]); - fn_1_52A4(temp_r23); - } - } - - fn_1_52A4(4); - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp88[temp_r31] = lbl_1_bss_34[temp_r31]->data; - } - if(lbl_1_bss_18 == -1) { - if(sp88[0]->unk24 >= 100 || sp88[1]->unk24 >= 100 || sp88[2]->unk24 >= 100 || sp88[3]->unk24 >= 100) { - s32 sp78[4] = { 0, 1, 2, 3 }; - for(temp_r31=0; temp_r31<4; temp_r31++) { - s32 temp_r22 = rand8()%4; - if(sp88[temp_r22]->unk24 >= 100) { - lbl_1_bss_18 = temp_r22; - for(temp_r30=0; temp_r30<4; temp_r30++) { - if(temp_r30 != temp_r22) { - if(sp88[temp_r30]->unk24 >= 100) { - sp88[temp_r30]->unk24 = sp88[temp_r30]->unk28; - } - } - } - } else { - for(temp_r30=temp_r22; temp_r30<3-temp_r31; temp_r30++) { - sp78[temp_r30] = sp78[temp_r30+1]; - } - } - } - } - } - temp_r31 = (sp88[0]->unk79 != 0)+(sp88[1]->unk79 != 0)+(sp88[2]->unk79 != 0)+(sp88[3]->unk79 != 0); - if(lbl_1_bss_18 == -1 && temp_r31 == 3) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - if(!sp88[temp_r30]->unk78) { - lbl_1_bss_18 = temp_r30; - } - } - } - if(lbl_1_bss_18 == -1 && temp_r31 == 4) { - lbl_1_bss_18 = 4; - } - if(lbl_1_bss_18 != -1) { - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(sp88[temp_r31]->unk48[0]) { - sp88[temp_r31]->unk48[0]->unk1 &= ~0x2; - } - if(sp88[temp_r31]->unk48[1]) { - sp88[temp_r31]->unk48[1]->unk1 &= ~0x2; - } - sp88[temp_r31]->unk48[0] = NULL; - sp88[temp_r31]->unk48[1] = NULL; - } - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp88[temp_r31]->unk44 = (sp88[temp_r31]->unk40 == sp88[temp_r31]->unk24) ? sp88[temp_r31]->unk44+1 : 0; - sp88[temp_r31]->unk40 += (sp88[temp_r31]->unk40 < sp88[temp_r31]->unk24) ? 0.375 : 0; - sp88[temp_r31]->unk40 = (sp88[temp_r31]->unk40 > sp88[temp_r31]->unk24) ? (float)sp88[temp_r31]->unk24 : sp88[temp_r31]->unk40; - for(temp_r30=0; temp_r30<3; temp_r30++) { - float temp_f28 = sp88[temp_r31]->unk40; - float sp4C = (s32)(temp_f28/100.0f)%10; - float temp_f22 = (s32)(temp_f28/10.0f)%10; - float temp_f24 = ((s32)temp_f28)%10; - float temp_f23 = temp_f28-(s32)temp_f28; - float temp_f25 = (temp_r30 == 0) ? ((sp88[temp_r31]->unk24/100)%10) : ((temp_r30 == 1) ? ((sp88[temp_r31]->unk24/10)%10) : sp88[temp_r31]->unk24%10); - s32 sp98[5] = { 0, 15, -9, 3, 0 }; - switch(temp_r30) { - case 0: - temp_f25 = sp4C+(temp_f23*((9.0f == temp_f24 && 9.0f == temp_f22) ? 1.0 : 0.0)); - break; - - case 1: - temp_f25 = temp_f22+(temp_f23*((9.0f == temp_f24) ? 1.0 : 0.0)); - break; - - case 2: - temp_f25 = temp_f24+temp_f23; - break; - } - Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[temp_r30+1], 36.0f*temp_f25, 0, 0); - } - } - { - s32 spAC[8][3] = { - 255,64,64, - 32,192,255, - 255,128,255, - 32,208,32, - 224,32,224, - 230,128,32, - 255,240,32, - 160,160,160 - }; - s32 temp_r29 = lbl_1_bss_2680; - s32 temp_r28 = 0; - Work19C8 *sp68[4]; - for(temp_r28=0; temp_r28<4; temp_r28++) { - sp68[temp_r28] = lbl_1_bss_34[temp_r28]->data; - } - do { - temp_r29--; - temp_r29 = (temp_r29 < 0) ? temp_r29+50 : temp_r29; - if(lbl_1_bss_2684[temp_r29].unkC == 0 || (lbl_1_bss_2684[temp_r29].unk10 & 0xF) == 0) { - HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); - } else { - s32 temp_r26 = 0; - u32 temp_r19; - s32 temp_r18; - - s32 temp_r24; - - s32 sp58[4]; - temp_r18 = ((lbl_1_bss_2684[temp_r29].unk8 >= 10) ? 2 : 1)+1; - if(lbl_1_bss_2684[temp_r29].unk10 & 0x1) { - sp58[temp_r26] = 0; - temp_r26++; - } - if(lbl_1_bss_2684[temp_r29].unk10 & 0x2) { - sp58[temp_r26] = 1; - temp_r26++; - } - if(lbl_1_bss_2684[temp_r29].unk10 & 0x4) { - sp58[temp_r26] = 2; - temp_r26++; - } - if(lbl_1_bss_2684[temp_r29].unk10 & 0x8) { - sp58[temp_r26] = 3; - temp_r26++; - } - temp_r19 = sp68[sp58[lbl_1_bss_4%temp_r26]]->unk18; - for(temp_r24=0; temp_r24 0; - if(lbl_1_bss_2684[temp_r29].unkC >= 40) { - lbl_1_bss_2684[temp_r29].unkC = 0; - } - - } while(temp_r29 != lbl_1_bss_2680); - for(; temp_r28<150; temp_r28++) { - HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); - } - } - { - s32 temp_r27 = lbl_1_bss_FC; - s32 temp_r25; - s32 temp_r17; - for(temp_r17=0; temp_r17<300; temp_r17++) { - temp_r27 = temp_r27+1; - temp_r27 %= 300; - if(!lbl_1_bss_100[temp_r27].unk0) { - continue; - } - lbl_1_bss_100[temp_r27].unk4.x += lbl_1_bss_100[temp_r27].unk10.x; - lbl_1_bss_100[temp_r27].unk4.y += lbl_1_bss_100[temp_r27].unk10.y; - lbl_1_bss_100[temp_r27].unk4.z += lbl_1_bss_100[temp_r27].unk10.z; - lbl_1_bss_100[temp_r27].unk10.y += -1.5; - if(lbl_1_bss_100[temp_r27].unk4.y < -1000.0f) { - lbl_1_bss_100[temp_r27].unk0 = 0; - } - lbl_1_bss_100[temp_r27].unk1C += 9; - } - for(temp_r25=0; temp_r25<5; temp_r25++) { - if(lbl_1_bss_D4[temp_r25][0] > 0) { - lbl_1_bss_D4[temp_r25][1]++; - if(lbl_1_bss_D4[temp_r25][1] > 30) { - s32 temp_r21; - lbl_1_bss_D4[temp_r25][0] = 0; - lbl_1_bss_D4[temp_r25][1] = 0; - for(temp_r21=0; temp_r21<10; temp_r21++) { - Hu3DModelAttrSet(object->model[(temp_r25*10)+13+temp_r21], 1); - } - } - } - } - if(lbl_1_bss_44->work[0] >= 1002) { - float temp_f27 = 0; - float temp_f26 = 0; - if(lbl_1_bss_B8.unk0 % 2 >= 0) { - lbl_1_bss_B8.unk8 = lbl_1_bss_B8.unkC.y; - lbl_1_bss_B8.unkC.x = lbl_1_bss_B8.unkC.z; - do { - lbl_1_bss_B8.unkC.y = (2.0*(rand8()/255.0))-1.0; - lbl_1_bss_B8.unkC.z = (2.0*(rand8()/255.0))-1.0; - lbl_1_bss_B8.unkC.y = 0; - } while(VECMagPoint(lbl_1_bss_B8.unkC.y-lbl_1_bss_B8.unk8, lbl_1_bss_B8.unkC.z-lbl_1_bss_B8.unkC.x, 0) < 0.75); - } - temp_f27 = lbl_1_bss_B8.unk8; - temp_f26 = lbl_1_bss_B8.unkC.x; - temp_f27 *= lbl_1_bss_B8.unk4*2; - temp_f26 *= lbl_1_bss_B8.unk4*2; - lbl_1_bss_B8.unk0 = lbl_1_bss_B8.unk0 == 0; - lbl_1_bss_B8.unk4 = (lbl_1_bss_B8.unk4 > 24) ? 23 : ((lbl_1_bss_B8.unk4-1 > 0) ? lbl_1_bss_B8.unk4-1 : 0); - Hu3DCameraPosSet(1, temp_f27, 37.139069+temp_f26, 2599.7346f, 0, 1, 0, temp_f27, 50.0f+temp_f26, 0); - } - if(lbl_1_bss_18 != -1) { - float temp_f30; - s32 temp_r20; - lbl_1_bss_10++; - temp_f30 = 1.0f-((lbl_1_bss_10 > 180) ? 1.0f : (lbl_1_bss_10/180.0f)); - Hu3DMotionSpeedSet(lbl_1_bss_30->model[0], 0.5*temp_f30); - for(temp_r20=0; temp_r20<4; temp_r20++) { - Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r20]->model[5], 0.5*temp_f30); - } - if(temp_f30 > 0.0f && lbl_1_data_4[0] != -1) { - HuAudFXPitchSet(lbl_1_data_4[0], -8192.0f+(8192.0f*temp_f30)); - HuAudFXPitchSet(lbl_1_data_4[1], -8192.0f+(8192.0f*temp_f30)); - HuAudFXVolSet(lbl_1_data_4[0], 63.0f+(64.0f*temp_f30)); - HuAudFXVolSet(lbl_1_data_4[1], 63.0f+(64.0f*temp_f30)); - } else { - if(lbl_1_data_4[0] != -1) { - HuAudFXStop(lbl_1_data_4[0]); - HuAudFXStop(lbl_1_data_4[1]); - lbl_1_data_4[0] = lbl_1_data_4[1] = -1; - - } - } - } - } + s32 temp_r31; + s32 temp_r30; + + Work19C8 *sp88[4]; + lbl_1_bss_4++; + { + s32 temp_r23; + for (temp_r23 = 0; temp_r23 < 4; temp_r23++) { + fn_1_19C8(lbl_1_bss_34[temp_r23]); + fn_1_52A4(temp_r23); + } + } + + fn_1_52A4(4); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp88[temp_r31] = lbl_1_bss_34[temp_r31]->data; + } + if (lbl_1_bss_18 == -1) { + if (sp88[0]->unk24 >= 100 || sp88[1]->unk24 >= 100 || sp88[2]->unk24 >= 100 || sp88[3]->unk24 >= 100) { + s32 sp78[4] = { 0, 1, 2, 3 }; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + s32 temp_r22 = rand8() % 4; + if (sp88[temp_r22]->unk24 >= 100) { + lbl_1_bss_18 = temp_r22; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + if (temp_r30 != temp_r22) { + if (sp88[temp_r30]->unk24 >= 100) { + sp88[temp_r30]->unk24 = sp88[temp_r30]->unk28; + } + } + } + } + else { + for (temp_r30 = temp_r22; temp_r30 < 3 - temp_r31; temp_r30++) { + sp78[temp_r30] = sp78[temp_r30 + 1]; + } + } + } + } + } + temp_r31 = (sp88[0]->unk79 != 0) + (sp88[1]->unk79 != 0) + (sp88[2]->unk79 != 0) + (sp88[3]->unk79 != 0); + if (lbl_1_bss_18 == -1 && temp_r31 == 3) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + if (!sp88[temp_r30]->unk78) { + lbl_1_bss_18 = temp_r30; + } + } + } + if (lbl_1_bss_18 == -1 && temp_r31 == 4) { + lbl_1_bss_18 = 4; + } + if (lbl_1_bss_18 != -1) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (sp88[temp_r31]->unk48[0]) { + sp88[temp_r31]->unk48[0]->unk1 &= ~0x2; + } + if (sp88[temp_r31]->unk48[1]) { + sp88[temp_r31]->unk48[1]->unk1 &= ~0x2; + } + sp88[temp_r31]->unk48[0] = NULL; + sp88[temp_r31]->unk48[1] = NULL; + } + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp88[temp_r31]->unk44 = (sp88[temp_r31]->unk40 == sp88[temp_r31]->unk24) ? sp88[temp_r31]->unk44 + 1 : 0; + sp88[temp_r31]->unk40 += (sp88[temp_r31]->unk40 < sp88[temp_r31]->unk24) ? 0.375 : 0; + sp88[temp_r31]->unk40 = (sp88[temp_r31]->unk40 > sp88[temp_r31]->unk24) ? (float)sp88[temp_r31]->unk24 : sp88[temp_r31]->unk40; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + float temp_f28 = sp88[temp_r31]->unk40; + float sp4C = (s32)(temp_f28 / 100.0f) % 10; + float temp_f22 = (s32)(temp_f28 / 10.0f) % 10; + float temp_f24 = ((s32)temp_f28) % 10; + float temp_f23 = temp_f28 - (s32)temp_f28; + float temp_f25 = (temp_r30 == 0) ? ((sp88[temp_r31]->unk24 / 100) % 10) + : ((temp_r30 == 1) ? ((sp88[temp_r31]->unk24 / 10) % 10) : sp88[temp_r31]->unk24 % 10); + s32 sp98[5] = { 0, 15, -9, 3, 0 }; + switch (temp_r30) { + case 0: + temp_f25 = sp4C + (temp_f23 * ((9.0f == temp_f24 && 9.0f == temp_f22) ? 1.0 : 0.0)); + break; + + case 1: + temp_f25 = temp_f22 + (temp_f23 * ((9.0f == temp_f24) ? 1.0 : 0.0)); + break; + + case 2: + temp_f25 = temp_f24 + temp_f23; + break; + } + Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[temp_r30 + 1], 36.0f * temp_f25, 0, 0); + } + } + { + s32 spAC[8][3] = { 255, 64, 64, 32, 192, 255, 255, 128, 255, 32, 208, 32, 224, 32, 224, 230, 128, 32, 255, 240, 32, 160, 160, 160 }; + s32 temp_r29 = lbl_1_bss_2680; + s32 temp_r28 = 0; + Work19C8 *sp68[4]; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + sp68[temp_r28] = lbl_1_bss_34[temp_r28]->data; + } + do { + temp_r29--; + temp_r29 = (temp_r29 < 0) ? temp_r29 + 50 : temp_r29; + if (lbl_1_bss_2684[temp_r29].unkC == 0 || (lbl_1_bss_2684[temp_r29].unk10 & 0xF) == 0) { + HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); + } + else { + s32 temp_r26 = 0; + u32 temp_r19; + s32 temp_r18; + + s32 temp_r24; + + s32 sp58[4]; + temp_r18 = ((lbl_1_bss_2684[temp_r29].unk8 >= 10) ? 2 : 1) + 1; + if (lbl_1_bss_2684[temp_r29].unk10 & 0x1) { + sp58[temp_r26] = 0; + temp_r26++; + } + if (lbl_1_bss_2684[temp_r29].unk10 & 0x2) { + sp58[temp_r26] = 1; + temp_r26++; + } + if (lbl_1_bss_2684[temp_r29].unk10 & 0x4) { + sp58[temp_r26] = 2; + temp_r26++; + } + if (lbl_1_bss_2684[temp_r29].unk10 & 0x8) { + sp58[temp_r26] = 3; + temp_r26++; + } + temp_r19 = sp68[sp58[lbl_1_bss_4 % temp_r26]]->unk18; + for (temp_r24 = 0; temp_r24 < temp_r18; temp_r28++, temp_r24++) { + HuSprPosSet(lbl_1_bss_14, temp_r28, (temp_r24 * 14) + (lbl_1_bss_2684[temp_r29].unk0 - ((temp_r18 * 14) / 2)), + lbl_1_bss_2684[temp_r29].unk4 - lbl_1_bss_2684[temp_r29].unkC); + HuSprAttrReset(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); + HuSprColorSet(lbl_1_bss_14, temp_r28, spAC[temp_r19][0], spAC[temp_r19][1], spAC[temp_r19][2]); + HuSprTPLvlSet(lbl_1_bss_14, temp_r28, + (lbl_1_bss_2684[temp_r29].unkC <= 30) ? 1.0f : (1.0f - ((lbl_1_bss_2684[temp_r29].unkC - 30) / 10.0f))); + HuSprBankSet(lbl_1_bss_14, temp_r28, + (temp_r24 == 0) + ? 10 + : ((temp_r24 == 2 || temp_r18 == 2) ? lbl_1_bss_2684[temp_r29].unk8 % 10 : ((lbl_1_bss_2684[temp_r29].unk8 / 10) % 10))); + } + } + lbl_1_bss_2684[temp_r29].unkC += lbl_1_bss_2684[temp_r29].unkC > 0; + if (lbl_1_bss_2684[temp_r29].unkC >= 40) { + lbl_1_bss_2684[temp_r29].unkC = 0; + } + + } while (temp_r29 != lbl_1_bss_2680); + for (; temp_r28 < 150; temp_r28++) { + HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); + } + } + { + s32 temp_r27 = lbl_1_bss_FC; + s32 temp_r25; + s32 temp_r17; + for (temp_r17 = 0; temp_r17 < 300; temp_r17++) { + temp_r27 = temp_r27 + 1; + temp_r27 %= 300; + if (!lbl_1_bss_100[temp_r27].unk0) { + continue; + } + lbl_1_bss_100[temp_r27].unk4.x += lbl_1_bss_100[temp_r27].unk10.x; + lbl_1_bss_100[temp_r27].unk4.y += lbl_1_bss_100[temp_r27].unk10.y; + lbl_1_bss_100[temp_r27].unk4.z += lbl_1_bss_100[temp_r27].unk10.z; + lbl_1_bss_100[temp_r27].unk10.y += -1.5; + if (lbl_1_bss_100[temp_r27].unk4.y < -1000.0f) { + lbl_1_bss_100[temp_r27].unk0 = 0; + } + lbl_1_bss_100[temp_r27].unk1C += 9; + } + for (temp_r25 = 0; temp_r25 < 5; temp_r25++) { + if (lbl_1_bss_D4[temp_r25][0] > 0) { + lbl_1_bss_D4[temp_r25][1]++; + if (lbl_1_bss_D4[temp_r25][1] > 30) { + s32 temp_r21; + lbl_1_bss_D4[temp_r25][0] = 0; + lbl_1_bss_D4[temp_r25][1] = 0; + for (temp_r21 = 0; temp_r21 < 10; temp_r21++) { + Hu3DModelAttrSet(object->model[(temp_r25 * 10) + 13 + temp_r21], 1); + } + } + } + } + if (lbl_1_bss_44->work[0] >= 1002) { + float temp_f27 = 0; + float temp_f26 = 0; + if (lbl_1_bss_B8.unk0 % 2 >= 0) { + lbl_1_bss_B8.unk8 = lbl_1_bss_B8.unkC.y; + lbl_1_bss_B8.unkC.x = lbl_1_bss_B8.unkC.z; + do { + lbl_1_bss_B8.unkC.y = (2.0 * (rand8() / 255.0)) - 1.0; + lbl_1_bss_B8.unkC.z = (2.0 * (rand8() / 255.0)) - 1.0; + lbl_1_bss_B8.unkC.y = 0; + } while (VECMagPoint(lbl_1_bss_B8.unkC.y - lbl_1_bss_B8.unk8, lbl_1_bss_B8.unkC.z - lbl_1_bss_B8.unkC.x, 0) < 0.75); + } + temp_f27 = lbl_1_bss_B8.unk8; + temp_f26 = lbl_1_bss_B8.unkC.x; + temp_f27 *= lbl_1_bss_B8.unk4 * 2; + temp_f26 *= lbl_1_bss_B8.unk4 * 2; + lbl_1_bss_B8.unk0 = lbl_1_bss_B8.unk0 == 0; + lbl_1_bss_B8.unk4 = (lbl_1_bss_B8.unk4 > 24) ? 23 : ((lbl_1_bss_B8.unk4 - 1 > 0) ? lbl_1_bss_B8.unk4 - 1 : 0); + Hu3DCameraPosSet(1, temp_f27, 37.139069 + temp_f26, 2599.7346f, 0, 1, 0, temp_f27, 50.0f + temp_f26, 0); + } + if (lbl_1_bss_18 != -1) { + float temp_f30; + s32 temp_r20; + lbl_1_bss_10++; + temp_f30 = 1.0f - ((lbl_1_bss_10 > 180) ? 1.0f : (lbl_1_bss_10 / 180.0f)); + Hu3DMotionSpeedSet(lbl_1_bss_30->model[0], 0.5 * temp_f30); + for (temp_r20 = 0; temp_r20 < 4; temp_r20++) { + Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r20]->model[5], 0.5 * temp_f30); + } + if (temp_f30 > 0.0f && lbl_1_data_4[0] != -1) { + HuAudFXPitchSet(lbl_1_data_4[0], -8192.0f + (8192.0f * temp_f30)); + HuAudFXPitchSet(lbl_1_data_4[1], -8192.0f + (8192.0f * temp_f30)); + HuAudFXVolSet(lbl_1_data_4[0], 63.0f + (64.0f * temp_f30)); + HuAudFXVolSet(lbl_1_data_4[1], 63.0f + (64.0f * temp_f30)); + } + else { + if (lbl_1_data_4[0] != -1) { + HuAudFXStop(lbl_1_data_4[0]); + HuAudFXStop(lbl_1_data_4[1]); + lbl_1_data_4[0] = lbl_1_data_4[1] = -1; + } + } + } + } } void fn_1_D700(omObjData *object); void fn_1_A53C(omObjData *object) { - Work19C8 *sp28[4]; - s32 temp_r31; - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp28[temp_r31] = lbl_1_bss_34[temp_r31]->data; - } - for(temp_r31=0; temp_r31<7; temp_r31++) { - s32 sp38[7] = { - 1422, - 1423, - 1424, - 1425, - 1426, - 1427, - 1428 - }; - if(lbl_1_bss_48[temp_r31].unk0 > 3) { - lbl_1_bss_48[temp_r31].unk0 = 3; - } - if(lbl_1_bss_48[temp_r31].unk0 > 0) { - s32 temp_r19 = HuAudFXPlay(sp38[temp_r31]); - HuAudFXPanning(temp_r19, 0.5+((63*lbl_1_bss_48[temp_r31].unk4[lbl_1_bss_48[temp_r31].unk0-1])+64)); - lbl_1_bss_48[temp_r31].unk0--; - } - } - if(omSysExitReq && !WipeStatGet()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_D700; - - } - switch(object->work[0]) { - case 1000: - if(!WipeStatGet()) { - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - s32 temp_r26; - lbl_1_bss_2C++; - if(lbl_1_bss_2C == 10.0f) { - lbl_1_bss_2C = 50.0f; - } - temp_r29 = (lbl_1_bss_2C > 180.0f) ? 255.0 : ((lbl_1_bss_2C > 120.0f) ? (255.0*((lbl_1_bss_2C-120.0f)/60.0)) : 0.0); - temp_r29 = (lbl_1_bss_2C >= 235.0f) ? 255 : ((lbl_1_bss_2C >= 205.0f) ? 192 : ((lbl_1_bss_2C >= 190.0f) ? 128 : (((lbl_1_bss_2C >= 160.0f) ? 64 : 0)))); - Hu3DGLightColorSet(lbl_1_bss_1C, temp_r29, temp_r29, temp_r29, 255); - for(temp_r28=0; temp_r28<4; temp_r28++) { - - Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[0], 60.0+(40.0*(temp_r29/255.0))); - for(temp_r27=0; temp_r27<3; temp_r27++) { - Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[temp_r27+1], 60.0+(40.0*(temp_r29/255.0))); - } - Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[4], 60.0+(40.0*(temp_r29/255.0))); - } - Hu3DMotionSpeedSet(lbl_1_bss_30->model[0], 0.5*((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 320.0f) ? ((lbl_1_bss_2C-100)/220.0) : 1.0))); - for(temp_r26=0; temp_r26<4; temp_r26++) { - Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r26]->model[5], 0.5*((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 280.0f) ? ((lbl_1_bss_2C-100)/180.0) : 1.0))); - } - if(100.0f == lbl_1_bss_2C) { - Hu3DMotionSpeedSet(lbl_1_bss_30->model[1], 1.0f); - omVibrate(sp28[0]->unk14, 12, 4, 2); - omVibrate(sp28[1]->unk14, 12, 4, 2); - omVibrate(sp28[2]->unk14, 12, 4, 2); - omVibrate(sp28[3]->unk14, 12, 4, 2); - HuAudFXPlay(1431); - } - if(145.0f == lbl_1_bss_2C) { - lbl_1_data_4[0] = HuAudFXPlay(1429); - } - if(160.0f == lbl_1_bss_2C) { - lbl_1_data_4[1] = HuAudFXPlay(1430); - } - if(350.0f < lbl_1_bss_2C) { - object->work[0]++; - lbl_1_bss_2C = 0; - } - } - break; - - case 1001: - lbl_1_bss_2C++; - if(5.0f == lbl_1_bss_2C && lbl_1_bss_20 < 0) { - lbl_1_bss_20 = MGSeqStartCreate(); - } - if(lbl_1_bss_2C >= 5.0f && lbl_1_data_0 == -1 && (MGSeqStatGet(lbl_1_bss_20) & 0x10)) { - lbl_1_data_0 = HuAudSeqPlay(71); - } - if(lbl_1_bss_2C >= 5.0f && !MGSeqStatGet(lbl_1_bss_20) && lbl_1_bss_20 >= 0) { - object->work[0]++; - lbl_1_bss_20 = -1; - lbl_1_bss_2C = 0; - } else { - float temp_f26 = (lbl_1_bss_2C > 60.0f) ? 1.0 : ((lbl_1_bss_2C > 0.0f) ? (lbl_1_bss_2C/60.0) : 0.0); - float temp_f27 = 1.0f-temp_f26; - float temp_f31 = 830.0f*temp_f27; - float temp_f30 = (-1792.0f*temp_f27)+(50.0f*temp_f26); - float temp_f29 = (2854.0f*temp_f27)+(3500.0f*temp_f26); - float temp_f25 = ((2578.212*temp_f27)+(2600.0*temp_f26))/VECMagPoint(temp_f31, temp_f30, temp_f29); - temp_f31 *= temp_f25; - temp_f30 *= temp_f25; - temp_f29 *= temp_f25; - Hu3DCameraPosSet(1, temp_f31, temp_f30, temp_f29, -0.05f*temp_f27, 1, 0, 0, 50*temp_f26, 0); - (void)temp_f27; - - } - break; - - case 1002: - if(lbl_1_bss_18 != -1) { - object->work[0] = 1003; - lbl_1_bss_2C = 0; - } - break; - - case 1003: - if(lbl_1_bss_20 < 0 && lbl_1_bss_2C == 0.0f) { - lbl_1_bss_20 = MGSeqFinishCreate(); - for(temp_r31=0; temp_r31<4; temp_r31++) { - Work19C8 *temp_r25= lbl_1_bss_34[temp_r31]->data; - HuSprAttrSet(temp_r25->unkA4, 0, HUSPR_ATTR_DISPOFF); - } - if(lbl_1_data_0 != -1) { - HuAudSeqFadeOut(lbl_1_data_0, 100); - } - } else if(!MGSeqStatGet(lbl_1_bss_20)) { - lbl_1_bss_2C++; - if(lbl_1_bss_2C >= 30.0f){ - object->work[0]++; - lbl_1_bss_2C = 0; - if(lbl_1_bss_18 != 4){ - lbl_1_bss_20 = MGSeqWinCreate(sp28[lbl_1_bss_18]->unk18, -1, -1, -1); - GWPlayerCoinWinSet(sp28[lbl_1_bss_18]->unk14, 10); - HuAudSStreamPlay(1); - } else if(lbl_1_bss_18 == 4) { - lbl_1_bss_20 = MGSeqDrawCreate(); - HuAudSStreamPlay(4); - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[4], 0, (lbl_1_bss_18 == temp_r31) ? 90 : -90, 0); - } - } - } - break; - - case 1004: - lbl_1_bss_2C++; - if(210.0f < lbl_1_bss_2C) { - lbl_1_bss_20 = -1; - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_D700; - } - break; - - default: - OSReport("*** main mode error(%d)!!\n", object->work[0]); - - break; - } + Work19C8 *sp28[4]; + s32 temp_r31; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp28[temp_r31] = lbl_1_bss_34[temp_r31]->data; + } + for (temp_r31 = 0; temp_r31 < 7; temp_r31++) { + s32 sp38[7] = { 1422, 1423, 1424, 1425, 1426, 1427, 1428 }; + if (lbl_1_bss_48[temp_r31].unk0 > 3) { + lbl_1_bss_48[temp_r31].unk0 = 3; + } + if (lbl_1_bss_48[temp_r31].unk0 > 0) { + s32 temp_r19 = HuAudFXPlay(sp38[temp_r31]); + HuAudFXPanning(temp_r19, 0.5 + ((63 * lbl_1_bss_48[temp_r31].unk4[lbl_1_bss_48[temp_r31].unk0 - 1]) + 64)); + lbl_1_bss_48[temp_r31].unk0--; + } + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_D700; + } + switch (object->work[0]) { + case 1000: + if (!WipeStatGet()) { + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + s32 temp_r26; + lbl_1_bss_2C++; + if (lbl_1_bss_2C == 10.0f) { + lbl_1_bss_2C = 50.0f; + } + temp_r29 = (lbl_1_bss_2C > 180.0f) ? 255.0 : ((lbl_1_bss_2C > 120.0f) ? (255.0 * ((lbl_1_bss_2C - 120.0f) / 60.0)) : 0.0); + temp_r29 = (lbl_1_bss_2C >= 235.0f) + ? 255 + : ((lbl_1_bss_2C >= 205.0f) ? 192 : ((lbl_1_bss_2C >= 190.0f) ? 128 : (((lbl_1_bss_2C >= 160.0f) ? 64 : 0)))); + Hu3DGLightColorSet(lbl_1_bss_1C, temp_r29, temp_r29, temp_r29, 255); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + + Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[0], 60.0 + (40.0 * (temp_r29 / 255.0))); + for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { + Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[temp_r27 + 1], 60.0 + (40.0 * (temp_r29 / 255.0))); + } + Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[4], 60.0 + (40.0 * (temp_r29 / 255.0))); + } + Hu3DMotionSpeedSet( + lbl_1_bss_30->model[0], 0.5 * ((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 320.0f) ? ((lbl_1_bss_2C - 100) / 220.0) : 1.0))); + for (temp_r26 = 0; temp_r26 < 4; temp_r26++) { + Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r26]->model[5], + 0.5 * ((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 280.0f) ? ((lbl_1_bss_2C - 100) / 180.0) : 1.0))); + } + if (100.0f == lbl_1_bss_2C) { + Hu3DMotionSpeedSet(lbl_1_bss_30->model[1], 1.0f); + omVibrate(sp28[0]->unk14, 12, 4, 2); + omVibrate(sp28[1]->unk14, 12, 4, 2); + omVibrate(sp28[2]->unk14, 12, 4, 2); + omVibrate(sp28[3]->unk14, 12, 4, 2); + HuAudFXPlay(1431); + } + if (145.0f == lbl_1_bss_2C) { + lbl_1_data_4[0] = HuAudFXPlay(1429); + } + if (160.0f == lbl_1_bss_2C) { + lbl_1_data_4[1] = HuAudFXPlay(1430); + } + if (350.0f < lbl_1_bss_2C) { + object->work[0]++; + lbl_1_bss_2C = 0; + } + } + break; + + case 1001: + lbl_1_bss_2C++; + if (5.0f == lbl_1_bss_2C && lbl_1_bss_20 < 0) { + lbl_1_bss_20 = MGSeqStartCreate(); + } + if (lbl_1_bss_2C >= 5.0f && lbl_1_data_0 == -1 && (MGSeqStatGet(lbl_1_bss_20) & 0x10)) { + lbl_1_data_0 = HuAudSeqPlay(71); + } + if (lbl_1_bss_2C >= 5.0f && !MGSeqStatGet(lbl_1_bss_20) && lbl_1_bss_20 >= 0) { + object->work[0]++; + lbl_1_bss_20 = -1; + lbl_1_bss_2C = 0; + } + else { + float temp_f26 = (lbl_1_bss_2C > 60.0f) ? 1.0 : ((lbl_1_bss_2C > 0.0f) ? (lbl_1_bss_2C / 60.0) : 0.0); + float temp_f27 = 1.0f - temp_f26; + float temp_f31 = 830.0f * temp_f27; + float temp_f30 = (-1792.0f * temp_f27) + (50.0f * temp_f26); + float temp_f29 = (2854.0f * temp_f27) + (3500.0f * temp_f26); + float temp_f25 = ((2578.212 * temp_f27) + (2600.0 * temp_f26)) / VECMagPoint(temp_f31, temp_f30, temp_f29); + temp_f31 *= temp_f25; + temp_f30 *= temp_f25; + temp_f29 *= temp_f25; + Hu3DCameraPosSet(1, temp_f31, temp_f30, temp_f29, -0.05f * temp_f27, 1, 0, 0, 50 * temp_f26, 0); + (void)temp_f27; + } + break; + + case 1002: + if (lbl_1_bss_18 != -1) { + object->work[0] = 1003; + lbl_1_bss_2C = 0; + } + break; + + case 1003: + if (lbl_1_bss_20 < 0 && lbl_1_bss_2C == 0.0f) { + lbl_1_bss_20 = MGSeqFinishCreate(); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Work19C8 *temp_r25 = lbl_1_bss_34[temp_r31]->data; + HuSprAttrSet(temp_r25->unkA4, 0, HUSPR_ATTR_DISPOFF); + } + if (lbl_1_data_0 != -1) { + HuAudSeqFadeOut(lbl_1_data_0, 100); + } + } + else if (!MGSeqStatGet(lbl_1_bss_20)) { + lbl_1_bss_2C++; + if (lbl_1_bss_2C >= 30.0f) { + object->work[0]++; + lbl_1_bss_2C = 0; + if (lbl_1_bss_18 != 4) { + lbl_1_bss_20 = MGSeqWinCreate(sp28[lbl_1_bss_18]->unk18, -1, -1, -1); + GWPlayerCoinWinSet(sp28[lbl_1_bss_18]->unk14, 10); + HuAudSStreamPlay(1); + } + else if (lbl_1_bss_18 == 4) { + lbl_1_bss_20 = MGSeqDrawCreate(); + HuAudSStreamPlay(4); + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[4], 0, (lbl_1_bss_18 == temp_r31) ? 90 : -90, 0); + } + } + } + break; + + case 1004: + lbl_1_bss_2C++; + if (210.0f < lbl_1_bss_2C) { + lbl_1_bss_20 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_D700; + } + break; + + default: + OSReport("*** main mode error(%d)!!\n", object->work[0]); + + break; + } } void fn_1_B6C4(ModelData *arg0, Mtx arg1) { - GXLoadPosMtxImm(arg1, GX_PNMTX0); - GXSetNumTevStages(1); - GXSetNumTexGens(0); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - { - s8 sp60[9] = { -1, 0, 1, 2, 3, 4, -1, -1, -1 }; - char *sp6C[6] = { - "m413_11-m413_11", - "m413_12-m413_12", - "m413_13-m413_13", - "m413_14-m413_14", - "g005m3A-bomhei_A", - "g005m3B-bomhei_B" - }; - s8 sp28[6] = { 3, 4, 5, 6, 11, 12 }; - char *sp50[4] = { - "m413_11b-m413_11b", - "m413_12b-m143_12b", - "m413_13b-m413_13b", - "twest-m413_14b" - }; - s8 sp24[4] = { 7, 8, 9, 10 }; - s32 temp_r27; - Mtx spB4; - Mtx sp84; - for(temp_r27=0; temp_r27<12; temp_r27++) { - StructBss2A6C *temp_r31; - for(temp_r31 = lbl_1_bss_7884[temp_r27]; temp_r31; temp_r31=temp_r31->unk48) { - float temp_f31; - if(temp_r31->unk0) { - s32 temp_r19 = 100; - s32 temp_r18 = 100; - float temp_f30 = temp_r31->unk1C.x; - float temp_f29 = temp_r31->unk1C.y; - float temp_f27 = 0; - if(temp_r31->unk4 && temp_r31->unk5) { - s32 sp40[4] = { 0, 1, 0, -1 }; - s32 sp30[4] = { 1, 0, -1, 0 }; - s32 temp_r24 = (temp_r31->unk4+3)%4; - s32 temp_r26 = ((((temp_r31->unk4+3)%4)+(9+((temp_r31->unk4-1)/4))))%4; - s32 temp_r25 = 0; - float temp_f28 = 1; - temp_f30 -= sp40[temp_r26]; - temp_f29 -= sp30[temp_r26]; - switch((temp_r31->unk4-1)/4) { - case 0: - case 2: - for(temp_r25=temp_r31->unk5-1; temp_r25>0; temp_r25--) { - temp_f28 /= 2.0; - } - temp_f31 = 1.0f-temp_f28; - temp_r26 = (temp_r24+3 == temp_r26) ? (temp_r26-4) : ((temp_r24-3 == temp_r26) ? (temp_r26+4) : temp_r26); - temp_f30 += sind((temp_f28*(temp_r24*90))+(temp_f31*(temp_r26*90))); - temp_f29 += cosd((temp_f28*(temp_r24*90))+(temp_f31*(temp_r26*90))); - break; - - case 1: - for(temp_r25=temp_r31->unk5-1; temp_r25>0; temp_r25--) { - temp_f28 /= 2.0; - } - temp_f31 = (temp_r31->unk5-1)/3.0; - temp_f31 = (temp_f31 < 0.0f) ? 0.0f : ((temp_f31 > 1.0f) ? 1.0f : temp_f31); - temp_f31 = (0.75*((1.0f-temp_f28)))+(0.25*temp_f31); - temp_f28 = 1.0f-temp_f31; - temp_f30 += sp40[temp_r24]*cosd(temp_f31*180.0f); - temp_f29 += sp30[temp_r24]*cosd(temp_f31*180.0f); - temp_f27 += sind(temp_f31*180.0f); - - break; - - default: - break; - } - - } - temp_f30 = (temp_f30*temp_r19)-(temp_r19*6); - temp_f29 = (temp_f29*temp_r18)-(temp_r18*5); - temp_f27 = 100*temp_f27; - if(sp60[temp_r31->unk0] != -1) { - s32 temp_r21 = sp60[temp_r31->unk0]+(temp_r31->unk0 == 5 && ((temp_r31->unk1C.z < 0.0f && (temp_r31->unk1 & 0x1) == 0) || (temp_r31->unk1 & 0x2) != 0)); - MTXTrans(spB4, 50+temp_f30, 50+temp_f29, temp_f27); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[temp_r21]], sp6C[temp_r21], spB4); - } - } - } - } - for(temp_r27=0; temp_r27<4; temp_r27++) { - s32 temp_r29; - for(temp_r29=0; temp_r29<2; temp_r29++) { - s32 temp_r17 = 25; - s32 sp20 = (temp_r27*300)-450; - s32 sp1C = (505-temp_r17)+(temp_r29*(temp_r17*2)); - Work19C8 *temp_r30 = lbl_1_bss_34[temp_r27]->data; - s32 temp_r23 = temp_r30->unk50[temp_r30->unk60][temp_r29]; - if(temp_r30->unk65[0] == 0 || temp_r30->unk65[0] > 7) { - if(sp60[temp_r23] != -1) { - MTXScale(spB4, 0.5f, 0.5f, 0.5f); - MTXTrans(sp84, sp20, sp1C+((temp_r30->unk65[0]) ? (200.0f*((15-temp_r30->unk65[0])/15.0f)) : 0.0f), 125.0f); - MTXConcat(sp84, spB4, spB4); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r23]]], sp6C[sp60[temp_r23]], spB4); - } - } - if(temp_r30->unk65[0] != 0 && temp_r30->unk65[0] < (15-(temp_r29*4)) && sp60[temp_r30->unk63[temp_r29]] != -1) { - MTXScale(spB4, 0.5f, 0.5f, 0.5f); - MTXTrans(sp84, sp20, sp1C, 125.0-(0.25*(40.0f*(temp_r30->unk65[0]/15.0f)))); - MTXConcat(sp84, spB4, spB4); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r30->unk63[temp_r29]]]], sp6C[sp60[temp_r30->unk63[temp_r29]]], spB4); - } - } - } - { - s32 temp_r28 = lbl_1_bss_FC; - s32 temp_r20; - for(temp_r20=0; temp_r20<300; temp_r20++) { - temp_r28++; - temp_r28 %= 300; - if(lbl_1_bss_100[temp_r28].unk0) { - MTXScale(spB4, 0.4f, 0.4f, 0.4f); - MTXRotDeg(sp84, 'x', 360.0*(lbl_1_bss_100[temp_r28].unk1C/255.0)); - MTXConcat(sp84, spB4, spB4); - MTXRotDeg(sp84, 'z', 360.0*(lbl_1_bss_100[temp_r28].unk1D/255.0)); - MTXConcat(sp84, spB4, spB4); - MTXTrans(sp84, lbl_1_bss_100[temp_r28].unk4.x, lbl_1_bss_100[temp_r28].unk4.y , lbl_1_bss_100[temp_r28].unk4.z); - MTXConcat(sp84, spB4, spB4); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp24[sp60[lbl_1_bss_100[temp_r28].unk0]]], sp50[sp60[lbl_1_bss_100[temp_r28].unk0]], spB4); - } - } - } - } + GXLoadPosMtxImm(arg1, GX_PNMTX0); + GXSetNumTevStages(1); + GXSetNumTexGens(0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + { + s8 sp60[9] = { -1, 0, 1, 2, 3, 4, -1, -1, -1 }; + char *sp6C[6] = { "m413_11-m413_11", "m413_12-m413_12", "m413_13-m413_13", "m413_14-m413_14", "g005m3A-bomhei_A", "g005m3B-bomhei_B" }; + s8 sp28[6] = { 3, 4, 5, 6, 11, 12 }; + char *sp50[4] = { "m413_11b-m413_11b", "m413_12b-m143_12b", "m413_13b-m413_13b", "twest-m413_14b" }; + s8 sp24[4] = { 7, 8, 9, 10 }; + s32 temp_r27; + Mtx spB4; + Mtx sp84; + for (temp_r27 = 0; temp_r27 < 12; temp_r27++) { + StructBss2A6C *temp_r31; + for (temp_r31 = lbl_1_bss_7884[temp_r27]; temp_r31; temp_r31 = temp_r31->unk48) { + float temp_f31; + if (temp_r31->unk0) { + s32 temp_r19 = 100; + s32 temp_r18 = 100; + float temp_f30 = temp_r31->unk1C.x; + float temp_f29 = temp_r31->unk1C.y; + float temp_f27 = 0; + if (temp_r31->unk4 && temp_r31->unk5) { + s32 sp40[4] = { 0, 1, 0, -1 }; + s32 sp30[4] = { 1, 0, -1, 0 }; + s32 temp_r24 = (temp_r31->unk4 + 3) % 4; + s32 temp_r26 = ((((temp_r31->unk4 + 3) % 4) + (9 + ((temp_r31->unk4 - 1) / 4)))) % 4; + s32 temp_r25 = 0; + float temp_f28 = 1; + temp_f30 -= sp40[temp_r26]; + temp_f29 -= sp30[temp_r26]; + switch ((temp_r31->unk4 - 1) / 4) { + case 0: + case 2: + for (temp_r25 = temp_r31->unk5 - 1; temp_r25 > 0; temp_r25--) { + temp_f28 /= 2.0; + } + temp_f31 = 1.0f - temp_f28; + temp_r26 = (temp_r24 + 3 == temp_r26) ? (temp_r26 - 4) : ((temp_r24 - 3 == temp_r26) ? (temp_r26 + 4) : temp_r26); + temp_f30 += sind((temp_f28 * (temp_r24 * 90)) + (temp_f31 * (temp_r26 * 90))); + temp_f29 += cosd((temp_f28 * (temp_r24 * 90)) + (temp_f31 * (temp_r26 * 90))); + break; + + case 1: + for (temp_r25 = temp_r31->unk5 - 1; temp_r25 > 0; temp_r25--) { + temp_f28 /= 2.0; + } + temp_f31 = (temp_r31->unk5 - 1) / 3.0; + temp_f31 = (temp_f31 < 0.0f) ? 0.0f : ((temp_f31 > 1.0f) ? 1.0f : temp_f31); + temp_f31 = (0.75 * ((1.0f - temp_f28))) + (0.25 * temp_f31); + temp_f28 = 1.0f - temp_f31; + temp_f30 += sp40[temp_r24] * cosd(temp_f31 * 180.0f); + temp_f29 += sp30[temp_r24] * cosd(temp_f31 * 180.0f); + temp_f27 += sind(temp_f31 * 180.0f); + + break; + + default: + break; + } + } + temp_f30 = (temp_f30 * temp_r19) - (temp_r19 * 6); + temp_f29 = (temp_f29 * temp_r18) - (temp_r18 * 5); + temp_f27 = 100 * temp_f27; + if (sp60[temp_r31->unk0] != -1) { + s32 temp_r21 = sp60[temp_r31->unk0] + + (temp_r31->unk0 == 5 && ((temp_r31->unk1C.z < 0.0f && (temp_r31->unk1 & 0x1) == 0) || (temp_r31->unk1 & 0x2) != 0)); + MTXTrans(spB4, 50 + temp_f30, 50 + temp_f29, temp_f27); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[temp_r21]], sp6C[temp_r21], spB4); + } + } + } + } + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + s32 temp_r29; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + s32 temp_r17 = 25; + s32 sp20 = (temp_r27 * 300) - 450; + s32 sp1C = (505 - temp_r17) + (temp_r29 * (temp_r17 * 2)); + Work19C8 *temp_r30 = lbl_1_bss_34[temp_r27]->data; + s32 temp_r23 = temp_r30->unk50[temp_r30->unk60][temp_r29]; + if (temp_r30->unk65[0] == 0 || temp_r30->unk65[0] > 7) { + if (sp60[temp_r23] != -1) { + MTXScale(spB4, 0.5f, 0.5f, 0.5f); + MTXTrans(sp84, sp20, sp1C + ((temp_r30->unk65[0]) ? (200.0f * ((15 - temp_r30->unk65[0]) / 15.0f)) : 0.0f), 125.0f); + MTXConcat(sp84, spB4, spB4); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r23]]], sp6C[sp60[temp_r23]], spB4); + } + } + if (temp_r30->unk65[0] != 0 && temp_r30->unk65[0] < (15 - (temp_r29 * 4)) && sp60[temp_r30->unk63[temp_r29]] != -1) { + MTXScale(spB4, 0.5f, 0.5f, 0.5f); + MTXTrans(sp84, sp20, sp1C, 125.0 - (0.25 * (40.0f * (temp_r30->unk65[0] / 15.0f)))); + MTXConcat(sp84, spB4, spB4); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r30->unk63[temp_r29]]]], sp6C[sp60[temp_r30->unk63[temp_r29]]], spB4); + } + } + } + { + s32 temp_r28 = lbl_1_bss_FC; + s32 temp_r20; + for (temp_r20 = 0; temp_r20 < 300; temp_r20++) { + temp_r28++; + temp_r28 %= 300; + if (lbl_1_bss_100[temp_r28].unk0) { + MTXScale(spB4, 0.4f, 0.4f, 0.4f); + MTXRotDeg(sp84, 'x', 360.0 * (lbl_1_bss_100[temp_r28].unk1C / 255.0)); + MTXConcat(sp84, spB4, spB4); + MTXRotDeg(sp84, 'z', 360.0 * (lbl_1_bss_100[temp_r28].unk1D / 255.0)); + MTXConcat(sp84, spB4, spB4); + MTXTrans(sp84, lbl_1_bss_100[temp_r28].unk4.x, lbl_1_bss_100[temp_r28].unk4.y, lbl_1_bss_100[temp_r28].unk4.z); + MTXConcat(sp84, spB4, spB4); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp24[sp60[lbl_1_bss_100[temp_r28].unk0]]], sp50[sp60[lbl_1_bss_100[temp_r28].unk0]], spB4); + } + } + } + } } void fn_1_C6E0(omObjData *object) { - s32 temp_r30; - memset(lbl_1_bss_2A6C, 0, sizeof(lbl_1_bss_2A6C)); - memset(lbl_1_bss_7884, 0, sizeof(lbl_1_bss_7884)); - memset(lbl_1_bss_2684, 0, sizeof(lbl_1_bss_2684)); - lbl_1_bss_2680 = 0; - memset(lbl_1_bss_100, 0, sizeof(lbl_1_bss_100)); - lbl_1_bss_FC = 0; - memset(lbl_1_bss_D4, 0, sizeof(lbl_1_bss_D4)); - lbl_1_bss_D0 = 0; - memset(lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8)); - object->model[0] = Hu3DModelCreateFile(0x2C0000); - omSetTra(object, 0, 0, 0); - Hu3DMotionSpeedSet(object->model[0], 0); - object->model[1] = Hu3DModelCreateFile(0x2C0001); - Hu3DMotionSpeedSet(object->model[1], 0); - Hu3DModelPosSet(object->model[1], 0, 0, 0); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->model[2] = Hu3DHookFuncCreate(fn_1_B6C4); - Hu3DModelLayerSet(object->model[2], 1); - for(temp_r30=0; temp_r30<4; temp_r30++) { - object->model[temp_r30+3] = Hu3DModelCreateFile(0x2C0003+temp_r30); - Hu3DModelAttrSet(object->model[temp_r30+3], 1); - object->model[temp_r30+7] = Hu3DModelCreateFile(0x2C0007+temp_r30); - Hu3DModelAttrSet(object->model[temp_r30+7], 1); - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - s32 temp_r28; - if(temp_r30 == 0) { - temp_r28 = 0x2C000B; - } else { - temp_r28 = 0x2C000C; - } - object->model[temp_r30+11] = Hu3DModelCreateFile(temp_r28); - Hu3DModelAttrSet(object->model[temp_r30+11], 1); - } - for(temp_r30=0; temp_r30<5; temp_r30++) { - s32 temp_r29; - object->model[(temp_r30*10)+13] = Hu3DModelCreateFile(0x2C001E); - for(temp_r29=0; temp_r29<10; temp_r29++) { - if(temp_r29 != 0) { - object->model[(13+(temp_r30*10)+temp_r29)] = Hu3DModelLink(object->model[(temp_r30*10)+13]); - } - Hu3DModelAttrSet(object->model[(13+(temp_r30*10)+temp_r29)], 1); - Hu3DModelLayerSet(object->model[(13+(temp_r30*10)+temp_r29)], 2); - } - } - { - void *temp_r27 = HuDataSelHeapReadNum(0x2C001F, MEMORY_DEFAULT_NUM, HEAP_DATA); - AnimData *temp_r26 = HuSprAnimRead(temp_r27); - lbl_1_bss_14 = HuSprGrpCreate(150); - for(temp_r30=0; temp_r30<150; temp_r30++) { - s16 temp_r25 = HuSprCreate(temp_r26, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_14, temp_r30, temp_r25); - HuSprAttrSet(lbl_1_bss_14, temp_r30, HUSPR_ATTR_DISPOFF); - HuSprColorSet(lbl_1_bss_14, temp_r30, 255, 255, 255); - HuSprTPLvlSet(lbl_1_bss_14, temp_r30, 1.0f); - HuSprPriSet(lbl_1_bss_14, temp_r30, 256+temp_r30); - - } - } - object->func = fn_1_8C10; + s32 temp_r30; + memset(lbl_1_bss_2A6C, 0, sizeof(lbl_1_bss_2A6C)); + memset(lbl_1_bss_7884, 0, sizeof(lbl_1_bss_7884)); + memset(lbl_1_bss_2684, 0, sizeof(lbl_1_bss_2684)); + lbl_1_bss_2680 = 0; + memset(lbl_1_bss_100, 0, sizeof(lbl_1_bss_100)); + lbl_1_bss_FC = 0; + memset(lbl_1_bss_D4, 0, sizeof(lbl_1_bss_D4)); + lbl_1_bss_D0 = 0; + memset(lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x00)); + omSetTra(object, 0, 0, 0); + Hu3DMotionSpeedSet(object->model[0], 0); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x01)); + Hu3DMotionSpeedSet(object->model[1], 0); + Hu3DModelPosSet(object->model[1], 0, 0, 0); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->model[2] = Hu3DHookFuncCreate(fn_1_B6C4); + Hu3DModelLayerSet(object->model[2], 1); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + object->model[temp_r30 + 3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x03) + temp_r30); + Hu3DModelAttrSet(object->model[temp_r30 + 3], 1); + object->model[temp_r30 + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x07) + temp_r30); + Hu3DModelAttrSet(object->model[temp_r30 + 7], 1); + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + s32 temp_r28; + if (temp_r30 == 0) { + temp_r28 = DATA_MAKE_NUM(DATADIR_M413, 0x0B); + } + else { + temp_r28 = DATA_MAKE_NUM(DATADIR_M413, 0x0C); + } + object->model[temp_r30 + 11] = Hu3DModelCreateFile(temp_r28); + Hu3DModelAttrSet(object->model[temp_r30 + 11], 1); + } + for (temp_r30 = 0; temp_r30 < 5; temp_r30++) { + s32 temp_r29; + object->model[(temp_r30 * 10) + 13] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x1E)); + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + if (temp_r29 != 0) { + object->model[(13 + (temp_r30 * 10) + temp_r29)] = Hu3DModelLink(object->model[(temp_r30 * 10) + 13]); + } + Hu3DModelAttrSet(object->model[(13 + (temp_r30 * 10) + temp_r29)], 1); + Hu3DModelLayerSet(object->model[(13 + (temp_r30 * 10) + temp_r29)], 2); + } + } + { + void *temp_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M413, 0x1F), MEMORY_DEFAULT_NUM, HEAP_DATA); + AnimData *temp_r26 = HuSprAnimRead(temp_r27); + lbl_1_bss_14 = HuSprGrpCreate(150); + for (temp_r30 = 0; temp_r30 < 150; temp_r30++) { + s16 temp_r25 = HuSprCreate(temp_r26, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_14, temp_r30, temp_r25); + HuSprAttrSet(lbl_1_bss_14, temp_r30, HUSPR_ATTR_DISPOFF); + HuSprColorSet(lbl_1_bss_14, temp_r30, 255, 255, 255); + HuSprTPLvlSet(lbl_1_bss_14, temp_r30, 1.0f); + HuSprPriSet(lbl_1_bss_14, temp_r30, 256 + temp_r30); + } + } + object->func = fn_1_8C10; } - void fn_1_CBB4(omObjData *object) { - s32 sp8[4] = { 0, 1, 2, 3 }; - s32 temp_r27 = 0; - Work19C8 *temp_r31 = object->data; - s32 temp_r29; - s32 temp_r28; - memset(temp_r31, 0, sizeof(Work19C8)); - if(object->work[0] == 0) { - lbl_1_data_C[0] = lbl_1_data_C[1] = lbl_1_data_C[2] = lbl_1_data_C[3] = -1; - for(temp_r29=0; temp_r29<4; temp_r29++) { - s32 temp_r26; - repeat_iter: - temp_r26 = rand8()%4; - if(lbl_1_data_C[temp_r26] != -1) { - goto repeat_iter; - } - lbl_1_data_C[temp_r26] = temp_r29; - } - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - for(temp_r28=0; temp_r28<4; temp_r28++) { - if(temp_r29 == lbl_1_data_C[temp_r28]) { - sp8[temp_r27] = temp_r28; - temp_r27++; - } - } - } - temp_r31->unk0 = temp_r31->unk4 = temp_r31->unk8 = temp_r31->unkC = 0; - temp_r31->unk10 = object->work[0]; - temp_r31->unk14 = sp8[temp_r31->unk10]; - if(temp_r31->unk14 == 4) { - OSReport("m413:wrong player group\n"); - temp_r31->unk14 = temp_r31->unk10; - } - temp_r31->unk18 = GWPlayerCfg[temp_r31->unk14].character; - temp_r31->unk1C = (GWPlayerCfg[temp_r31->unk14].iscom) ? -1 : GWPlayerCfg[temp_r31->unk14].pad_idx; - temp_r31->unk20 = (temp_r31->unk1C != -1) ? 0 : GWPlayerCfg[temp_r31->unk14].diff; - temp_r31->unk2C = -1; - temp_r31->unk24 = 0; - temp_r31->unk28 = temp_r31->unk24; - temp_r31->unk40 = temp_r31->unk24; - temp_r31->unk44 = 100; - temp_r31->unk72 = 2; - temp_r31->unk74 = 0; - fn_1_EC0(temp_r31); - temp_r31->unk60 = 0; - temp_r31->unk68 = ((rand8()%4)*7)+3; - temp_r31->unk6C = temp_r31->unk68; - temp_r31->unk71 = 20; - temp_r31->unk70 = 0; - temp_r31->unk98 = 0; - temp_r31->unk9C = 0; - object->model[0] = Hu3DModelCreateFile(0x2C0002); - Hu3DModelLayerSet(object->model[0], 1); - object->model[1] = Hu3DModelLink(object->model[0]); - object->model[2] = Hu3DModelLink(object->model[0]); - object->model[3] = Hu3DModelLink(object->model[0]); - Hu3DModelPosSet(object->model[1], (temp_r31->unk10*300)-525, -602, 40); - Hu3DModelPosSet(object->model[2], (temp_r31->unk10*300)-450, -602, 40); - Hu3DModelPosSet(object->model[3], (temp_r31->unk10*300)-375, -602, 40); - Hu3DMotionTimeSet(object->model[1], 60.0f); - Hu3DMotionTimeSet(object->model[2], 60.0f); - Hu3DMotionTimeSet(object->model[3], 60.0f); - Hu3DMotionSpeedSet(object->model[1], 0.0f); - Hu3DMotionSpeedSet(object->model[2], 0.0f); - Hu3DMotionSpeedSet(object->model[3], 0.0f); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DMotionTimeSet(object->model[0], 60.0f); - Hu3DMotionSpeedSet(object->model[0], 0.0f); - object->model[4] = Hu3DModelCreateFile(0x2C000D+temp_r31->unk18); - Hu3DModelPosSet(object->model[4], (temp_r31->unk10*300)-450, 670, 60); - Hu3DMotionTimeSet(object->model[4], 60.0f); - Hu3DMotionSpeedSet(object->model[4], 0.0f); - object->model[5] = Hu3DModelCreateFile(0x2C0015+temp_r31->unk18); - Hu3DModelPosSet(object->model[5], (temp_r31->unk10*300)-450, 0, 0); - Hu3DModelAttrSet(object->model[5], 0x40000001); - Hu3DMotionSpeedSet(object->model[5], 0.0f); - { - AnimData *temp_r23 = HuSprAnimReadFile(0x610038+GWPlayerCfg[temp_r31->unk14].character); - s16 temp_r22; - temp_r31->unkA4 = HuSprGrpCreate(1); - temp_r22 = HuSprCreate(temp_r23, 0, 0); - HuSprGrpMemberSet(temp_r31->unkA4, 0, temp_r22); - HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_LOOP|HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LINEAR); - HuSprColorSet(temp_r31->unkA4, 0, 255, 255, 255); - HuSprTPLvlSet(temp_r31->unkA4, 0, 1); - HuSprPriSet(temp_r31->unkA4, 0, 512); - HuSprScaleSet(temp_r31->unkA4, 0, 0.875f, 0.875f); - HuSprSpeedSet(temp_r31->unkA4, 0, 1.0f); - } - - object->func = fn_1_19C4; + s32 sp8[4] = { 0, 1, 2, 3 }; + s32 temp_r27 = 0; + Work19C8 *temp_r31 = object->data; + s32 temp_r29; + s32 temp_r28; + memset(temp_r31, 0, sizeof(Work19C8)); + if (object->work[0] == 0) { + lbl_1_data_C[0] = lbl_1_data_C[1] = lbl_1_data_C[2] = lbl_1_data_C[3] = -1; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + s32 temp_r26; + repeat_iter: + temp_r26 = rand8() % 4; + if (lbl_1_data_C[temp_r26] != -1) { + goto repeat_iter; + } + lbl_1_data_C[temp_r26] = temp_r29; + } + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + if (temp_r29 == lbl_1_data_C[temp_r28]) { + sp8[temp_r27] = temp_r28; + temp_r27++; + } + } + } + temp_r31->unk0 = temp_r31->unk4 = temp_r31->unk8 = temp_r31->unkC = 0; + temp_r31->unk10 = object->work[0]; + temp_r31->unk14 = sp8[temp_r31->unk10]; + if (temp_r31->unk14 == 4) { + OSReport("m413:wrong player group\n"); + temp_r31->unk14 = temp_r31->unk10; + } + temp_r31->unk18 = GWPlayerCfg[temp_r31->unk14].character; + temp_r31->unk1C = (GWPlayerCfg[temp_r31->unk14].iscom) ? -1 : GWPlayerCfg[temp_r31->unk14].pad_idx; + temp_r31->unk20 = (temp_r31->unk1C != -1) ? 0 : GWPlayerCfg[temp_r31->unk14].diff; + temp_r31->unk2C = -1; + temp_r31->unk24 = 0; + temp_r31->unk28 = temp_r31->unk24; + temp_r31->unk40 = temp_r31->unk24; + temp_r31->unk44 = 100; + temp_r31->unk72 = 2; + temp_r31->unk74 = 0; + fn_1_EC0(temp_r31); + temp_r31->unk60 = 0; + temp_r31->unk68 = ((rand8() % 4) * 7) + 3; + temp_r31->unk6C = temp_r31->unk68; + temp_r31->unk71 = 20; + temp_r31->unk70 = 0; + temp_r31->unk98 = 0; + temp_r31->unk9C = 0; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x02)); + Hu3DModelLayerSet(object->model[0], 1); + object->model[1] = Hu3DModelLink(object->model[0]); + object->model[2] = Hu3DModelLink(object->model[0]); + object->model[3] = Hu3DModelLink(object->model[0]); + Hu3DModelPosSet(object->model[1], (temp_r31->unk10 * 300) - 525, -602, 40); + Hu3DModelPosSet(object->model[2], (temp_r31->unk10 * 300) - 450, -602, 40); + Hu3DModelPosSet(object->model[3], (temp_r31->unk10 * 300) - 375, -602, 40); + Hu3DMotionTimeSet(object->model[1], 60.0f); + Hu3DMotionTimeSet(object->model[2], 60.0f); + Hu3DMotionTimeSet(object->model[3], 60.0f); + Hu3DMotionSpeedSet(object->model[1], 0.0f); + Hu3DMotionSpeedSet(object->model[2], 0.0f); + Hu3DMotionSpeedSet(object->model[3], 0.0f); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DMotionTimeSet(object->model[0], 60.0f); + Hu3DMotionSpeedSet(object->model[0], 0.0f); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x0D) + temp_r31->unk18); + Hu3DModelPosSet(object->model[4], (temp_r31->unk10 * 300) - 450, 670, 60); + Hu3DMotionTimeSet(object->model[4], 60.0f); + Hu3DMotionSpeedSet(object->model[4], 0.0f); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x15) + temp_r31->unk18); + Hu3DModelPosSet(object->model[5], (temp_r31->unk10 * 300) - 450, 0, 0); + Hu3DModelAttrSet(object->model[5], 0x40000001); + Hu3DMotionSpeedSet(object->model[5], 0.0f); + { + AnimData *temp_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGCONST, 0x38) + GWPlayerCfg[temp_r31->unk14].character); + s16 temp_r22; + temp_r31->unkA4 = HuSprGrpCreate(1); + temp_r22 = HuSprCreate(temp_r23, 0, 0); + HuSprGrpMemberSet(temp_r31->unkA4, 0, temp_r22); + HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_LOOP | HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprColorSet(temp_r31->unkA4, 0, 255, 255, 255); + HuSprTPLvlSet(temp_r31->unkA4, 0, 1); + HuSprPriSet(temp_r31->unkA4, 0, 512); + HuSprScaleSet(temp_r31->unkA4, 0, 0.875f, 0.875f); + HuSprSpeedSet(temp_r31->unkA4, 0, 1.0f); + } + + object->func = fn_1_19C4; } void fn_1_D340(omObjData *object) { - object->work[0] = 1000; - memset(lbl_1_bss_48, 0, sizeof(StructBss48)); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_A53C; + object->work[0] = 1000; + memset(lbl_1_bss_48, 0, sizeof(StructBss48)); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_A53C; } void ObjectSetup(void) { - s32 i; - OSReport("******* M413 ObjectSetup *********\n"); - HuAudSndGrpSet(38); - lbl_1_bss_24 = omInitObjMan(600, 8192); - omGameSysInit(lbl_1_bss_24); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - Hu3DCameraPerspectiveSet(1, 40, 10, 20000, 1.2f); - { - Vec sp54 = { 616.5714f, -1331.2f, 2120.1142f }; - Vec sp48 = { -0.05f, 1.0f, 0.0f }; - Vec sp3C = { 0, 0, 0 }; - Vec sp30 = { 0, 0, 0 }; - Vec sp24 = { 0, 0, -1 }; - Hu3DCameraPosSetV(1, &sp54, &sp48, &sp3C); - } - { - Vec sp18 = { -822.5f, 6743.0f, 4625.5f }; - Vec spC = { 0.1545085f, -0.788462f, -0.5850064f }; - GXColor sp8 = { 0, 0, 0, 255 }; - lbl_1_bss_1C = Hu3DGLightCreateV(&sp18, &spC, &sp8); - } - Hu3DGLightStaticSet(lbl_1_bss_1C, 1); - Hu3DGLightSpotSet(lbl_1_bss_1C, 20, 2); - lbl_1_bss_20 = -1; - lbl_1_bss_18 = -1; - lbl_1_bss_30 = omAddObjEx(lbl_1_bss_24, 101, 63, 0, 1, fn_1_C6E0); - for(i=0; i<4; i++) { - omObjData *object = lbl_1_bss_34[i] = omAddObjEx(lbl_1_bss_24, 100, 6, 0, 0, fn_1_CBB4); - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work19C8), MEMORY_DEFAULT_NUM); - object->work[0] = i; - } - lbl_1_bss_44 = omAddObjEx(lbl_1_bss_24, 102, 0, 0, -1, fn_1_D340); + s32 i; + OSReport("******* M413 ObjectSetup *********\n"); + HuAudSndGrpSet(38); + lbl_1_bss_24 = omInitObjMan(600, 8192); + omGameSysInit(lbl_1_bss_24); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + Hu3DCameraPerspectiveSet(1, 40, 10, 20000, 1.2f); + { + Vec sp54 = { 616.5714f, -1331.2f, 2120.1142f }; + Vec sp48 = { -0.05f, 1.0f, 0.0f }; + Vec sp3C = { 0, 0, 0 }; + Vec sp30 = { 0, 0, 0 }; + Vec sp24 = { 0, 0, -1 }; + Hu3DCameraPosSetV(1, &sp54, &sp48, &sp3C); + } + { + Vec sp18 = { -822.5f, 6743.0f, 4625.5f }; + Vec spC = { 0.1545085f, -0.788462f, -0.5850064f }; + GXColor sp8 = { 0, 0, 0, 255 }; + lbl_1_bss_1C = Hu3DGLightCreateV(&sp18, &spC, &sp8); + } + Hu3DGLightStaticSet(lbl_1_bss_1C, 1); + Hu3DGLightSpotSet(lbl_1_bss_1C, 20, 2); + lbl_1_bss_20 = -1; + lbl_1_bss_18 = -1; + lbl_1_bss_30 = omAddObjEx(lbl_1_bss_24, 101, 63, 0, 1, fn_1_C6E0); + for (i = 0; i < 4; i++) { + omObjData *object = lbl_1_bss_34[i] = omAddObjEx(lbl_1_bss_24, 100, 6, 0, 0, fn_1_CBB4); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work19C8), MEMORY_DEFAULT_NUM); + object->work[0] = i; + } + lbl_1_bss_44 = omAddObjEx(lbl_1_bss_24, 102, 0, 0, -1, fn_1_D340); } void fn_1_D700(omObjData *object) { - if(!WipeStatGet()) { - if(lbl_1_bss_20 >= 0) { - MGSeqKill(lbl_1_bss_20); - } - MGSeqKillAll(); - HuAudAllStop(); - omOvlReturnEx(1, 1); - } + if (!WipeStatGet()) { + if (lbl_1_bss_20 >= 0) { + MGSeqKill(lbl_1_bss_20); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } } diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index 0020aa4f..af9d25ab 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -1,44 +1,40 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/audio.h" -#include "game/wipe.h" -#include "game/sprite.h" -#include "game/chrman.h" #include "game/pad.h" -#include "game/gamework_data.h" -#include "game/minigame_seq.h" -#include "game/frand.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "math.h" #include "ext_math.h" - +#include "math.h" #include "REL/m416Dll.h" #include "rel_sqrt_consts.h" typedef struct camera_view_params { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraViewParams; -CameraViewParams lbl_1_data_0[2] = { - { 1676.6, { 0, 172, 123 }, { -18, 0, 0 } }, - { 1200, { 0, 0, -600 }, { -24, 0, 0 } } -}; +CameraViewParams lbl_1_data_0[2] = { { 1676.6, { 0, 172, 123 }, { -18, 0, 0 } }, { 1200, { 0, 0, -600 }, { -24, 0, 0 } } }; GXColor lbl_1_data_38 = { 255, 255, 255, 255 }; GXColor lbl_1_data_3C = { 255, 160, 96, 255 }; typedef struct struct_bss_14 { - float unk0; - float unk4; - u8 unk8; - float unkC; + float unk0; + float unk4; + u8 unk8; + float unkC; } StructBss14; s32 lbl_1_bss_960; @@ -70,104 +66,104 @@ void fn_1_6E5C(omObjData *object); void ObjectSetup(void) { - Process *objman; - Vec pos; - Vec up; - Vec target; - OSReport("******* M416ObjectSetup *********\n"); - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 30, 20, 25000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_1_bss_950 = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); - lbl_1_bss_958 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_458); - fn_1_1260(objman); - lbl_1_bss_954 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6E5C); - pos.x = 0; - pos.y = 3000; - pos.z = 1; - up.x = 0; - up.y = 1; - up.z = 0; - target.x = 0; - target.y = 0; - target.z = 0; - Hu3DShadowCreate(30, 20, 25000); - Hu3DShadowTPLvlSet(0.9f); - Hu3DShadowPosSet(&pos, &up, &target); - Hu3DLightAllKill(); - lbl_1_bss_91A[0] = Hu3DGLightCreate(-700, 1200, 700, 0, -0.5, -1, lbl_1_data_38.r, lbl_1_data_38.g, lbl_1_data_38.b); - Hu3DGLightStaticSet(lbl_1_bss_91A[0], 1); - Hu3DGLightInfinitytSet(lbl_1_bss_91A[0]); - lbl_1_bss_91A[1] = Hu3DGLightCreate(0, 0, 0, 0, 0, 0, 0, 0, 0); - Hu3DGLightStaticSet(lbl_1_bss_91A[1], 1); - Hu3DGLightPointSet(lbl_1_bss_91A[1], 0, 0, 3); - lbl_1_bss_918 = 0; - HuAudSndGrpSet(41); - Hu3DBGColorSet(0, 0, 0); - fn_1_79D0(objman); + Process *objman; + Vec pos; + Vec up; + Vec target; + OSReport("******* M416ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30, 20, 25000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_1_bss_950 = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); + lbl_1_bss_958 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_458); + fn_1_1260(objman); + lbl_1_bss_954 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6E5C); + pos.x = 0; + pos.y = 3000; + pos.z = 1; + up.x = 0; + up.y = 1; + up.z = 0; + target.x = 0; + target.y = 0; + target.z = 0; + Hu3DShadowCreate(30, 20, 25000); + Hu3DShadowTPLvlSet(0.9f); + Hu3DShadowPosSet(&pos, &up, &target); + Hu3DLightAllKill(); + lbl_1_bss_91A[0] = Hu3DGLightCreate(-700, 1200, 700, 0, -0.5, -1, lbl_1_data_38.r, lbl_1_data_38.g, lbl_1_data_38.b); + Hu3DGLightStaticSet(lbl_1_bss_91A[0], 1); + Hu3DGLightInfinitytSet(lbl_1_bss_91A[0]); + lbl_1_bss_91A[1] = Hu3DGLightCreate(0, 0, 0, 0, 0, 0, 0, 0, 0); + Hu3DGLightStaticSet(lbl_1_bss_91A[1], 1); + Hu3DGLightPointSet(lbl_1_bss_91A[1], 0, 0, 3); + lbl_1_bss_918 = 0; + HuAudSndGrpSet(41); + Hu3DBGColorSet(0, 0, 0); + fn_1_79D0(objman); } void fn_1_458(omObjData *object) { - lbl_1_bss_928 = 30; - lbl_1_bss_926 = 60; - fn_1_1250(0); - lbl_1_bss_924 = -1; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_920 = 1; - fn_1_8FF4(1); - object->func = fn_1_4FC; + lbl_1_bss_928 = 30; + lbl_1_bss_926 = 60; + fn_1_1250(0); + lbl_1_bss_924 = -1; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_920 = 1; + fn_1_8FF4(1); + object->func = fn_1_4FC; } typedef struct bss_930_work_4c { - u8 field_0_bit0 : 1; - float unk4; - float unk8; - float unkC; - s16 unk10; + u8 field_0_bit0 : 1; + float unk4; + float unk8; + float unkC; + s16 unk10; } Bss930Work4C; typedef struct bss_930_work { - u8 field_0_bit0 : 1; - u8 field_0_bit1 : 1; - u8 field_0_bit2 : 1; - u8 field_0_bit3 : 1; - u8 field_0_bit4 : 1; - s16 unk02; - s16 unk04; - s8 unk06; - s8 unk07; - u16 unk08; - u16 unk0A; - s16 unk0C; - s16 unk0E; - s16 unk10; - s16 unk12; - s16 unk14; - float unk18; - Vec unk1C; - s32 unk28; - s32 unk2C; - u32 unk30; - u32 unk34; - float unk38; - u32 unk3C; - s16 unk40; - s16 unk42; - s16 unk44; - s16 unk46; - omObjFunc unk48; - Bss930Work4C *unk4C; - s16 unk50; - Vec unk54; - s16 unk60; - Vec unk64; - s16 unk70; - Vec unk74; - float unk80; - float unk84; + u8 field_0_bit0 : 1; + u8 field_0_bit1 : 1; + u8 field_0_bit2 : 1; + u8 field_0_bit3 : 1; + u8 field_0_bit4 : 1; + s16 unk02; + s16 unk04; + s8 unk06; + s8 unk07; + u16 unk08; + u16 unk0A; + s16 unk0C; + s16 unk0E; + s16 unk10; + s16 unk12; + s16 unk14; + float unk18; + Vec unk1C; + s32 unk28; + s32 unk2C; + u32 unk30; + u32 unk34; + float unk38; + u32 unk3C; + s16 unk40; + s16 unk42; + s16 unk44; + s16 unk46; + omObjFunc unk48; + Bss930Work4C *unk4C; + s16 unk50; + Vec unk54; + s16 unk60; + Vec unk64; + s16 unk70; + Vec unk74; + float unk80; + float unk84; } Bss930Work; s32 lbl_1_data_64 = -1; @@ -178,200 +174,206 @@ void fn_1_52BC(void); void fn_1_4FC(omObjData *object) { - Bss930Work *temp_r31; - s32 temp_r30; - s16 temp_r29; - Vec sp1C; - Vec sp10; - s16 sp8[4]; - - switch(fn_1_1240()) { - case 0: - if(!WipeStatGet()) { - HuAudFXPlay(1471); - fn_1_1250(1); - lbl_1_bss_95C = 30; - } - break; - - case 1: - if(--lbl_1_bss_95C == 0) { - fn_1_1250(2); - lbl_1_bss_95C = 84; - } - break; - - case 2: - if(lbl_1_bss_95C) { - if(--lbl_1_bss_95C == 0) { - HuAudFXPlay(1470); - } - } else { - if(lbl_1_bss_920 > 0) { - lbl_1_bss_920 -= 0.020000001f; - if(lbl_1_bss_920 < 0) { - lbl_1_bss_920 = 0; - } - Hu3DGLightColorSet(lbl_1_bss_91A[0], lbl_1_data_38.r*lbl_1_bss_920, lbl_1_data_38.g*lbl_1_bss_920, lbl_1_data_38.b*lbl_1_bss_920, 255); - } - if(lbl_1_bss_920 < 0.1f) { - if(lbl_1_bss_0 == 0) { - temp_r31 = lbl_1_bss_930[0][0]->data; - HuAudCharVoicePlay(temp_r31->unk0C, 296); - lbl_1_bss_0 = 1; - } - } - if(lbl_1_bss_920 <= 0.0f) { - fn_1_1250(3); - lbl_1_bss_95C = 60; - } - } - break; - - case 3: - if(--lbl_1_bss_95C == 0) { - fn_1_1250(4); - lbl_1_bss_95C = 60; - Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r, lbl_1_data_3C.g, lbl_1_data_3C.b, lbl_1_data_3C.a); - fn_1_8FF4(0.0625f); - Hu3DShadowData.unk_08.x = 135; - MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - lbl_1_bss_918 = 1; - HuAudFXEmiterPlay(1464, &lbl_1_bss_930[0][0]->trans); - } - break; - - case 4: - if(--lbl_1_bss_95C == 0) { - fn_1_1250(5); - lbl_1_bss_12 = MGSeqStartCreate(); - } - break; - - case 5: - if(MGSeqStatGet(lbl_1_bss_12) == 0) { - lbl_1_bss_10 = MGSeqTimerCreate(30); - fn_1_1250(6); - } - if(lbl_1_data_64 < 0 && (MGSeqStatGet(lbl_1_bss_12) & 0x10)) { - lbl_1_data_64 = HuAudSeqPlay(73); - } - break; - - case 6: - if(--lbl_1_bss_926 == 0) { - lbl_1_bss_928--; - MGSeqParamSet(lbl_1_bss_10, 1, lbl_1_bss_928); - lbl_1_bss_926 = 60; - } - if(lbl_1_bss_928 == 0 || lbl_1_bss_924 >= 0) { - lbl_1_bss_12 = MGSeqFinishCreate(); - fn_1_1250(7); - HuAudSeqAllFadeOut(100); - } - break; - - case 7: - if(lbl_1_bss_10 >= 0) { - MGSeqParamSet(lbl_1_bss_10, 2, -1); - lbl_1_bss_10 = -1; - } - if(MGSeqStatGet(lbl_1_bss_12) == 0) { - lbl_1_bss_95C = 60; - fn_1_1250(8); - } - break; - - case 8: - if(lbl_1_bss_95C) { - if(--lbl_1_bss_95C == 0) { - Hu3DShadowData.unk_08.x = 30; - MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - lbl_1_bss_918 = 0; - sp1C.x = 0; - sp1C.y = 3000; - sp1C.z = 1; - sp10.x = 0; - sp10.y = 0; - sp10.z = 0; - Hu3DShadowPosSet(&sp1C, &Hu3DShadowData.unk_2C, &sp10); - HuAudFXPlay(1470); - } - } else { - lbl_1_bss_920 += 0.020000001f; - if(lbl_1_bss_920 >= 1.0f) { - lbl_1_bss_920 = 1.0f; - fn_1_1250(9); - lbl_1_bss_95C = 60; - fn_1_52BC(); - } - fn_1_8FF4(lbl_1_bss_920); - Hu3DGLightColorSet(lbl_1_bss_91A[0], lbl_1_data_38.r*lbl_1_bss_920, lbl_1_data_38.g*lbl_1_bss_920, lbl_1_data_38.b*lbl_1_bss_920, 255); - if(lbl_1_bss_91A[1] >= 0) { - Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r*(1.0f-lbl_1_bss_920), lbl_1_data_3C.g*(1.0f-lbl_1_bss_920), lbl_1_data_3C.b*(1.0f-lbl_1_bss_920), lbl_1_data_3C.a*(1.0f-lbl_1_bss_920)); - } - } - break; - - case 9: - if(fn_1_14E8()) { - if(--lbl_1_bss_95C == 0) { - fn_1_1250(10); - lbl_1_bss_95C = 210; - for(temp_r30=0; temp_r30<4; temp_r30++) { - sp8[temp_r30] = -1; - } - temp_r29 = 0; - if(lbl_1_bss_924 < 0) { - temp_r31 = lbl_1_bss_930[0][0]->data; - sp8[temp_r29++] = temp_r31->unk0C; - GWPlayerCoinWinSet(temp_r31->unk02, 10); - } else { - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r31 = lbl_1_bss_930[1][temp_r30]->data; - sp8[temp_r29++] = temp_r31->unk0C; - GWPlayerCoinWinSet(temp_r31->unk02, 10); - } - } - lbl_1_bss_12 = MGSeqWinCreate(sp8[0], sp8[1], sp8[2], sp8[3]); - HuAudSStreamPlay(1); - } - } - break; - - case 10: - if(--lbl_1_bss_95C == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_11E8; - } - break; - } - if(omSysExitReq && !WipeStatGet()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_11E8; - } - fn_1_8F60(lbl_1_bss_920); + Bss930Work *temp_r31; + s32 temp_r30; + s16 temp_r29; + Vec sp1C; + Vec sp10; + s16 sp8[4]; + + switch (fn_1_1240()) { + case 0: + if (!WipeStatGet()) { + HuAudFXPlay(1471); + fn_1_1250(1); + lbl_1_bss_95C = 30; + } + break; + + case 1: + if (--lbl_1_bss_95C == 0) { + fn_1_1250(2); + lbl_1_bss_95C = 84; + } + break; + + case 2: + if (lbl_1_bss_95C) { + if (--lbl_1_bss_95C == 0) { + HuAudFXPlay(1470); + } + } + else { + if (lbl_1_bss_920 > 0) { + lbl_1_bss_920 -= 0.020000001f; + if (lbl_1_bss_920 < 0) { + lbl_1_bss_920 = 0; + } + Hu3DGLightColorSet( + lbl_1_bss_91A[0], lbl_1_data_38.r * lbl_1_bss_920, lbl_1_data_38.g * lbl_1_bss_920, lbl_1_data_38.b * lbl_1_bss_920, 255); + } + if (lbl_1_bss_920 < 0.1f) { + if (lbl_1_bss_0 == 0) { + temp_r31 = lbl_1_bss_930[0][0]->data; + HuAudCharVoicePlay(temp_r31->unk0C, 296); + lbl_1_bss_0 = 1; + } + } + if (lbl_1_bss_920 <= 0.0f) { + fn_1_1250(3); + lbl_1_bss_95C = 60; + } + } + break; + + case 3: + if (--lbl_1_bss_95C == 0) { + fn_1_1250(4); + lbl_1_bss_95C = 60; + Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r, lbl_1_data_3C.g, lbl_1_data_3C.b, lbl_1_data_3C.a); + fn_1_8FF4(0.0625f); + Hu3DShadowData.unk_08.x = 135; + MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + lbl_1_bss_918 = 1; + HuAudFXEmiterPlay(1464, &lbl_1_bss_930[0][0]->trans); + } + break; + + case 4: + if (--lbl_1_bss_95C == 0) { + fn_1_1250(5); + lbl_1_bss_12 = MGSeqStartCreate(); + } + break; + + case 5: + if (MGSeqStatGet(lbl_1_bss_12) == 0) { + lbl_1_bss_10 = MGSeqTimerCreate(30); + fn_1_1250(6); + } + if (lbl_1_data_64 < 0 && (MGSeqStatGet(lbl_1_bss_12) & 0x10)) { + lbl_1_data_64 = HuAudSeqPlay(73); + } + break; + + case 6: + if (--lbl_1_bss_926 == 0) { + lbl_1_bss_928--; + MGSeqParamSet(lbl_1_bss_10, 1, lbl_1_bss_928); + lbl_1_bss_926 = 60; + } + if (lbl_1_bss_928 == 0 || lbl_1_bss_924 >= 0) { + lbl_1_bss_12 = MGSeqFinishCreate(); + fn_1_1250(7); + HuAudSeqAllFadeOut(100); + } + break; + + case 7: + if (lbl_1_bss_10 >= 0) { + MGSeqParamSet(lbl_1_bss_10, 2, -1); + lbl_1_bss_10 = -1; + } + if (MGSeqStatGet(lbl_1_bss_12) == 0) { + lbl_1_bss_95C = 60; + fn_1_1250(8); + } + break; + + case 8: + if (lbl_1_bss_95C) { + if (--lbl_1_bss_95C == 0) { + Hu3DShadowData.unk_08.x = 30; + MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + lbl_1_bss_918 = 0; + sp1C.x = 0; + sp1C.y = 3000; + sp1C.z = 1; + sp10.x = 0; + sp10.y = 0; + sp10.z = 0; + Hu3DShadowPosSet(&sp1C, &Hu3DShadowData.unk_2C, &sp10); + HuAudFXPlay(1470); + } + } + else { + lbl_1_bss_920 += 0.020000001f; + if (lbl_1_bss_920 >= 1.0f) { + lbl_1_bss_920 = 1.0f; + fn_1_1250(9); + lbl_1_bss_95C = 60; + fn_1_52BC(); + } + fn_1_8FF4(lbl_1_bss_920); + Hu3DGLightColorSet( + lbl_1_bss_91A[0], lbl_1_data_38.r * lbl_1_bss_920, lbl_1_data_38.g * lbl_1_bss_920, lbl_1_data_38.b * lbl_1_bss_920, 255); + if (lbl_1_bss_91A[1] >= 0) { + Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r * (1.0f - lbl_1_bss_920), lbl_1_data_3C.g * (1.0f - lbl_1_bss_920), + lbl_1_data_3C.b * (1.0f - lbl_1_bss_920), lbl_1_data_3C.a * (1.0f - lbl_1_bss_920)); + } + } + break; + + case 9: + if (fn_1_14E8()) { + if (--lbl_1_bss_95C == 0) { + fn_1_1250(10); + lbl_1_bss_95C = 210; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + sp8[temp_r30] = -1; + } + temp_r29 = 0; + if (lbl_1_bss_924 < 0) { + temp_r31 = lbl_1_bss_930[0][0]->data; + sp8[temp_r29++] = temp_r31->unk0C; + GWPlayerCoinWinSet(temp_r31->unk02, 10); + } + else { + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r31 = lbl_1_bss_930[1][temp_r30]->data; + sp8[temp_r29++] = temp_r31->unk0C; + GWPlayerCoinWinSet(temp_r31->unk02, 10); + } + } + lbl_1_bss_12 = MGSeqWinCreate(sp8[0], sp8[1], sp8[2], sp8[3]); + HuAudSStreamPlay(1); + } + } + break; + + case 10: + if (--lbl_1_bss_95C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_11E8; + } + break; + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_11E8; + } + fn_1_8F60(lbl_1_bss_920); } void fn_1_11E8(omObjData *object) { - if(!WipeStatGet()) { - MGSeqKillAll(); - HuAudFadeOut(1); - fn_1_7A54(); - omOvlReturnEx(1, 1); - OSReport("******* M416Exit *********\n"); - } + if (!WipeStatGet()) { + MGSeqKillAll(); + HuAudFadeOut(1); + fn_1_7A54(); + omOvlReturnEx(1, 1); + OSReport("******* M416Exit *********\n"); + } } s32 fn_1_1240(void) { - return lbl_1_bss_960; + return lbl_1_bss_960; } void fn_1_1250(s32 arg0) { - lbl_1_bss_960 = arg0; + lbl_1_bss_960 = arg0; } void fn_1_156C(omObjData *object); @@ -379,53 +381,53 @@ void fn_1_2930(omObjData *object); void fn_1_1260(Process *objman) { - s32 i; - s32 j; - - lbl_1_bss_92E = 0; - lbl_1_bss_92A[0] = lbl_1_bss_92A[1] = 0; - omMakeGroupEx(objman, 0, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 5, 5, 50, 0, fn_1_156C); - } - lbl_1_bss_914 = HuSprAnimReadFile(0x2F0005); - memset(lbl_1_bss_14, 0, sizeof(lbl_1_bss_14)); - for(i=0; i<10; i++) { - for(j=0; j<10; j++) { - lbl_1_bss_14[i+1][j+1].unk0 = ((0.5f+(j-5))*1100)/9; - lbl_1_bss_14[i+1][j+1].unk4 = ((0.5f+(i-5))*1100)/9; - } - } - omAddObjEx(objman, 6, 0, 0, -1, fn_1_2930); + s32 i; + s32 j; + + lbl_1_bss_92E = 0; + lbl_1_bss_92A[0] = lbl_1_bss_92A[1] = 0; + omMakeGroupEx(objman, 0, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 5, 5, 50, 0, fn_1_156C); + } + lbl_1_bss_914 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M416, 0x05)); + memset(lbl_1_bss_14, 0, sizeof(lbl_1_bss_14)); + for (i = 0; i < 10; i++) { + for (j = 0; j < 10; j++) { + lbl_1_bss_14[i + 1][j + 1].unk0 = ((0.5f + (j - 5)) * 1100) / 9; + lbl_1_bss_14[i + 1][j + 1].unk4 = ((0.5f + (i - 5)) * 1100) / 9; + } + } + omAddObjEx(objman, 6, 0, 0, -1, fn_1_2930); } void fn_1_5D18(omObjData *object); void fn_1_1480(void) { - s32 i; - omObjData **group; - group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - if(group == NULL) { - return; - } - for(i=0; i<4; i++) { - fn_1_5D18(group[i]); - } + s32 i; + omObjData **group; + group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + if (group == NULL) { + return; + } + for (i = 0; i < 4; i++) { + fn_1_5D18(group[i]); + } } s32 fn_1_14E8(void) { - s32 i; - omObjData **group; - group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for(i=0; i<4; i++) { - Bss930Work *work = group[i]->data; - if(!work->field_0_bit3) { - return 0; - } - } - return 1; + s32 i; + omObjData **group; + group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (i = 0; i < 4; i++) { + Bss930Work *work = group[i]->data; + if (!work->field_0_bit3) { + return 0; + } + } + return 1; } void fn_1_1964(omObjData *object); @@ -434,171 +436,165 @@ void fn_1_1D84(omObjData *object); void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix); -float lbl_1_data_B0[4][4] = { - 0, 0, -400, 0, - -340, 0, 200, 155, - 0, 0, 400, 180, - 340, 0, 200, 205 -}; +float lbl_1_data_B0[4][4] = { 0, 0, -400, 0, -340, 0, 200, 155, 0, 0, 400, 180, 340, 0, 200, 205 }; void fn_1_156C(omObjData *object) { - Bss930Work *work; - s32 player; - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work), MEMORY_DEFAULT_NUM); - object->data = work; - memset(work, 0, sizeof(Bss930Work)); - work->unk02 = lbl_1_bss_92E++; - work->unk04 = GWPlayerCfg[work->unk02].pad_idx; - work->unk0C = GWPlayerCfg[work->unk02].character; - work->unk0E = GWPlayerCfg[work->unk02].diff; - work->unk10 = GWPlayerCfg[work->unk02].group; - object->model[0] = CharModelCreate(work->unk0C, 4); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelShadowSet(object->model[0]); - work->field_0_bit2 = 1; - work->field_0_bit4 = 1; - work->unk28 = 0; - work->unk2C = -1; - work->unk34 = 0; - work->unk38 = 50; - if(!work->unk10) { - fn_1_1964(object); - lbl_1_bss_930[0][lbl_1_bss_92A[0]] = object; - player = lbl_1_bss_92A[0]; - work->unk12 = lbl_1_bss_92A[0]; - lbl_1_bss_92A[0]++; - } else { - fn_1_1ADC(object); - lbl_1_bss_930[1][lbl_1_bss_92A[1]] = object; - player = lbl_1_bss_92A[1]+1; - work->unk12 = lbl_1_bss_92A[1]; - lbl_1_bss_92A[1]++; - } - Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); - Hu3DModelShadowSet(object->model[1]); - Hu3DModelLayerSet(object->model[0], 3); - Hu3DModelLayerSet(object->model[1], 3); - fn_1_8EB4(object->model[0]); - fn_1_8EB4(object->model[1]); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - CharModelMotionIndexSet(work->unk0C, object->motion[1], 0x5F0002); - CharModelMotionIndexSet(work->unk0C, object->motion[2], 0x5F0002); - CharModelMotionDataClose(work->unk0C); - object->model[4] = Hu3DParticleCreate(lbl_1_bss_914, 2); - Hu3DParticleHookSet(object->model[4], fn_1_6AE8); - Hu3DParticleBlendModeSet(object->model[4], 1); - Hu3DModelLayerSet(object->model[4], 6); - Hu3DModelAttrSet(object->model[4], 1); - object->trans.x = lbl_1_data_B0[player][0]; - object->trans.y = lbl_1_data_B0[player][1]; - object->trans.z = lbl_1_data_B0[player][2]; - object->rot.y = lbl_1_data_B0[player][3]; - object->rot.x = object->rot.z = 0; - object->scale.x = object->scale.y = object->scale.z = 1; - work->unk84 = object->rot.y; - object->func = fn_1_1D84; + Bss930Work *work; + s32 player; + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work), MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Bss930Work)); + work->unk02 = lbl_1_bss_92E++; + work->unk04 = GWPlayerCfg[work->unk02].pad_idx; + work->unk0C = GWPlayerCfg[work->unk02].character; + work->unk0E = GWPlayerCfg[work->unk02].diff; + work->unk10 = GWPlayerCfg[work->unk02].group; + object->model[0] = CharModelCreate(work->unk0C, 4); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelShadowSet(object->model[0]); + work->field_0_bit2 = 1; + work->field_0_bit4 = 1; + work->unk28 = 0; + work->unk2C = -1; + work->unk34 = 0; + work->unk38 = 50; + if (!work->unk10) { + fn_1_1964(object); + lbl_1_bss_930[0][lbl_1_bss_92A[0]] = object; + player = lbl_1_bss_92A[0]; + work->unk12 = lbl_1_bss_92A[0]; + lbl_1_bss_92A[0]++; + } + else { + fn_1_1ADC(object); + lbl_1_bss_930[1][lbl_1_bss_92A[1]] = object; + player = lbl_1_bss_92A[1] + 1; + work->unk12 = lbl_1_bss_92A[1]; + lbl_1_bss_92A[1]++; + } + Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); + Hu3DModelShadowSet(object->model[1]); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelLayerSet(object->model[1], 3); + fn_1_8EB4(object->model[0]); + fn_1_8EB4(object->model[1]); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + CharModelMotionIndexSet(work->unk0C, object->motion[1], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionIndexSet(work->unk0C, object->motion[2], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionDataClose(work->unk0C); + object->model[4] = Hu3DParticleCreate(lbl_1_bss_914, 2); + Hu3DParticleHookSet(object->model[4], fn_1_6AE8); + Hu3DParticleBlendModeSet(object->model[4], 1); + Hu3DModelLayerSet(object->model[4], 6); + Hu3DModelAttrSet(object->model[4], 1); + object->trans.x = lbl_1_data_B0[player][0]; + object->trans.y = lbl_1_data_B0[player][1]; + object->trans.z = lbl_1_data_B0[player][2]; + object->rot.y = lbl_1_data_B0[player][3]; + object->rot.x = object->rot.z = 0; + object->scale.x = object->scale.y = object->scale.z = 1; + work->unk84 = object->rot.y; + object->func = fn_1_1D84; } u32 lbl_1_data_10C[9][2] = { - 0x002F0008, 1, - 0x002F0010, 1, - 0x002F0018, 1, - 0x002F0020, 1, - 0, 0, - 0x005F0000, 0, - 0x005F0017, 0, - 0x005F0018, 0, - 0x005F0002, 0 + DATA_MAKE_NUM(DATADIR_M416, 0x08), + 1, + DATA_MAKE_NUM(DATADIR_M416, 0x10), + 1, + DATA_MAKE_NUM(DATADIR_M416, 0x18), + 1, + DATA_MAKE_NUM(DATADIR_M416, 0x20), + 1, + 0, + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + 0, }; void fn_1_29DC(omObjData *object); - - - void fn_1_1964(omObjData *object) { - Bss930Work *work; - s32 i; - work = object->data; - for(i=0; i<9; i++) { - if(!lbl_1_data_10C[i][1]) { - object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_10C[i][0]); - } else { - object->motion[i] = CharModelMotionCreate(work->unk0C, work->unk0C+lbl_1_data_10C[i][0]); - } - } - object->model[1] = Hu3DModelCreateFile(0x2F0003); - object->model[2] = Hu3DParticleCreate(HuSprAnimReadFile(0x2F0006), 100); - Hu3DParticleHookSet(object->model[2], fn_1_613C); - Hu3DParticleBlendModeSet(object->model[2], 1); - Hu3DModelLayerSet(object->model[2], 6); - Hu3DModelAttrSet(object->model[2], 2); - Hu3DModelAttrSet(object->model[2], 1); - work->unk44 = 5; - work->unk48 = fn_1_29DC; + Bss930Work *work; + s32 i; + work = object->data; + for (i = 0; i < 9; i++) { + if (!lbl_1_data_10C[i][1]) { + object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_10C[i][0]); + } + else { + object->motion[i] = CharModelMotionCreate(work->unk0C, work->unk0C + lbl_1_data_10C[i][0]); + } + } + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x03)); + object->model[2] = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M416, 0x06)), 100); + Hu3DParticleHookSet(object->model[2], fn_1_613C); + Hu3DParticleBlendModeSet(object->model[2], 1); + Hu3DModelLayerSet(object->model[2], 6); + Hu3DModelAttrSet(object->model[2], 2); + Hu3DModelAttrSet(object->model[2], 1); + work->unk44 = 5; + work->unk48 = fn_1_29DC; } void fn_1_2EA4(omObjData *object); void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_6DEC(s16 arg0, u32 arg1); -s32 lbl_1_data_154[9] = { - 0x005F0030, - 0x005F0031, - 0x005F0032, - 0x005F002D, - 0x005F002E, - 0x005F0000, - 0x005F0017, - 0x005F0018, - 0x005F0002 -}; - +s32 lbl_1_data_154[9] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x30), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x31), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x32), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2D), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2E), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02) }; void fn_1_1ADC(omObjData *object) { - Bss930Work *work; - s32 i; - work = object->data; - for(i=0; i<9; i++) { - object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_154[i]); - } - object->model[1] = Hu3DModelCreateFile(0x2F0004); - object->model[2] = Hu3DModelCreateFile(0x2F0002); - Hu3DModelLayerSet(object->model[2], 3); - fn_1_6DEC(object->model[2], 16); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DMotionSpeedSet(object->model[2], 0); - Hu3DAnimCreate(HuDataReadNum(0x2F0007, MEMORY_DEFAULT_NUM), object->model[2], "sb00"); - object->model[3] = Hu3DParticleCreate(lbl_1_bss_914, 50); - Hu3DParticleHookSet(object->model[3], fn_1_6640); - Hu3DModelLayerSet(object->model[3], 3); - Hu3DModelAttrSet(object->model[3], 1); - work->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work4C), MEMORY_DEFAULT_NUM); - memset(work->unk4C, 0, sizeof(Bss930Work4C)); - - work->unk48 = fn_1_2EA4; + Bss930Work *work; + s32 i; + work = object->data; + for (i = 0; i < 9; i++) { + object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_154[i]); + } + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x04)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x02)); + Hu3DModelLayerSet(object->model[2], 3); + fn_1_6DEC(object->model[2], 16); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DMotionSpeedSet(object->model[2], 0); + Hu3DAnimCreate(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M416, 0x07), MEMORY_DEFAULT_NUM), object->model[2], "sb00"); + object->model[3] = Hu3DParticleCreate(lbl_1_bss_914, 50); + Hu3DParticleHookSet(object->model[3], fn_1_6640); + Hu3DModelLayerSet(object->model[3], 3); + Hu3DModelAttrSet(object->model[3], 1); + work->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work4C), MEMORY_DEFAULT_NUM); + memset(work->unk4C, 0, sizeof(Bss930Work4C)); + + work->unk48 = fn_1_2EA4; } float fn_1_1C80(float arg1, float arg2, float arg3) { - float temp_f31; - float temp_f30; - temp_f31 = fmod(arg2-arg1, 360); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - temp_f30 = fmod(arg1+(arg3*temp_f31), 360); - if(temp_f30 < 0.0f) { - temp_f30 += 360.0f; - } - return temp_f30; + float temp_f31; + float temp_f30; + temp_f31 = fmod(arg2 - arg1, 360); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f30 = fmod(arg1 + (arg3 * temp_f31), 360); + if (temp_f30 < 0.0f) { + temp_f30 += 360.0f; + } + return temp_f30; } void fn_1_389C(omObjData *object); @@ -606,158 +602,169 @@ s32 fn_1_5530(omObjData *arg0, Vec *arg1, Vec *arg2); void fn_1_1D84(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f28; - float temp_f27; - float temp_f23; - Bss930Work *temp_r31; - s32 temp_r29; - u32 temp_r28; - s32 temp_r27; - Vec sp40; - Vec sp34; - temp_r31 = object->data; - temp_r29 = temp_r31->unk28; - temp_r28 = temp_r31->unk30; - switch(temp_r31->unk14) { - case 0: - if(fn_1_1240() >= 6) { - if(fn_1_1240() == 7) { - temp_r31->unk14 = 1; - temp_r31->unk40 = 60; - temp_r31->unk08 = temp_r31->unk0A = 0; - temp_r31->unk06 = temp_r31->unk07 = 0; - } else { - if(!GWPlayerCfg[temp_r31->unk02].iscom) { - temp_r31->unk06 = HuPadStkX[temp_r31->unk04]; - temp_r31->unk07 = HuPadStkY[temp_r31->unk04]; - temp_r31->unk08 = HuPadBtn[temp_r31->unk04]; - temp_r31->unk0A = HuPadBtnDown[temp_r31->unk04]; - } else { - temp_r31->unk08 = temp_r31->unk0A = 0; - temp_r31->unk06 = temp_r31->unk07 = 0; - fn_1_389C(object); - } - temp_f31 = temp_r31->unk06; - temp_f30 = -(float)temp_r31->unk07; - if(temp_r31->field_0_bit1) { - temp_f31 = temp_f30 = 0; - } - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 > 0) { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - if(temp_f28 > 72) { - temp_f28 = 72; - } - temp_r31->unk18 = (10*temp_f28)/72; - temp_r31->unk1C.x = temp_f31*temp_r31->unk18; - temp_r31->unk1C.z = temp_f30*temp_r31->unk18; - object->rot.y = fn_1_1C80(object->rot.y, atan2d(temp_r31->unk1C.x, temp_r31->unk1C.z), 0.4f); - if(temp_r31->unk18 < 7.5f) { - temp_r29 = 1; - } else { - temp_r29 = 2; - } - temp_r28 = 0x40000001; - } else { - temp_r31->unk1C.x = temp_r31->unk1C.z = 0; - temp_r29 = 0; - temp_r28 = 0x40000001; - } - object->trans.x += temp_r31->unk1C.x; - object->trans.z += temp_r31->unk1C.z; - } - } - break; - - case 1: - if(fn_1_1240() == 9) { - if(--temp_r31->unk40 == 0){ - temp_r31->unk14 = 2; - temp_r31->unk40 = 300; - temp_r31->unk2C = -1; - } - } - if(!temp_r31->field_0_bit2) { - temp_r29 = 5; - } else { - temp_r29 = 0; - } - temp_r28 = 0x40000001; - break; - - case 2: - if(fn_1_1240() == 10) { - temp_r31->unk14 = 3; - } else { - VECSubtract(&temp_r31->unk64, &object->trans, &sp34); - temp_f28 = VECMag(&sp34); - if(temp_f28 < 20 || temp_r31->unk40 == 0) { - temp_r29 = 5; - temp_r28 = 0x40000001; - object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); - temp_r31->field_0_bit3 = 1; - } else { - if(!temp_r31->field_0_bit3) { - temp_r27 = fn_1_5530(object, &temp_r31->unk64, &sp40); - } else { - sp40.x = temp_r31->unk64.x; - sp40.y = temp_r31->unk64.y; - sp40.z = temp_r31->unk64.z; - temp_r27 = 0; - } - VECSubtract(&sp40, &object->trans, &sp34); - object->rot.y = fn_1_1C80(object->rot.y, atan2d(sp34.x, sp34.z), 0.2f); - if(!temp_r27) { - if(temp_f28 < 100.0f) { - temp_f23 = 7.5f*(temp_f28/100.0f); - } else { - temp_f23 = 7.5f; - } - } else { - temp_f23 = 3.75f; - } - temp_r31->unk1C.x = temp_f23*sind(object->rot.y); - temp_r31->unk1C.z = temp_f23*cosd(object->rot.y); - object->trans.x += temp_r31->unk1C.x; - object->trans.z += temp_r31->unk1C.z; - temp_r29 = 8; - temp_r28 = 0x40000001; - - } - if(temp_r31->unk40) { - temp_r31->unk40--; - } - } - break; - - case 3: - if(fn_1_1240() < 10) { - temp_r29 = 0; - temp_r28 = 0x40000001; - } else { - if((!temp_r31->unk10 && lbl_1_bss_924 < 0) || (temp_r31->unk10 && lbl_1_bss_924 >= 0)) { - temp_r29 = 6; - } else { - temp_r29 = 7; - } - temp_r28 = 0; - object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); - Hu3DModelAttrReset(object->model[0], 0x40000001); - } - break; - } - if(temp_r31->unk2C >= 0) { - temp_r29 = temp_r31->unk2C; - temp_r28 = temp_r31->unk34; - } - if((temp_r29 >= 0 && temp_r29 != temp_r31->unk28) || temp_r28 != temp_r31->unk30) { - temp_r31->unk28 = temp_r29; - temp_r31->unk30 = temp_r28; - CharModelMotionShiftSet(temp_r31->unk0C, object->motion[temp_r31->unk28], 0, 8, temp_r28); - } + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f27; + float temp_f23; + Bss930Work *temp_r31; + s32 temp_r29; + u32 temp_r28; + s32 temp_r27; + Vec sp40; + Vec sp34; + temp_r31 = object->data; + temp_r29 = temp_r31->unk28; + temp_r28 = temp_r31->unk30; + switch (temp_r31->unk14) { + case 0: + if (fn_1_1240() >= 6) { + if (fn_1_1240() == 7) { + temp_r31->unk14 = 1; + temp_r31->unk40 = 60; + temp_r31->unk08 = temp_r31->unk0A = 0; + temp_r31->unk06 = temp_r31->unk07 = 0; + } + else { + if (!GWPlayerCfg[temp_r31->unk02].iscom) { + temp_r31->unk06 = HuPadStkX[temp_r31->unk04]; + temp_r31->unk07 = HuPadStkY[temp_r31->unk04]; + temp_r31->unk08 = HuPadBtn[temp_r31->unk04]; + temp_r31->unk0A = HuPadBtnDown[temp_r31->unk04]; + } + else { + temp_r31->unk08 = temp_r31->unk0A = 0; + temp_r31->unk06 = temp_r31->unk07 = 0; + fn_1_389C(object); + } + temp_f31 = temp_r31->unk06; + temp_f30 = -(float)temp_r31->unk07; + if (temp_r31->field_0_bit1) { + temp_f31 = temp_f30 = 0; + } + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 > 0) { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + if (temp_f28 > 72) { + temp_f28 = 72; + } + temp_r31->unk18 = (10 * temp_f28) / 72; + temp_r31->unk1C.x = temp_f31 * temp_r31->unk18; + temp_r31->unk1C.z = temp_f30 * temp_r31->unk18; + object->rot.y = fn_1_1C80(object->rot.y, atan2d(temp_r31->unk1C.x, temp_r31->unk1C.z), 0.4f); + if (temp_r31->unk18 < 7.5f) { + temp_r29 = 1; + } + else { + temp_r29 = 2; + } + temp_r28 = 0x40000001; + } + else { + temp_r31->unk1C.x = temp_r31->unk1C.z = 0; + temp_r29 = 0; + temp_r28 = 0x40000001; + } + object->trans.x += temp_r31->unk1C.x; + object->trans.z += temp_r31->unk1C.z; + } + } + break; + + case 1: + if (fn_1_1240() == 9) { + if (--temp_r31->unk40 == 0) { + temp_r31->unk14 = 2; + temp_r31->unk40 = 300; + temp_r31->unk2C = -1; + } + } + if (!temp_r31->field_0_bit2) { + temp_r29 = 5; + } + else { + temp_r29 = 0; + } + temp_r28 = 0x40000001; + break; + + case 2: + if (fn_1_1240() == 10) { + temp_r31->unk14 = 3; + } + else { + VECSubtract(&temp_r31->unk64, &object->trans, &sp34); + temp_f28 = VECMag(&sp34); + if (temp_f28 < 20 || temp_r31->unk40 == 0) { + temp_r29 = 5; + temp_r28 = 0x40000001; + object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); + temp_r31->field_0_bit3 = 1; + } + else { + if (!temp_r31->field_0_bit3) { + temp_r27 = fn_1_5530(object, &temp_r31->unk64, &sp40); + } + else { + sp40.x = temp_r31->unk64.x; + sp40.y = temp_r31->unk64.y; + sp40.z = temp_r31->unk64.z; + temp_r27 = 0; + } + VECSubtract(&sp40, &object->trans, &sp34); + object->rot.y = fn_1_1C80(object->rot.y, atan2d(sp34.x, sp34.z), 0.2f); + if (!temp_r27) { + if (temp_f28 < 100.0f) { + temp_f23 = 7.5f * (temp_f28 / 100.0f); + } + else { + temp_f23 = 7.5f; + } + } + else { + temp_f23 = 3.75f; + } + temp_r31->unk1C.x = temp_f23 * sind(object->rot.y); + temp_r31->unk1C.z = temp_f23 * cosd(object->rot.y); + object->trans.x += temp_r31->unk1C.x; + object->trans.z += temp_r31->unk1C.z; + temp_r29 = 8; + temp_r28 = 0x40000001; + } + if (temp_r31->unk40) { + temp_r31->unk40--; + } + } + break; + + case 3: + if (fn_1_1240() < 10) { + temp_r29 = 0; + temp_r28 = 0x40000001; + } + else { + if ((!temp_r31->unk10 && lbl_1_bss_924 < 0) || (temp_r31->unk10 && lbl_1_bss_924 >= 0)) { + temp_r29 = 6; + } + else { + temp_r29 = 7; + } + temp_r28 = 0; + object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); + Hu3DModelAttrReset(object->model[0], 0x40000001); + } + break; + } + if (temp_r31->unk2C >= 0) { + temp_r29 = temp_r31->unk2C; + temp_r28 = temp_r31->unk34; + } + if ((temp_r29 >= 0 && temp_r29 != temp_r31->unk28) || temp_r28 != temp_r31->unk30) { + temp_r31->unk28 = temp_r29; + temp_r31->unk30 = temp_r28; + CharModelMotionShiftSet(temp_r31->unk0C, object->motion[temp_r31->unk28], 0, 8, temp_r28); + } } void fn_1_5004(void); @@ -766,249 +773,239 @@ void fn_1_361C(omObjData *object); void fn_1_2930(omObjData *object) { - Bss930Work *temp_r31; - s32 temp_r30; - omObjData *temp_r29; - omObjData **temp_r28; - temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - fn_1_5004(); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = temp_r28[temp_r30]; - temp_r31 = temp_r29->data; - if(temp_r31->unk48 != NULL) { - temp_r31->unk48(temp_r29); - } - if(temp_r31->field_0_bit4) { - fn_1_361C(temp_r29); - } - } + Bss930Work *temp_r31; + s32 temp_r30; + omObjData *temp_r29; + omObjData **temp_r28; + temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + fn_1_5004(); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = temp_r28[temp_r30]; + temp_r31 = temp_r29->data; + if (temp_r31->unk48 != NULL) { + temp_r31->unk48(temp_r29); + } + if (temp_r31->field_0_bit4) { + fn_1_361C(temp_r29); + } + } } -float lbl_1_data_180[6] = { - 0, - 0.3, - 0.7, - 1.0, - 1.3, - 1.6 -}; +float lbl_1_data_180[6] = { 0, 0.3, 0.7, 1.0, 1.3, 1.6 }; -float lbl_1_data_198[6][2] = { - 100.0f, 0.75f, - 110.0f, 0.8f, - 120.000008f, 0.85f, - 130.0f, 0.9f, - 140.0f, 0.95f, - 150.0f, 0.99f -}; +float lbl_1_data_198[6][2] = { 100.0f, 0.75f, 110.0f, 0.8f, 120.000008f, 0.85f, 130.0f, 0.9f, 140.0f, 0.95f, 150.0f, 0.99f }; void fn_1_29DC(omObjData *object) { - Mtx sp50; - Mtx sp20; - Vec sp14; - Vec sp8; - Bss930Work *temp_r31; - ModelData *temp_r29; - temp_r31 = object->data; - if(temp_r31->unk44 > 0 && temp_r31->field_0_bit0) { - if(--temp_r31->unk44 == 0) { - lbl_1_bss_924 = 1; - Hu3DGLightKill(lbl_1_bss_91A[1]); - lbl_1_bss_91A[1] = -1; - Hu3DModelAttrSet(object->model[2], 1); - HuAudFXEmiterPlay(1469, &object->trans); - HuAudCharVoicePlay(temp_r31->unk0C, 291); - } else { - HuAudFXEmiterPlay(1466, &object->trans); - HuAudCharVoicePlay(temp_r31->unk0C, 296); - } - temp_r31->field_0_bit0 = 0; - temp_r31->field_0_bit1 = 1; - temp_r31->unk2C = 3; - temp_r31->unk34 = 0; - temp_r31->unk46 = 60; - temp_r31->unk60 = 30; - omVibrate(temp_r31->unk02, 12, 6, 6); - } - if(temp_r31->unk46 > 0) { - if(temp_r31->unk60) { - if(--temp_r31->unk60 == 0) { - temp_r31->unk2C = -1; - temp_r31->field_0_bit1 = 0; - } - } else { - if((temp_r31->unk46 & 0x2) == 0) { - Hu3DModelAttrReset(object->model[0], 1); - } else { - Hu3DModelAttrSet(object->model[0], 1); - } - temp_r31->unk46--; - } - } - if(temp_r31->field_0_bit2) { - Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp50); - MTXTrans(sp20, 0, 52, 0); - MTXConcat(sp50, sp20, sp50); - Hu3DModelPosSet(object->model[2], sp50[0][3], sp50[1][3], sp50[2][3]); - Hu3DModelScaleSet(object->model[2], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44]); - } - if(fn_1_1240() >= 4 && fn_1_1240() <= 8 && lbl_1_bss_91A[1] >= 0) { - Hu3DGLightPointSet(lbl_1_bss_91A[1], (15*sind(object->work[0]))+lbl_1_data_198[temp_r31->unk44][0], lbl_1_data_198[temp_r31->unk44][1], 3); - temp_r29 = &Hu3DData[object->model[2]]; - sp8 = temp_r29->pos; - sp14 = sp8; - sp14.y = 800; - sp8.y = 0; - sp14.z += 1; - Hu3DGLightPosSet(lbl_1_bss_91A[1], temp_r29->pos.x, 140, temp_r29->pos.z, 0, 1, 0); - if(lbl_1_bss_918) { - Hu3DShadowPosSet(&sp14, &Hu3DShadowData.unk_2C, &sp8); - } - object->work[0] += 10.0f; - Hu3DModelAttrReset(object->model[2], 1); - } else { - Hu3DModelAttrSet(object->model[2], 1); - } + Mtx sp50; + Mtx sp20; + Vec sp14; + Vec sp8; + Bss930Work *temp_r31; + ModelData *temp_r29; + temp_r31 = object->data; + if (temp_r31->unk44 > 0 && temp_r31->field_0_bit0) { + if (--temp_r31->unk44 == 0) { + lbl_1_bss_924 = 1; + Hu3DGLightKill(lbl_1_bss_91A[1]); + lbl_1_bss_91A[1] = -1; + Hu3DModelAttrSet(object->model[2], 1); + HuAudFXEmiterPlay(1469, &object->trans); + HuAudCharVoicePlay(temp_r31->unk0C, 291); + } + else { + HuAudFXEmiterPlay(1466, &object->trans); + HuAudCharVoicePlay(temp_r31->unk0C, 296); + } + temp_r31->field_0_bit0 = 0; + temp_r31->field_0_bit1 = 1; + temp_r31->unk2C = 3; + temp_r31->unk34 = 0; + temp_r31->unk46 = 60; + temp_r31->unk60 = 30; + omVibrate(temp_r31->unk02, 12, 6, 6); + } + if (temp_r31->unk46 > 0) { + if (temp_r31->unk60) { + if (--temp_r31->unk60 == 0) { + temp_r31->unk2C = -1; + temp_r31->field_0_bit1 = 0; + } + } + else { + if ((temp_r31->unk46 & 0x2) == 0) { + Hu3DModelAttrReset(object->model[0], 1); + } + else { + Hu3DModelAttrSet(object->model[0], 1); + } + temp_r31->unk46--; + } + } + if (temp_r31->field_0_bit2) { + Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp50); + MTXTrans(sp20, 0, 52, 0); + MTXConcat(sp50, sp20, sp50); + Hu3DModelPosSet(object->model[2], sp50[0][3], sp50[1][3], sp50[2][3]); + Hu3DModelScaleSet(object->model[2], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44]); + } + if (fn_1_1240() >= 4 && fn_1_1240() <= 8 && lbl_1_bss_91A[1] >= 0) { + Hu3DGLightPointSet( + lbl_1_bss_91A[1], (15 * sind(object->work[0])) + lbl_1_data_198[temp_r31->unk44][0], lbl_1_data_198[temp_r31->unk44][1], 3); + temp_r29 = &Hu3DData[object->model[2]]; + sp8 = temp_r29->pos; + sp14 = sp8; + sp14.y = 800; + sp8.y = 0; + sp14.z += 1; + Hu3DGLightPosSet(lbl_1_bss_91A[1], temp_r29->pos.x, 140, temp_r29->pos.z, 0, 1, 0); + if (lbl_1_bss_918) { + Hu3DShadowPosSet(&sp14, &Hu3DShadowData.unk_2C, &sp8); + } + object->work[0] += 10.0f; + Hu3DModelAttrReset(object->model[2], 1); + } + else { + Hu3DModelAttrSet(object->model[2], 1); + } } void fn_1_5C34(omObjData *object); - void fn_1_2EA4(omObjData *object) { - Bss930Work *temp_r30; - Bss930Work4C *temp_r29; - ParticleData *temp_r28; - ModelData *temp_r27; - Mtx sp3C; - Mtx spC; - temp_r30 = object->data; - temp_r29 = temp_r30->unk4C; - switch(temp_r30->unk50) { - case 0: - if(temp_r30->unk0A & PAD_BUTTON_A) { - temp_r30->field_0_bit1 = 1; - temp_r30->unk50 = 1; - temp_r30->unk60 = 15; - temp_r30->unk2C = 3; - temp_r30->unk34 = 0; - HuAudFXEmiterPlay(1465, &object->trans); - } - break; - - case 1: - if(--temp_r30->unk60 == 0) { - Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); - MTXTrans(spC, 0, 2, 50); - MTXConcat(sp3C, spC, sp3C); - Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - Hu3DModelScaleSet(object->model[2], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DMotionTimeSet(object->model[2], 0); - Hu3DMotionSpeedSet(object->model[2], 2.0f); - Hu3DModelRotSet(object->model[2], 0, 180.0f+object->rot.y, 0); - Hu3DData[object->model[2]].unk_94 = 0; - Hu3DData[object->model[2]].unk_98 = 2; - Hu3DModelAttrReset(object->model[3], 1); - Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - temp_r27 = &Hu3DData[object->model[3]]; - temp_r28 = temp_r27->unk_120; - temp_r28->unk_00 = 0; - temp_r28->unk_04.x = sp3C[0][3]; - temp_r28->unk_04.y = sp3C[1][3]; - temp_r28->unk_04.z = sp3C[2][3]; - temp_r28->unk_10.x = object->rot.y; - temp_r28->unk_3C = 30-(sqrtf((2.0f*temp_r28->unk_04.y)/1.0000001f)/2.0f); - temp_r29->field_0_bit0 = 1; - temp_r30->unk50 = 2; - temp_r30->unk60 = 20; - } - break; - - case 2: - if(--temp_r30->unk60 == 0) { - temp_r30->unk2C = 4; - temp_r30->unk34 = 0; - temp_r29->field_0_bit0 = 0; - temp_r30->unk50 = 3; - temp_r30->unk60 = 30; - } - Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); - MTXTrans(spC, 0, 2, 50); - MTXConcat(sp3C, spC, sp3C); - Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - fn_1_5C34(object); - break; - - case 3: - if(--temp_r30->unk60 == 0) { - Hu3DModelAttrSet(object->model[2], 1); - Hu3DData[object->model[2]].unk_0E = -1; - temp_r30->field_0_bit1 = 0; - temp_r30->unk2C = -1; - temp_r30->unk50 = 0; - } - break; - } - if(temp_r30->unk50 && fn_1_1240() > 6 && lbl_1_bss_924 < 0) { - temp_r29->field_0_bit0 = 0; - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[3], 1); - } - if(temp_r29->field_0_bit0) { - temp_r29->unk4 = object->trans.x+(((float)temp_r29->unk10*(200*sind(object->rot.y)))/4); - temp_r29->unk8 = 75; - temp_r29->unkC = object->trans.z+(((float)temp_r29->unk10*(200*cosd(object->rot.y)))/4); - temp_r29->unk4 = object->trans.x+(200.0*sind(object->rot.y)); - temp_r29->unk8 = 120.00001f; - temp_r29->unkC = object->trans.z+(200.0*cosd(object->rot.y)); - if(temp_r29->unk10 < 4) { - temp_r29->unk10++; - } - } - + Bss930Work *temp_r30; + Bss930Work4C *temp_r29; + ParticleData *temp_r28; + ModelData *temp_r27; + Mtx sp3C; + Mtx spC; + temp_r30 = object->data; + temp_r29 = temp_r30->unk4C; + switch (temp_r30->unk50) { + case 0: + if (temp_r30->unk0A & PAD_BUTTON_A) { + temp_r30->field_0_bit1 = 1; + temp_r30->unk50 = 1; + temp_r30->unk60 = 15; + temp_r30->unk2C = 3; + temp_r30->unk34 = 0; + HuAudFXEmiterPlay(1465, &object->trans); + } + break; + + case 1: + if (--temp_r30->unk60 == 0) { + Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); + MTXTrans(spC, 0, 2, 50); + MTXConcat(sp3C, spC, sp3C); + Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + Hu3DModelScaleSet(object->model[2], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DMotionTimeSet(object->model[2], 0); + Hu3DMotionSpeedSet(object->model[2], 2.0f); + Hu3DModelRotSet(object->model[2], 0, 180.0f + object->rot.y, 0); + Hu3DData[object->model[2]].unk_94 = 0; + Hu3DData[object->model[2]].unk_98 = 2; + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + temp_r27 = &Hu3DData[object->model[3]]; + temp_r28 = temp_r27->unk_120; + temp_r28->unk_00 = 0; + temp_r28->unk_04.x = sp3C[0][3]; + temp_r28->unk_04.y = sp3C[1][3]; + temp_r28->unk_04.z = sp3C[2][3]; + temp_r28->unk_10.x = object->rot.y; + temp_r28->unk_3C = 30 - (sqrtf((2.0f * temp_r28->unk_04.y) / 1.0000001f) / 2.0f); + temp_r29->field_0_bit0 = 1; + temp_r30->unk50 = 2; + temp_r30->unk60 = 20; + } + break; + + case 2: + if (--temp_r30->unk60 == 0) { + temp_r30->unk2C = 4; + temp_r30->unk34 = 0; + temp_r29->field_0_bit0 = 0; + temp_r30->unk50 = 3; + temp_r30->unk60 = 30; + } + Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); + MTXTrans(spC, 0, 2, 50); + MTXConcat(sp3C, spC, sp3C); + Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + fn_1_5C34(object); + break; + + case 3: + if (--temp_r30->unk60 == 0) { + Hu3DModelAttrSet(object->model[2], 1); + Hu3DData[object->model[2]].unk_0E = -1; + temp_r30->field_0_bit1 = 0; + temp_r30->unk2C = -1; + temp_r30->unk50 = 0; + } + break; + } + if (temp_r30->unk50 && fn_1_1240() > 6 && lbl_1_bss_924 < 0) { + temp_r29->field_0_bit0 = 0; + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[3], 1); + } + if (temp_r29->field_0_bit0) { + temp_r29->unk4 = object->trans.x + (((float)temp_r29->unk10 * (200 * sind(object->rot.y))) / 4); + temp_r29->unk8 = 75; + temp_r29->unkC = object->trans.z + (((float)temp_r29->unk10 * (200 * cosd(object->rot.y))) / 4); + temp_r29->unk4 = object->trans.x + (200.0 * sind(object->rot.y)); + temp_r29->unk8 = 120.00001f; + temp_r29->unkC = object->trans.z + (200.0 * cosd(object->rot.y)); + if (temp_r29->unk10 < 4) { + temp_r29->unk10++; + } + } } void fn_1_361C(omObjData *object) { - Bss930Work *temp_r30; - ModelData *temp_r29; - temp_r30 = object->data; - if(temp_r30->field_0_bit2) { - if(fn_1_1240() == 9) { - temp_r30->field_0_bit2 = 0; - temp_r30->unk48 = 0; - temp_r30->unk54.x = 6*sind(object->rot.y); - temp_r30->unk54.y = 20; - temp_r30->unk54.z = 6*cosd(object->rot.y); - temp_r30->unk60 = 30; - temp_r29 = &Hu3DData[object->model[1]]; - temp_r29->rot.y = object->rot.y; - Hu3DModelObjPosGet(object->model[0], "test11_tex_we-itemhook-r", &temp_r29->pos); - Hu3DModelHookReset(object->model[0]); - Hu3DModelAttrReset(object->model[1], 0x8000); - Hu3DModelShadowReset(object->model[1]); - Hu3DModelAttrReset(object->model[0], 1); - } - } else { - temp_r29 = &Hu3DData[object->model[1]]; - temp_r29->pos.x += temp_r30->unk54.x; - temp_r29->pos.y += temp_r30->unk54.y; - temp_r29->pos.z += temp_r30->unk54.z; - temp_r30->unk54.y += -1.0000001f; - temp_r29->rot.x += 30.0f; - if(--temp_r30->unk60 == 0) { - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelPosSet(object->model[4], temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); - Hu3DModelAttrReset(object->model[4], 1); - if(!temp_r30->unk10) { - HuAudFXPlay(1468); - } - temp_r30->field_0_bit4 = 0; - } - } + Bss930Work *temp_r30; + ModelData *temp_r29; + temp_r30 = object->data; + if (temp_r30->field_0_bit2) { + if (fn_1_1240() == 9) { + temp_r30->field_0_bit2 = 0; + temp_r30->unk48 = 0; + temp_r30->unk54.x = 6 * sind(object->rot.y); + temp_r30->unk54.y = 20; + temp_r30->unk54.z = 6 * cosd(object->rot.y); + temp_r30->unk60 = 30; + temp_r29 = &Hu3DData[object->model[1]]; + temp_r29->rot.y = object->rot.y; + Hu3DModelObjPosGet(object->model[0], "test11_tex_we-itemhook-r", &temp_r29->pos); + Hu3DModelHookReset(object->model[0]); + Hu3DModelAttrReset(object->model[1], 0x8000); + Hu3DModelShadowReset(object->model[1]); + Hu3DModelAttrReset(object->model[0], 1); + } + } + else { + temp_r29 = &Hu3DData[object->model[1]]; + temp_r29->pos.x += temp_r30->unk54.x; + temp_r29->pos.y += temp_r30->unk54.y; + temp_r29->pos.z += temp_r30->unk54.z; + temp_r30->unk54.y += -1.0000001f; + temp_r29->rot.x += 30.0f; + if (--temp_r30->unk60 == 0) { + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelPosSet(object->model[4], temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); + Hu3DModelAttrReset(object->model[4], 1); + if (!temp_r30->unk10) { + HuAudFXPlay(1468); + } + temp_r30->field_0_bit4 = 0; + } + } } void fn_1_38F0(omObjData *object); @@ -1016,766 +1013,764 @@ void fn_1_49C4(omObjData *object); void fn_1_389C(omObjData *object) { - Bss930Work *temp_r30; - temp_r30 = object->data; - if(!temp_r30->unk10) { - fn_1_38F0(object); - } else { - fn_1_49C4(object); - } + Bss930Work *temp_r30; + temp_r30 = object->data; + if (!temp_r30->unk10) { + fn_1_38F0(object); + } + else { + fn_1_49C4(object); + } } typedef struct unkstruct_38F0 { - s16 unk0; - s16 unk2; + s16 unk0; + s16 unk2; } UnkStruct38F0; -UnkStruct38F0 lbl_1_data_1C8[8] = { - -1, -1, - 0, -1, - 1, -1, - 1, 0, - 1, 1, - 0, 1, - -1, 1, - -1, 0 -}; - +UnkStruct38F0 lbl_1_data_1C8[8] = { -1, -1, 0, -1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, -1, 0 }; void fn_1_38F0(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f26; - float temp_f25; - float temp_f22; - - s32 temp_r31; - s32 temp_r30; - Bss930Work *temp_r29; - s16 temp_r27; - s32 temp_r26; - s16 temp_r25; - s16 temp_r24; - u8 temp_r23; - - UnkStruct38F0 sp80[100]; - UnkStruct38F0 sp58[10]; - UnkStruct38F0 sp30[10]; - UnkStruct38F0 sp20[4]; - - temp_r29 = object->data; - temp_f25 = 1; - sp20[3].unk0 = 1+(5+((9*object->trans.x)/1100)); - sp20[3].unk2 = 1+(5+((9*object->trans.z)/1100)); - for(temp_r31=1; temp_r31<11; temp_r31++) { - for(temp_r30=1; temp_r30<11; temp_r30++) { - lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; - temp_f22 = VECMagPoint(lbl_1_bss_14[temp_r31][temp_r30].unk0, lbl_1_bss_14[temp_r31][temp_r30].unk4, 0); - if(temp_f22 <= 550) { - lbl_1_bss_14[temp_r31][temp_r30].unkC = 0; - for(temp_r26=0; temp_r26trans.x; - temp_f30 = lbl_1_bss_14[temp_r31][temp_r30].unk4-lbl_1_bss_930[1][temp_r26]->trans.z; - temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); - if(temp_f22 <= 1100) { - temp_f26 = cosd(90*(temp_f22/1100)); - temp_f26 = temp_f26*temp_f26; - if(temp_f26 > lbl_1_bss_14[temp_r31][temp_r30].unkC) { - lbl_1_bss_14[temp_r31][temp_r30].unkC = temp_f26; - } - } - } - } else { - lbl_1_bss_14[temp_r31][temp_r30].unkC = -1; - } - } - } - lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unk8 = 1; - sp80[0] = sp20[3]; - temp_r27=0; - temp_r25=1; - do { - for(temp_r31=0; temp_r31<8u; temp_r31++) { - sp20[2].unk0 = sp80[temp_r27].unk0+lbl_1_data_1C8[temp_r31].unk0; - sp20[2].unk2 = sp80[temp_r27].unk2+lbl_1_data_1C8[temp_r31].unk2; - if(sp20[2].unk0 < 1 || sp20[2].unk0 >= 11 || sp20[2].unk2 < 1 || sp20[2].unk2 >= 11) { - continue; - } - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8) { - continue; - } - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0) { - lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8 = lbl_1_bss_14[sp80[temp_r27].unk2][sp80[temp_r27].unk0].unk8+1; - sp80[temp_r25].unk0 = sp20[2].unk0; - sp80[temp_r25].unk2 = sp20[2].unk2; - temp_r25++; - } - } - temp_r27++; - } while(temp_r27 != temp_r25); - temp_f25 = 1.0f; - sp20[0].unk0 = -1; - for(temp_r31=1; temp_r31<11; temp_r31++) { - for(temp_r30=1; temp_r30<11; temp_r30++) { - if(lbl_1_bss_14[temp_r31][temp_r30].unk8 == 0 || lbl_1_bss_14[temp_r31][temp_r30].unk8 > 5) { - continue; - } - if(lbl_1_bss_14[temp_r31][temp_r30].unkC >= 0.0f && lbl_1_bss_14[temp_r31][temp_r30].unkC < temp_f25) { - temp_f25 = lbl_1_bss_14[temp_r31][temp_r30].unkC; - sp20[0].unk0 = temp_r30; - sp20[0].unk2 = temp_r31; - } - } - } - temp_r23 = lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8; - if(temp_r23 == 1) { - if(lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unkC > 0.8f) { - temp_f25 = 1.0f; - for(temp_r31=0; temp_r31<8u; temp_r31++) { - sp20[2].unk0 = sp20[3].unk0+lbl_1_data_1C8[temp_r31].unk0; - sp20[2].unk2 = sp20[3].unk2+lbl_1_data_1C8[temp_r31].unk2; - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0.0f && lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC < temp_f25) { - temp_f25 = lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC; - sp20[1] = sp20[2]; - } - } - sp30[1].unk0 = sp20[1].unk0; - sp30[1].unk2 = sp20[1].unk2; - } else { - return; - } - } else { - for(temp_r31=1; temp_r31<11; temp_r31++) { - for(temp_r30=1; temp_r30<11; temp_r30++) { - if(lbl_1_bss_14[temp_r31][temp_r30].unk8 >= temp_r23) { - lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; - } - } - } - lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8 = temp_r23; - sp80[0] = sp20[3]; - temp_r24 = 1; - temp_f25 = 1.0f; - do { - sp20[1] = sp80[--temp_r24]; - sp58[lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8 -1] = sp20[1]; - if(sp20[1].unk0 == sp20[0].unk0 && sp20[1].unk2 == sp20[0].unk2) { - temp_f26 = 0; - for(temp_r31=1; temp_r31 temp_f26) { - temp_f26 = lbl_1_bss_14[sp58[temp_r31].unk2][sp58[temp_r31].unk0].unkC; - } - } - if(temp_f26 < temp_f25) { - temp_f25 = temp_f26; - memcpy(sp30, sp58, temp_r23*sizeof(UnkStruct38F0)); - - } - continue; - } - for(temp_r31=0; temp_r31<8u; temp_r31++) { - sp20[2].unk0 = sp20[1].unk0+lbl_1_data_1C8[temp_r31].unk0; - sp20[2].unk2 = sp20[1].unk2+lbl_1_data_1C8[temp_r31].unk2; - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8-1 == lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8) { - sp80[temp_r24++] = sp20[2]; - } - } - } while(temp_r24); - } - if(sp20[0].unk0 >= 0) { - temp_f31 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk0-object->trans.x; - temp_f30 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk4-object->trans.z; - temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); - if(temp_f22 >= 50.0f) { - temp_r29->unk84 = fn_1_1C80(temp_r29->unk84, atan2d(temp_f31, temp_f30), 0.1f); - temp_r29->unk06 = (69.0f+temp_r29->unk0E)*sind(temp_r29->unk84); - temp_r29->unk07 = (69.0f+temp_r29->unk0E)*-cosd(temp_r29->unk84); - } - } + float temp_f31; + float temp_f30; + float temp_f26; + float temp_f25; + float temp_f22; + + s32 temp_r31; + s32 temp_r30; + Bss930Work *temp_r29; + s16 temp_r27; + s32 temp_r26; + s16 temp_r25; + s16 temp_r24; + u8 temp_r23; + + UnkStruct38F0 sp80[100]; + UnkStruct38F0 sp58[10]; + UnkStruct38F0 sp30[10]; + UnkStruct38F0 sp20[4]; + + temp_r29 = object->data; + temp_f25 = 1; + sp20[3].unk0 = 1 + (5 + ((9 * object->trans.x) / 1100)); + sp20[3].unk2 = 1 + (5 + ((9 * object->trans.z) / 1100)); + for (temp_r31 = 1; temp_r31 < 11; temp_r31++) { + for (temp_r30 = 1; temp_r30 < 11; temp_r30++) { + lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; + temp_f22 = VECMagPoint(lbl_1_bss_14[temp_r31][temp_r30].unk0, lbl_1_bss_14[temp_r31][temp_r30].unk4, 0); + if (temp_f22 <= 550) { + lbl_1_bss_14[temp_r31][temp_r30].unkC = 0; + for (temp_r26 = 0; temp_r26 < lbl_1_bss_92A[1]; temp_r26++) { + temp_f31 = lbl_1_bss_14[temp_r31][temp_r30].unk0 - lbl_1_bss_930[1][temp_r26]->trans.x; + temp_f30 = lbl_1_bss_14[temp_r31][temp_r30].unk4 - lbl_1_bss_930[1][temp_r26]->trans.z; + temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); + if (temp_f22 <= 1100) { + temp_f26 = cosd(90 * (temp_f22 / 1100)); + temp_f26 = temp_f26 * temp_f26; + if (temp_f26 > lbl_1_bss_14[temp_r31][temp_r30].unkC) { + lbl_1_bss_14[temp_r31][temp_r30].unkC = temp_f26; + } + } + } + } + else { + lbl_1_bss_14[temp_r31][temp_r30].unkC = -1; + } + } + } + lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unk8 = 1; + sp80[0] = sp20[3]; + temp_r27 = 0; + temp_r25 = 1; + do { + for (temp_r31 = 0; temp_r31 < 8u; temp_r31++) { + sp20[2].unk0 = sp80[temp_r27].unk0 + lbl_1_data_1C8[temp_r31].unk0; + sp20[2].unk2 = sp80[temp_r27].unk2 + lbl_1_data_1C8[temp_r31].unk2; + if (sp20[2].unk0 < 1 || sp20[2].unk0 >= 11 || sp20[2].unk2 < 1 || sp20[2].unk2 >= 11) { + continue; + } + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8) { + continue; + } + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0) { + lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8 = lbl_1_bss_14[sp80[temp_r27].unk2][sp80[temp_r27].unk0].unk8 + 1; + sp80[temp_r25].unk0 = sp20[2].unk0; + sp80[temp_r25].unk2 = sp20[2].unk2; + temp_r25++; + } + } + temp_r27++; + } while (temp_r27 != temp_r25); + temp_f25 = 1.0f; + sp20[0].unk0 = -1; + for (temp_r31 = 1; temp_r31 < 11; temp_r31++) { + for (temp_r30 = 1; temp_r30 < 11; temp_r30++) { + if (lbl_1_bss_14[temp_r31][temp_r30].unk8 == 0 || lbl_1_bss_14[temp_r31][temp_r30].unk8 > 5) { + continue; + } + if (lbl_1_bss_14[temp_r31][temp_r30].unkC >= 0.0f && lbl_1_bss_14[temp_r31][temp_r30].unkC < temp_f25) { + temp_f25 = lbl_1_bss_14[temp_r31][temp_r30].unkC; + sp20[0].unk0 = temp_r30; + sp20[0].unk2 = temp_r31; + } + } + } + temp_r23 = lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8; + if (temp_r23 == 1) { + if (lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unkC > 0.8f) { + temp_f25 = 1.0f; + for (temp_r31 = 0; temp_r31 < 8u; temp_r31++) { + sp20[2].unk0 = sp20[3].unk0 + lbl_1_data_1C8[temp_r31].unk0; + sp20[2].unk2 = sp20[3].unk2 + lbl_1_data_1C8[temp_r31].unk2; + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0.0f && lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC < temp_f25) { + temp_f25 = lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC; + sp20[1] = sp20[2]; + } + } + sp30[1].unk0 = sp20[1].unk0; + sp30[1].unk2 = sp20[1].unk2; + } + else { + return; + } + } + else { + for (temp_r31 = 1; temp_r31 < 11; temp_r31++) { + for (temp_r30 = 1; temp_r30 < 11; temp_r30++) { + if (lbl_1_bss_14[temp_r31][temp_r30].unk8 >= temp_r23) { + lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; + } + } + } + lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8 = temp_r23; + sp80[0] = sp20[3]; + temp_r24 = 1; + temp_f25 = 1.0f; + do { + sp20[1] = sp80[--temp_r24]; + sp58[lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8 - 1] = sp20[1]; + if (sp20[1].unk0 == sp20[0].unk0 && sp20[1].unk2 == sp20[0].unk2) { + temp_f26 = 0; + for (temp_r31 = 1; temp_r31 < temp_r23; temp_r31++) { + if (lbl_1_bss_14[sp58[temp_r31].unk2][sp58[temp_r31].unk0].unkC > temp_f26) { + temp_f26 = lbl_1_bss_14[sp58[temp_r31].unk2][sp58[temp_r31].unk0].unkC; + } + } + if (temp_f26 < temp_f25) { + temp_f25 = temp_f26; + memcpy(sp30, sp58, temp_r23 * sizeof(UnkStruct38F0)); + } + continue; + } + for (temp_r31 = 0; temp_r31 < 8u; temp_r31++) { + sp20[2].unk0 = sp20[1].unk0 + lbl_1_data_1C8[temp_r31].unk0; + sp20[2].unk2 = sp20[1].unk2 + lbl_1_data_1C8[temp_r31].unk2; + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8 - 1 == lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8) { + sp80[temp_r24++] = sp20[2]; + } + } + } while (temp_r24); + } + if (sp20[0].unk0 >= 0) { + temp_f31 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk0 - object->trans.x; + temp_f30 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk4 - object->trans.z; + temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); + if (temp_f22 >= 50.0f) { + temp_r29->unk84 = fn_1_1C80(temp_r29->unk84, atan2d(temp_f31, temp_f30), 0.1f); + temp_r29->unk06 = (69.0f + temp_r29->unk0E) * sind(temp_r29->unk84); + temp_r29->unk07 = (69.0f + temp_r29->unk0E) * -cosd(temp_r29->unk84); + } + } } void fn_1_49C4(omObjData *object) { - float temp_f31; - float temp_f28; - float temp_f27; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - - Bss930Work *temp_r31; - omObjData *temp_r30; - Bss930Work *temp_r28; - temp_r30 = lbl_1_bss_930[0][0]; - temp_r31 = object->data; - temp_r28 = temp_r30->data; - if(temp_r31->field_0_bit1) { - return; - } - switch(temp_r31->unk70) { - case 0: - temp_f28 = (frand16()*360)>>16; - temp_f31 = (frand16()*550)>>16; - temp_r31->unk74.x = temp_f31*sind(temp_f28); - temp_r31->unk74.y = 0; - temp_r31->unk74.z = temp_f31*cosd(temp_f28); - temp_r31->unk70 = 1; - temp_r31->unk80 = 0; - - case 1: - sp20.x = temp_r30->trans.x+((60.0f*temp_r28->unk1C.x)/4.0f); - sp20.z = temp_r30->trans.z+((60.0f*temp_r28->unk1C.z)/4.0f); - sp2C.x = temp_r31->unk74.x+(temp_r31->unk80*(sp20.x-temp_r31->unk74.x)); - sp2C.y = 0; - sp2C.z = temp_r31->unk74.z+(temp_r31->unk80*(sp20.z-temp_r31->unk74.z)); - VECSubtract(&sp2C, &object->trans, &sp14); - temp_f31 = VECMag(&sp14); - if(temp_f31 > 0.0f) { - if(temp_r31->unk80 < 1.0f) { - if(temp_f31 < 10.0f) { - temp_r31->unk80 += (10.0f/temp_f31); - } else { - temp_r31->unk80 += (2.0f/temp_f31); - } - if(temp_r31->unk80 > 1.0f) { - temp_r31->unk80 = 1.0f; - } - } else { - if(((s32)frand() & 0x1F) == 0) { - temp_r31->unk70 = 0; - } - } - } - temp_f27 = 60.0f+(2.0f*temp_r31->unk0E); - temp_r31->unk84 = fn_1_1C80(temp_r31->unk84, atan2d(sp14.x, sp14.z), 0.1f); - temp_r31->unk06 = temp_f27*sind(temp_r31->unk84); - temp_r31->unk07 = temp_f27*-cosd(temp_r31->unk84); - VECSubtract(&temp_r30->trans, &object->trans, &sp14); - if(VECMag(&sp14) < 200.0f) { - VECNormalize(&sp14, &sp14); - sp8.x = sind(object->rot.y); - sp8.y = 0; - sp8.z = cosd(object->rot.y); - if(VECDotProduct(&sp14, &sp8) >= 0.8f) { - temp_r31->unk0A |= PAD_BUTTON_A; - temp_r31->unk70 = 0; - } - } - if(((s32)frand() & 0x3FF) < 4-temp_r31->unk0E) { - temp_r31->unk0A |= PAD_BUTTON_A; - temp_r31->unk70 = 0; - } - break; - } + float temp_f31; + float temp_f28; + float temp_f27; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + Bss930Work *temp_r31; + omObjData *temp_r30; + Bss930Work *temp_r28; + temp_r30 = lbl_1_bss_930[0][0]; + temp_r31 = object->data; + temp_r28 = temp_r30->data; + if (temp_r31->field_0_bit1) { + return; + } + switch (temp_r31->unk70) { + case 0: + temp_f28 = (frand16() * 360) >> 16; + temp_f31 = (frand16() * 550) >> 16; + temp_r31->unk74.x = temp_f31 * sind(temp_f28); + temp_r31->unk74.y = 0; + temp_r31->unk74.z = temp_f31 * cosd(temp_f28); + temp_r31->unk70 = 1; + temp_r31->unk80 = 0; + + case 1: + sp20.x = temp_r30->trans.x + ((60.0f * temp_r28->unk1C.x) / 4.0f); + sp20.z = temp_r30->trans.z + ((60.0f * temp_r28->unk1C.z) / 4.0f); + sp2C.x = temp_r31->unk74.x + (temp_r31->unk80 * (sp20.x - temp_r31->unk74.x)); + sp2C.y = 0; + sp2C.z = temp_r31->unk74.z + (temp_r31->unk80 * (sp20.z - temp_r31->unk74.z)); + VECSubtract(&sp2C, &object->trans, &sp14); + temp_f31 = VECMag(&sp14); + if (temp_f31 > 0.0f) { + if (temp_r31->unk80 < 1.0f) { + if (temp_f31 < 10.0f) { + temp_r31->unk80 += (10.0f / temp_f31); + } + else { + temp_r31->unk80 += (2.0f / temp_f31); + } + if (temp_r31->unk80 > 1.0f) { + temp_r31->unk80 = 1.0f; + } + } + else { + if (((s32)frand() & 0x1F) == 0) { + temp_r31->unk70 = 0; + } + } + } + temp_f27 = 60.0f + (2.0f * temp_r31->unk0E); + temp_r31->unk84 = fn_1_1C80(temp_r31->unk84, atan2d(sp14.x, sp14.z), 0.1f); + temp_r31->unk06 = temp_f27 * sind(temp_r31->unk84); + temp_r31->unk07 = temp_f27 * -cosd(temp_r31->unk84); + VECSubtract(&temp_r30->trans, &object->trans, &sp14); + if (VECMag(&sp14) < 200.0f) { + VECNormalize(&sp14, &sp14); + sp8.x = sind(object->rot.y); + sp8.y = 0; + sp8.z = cosd(object->rot.y); + if (VECDotProduct(&sp14, &sp8) >= 0.8f) { + temp_r31->unk0A |= PAD_BUTTON_A; + temp_r31->unk70 = 0; + } + } + if (((s32)frand() & 0x3FF) < 4 - temp_r31->unk0E) { + temp_r31->unk0A |= PAD_BUTTON_A; + temp_r31->unk70 = 0; + } + break; + } } s32 fn_1_5058(void); void fn_1_5004(void) { - s32 i = 0; - omObjData **sp8 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - while(fn_1_5058() && i < 50) { - i++; - } + s32 i = 0; + omObjData **sp8 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + while (fn_1_5058() && i < 50) { + i++; + } } s32 fn_1_5058(void) { - Vec sp14[4]; - Vec sp8; - float temp_f31; - float temp_f30; - s32 temp_r31; - omObjData *temp_r30; - s32 temp_r29; - omObjData **temp_r28; - s32 temp_r27; - omObjData *temp_r26; - omObjData *temp_r25; - temp_r27 = 0; - temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14[temp_r31].x = sp14[temp_r31].y = sp14[temp_r31].z = 0; - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r26 = temp_r28[temp_r31]; - for(temp_r29=temp_r31+1; temp_r29<4; temp_r29++) { - temp_r25 = temp_r28[temp_r29]; - VECSubtract(&temp_r26->trans, &temp_r25->trans, &sp8); - temp_f31 = VECMag(&sp8); - if(temp_f31 < 100.0) { - VECNormalize(&sp8, &sp8); - temp_f30 = 0.0001f+(0.5f*(100.0-temp_f31)); - VECScale(&sp8, &sp8, temp_f30); - VECAdd(&sp14[temp_r31], &sp8, &sp14[temp_r31]); - VECSubtract(&sp14[temp_r29], &sp8, &sp14[temp_r29]); - temp_r27++; - } - } - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = temp_r28[temp_r31]; - VECAdd(&temp_r30->trans, &sp14[temp_r31], &temp_r30->trans); - sp8.x = temp_r30->trans.x; - sp8.y = 0; - sp8.z = temp_r30->trans.z; - temp_f31 = VECMag(&sp8); - if(temp_f31 > 500.0) { - VECNormalize(&sp8, &sp8); - temp_r30->trans.x = 500.0*sp8.x; - temp_r30->trans.z = 500.0*sp8.z; - } - } - return temp_r27; + Vec sp14[4]; + Vec sp8; + float temp_f31; + float temp_f30; + s32 temp_r31; + omObjData *temp_r30; + s32 temp_r29; + omObjData **temp_r28; + s32 temp_r27; + omObjData *temp_r26; + omObjData *temp_r25; + temp_r27 = 0; + temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp14[temp_r31].x = sp14[temp_r31].y = sp14[temp_r31].z = 0; + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r26 = temp_r28[temp_r31]; + for (temp_r29 = temp_r31 + 1; temp_r29 < 4; temp_r29++) { + temp_r25 = temp_r28[temp_r29]; + VECSubtract(&temp_r26->trans, &temp_r25->trans, &sp8); + temp_f31 = VECMag(&sp8); + if (temp_f31 < 100.0) { + VECNormalize(&sp8, &sp8); + temp_f30 = 0.0001f + (0.5f * (100.0 - temp_f31)); + VECScale(&sp8, &sp8, temp_f30); + VECAdd(&sp14[temp_r31], &sp8, &sp14[temp_r31]); + VECSubtract(&sp14[temp_r29], &sp8, &sp14[temp_r29]); + temp_r27++; + } + } + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = temp_r28[temp_r31]; + VECAdd(&temp_r30->trans, &sp14[temp_r31], &temp_r30->trans); + sp8.x = temp_r30->trans.x; + sp8.y = 0; + sp8.z = temp_r30->trans.z; + temp_f31 = VECMag(&sp8); + if (temp_f31 > 500.0) { + VECNormalize(&sp8, &sp8); + temp_r30->trans.x = 500.0 * sp8.x; + temp_r30->trans.z = 500.0 * sp8.z; + } + } + return temp_r27; } Vec lbl_1_data_1E8 = { 0, 0, 200 }; -Vec lbl_1_data_1F4[3] = { - { -300, 0, -200 }, - { 0, 0, -200 }, - { 300, 0, -200 } -}; -s32 lbl_1_data_218[6][3] = { - { 0, 1, 2 }, - { 0, 2, 1 }, - { 1, 0, 2 }, - { 1, 2, 0 }, - { 2, 0, 1 }, - { 2, 1, 0 } -}; +Vec lbl_1_data_1F4[3] = { { -300, 0, -200 }, { 0, 0, -200 }, { 300, 0, -200 } }; +s32 lbl_1_data_218[6][3] = { { 0, 1, 2 }, { 0, 2, 1 }, { 1, 0, 2 }, { 1, 2, 0 }, { 2, 0, 1 }, { 2, 1, 0 } }; void fn_1_52BC(void) { - float sp14[3]; - Vec sp8; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - s32 temp_r31; - s32 temp_r30; - Bss930Work *temp_r29; - s32 temp_r28; - temp_r29 = lbl_1_bss_930[0][0]->data; - temp_r29->unk64 = lbl_1_data_1E8; - temp_f29 = -1; - for(temp_r30=0; temp_r30<6; temp_r30++) { - temp_f31 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - VECSubtract(&lbl_1_data_1F4[temp_r31], &lbl_1_bss_930[1][lbl_1_data_218[temp_r30][temp_r31]]->trans, &sp8); - sp14[temp_r31] = VECMag(&sp8); - temp_f31 += sp14[temp_r31]; - } - temp_f28 = temp_f31/3; - temp_f30 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_f30 += fabs(sp14[temp_r31]-temp_f28); - } - if(temp_f29 < 0 || temp_f30+temp_f31 < temp_f29) { - temp_f29 = temp_f30+temp_f31; - temp_r28 = temp_r30; - } - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r29 = lbl_1_bss_930[1][lbl_1_data_218[temp_r28][temp_r30]]->data; - temp_r29->unk64 = lbl_1_data_1F4[temp_r30]; - } + float sp14[3]; + Vec sp8; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + s32 temp_r31; + s32 temp_r30; + Bss930Work *temp_r29; + s32 temp_r28; + temp_r29 = lbl_1_bss_930[0][0]->data; + temp_r29->unk64 = lbl_1_data_1E8; + temp_f29 = -1; + for (temp_r30 = 0; temp_r30 < 6; temp_r30++) { + temp_f31 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + VECSubtract(&lbl_1_data_1F4[temp_r31], &lbl_1_bss_930[1][lbl_1_data_218[temp_r30][temp_r31]]->trans, &sp8); + sp14[temp_r31] = VECMag(&sp8); + temp_f31 += sp14[temp_r31]; + } + temp_f28 = temp_f31 / 3; + temp_f30 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_f30 += fabs(sp14[temp_r31] - temp_f28); + } + if (temp_f29 < 0 || temp_f30 + temp_f31 < temp_f29) { + temp_f29 = temp_f30 + temp_f31; + temp_r28 = temp_r30; + } + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r29 = lbl_1_bss_930[1][lbl_1_data_218[temp_r28][temp_r30]]->data; + temp_r29->unk64 = lbl_1_data_1F4[temp_r30]; + } } typedef struct unkstruct_5530 { - s32 unk0; - float unk4; - float unk8; - Vec unkC; + s32 unk0; + float unk4; + float unk8; + Vec unkC; } UnkStruct5530; s32 fn_1_5530(omObjData *arg0, Vec *arg1, Vec *arg2) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - s32 temp_r30; - s32 temp_r29; - omObjData *temp_r28; - s32 temp_r27; - - omObjData **temp_r24; - s32 temp_r23; - - UnkStruct5530 spB4[4]; - Mtx sp84; - Vec sp78; - Vec sp6C; - Vec sp60; - Vec sp54; - Vec sp48; - Vec sp3C; - Vec sp30; - Vec sp24; - s32 sp14[4]; - float spC[2]; - Bss930Work *sp8; - sp8 = arg0->data; - temp_r24 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r23 = 0; - sp54.x = arg1->x; - sp54.y = arg1->y; - sp54.z = arg1->z; - VECSubtract(&sp54, &arg0->trans, &sp48); - temp_f30 = VECMag(&sp48); - for(temp_r30=0; temp_r30<4; temp_r30++) { - sp14[temp_r30] = 0; - } - while(1) { - for(temp_r30=0, temp_r29=0; temp_r30<4; temp_r30++) { - temp_r28 = temp_r24[temp_r30]; - if(arg0 == temp_r28 || sp14[temp_r30]) { - continue; - } - temp_f31 = ((temp_r28->trans.x*sp48.x)-(arg0->trans.x*sp48.x)+(temp_r28->trans.y*sp48.y)-(arg0->trans.y*sp48.y)+(temp_r28->trans.z*sp48.z)-(arg0->trans.z*sp48.z))/VECMag2Point(&sp48); - if(temp_f31 < 0.0f || temp_f31 >= 1.0f) { - continue; - } - VECSubtract(&temp_r28->trans, &arg0->trans, &sp3C); - VECCrossProduct(&sp48, &sp3C, &sp24); - sp60.x = (temp_f31*sp48.x)+arg0->trans.x; - sp60.y = (temp_f31*sp48.y)+arg0->trans.y; - sp60.z = (temp_f31*sp48.z)+arg0->trans.z; - spB4[temp_r29].unkC = sp60; - VECSubtract(&temp_r28->trans, &sp60, &sp3C); - if(sp24.y < 0.0f) { - spB4[temp_r29].unk8 = VECMag(&sp3C); - } else { - spB4[temp_r29].unk8 = -VECMag(&sp3C); - } - VECSubtract(&sp60, &arg0->trans, &sp3C); - spB4[temp_r29].unk4 = VECMag(&sp3C); - spB4[temp_r29].unk0 = temp_r30; - temp_r29++; - } - if(temp_r29 == 0) { - break; - } - for(temp_r30=0; temp_r30 spB4[temp_r27].unk4) { - spB4[3] = spB4[temp_r30]; - spB4[temp_r30] = spB4[temp_r27]; - spB4[temp_r27] = spB4[3]; - } - } - } - for(temp_r30=0; temp_r30 50.0) { - sp14[spB4[temp_r30].unk0] = 1; - VECSubtract(&temp_r24[spB4[temp_r30].unk0]->trans, &arg0->trans, &sp3C); - temp_f28 = VECMag(&sp3C); - if(0.0f != temp_f28) { - VECNormalize(&sp3C, &sp3C); - temp_f31 = 100.0/temp_f28; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - } else if(temp_f31 > 1.0f) { - temp_f31 = 1.0f; - } - temp_f29 = asinf(temp_f31); - MTXRotRad(sp84, 'Y', -temp_f29); - MTXMultVec(sp84, &sp3C, &sp30); - sp6C.x = arg0->trans.x+(sp30.x*temp_f30); - sp6C.y = arg0->trans.y+(sp30.y*temp_f30); - sp6C.z = arg0->trans.z+(sp30.z*temp_f30); - VECSubtract(&sp54, &sp6C, &sp30); - spC[0] = VECMag(&sp30); - MTXRotRad(sp84, 'Y', temp_f29); - MTXMultVec(sp84, &sp3C, &sp30); - sp78.x = arg0->trans.x+(sp30.x*temp_f30); - sp78.y = arg0->trans.y+(sp30.y*temp_f30); - sp78.z = arg0->trans.z+(sp30.z*temp_f30); - VECSubtract(&sp54, &sp78, &sp30); - spC[1] = VECMag(&sp30); - if(spC[0] < spC[1]) { - sp54 = sp6C; - } else { - sp54 = sp78; - } - temp_r23 = 1; - break; - } - } - } - if(temp_r30 >= temp_r29) { - break; - } - VECSubtract(&sp54, &arg0->trans, &sp48); - } - arg2->x = sp54.x; - arg2->y = sp54.y; - arg2->z = sp54.z; - return temp_r23; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + s32 temp_r30; + s32 temp_r29; + omObjData *temp_r28; + s32 temp_r27; + + omObjData **temp_r24; + s32 temp_r23; + + UnkStruct5530 spB4[4]; + Mtx sp84; + Vec sp78; + Vec sp6C; + Vec sp60; + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + s32 sp14[4]; + float spC[2]; + Bss930Work *sp8; + sp8 = arg0->data; + temp_r24 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r23 = 0; + sp54.x = arg1->x; + sp54.y = arg1->y; + sp54.z = arg1->z; + VECSubtract(&sp54, &arg0->trans, &sp48); + temp_f30 = VECMag(&sp48); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + sp14[temp_r30] = 0; + } + while (1) { + for (temp_r30 = 0, temp_r29 = 0; temp_r30 < 4; temp_r30++) { + temp_r28 = temp_r24[temp_r30]; + if (arg0 == temp_r28 || sp14[temp_r30]) { + continue; + } + temp_f31 = ((temp_r28->trans.x * sp48.x) - (arg0->trans.x * sp48.x) + (temp_r28->trans.y * sp48.y) - (arg0->trans.y * sp48.y) + + (temp_r28->trans.z * sp48.z) - (arg0->trans.z * sp48.z)) + / VECMag2Point(&sp48); + if (temp_f31 < 0.0f || temp_f31 >= 1.0f) { + continue; + } + VECSubtract(&temp_r28->trans, &arg0->trans, &sp3C); + VECCrossProduct(&sp48, &sp3C, &sp24); + sp60.x = (temp_f31 * sp48.x) + arg0->trans.x; + sp60.y = (temp_f31 * sp48.y) + arg0->trans.y; + sp60.z = (temp_f31 * sp48.z) + arg0->trans.z; + spB4[temp_r29].unkC = sp60; + VECSubtract(&temp_r28->trans, &sp60, &sp3C); + if (sp24.y < 0.0f) { + spB4[temp_r29].unk8 = VECMag(&sp3C); + } + else { + spB4[temp_r29].unk8 = -VECMag(&sp3C); + } + VECSubtract(&sp60, &arg0->trans, &sp3C); + spB4[temp_r29].unk4 = VECMag(&sp3C); + spB4[temp_r29].unk0 = temp_r30; + temp_r29++; + } + if (temp_r29 == 0) { + break; + } + for (temp_r30 = 0; temp_r30 < temp_r29 - 1; temp_r30++) { + for (temp_r27 = temp_r30 + 1; temp_r27 < temp_r29; temp_r27++) { + if (spB4[temp_r30].unk4 > spB4[temp_r27].unk4) { + spB4[3] = spB4[temp_r30]; + spB4[temp_r30] = spB4[temp_r27]; + spB4[temp_r27] = spB4[3]; + } + } + } + for (temp_r30 = 0; temp_r30 < temp_r29; temp_r30++) { + if (fabs(spB4[temp_r30].unk8) < 100.0 && spB4[temp_r30].unk4 > 50.0) { + sp14[spB4[temp_r30].unk0] = 1; + VECSubtract(&temp_r24[spB4[temp_r30].unk0]->trans, &arg0->trans, &sp3C); + temp_f28 = VECMag(&sp3C); + if (0.0f != temp_f28) { + VECNormalize(&sp3C, &sp3C); + temp_f31 = 100.0 / temp_f28; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + else if (temp_f31 > 1.0f) { + temp_f31 = 1.0f; + } + temp_f29 = asinf(temp_f31); + MTXRotRad(sp84, 'Y', -temp_f29); + MTXMultVec(sp84, &sp3C, &sp30); + sp6C.x = arg0->trans.x + (sp30.x * temp_f30); + sp6C.y = arg0->trans.y + (sp30.y * temp_f30); + sp6C.z = arg0->trans.z + (sp30.z * temp_f30); + VECSubtract(&sp54, &sp6C, &sp30); + spC[0] = VECMag(&sp30); + MTXRotRad(sp84, 'Y', temp_f29); + MTXMultVec(sp84, &sp3C, &sp30); + sp78.x = arg0->trans.x + (sp30.x * temp_f30); + sp78.y = arg0->trans.y + (sp30.y * temp_f30); + sp78.z = arg0->trans.z + (sp30.z * temp_f30); + VECSubtract(&sp54, &sp78, &sp30); + spC[1] = VECMag(&sp30); + if (spC[0] < spC[1]) { + sp54 = sp6C; + } + else { + sp54 = sp78; + } + temp_r23 = 1; + break; + } + } + } + if (temp_r30 >= temp_r29) { + break; + } + VECSubtract(&sp54, &arg0->trans, &sp48); + } + arg2->x = sp54.x; + arg2->y = sp54.y; + arg2->z = sp54.z; + return temp_r23; } float fn_1_5D78(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE); void fn_1_5C34(omObjData *object) { - float temp_f31; - omObjData *temp_r31; - Bss930Work4C *temp_r30; - Bss930Work *temp_r28; - Bss930Work *temp_r27; - temp_r31 = lbl_1_bss_930[0][0]; - temp_r27 = object->data; - temp_r28 = temp_r31->data; - temp_r30 = temp_r27->unk4C; - if(temp_r28->unk46 > 0 || !temp_r30->field_0_bit0) { - return; - } - temp_f31 = fn_1_5D78(object->trans.x, object->trans.z, temp_r30->unk4, temp_r30->unkC, temp_r31->trans.x, temp_r31->trans.z, 50.0f); - if(temp_f31 >= 0.0f && temp_f31 < 1.0f) { - temp_r28->field_0_bit0 = 1; - } + float temp_f31; + omObjData *temp_r31; + Bss930Work4C *temp_r30; + Bss930Work *temp_r28; + Bss930Work *temp_r27; + temp_r31 = lbl_1_bss_930[0][0]; + temp_r27 = object->data; + temp_r28 = temp_r31->data; + temp_r30 = temp_r27->unk4C; + if (temp_r28->unk46 > 0 || !temp_r30->field_0_bit0) { + return; + } + temp_f31 = fn_1_5D78(object->trans.x, object->trans.z, temp_r30->unk4, temp_r30->unkC, temp_r31->trans.x, temp_r31->trans.z, 50.0f); + if (temp_f31 >= 0.0f && temp_f31 < 1.0f) { + temp_r28->field_0_bit0 = 1; + } } void fn_1_5D18(omObjData *object) { - Bss930Work *temp_r31; - temp_r31 = object->data; - CharModelKill(temp_r31->unk0C); - if(temp_r31->unk4C != NULL) { - HuMemDirectFree(temp_r31->unk4C); - } - HuMemDirectFree(temp_r31); - temp_r31 = NULL; + Bss930Work *temp_r31; + temp_r31 = object->data; + CharModelKill(temp_r31->unk0C); + if (temp_r31->unk4C != NULL) { + HuMemDirectFree(temp_r31->unk4C); + } + HuMemDirectFree(temp_r31); + temp_r31 = NULL; } float fn_1_5D78(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE) { - float spC; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - temp_f26 = (arg9 * arg9) + (((argB * argB) + ((arg8 * arg8) + ((argA * argA) - (2.0f * arg8 * argA)))) - (2.0f * arg9 * argB)); - temp_f27 = 2.0f * (((arg9 * argD) + (((arg9 * argB) + (((arg8 * argC) + ((arg8 * argA) - (argA * argC))) - (arg8 * arg8))) - (argB * argD))) - (arg9 * arg9)); + float spC; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + temp_f26 = (arg9 * arg9) + (((argB * argB) + ((arg8 * arg8) + ((argA * argA) - (2.0f * arg8 * argA)))) - (2.0f * arg9 * argB)); + temp_f27 = 2.0f + * (((arg9 * argD) + (((arg9 * argB) + (((arg8 * argC) + ((arg8 * argA) - (argA * argC))) - (arg8 * arg8))) - (argB * argD))) - (arg9 * arg9)); temp_f25 = ((argD * argD) + (((arg9 * arg9) + ((argC * argC) + ((arg8 * arg8) - (2.0f * arg8 * argC)))) - (2.0f * arg9 * argD))) - (argE * argE); - if(0.0f == temp_f26) { - if(0.0f != temp_f27) { - return -temp_f25/temp_f27; - } else { - return -1; - } - } else { - temp_f30 = (temp_f27 * temp_f27) - (4.0f * temp_f26 * temp_f25); - if(temp_f30 < 0.0) { - return -1; - } - temp_f30 = sqrtf(temp_f30); - temp_f29 = (-temp_f27 + temp_f30) / (2.0f * temp_f26); - temp_f28 = (-temp_f27 - temp_f30) / (2.0f * temp_f26); - if(temp_f29 < temp_f28) { - if(temp_f29 >= 0.0f && temp_f29 < 1.0f) { - return temp_f29; - } else { - if(temp_f28 >= 0.0f && temp_f28 < 1.0f) { - return temp_f28; - } - } - } else { - if(temp_f28 >= 0.0f && temp_f28 < 1.0f) { - return temp_f28; - } else { - if(temp_f29 >= 0.0f && temp_f29 < 1.0f) { - return temp_f29; - } - } - } - return -1; - } + if (0.0f == temp_f26) { + if (0.0f != temp_f27) { + return -temp_f25 / temp_f27; + } + else { + return -1; + } + } + else { + temp_f30 = (temp_f27 * temp_f27) - (4.0f * temp_f26 * temp_f25); + if (temp_f30 < 0.0) { + return -1; + } + temp_f30 = sqrtf(temp_f30); + temp_f29 = (-temp_f27 + temp_f30) / (2.0f * temp_f26); + temp_f28 = (-temp_f27 - temp_f30) / (2.0f * temp_f26); + if (temp_f29 < temp_f28) { + if (temp_f29 >= 0.0f && temp_f29 < 1.0f) { + return temp_f29; + } + else { + if (temp_f28 >= 0.0f && temp_f28 < 1.0f) { + return temp_f28; + } + } + } + else { + if (temp_f28 >= 0.0f && temp_f28 < 1.0f) { + return temp_f28; + } + else { + if (temp_f29 >= 0.0f && temp_f29 < 1.0f) { + return temp_f29; + } + } + } + return -1; + } } void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - - if(!particle->unk_00) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk08.x = (4.0f*((1.0f/256.0f)*frand8()))+8; - temp_r31->unk34.x = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk34.y = (64.0f*((1.0f/256.0f)*frand8())); - temp_r31->unk34.z = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk30 = 360.0f*((1.0f/256.0f)*frand8()); - temp_r31->unk00_s16 = frand8(); - temp_r31->unk02 = (frand() & 0x3)+4; - } - temp_f29 = temp_f28 = 0; - } else { - temp_f29 = (particle->unk_04.x-model->pos.x); - temp_f28 = (particle->unk_04.z-model->pos.z); - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_f30 = temp_r31->unk00_s16/255.0f; - temp_f31 = temp_f30*temp_f30; - temp_r31->unk34.x += temp_f29*temp_f31; - temp_r31->unk34.y = 60.0f*temp_f30; - temp_r31->unk34.z += temp_f28*temp_f31; - temp_r31->unk40.a = 255.0f*(1.0f-temp_f30); - temp_f31 = 0.5*(1+sind(270.0f*temp_f30)); - temp_r31->unk2C = temp_f31*(temp_r31->unk08.x*temp_f31); - temp_r31->unk00_s16 += temp_r31->unk02; - if(temp_r31->unk00_s16 > 255) { - temp_r31->unk34.x = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk34.y = 0; - temp_r31->unk34.z = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk00_s16 = 0; - } - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - particle->unk_04.x = model->pos.x; - particle->unk_04.z = model->pos.z; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + + if (!particle->unk_00) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk08.x = (4.0f * ((1.0f / 256.0f) * frand8())) + 8; + temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk34.y = (64.0f * ((1.0f / 256.0f) * frand8())); + temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk30 = 360.0f * ((1.0f / 256.0f) * frand8()); + temp_r31->unk00_s16 = frand8(); + temp_r31->unk02 = (frand() & 0x3) + 4; + } + temp_f29 = temp_f28 = 0; + } + else { + temp_f29 = (particle->unk_04.x - model->pos.x); + temp_f28 = (particle->unk_04.z - model->pos.z); + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_f30 = temp_r31->unk00_s16 / 255.0f; + temp_f31 = temp_f30 * temp_f30; + temp_r31->unk34.x += temp_f29 * temp_f31; + temp_r31->unk34.y = 60.0f * temp_f30; + temp_r31->unk34.z += temp_f28 * temp_f31; + temp_r31->unk40.a = 255.0f * (1.0f - temp_f30); + temp_f31 = 0.5 * (1 + sind(270.0f * temp_f30)); + temp_r31->unk2C = temp_f31 * (temp_r31->unk08.x * temp_f31); + temp_r31->unk00_s16 += temp_r31->unk02; + if (temp_r31->unk00_s16 > 255) { + temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk34.y = 0; + temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk00_s16 = 0; + } + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + particle->unk_04.x = model->pos.x; + particle->unk_04.z = model->pos.z; } void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r28; - s32 temp_r27; - GXColor sp8 = { 0, 0, 0, 255 }; - if(!particle->unk_00) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r31++, temp_r28++) { - temp_r31->unk2C = 15; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_f31 = particle->unk_10.x+(10.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_f30 = 100.0f*(0.1f*((1.0f/256.0f)*((s32)frand() & 0xFF)))+10; - temp_r31->unk08.x = temp_f30*sind(temp_f31); - temp_r31->unk08.y = 100.0f*(0.02f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk08.z = temp_f30*cosd(temp_f31); - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; - temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = ((float)particle->unk_3C)*((float)temp_r28/(float)particle->unk_30); - } - } else { - temp_f29 = (particle->unk_04.x-model->pos.x); - temp_f28 = (particle->unk_04.z-model->pos.z); - } - temp_r27 = 0; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r31++, temp_r28++) { - if(temp_r31->unk00_s16 >= 0) { - if(temp_r31->unk00_s16 == 0) { - temp_r31->unk34.x += temp_r31->unk08.x+temp_f29; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z+temp_f28; - temp_r31->unk08.y += -1.0000001f; - if(temp_r31->unk40.a) { - if(--temp_r31->unk40.a == 0) { - temp_r31->unk00_s16 = -1; - } - } - if(temp_r31->unk34.y < 0.0f) { - temp_r31->unk34.y = 0; - temp_r31->unk00_s16 = -1; - temp_r31->unk40.a = 0; - } - } else { - if(--temp_r31->unk00_s16 == 0) { - temp_r31->unk40.a = 255; - } - } - } else { - temp_r27++; - } - } - if(temp_r27 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - particle->unk_04.x = model->pos.x; - particle->unk_04.z = model->pos.z; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r28; + s32 temp_r27; + GXColor sp8 = { 0, 0, 0, 255 }; + if (!particle->unk_00) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) { + temp_r31->unk2C = 15; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_f31 = particle->unk_10.x + (10.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_f30 = 100.0f * (0.1f * ((1.0f / 256.0f) * ((s32)frand() & 0xFF))) + 10; + temp_r31->unk08.x = temp_f30 * sind(temp_f31); + temp_r31->unk08.y = 100.0f * (0.02f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk08.z = temp_f30 * cosd(temp_f31); + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; + temp_r31->unk40.a = 0; + temp_r31->unk00_s16 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30); + } + } + else { + temp_f29 = (particle->unk_04.x - model->pos.x); + temp_f28 = (particle->unk_04.z - model->pos.z); + } + temp_r27 = 0; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) { + if (temp_r31->unk00_s16 >= 0) { + if (temp_r31->unk00_s16 == 0) { + temp_r31->unk34.x += temp_r31->unk08.x + temp_f29; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z + temp_f28; + temp_r31->unk08.y += -1.0000001f; + if (temp_r31->unk40.a) { + if (--temp_r31->unk40.a == 0) { + temp_r31->unk00_s16 = -1; + } + } + if (temp_r31->unk34.y < 0.0f) { + temp_r31->unk34.y = 0; + temp_r31->unk00_s16 = -1; + temp_r31->unk40.a = 0; + } + } + else { + if (--temp_r31->unk00_s16 == 0) { + temp_r31->unk40.a = 255; + } + } + } + else { + temp_r27++; + } + } + if (temp_r27 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + particle->unk_04.x = model->pos.x; + particle->unk_04.z = model->pos.z; } void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s16 temp_r28; - s32 temp_r27; // ! - uninitialized - - if(!particle->unk_00) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk2C = 50; - temp_r31->unk34.x = 0; - temp_r31->unk34.y = 0; - temp_r31->unk34.z = 0; - temp_r31->unk08.x = 100.0f*(0.05f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk08.y = 100.0f*(0.05f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk08.z = 100.0f*(0.05f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk40.a = 128; - temp_r31->unk00_s16 = 0; - } - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 < 0) { - temp_r27++; - continue; - } - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - temp_r31->unk08.x *= 0.92f; - temp_r31->unk08.y *= 0.92f; - temp_r31->unk08.z *= 0.92f; - temp_r28 = temp_r31->unk40.a; - temp_r28 -= 4; - if(temp_r28 < 0) { - temp_r31->unk00_s16 = -1; - temp_r28 = 0; - } - temp_r31->unk40.a = temp_r28; - } - if(temp_r27 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s16 temp_r28; + s32 temp_r27; // ! - uninitialized + + if (!particle->unk_00) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk2C = 50; + temp_r31->unk34.x = 0; + temp_r31->unk34.y = 0; + temp_r31->unk34.z = 0; + temp_r31->unk08.x = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk08.y = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk08.z = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk40.a = 128; + temp_r31->unk00_s16 = 0; + } + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 < 0) { + temp_r27++; + continue; + } + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + temp_r31->unk08.x *= 0.92f; + temp_r31->unk08.y *= 0.92f; + temp_r31->unk08.z *= 0.92f; + temp_r28 = temp_r31->unk40.a; + temp_r28 -= 4; + if (temp_r28 < 0) { + temp_r31->unk00_s16 = -1; + temp_r28 = 0; + } + temp_r31->unk40.a = temp_r28; + } + if (temp_r27 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_6DEC(s16 arg0, u32 arg1) { - HsfData *temp_r31; - HsfMaterial *temp_r30; - s32 temp_r29; - ModelData *temp_r28; - temp_r28 = &Hu3DData[arg0]; - temp_r31 = temp_r28->hsfData; - temp_r30 = temp_r31->material; - for(temp_r29=0; temp_r29materialCnt; temp_r29++, temp_r30++) { - temp_r30->flags |= arg1; - } - + HsfData *temp_r31; + HsfMaterial *temp_r30; + s32 temp_r29; + ModelData *temp_r28; + temp_r28 = &Hu3DData[arg0]; + temp_r31 = temp_r28->hsfData; + temp_r30 = temp_r31->material; + for (temp_r29 = 0; temp_r29 < temp_r31->materialCnt; temp_r29++, temp_r30++) { + temp_r30->flags |= arg1; + } } void fn_1_709C(s32 arg0, s32 arg1, float arg2); @@ -1784,61 +1779,61 @@ void fn_1_72EC(omObjData *object); void fn_1_6E5C(omObjData *object) { - Vec sp14; - Vec sp8; - - fn_1_709C(0, 0, 0); - sp14.x = (((sind(CRot.y)*cosd(CRot.x))*CZoom)+Center.x); - sp14.y = (-sind(CRot.x)*CZoom)+Center.y; - sp14.z = ((cosd(CRot.y)*cosd(CRot.x))*CZoom)+Center.z; - VECSubtract(&Center, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerSetEX(&sp14, &sp8, 10000, 566.6667, 0, 300, 300); - object->func = fn_1_72EC; + Vec sp14; + Vec sp8; + + fn_1_709C(0, 0, 0); + sp14.x = (((sind(CRot.y) * cosd(CRot.x)) * CZoom) + Center.x); + sp14.y = (-sind(CRot.x) * CZoom) + Center.y; + sp14.z = ((cosd(CRot.y) * cosd(CRot.x)) * CZoom) + Center.z; + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerSetEX(&sp14, &sp8, 10000, 566.6667, 0, 300, 300); + object->func = fn_1_72EC; } void fn_1_709C(s32 arg0, s32 arg1, float arg2) { - CZoom = lbl_1_data_0[arg0].zoom+(arg2*(lbl_1_data_0[arg1].zoom-lbl_1_data_0[arg0].zoom)); - Center.x = lbl_1_data_0[arg0].pos.x+(arg2*(lbl_1_data_0[arg1].pos.x-lbl_1_data_0[arg0].pos.x)); - Center.y = lbl_1_data_0[arg0].pos.y+(arg2*(lbl_1_data_0[arg1].pos.y-lbl_1_data_0[arg0].pos.y)); - Center.z = lbl_1_data_0[arg0].pos.z+(arg2*(lbl_1_data_0[arg1].pos.z-lbl_1_data_0[arg0].pos.z)); - CRot.x = lbl_1_data_0[arg0].rot.x+(arg2*(lbl_1_data_0[arg1].rot.x-lbl_1_data_0[arg0].rot.x)); - CRot.y = lbl_1_data_0[arg0].rot.y+(arg2*(lbl_1_data_0[arg1].rot.y-lbl_1_data_0[arg0].rot.y)); - CRot.z = lbl_1_data_0[arg0].rot.z+(arg2*(lbl_1_data_0[arg1].rot.z-lbl_1_data_0[arg0].rot.z)); + CZoom = lbl_1_data_0[arg0].zoom + (arg2 * (lbl_1_data_0[arg1].zoom - lbl_1_data_0[arg0].zoom)); + Center.x = lbl_1_data_0[arg0].pos.x + (arg2 * (lbl_1_data_0[arg1].pos.x - lbl_1_data_0[arg0].pos.x)); + Center.y = lbl_1_data_0[arg0].pos.y + (arg2 * (lbl_1_data_0[arg1].pos.y - lbl_1_data_0[arg0].pos.y)); + Center.z = lbl_1_data_0[arg0].pos.z + (arg2 * (lbl_1_data_0[arg1].pos.z - lbl_1_data_0[arg0].pos.z)); + CRot.x = lbl_1_data_0[arg0].rot.x + (arg2 * (lbl_1_data_0[arg1].rot.x - lbl_1_data_0[arg0].rot.x)); + CRot.y = lbl_1_data_0[arg0].rot.y + (arg2 * (lbl_1_data_0[arg1].rot.y - lbl_1_data_0[arg0].rot.y)); + CRot.z = lbl_1_data_0[arg0].rot.z + (arg2 * (lbl_1_data_0[arg1].rot.z - lbl_1_data_0[arg0].rot.z)); } float lbl_1_data_260[2] = { 0, 0 }; void fn_1_72EC(omObjData *object) { - Vec sp14; - Vec sp8; - switch(fn_1_1240()) { - case 2: - fn_1_709C(0, 1, sind(90.0f*lbl_1_data_260[0])); - if(lbl_1_data_260[0] < 1.0f) { - lbl_1_data_260[0] += 5.0f/240.0f; - if(lbl_1_data_260[0] > 1.0f) { - lbl_1_data_260[0] = 1.0f; - } - } - break; - - case 5: - fn_1_709C(1, 0, sind(90.0f*lbl_1_data_260[1])); - if(lbl_1_data_260[1] < 1.0f) { - lbl_1_data_260[1] += 10.0f/360.0f; - if(lbl_1_data_260[1] > 1.0f) { - lbl_1_data_260[1] = 1.0f; - } - } - break; - } - sp14.x = (((sind(CRot.y)*cosd(CRot.x))*CZoom)+Center.x); - sp14.y = (-sind(CRot.x)*CZoom)+Center.y; - sp14.z = ((cosd(CRot.y)*cosd(CRot.x))*CZoom)+Center.z; - VECSubtract(&Center, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp14, &sp8); + Vec sp14; + Vec sp8; + switch (fn_1_1240()) { + case 2: + fn_1_709C(0, 1, sind(90.0f * lbl_1_data_260[0])); + if (lbl_1_data_260[0] < 1.0f) { + lbl_1_data_260[0] += 5.0f / 240.0f; + if (lbl_1_data_260[0] > 1.0f) { + lbl_1_data_260[0] = 1.0f; + } + } + break; + + case 5: + fn_1_709C(1, 0, sind(90.0f * lbl_1_data_260[1])); + if (lbl_1_data_260[1] < 1.0f) { + lbl_1_data_260[1] += 10.0f / 360.0f; + if (lbl_1_data_260[1] > 1.0f) { + lbl_1_data_260[1] = 1.0f; + } + } + break; + } + sp14.x = (((sind(CRot.y) * cosd(CRot.x)) * CZoom) + Center.x); + sp14.y = (-sind(CRot.x) * CZoom) + Center.y; + sp14.z = ((cosd(CRot.y) * cosd(CRot.x)) * CZoom) + Center.z; + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); } diff --git a/src/REL/m416Dll/map.c b/src/REL/m416Dll/map.c index 76dd799c..ea6a46bd 100644 --- a/src/REL/m416Dll/map.c +++ b/src/REL/m416Dll/map.c @@ -1,40 +1,35 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/audio.h" -#include "game/wipe.h" -#include "game/sprite.h" -#include "game/chrman.h" #include "game/pad.h" -#include "game/gamework_data.h" -#include "game/minigame_seq.h" -#include "game/frand.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "math.h" #include "ext_math.h" +#include "math.h" #include "REL/m416Dll.h" GXColor lbl_1_data_268 = { 0, 0, 0, 255 }; Vec lbl_1_data_26C[8] = { - { 70, 0, 70 }, - { 70, 0, -70 }, - { -70, 0, -70 }, - { -70, 0, 70 }, - { 70, 0, 70 }, - { 70, 0, -70 }, - { -70, 0, -70 }, - { -70, 0, 70 }, -}; -Vec lbl_1_data_2CC[2] = { - { 370, 615, -245 }, - { -370, 615, -245 } -}; -float lbl_1_data_2E4[2] = { - 0, 1 + { 70, 0, 70 }, + { 70, 0, -70 }, + { -70, 0, -70 }, + { -70, 0, 70 }, + { 70, 0, 70 }, + { 70, 0, -70 }, + { -70, 0, -70 }, + { -70, 0, 70 }, }; +Vec lbl_1_data_2CC[2] = { { 370, 615, -245 }, { -370, 615, -245 } }; +float lbl_1_data_2E4[2] = { 0, 1 }; omObjData *lbl_1_bss_118C; omObjData *lbl_1_bss_1188; @@ -58,274 +53,272 @@ void fn_1_8FF0(void); void fn_1_79D0(Process *objman) { - lbl_1_bss_118C = omAddObjEx(objman, 20, 2, 0, -1, fn_1_7A74); - lbl_1_bss_1188 = omAddObjEx(objman, 20, 10, 0, -1, fn_1_7F30); - fn_1_8EA0(); + lbl_1_bss_118C = omAddObjEx(objman, 20, 2, 0, -1, fn_1_7A74); + lbl_1_bss_1188 = omAddObjEx(objman, 20, 10, 0, -1, fn_1_7F30); + fn_1_8EA0(); } void fn_1_7A54(void) { - fn_1_8FF0(); + fn_1_8FF0(); } void fn_1_7A74(omObjData *object) { - s16 i; - object->model[0] = Hu3DModelCreateFile(0x2F0000); - Hu3DModelShadowMapSet(object->model[0]); - Hu3DModelLayerSet(object->model[0], 0); - object->trans.x = 0; - object->trans.y = 0; - object->trans.z = 0; - fn_1_8EB4(object->model[0]); - for(i=0; i<2; i++) { - lbl_1_bss_1174[i+2] = Hu3DLLightCreate(object->model[0], 0, 0, 0, 0, 0, 0, 0, 0, 0); - Hu3DLLightStaticSet(object->model[0], lbl_1_bss_1174[i+2], 1); - Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i+2], 45, 0.8, 3); - Hu3DLLightColorSet(object->model[0], lbl_1_bss_1174[i+2], 255, 160, 0, 255); - Hu3DLLightPosSet(object->model[0], lbl_1_bss_1174[i+2], lbl_1_data_2CC[i].x, 475, lbl_1_data_2CC[i].z, 0, 1, 0); - } - object->model[1] = Hu3DHookFuncCreate(fn_1_89BC); - Hu3DModelLayerSet(object->model[1], 1); - lbl_1_bss_1184 = GXGetTexBufferSize(640, 480, GX_TF_RGBA8, GX_FALSE, 0); - lbl_1_bss_1180 = HuMemDirectMallocNum(HEAP_DATA, lbl_1_bss_1184, MEMORY_DEFAULT_NUM); - memset(lbl_1_bss_1180, 0, lbl_1_bss_1184); - object->func = fn_1_7D74; + s16 i; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x00)); + Hu3DModelShadowMapSet(object->model[0]); + Hu3DModelLayerSet(object->model[0], 0); + object->trans.x = 0; + object->trans.y = 0; + object->trans.z = 0; + fn_1_8EB4(object->model[0]); + for (i = 0; i < 2; i++) { + lbl_1_bss_1174[i + 2] = Hu3DLLightCreate(object->model[0], 0, 0, 0, 0, 0, 0, 0, 0, 0); + Hu3DLLightStaticSet(object->model[0], lbl_1_bss_1174[i + 2], 1); + Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i + 2], 45, 0.8, 3); + Hu3DLLightColorSet(object->model[0], lbl_1_bss_1174[i + 2], 255, 160, 0, 255); + Hu3DLLightPosSet(object->model[0], lbl_1_bss_1174[i + 2], lbl_1_data_2CC[i].x, 475, lbl_1_data_2CC[i].z, 0, 1, 0); + } + object->model[1] = Hu3DHookFuncCreate(fn_1_89BC); + Hu3DModelLayerSet(object->model[1], 1); + lbl_1_bss_1184 = GXGetTexBufferSize(640, 480, GX_TF_RGBA8, GX_FALSE, 0); + lbl_1_bss_1180 = HuMemDirectMallocNum(HEAP_DATA, lbl_1_bss_1184, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_1180, 0, lbl_1_bss_1184); + object->func = fn_1_7D74; } void fn_1_7D74(omObjData *object) { - s32 i; - for(i=0; i<2; i++) { - Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i+2], (15*sind(object->work[i]))+45, 0.8, 3); - object->work[i] += 8.0f; - if(object->work[i] > 360.0f) { - object->work[i] -= 360.0f; - } - } + s32 i; + for (i = 0; i < 2; i++) { + Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i + 2], (15 * sind(object->work[i])) + 45, 0.8, 3); + object->work[i] += 8.0f; + if (object->work[i] > 360.0f) { + object->work[i] -= 360.0f; + } + } } void fn_1_7F30(omObjData *object) { - Mtx sp68; - Mtx sp38; - Mtx sp8; - s32 temp_r30; - Vec *temp_r29; - s32 temp_r28; - s32 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - AnimData *temp_r23; - object->stat |= 0x100; - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r30 == 0) { - temp_r25 = Hu3DModelCreateFile(0x2F0001); - temp_r26 = temp_r25; - } else { - temp_r24 = Hu3DModelLink(temp_r25); - temp_r26 = temp_r24; - } - object->model[temp_r30] = temp_r26; - Hu3DModelLayerSet(temp_r26, 2); - fn_1_8EB4(object->model[temp_r30]); - Hu3DModelPosSet(object->model[temp_r30], lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); - } - temp_r23 = HuSprAnimReadFile(0x2F0006); - temp_r29 = &lbl_1_data_26C[0]; - for(temp_r30=0; temp_r30<2; temp_r30++) { - for(temp_r27=0; temp_r27<4; temp_r27++, temp_r29++) { - temp_r28 = (temp_r30*4)+2; - temp_r28 = temp_r27+temp_r28; - object->model[temp_r28] = Hu3DParticleCreate(temp_r23, 50); - Hu3DParticleHookSet(object->model[temp_r28], fn_1_613C); - Hu3DParticleBlendModeSet(object->model[temp_r28], 1); - Hu3DModelLayerSet(object->model[temp_r28], 6); - Hu3DModelScaleSet(object->model[temp_r28], 0.5f, 0.7f, 0.5f); - MTXTrans(sp68, lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); - MTXTrans(sp38, 0, -150, 0); - MTXConcat(sp68, sp38, sp68); - MTXTrans(sp8, temp_r29->x, temp_r29->y, temp_r29->z); - MTXConcat(sp68, sp8, sp68); - Hu3DModelPosSet(object->model[temp_r28], sp68[0][3], sp68[1][3], sp68[2][3]); - } - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - lbl_1_bss_1174[temp_r30] = Hu3DLLightCreate(object->model[temp_r30], 0, 0, 0, 0, 0, 0, 0, 0, 0); - Hu3DLLightStaticSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1); - Hu3DLLightPointSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1000, 0.8, 3); - Hu3DLLightColorSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 255, 160, 0, 255); - Hu3DLLightPosSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], lbl_1_data_2CC[temp_r30].x, 475, lbl_1_data_2CC[temp_r30].z, 0, 1, 0); - } - object->work[0] = 0; - object->work[1] = 45; - lbl_1_bss_117C = 0; - object->func = fn_1_83B4; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 temp_r30; + Vec *temp_r29; + s32 temp_r28; + s32 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + AnimData *temp_r23; + object->stat |= 0x100; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r30 == 0) { + temp_r25 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x01)); + temp_r26 = temp_r25; + } + else { + temp_r24 = Hu3DModelLink(temp_r25); + temp_r26 = temp_r24; + } + object->model[temp_r30] = temp_r26; + Hu3DModelLayerSet(temp_r26, 2); + fn_1_8EB4(object->model[temp_r30]); + Hu3DModelPosSet(object->model[temp_r30], lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); + } + temp_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M416, 0x06)); + temp_r29 = &lbl_1_data_26C[0]; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++, temp_r29++) { + temp_r28 = (temp_r30 * 4) + 2; + temp_r28 = temp_r27 + temp_r28; + object->model[temp_r28] = Hu3DParticleCreate(temp_r23, 50); + Hu3DParticleHookSet(object->model[temp_r28], fn_1_613C); + Hu3DParticleBlendModeSet(object->model[temp_r28], 1); + Hu3DModelLayerSet(object->model[temp_r28], 6); + Hu3DModelScaleSet(object->model[temp_r28], 0.5f, 0.7f, 0.5f); + MTXTrans(sp68, lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); + MTXTrans(sp38, 0, -150, 0); + MTXConcat(sp68, sp38, sp68); + MTXTrans(sp8, temp_r29->x, temp_r29->y, temp_r29->z); + MTXConcat(sp68, sp8, sp68); + Hu3DModelPosSet(object->model[temp_r28], sp68[0][3], sp68[1][3], sp68[2][3]); + } + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + lbl_1_bss_1174[temp_r30] = Hu3DLLightCreate(object->model[temp_r30], 0, 0, 0, 0, 0, 0, 0, 0, 0); + Hu3DLLightStaticSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1); + Hu3DLLightPointSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1000, 0.8, 3); + Hu3DLLightColorSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 255, 160, 0, 255); + Hu3DLLightPosSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], lbl_1_data_2CC[temp_r30].x, 475, lbl_1_data_2CC[temp_r30].z, 0, 1, 0); + } + object->work[0] = 0; + object->work[1] = 45; + lbl_1_bss_117C = 0; + object->func = fn_1_83B4; } void fn_1_83B4(omObjData *object) { - float temp_f31; - - s32 temp_r31; - Vec *temp_r29; - s32 temp_r28; - s32 temp_r27; - ModelData *temp_r26; - - Mtx sp130[2]; - Mtx sp100; - Mtx spD0; - Mtx spA0; - Mtx sp70; - Mtx sp40; - Mtx sp10; - float sp8[2]; - MTXIdentity(sp100); - MTXIdentity(sp130[0]); - MTXIdentity(sp130[1]); - MTXIdentity(spD0); - MTXIdentity(spA0); - MTXIdentity(sp70); - MTXIdentity(sp40); - MTXIdentity(sp10); - lbl_1_bss_117C = fmod(1+lbl_1_bss_117C, 360); - sp8[0] = 20*sind(lbl_1_bss_117C); - sp8[1] = 20*cosd(lbl_1_bss_117C); - if(fn_1_1240() == 6) { - for(temp_r31=0; temp_r31<2; temp_r31++) { - temp_f31 = sp8[temp_r31]-lbl_1_bss_116C[temp_r31]; - if(temp_f31*lbl_1_data_2E4[temp_r31] <= 0.0f) { - temp_r26 = &Hu3DData[object->model[temp_r31]]; - HuAudFXEmiterPlay(1467, &temp_r26->pos); - } - lbl_1_data_2E4[temp_r31] = temp_f31; - } - } - lbl_1_bss_116C[0] = sp8[0]; - lbl_1_bss_116C[1] = sp8[1]; - temp_r29 = &lbl_1_data_26C[0]; - for(temp_r31=0; temp_r31<2; temp_r31++) { - MTXRotDeg(sp130[temp_r31], 'y', lbl_1_bss_116C[temp_r31]); - for(temp_r28=0; temp_r28<4; temp_r28++, temp_r29++) { - temp_r27 = (temp_r31*4)+2; - temp_r27 = temp_r28+temp_r27; - MTXTrans(spA0, lbl_1_data_2CC[temp_r31].x, lbl_1_data_2CC[temp_r31].y, lbl_1_data_2CC[temp_r31].z); - MTXTrans(sp70, 0, -150, 0); - MTXConcat(spA0, sp70, spA0); - MTXTrans(sp40, temp_r29->x, temp_r29->y, temp_r29->z); - MTXConcat(sp130[temp_r31], sp40, sp10); - MTXConcat(spA0, sp10, spA0); - Hu3DModelPosSet(object->model[temp_r27], spA0[0][3], spA0[1][3], spA0[2][3]); - } - } - Hu3DModelRotSet(object->model[0], 0, lbl_1_bss_116C[0], 0); - Hu3DModelRotSet(object->model[1], 0, lbl_1_bss_116C[1], 0); - for(temp_r31=0; temp_r31<2; temp_r31++) { - Hu3DLLightPointSet(object->model[temp_r31], lbl_1_bss_1174[temp_r31], (15*sind(object->work[temp_r31]))+45, 0.9, 3); - object->work[temp_r31] += 8.0f; - if(object->work[temp_r31] > 360.0f) { - object->work[temp_r31] -= 360.0f; - } - } + float temp_f31; + + s32 temp_r31; + Vec *temp_r29; + s32 temp_r28; + s32 temp_r27; + ModelData *temp_r26; + + Mtx sp130[2]; + Mtx sp100; + Mtx spD0; + Mtx spA0; + Mtx sp70; + Mtx sp40; + Mtx sp10; + float sp8[2]; + MTXIdentity(sp100); + MTXIdentity(sp130[0]); + MTXIdentity(sp130[1]); + MTXIdentity(spD0); + MTXIdentity(spA0); + MTXIdentity(sp70); + MTXIdentity(sp40); + MTXIdentity(sp10); + lbl_1_bss_117C = fmod(1 + lbl_1_bss_117C, 360); + sp8[0] = 20 * sind(lbl_1_bss_117C); + sp8[1] = 20 * cosd(lbl_1_bss_117C); + if (fn_1_1240() == 6) { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + temp_f31 = sp8[temp_r31] - lbl_1_bss_116C[temp_r31]; + if (temp_f31 * lbl_1_data_2E4[temp_r31] <= 0.0f) { + temp_r26 = &Hu3DData[object->model[temp_r31]]; + HuAudFXEmiterPlay(1467, &temp_r26->pos); + } + lbl_1_data_2E4[temp_r31] = temp_f31; + } + } + lbl_1_bss_116C[0] = sp8[0]; + lbl_1_bss_116C[1] = sp8[1]; + temp_r29 = &lbl_1_data_26C[0]; + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + MTXRotDeg(sp130[temp_r31], 'y', lbl_1_bss_116C[temp_r31]); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r29++) { + temp_r27 = (temp_r31 * 4) + 2; + temp_r27 = temp_r28 + temp_r27; + MTXTrans(spA0, lbl_1_data_2CC[temp_r31].x, lbl_1_data_2CC[temp_r31].y, lbl_1_data_2CC[temp_r31].z); + MTXTrans(sp70, 0, -150, 0); + MTXConcat(spA0, sp70, spA0); + MTXTrans(sp40, temp_r29->x, temp_r29->y, temp_r29->z); + MTXConcat(sp130[temp_r31], sp40, sp10); + MTXConcat(spA0, sp10, spA0); + Hu3DModelPosSet(object->model[temp_r27], spA0[0][3], spA0[1][3], spA0[2][3]); + } + } + Hu3DModelRotSet(object->model[0], 0, lbl_1_bss_116C[0], 0); + Hu3DModelRotSet(object->model[1], 0, lbl_1_bss_116C[1], 0); + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + Hu3DLLightPointSet(object->model[temp_r31], lbl_1_bss_1174[temp_r31], (15 * sind(object->work[temp_r31])) + 45, 0.9, 3); + object->work[temp_r31] += 8.0f; + if (object->work[temp_r31] > 360.0f) { + object->work[temp_r31] -= 360.0f; + } + } } void fn_1_8904(void *arg0, u8 arg1) { - GXSetTexCopySrc(0, 0, 640, 480); - GXSetTexCopyDst(640, 480, GX_TF_RGBA8, GX_FALSE); - GXSetCopyClear(BGColor, 0xFFFFFF); - GXCopyTex(arg0, arg1); - DCFlushRange(arg0, lbl_1_bss_1184); + GXSetTexCopySrc(0, 0, 640, 480); + GXSetTexCopyDst(640, 480, GX_TF_RGBA8, GX_FALSE); + GXSetCopyClear(BGColor, 0xFFFFFF); + GXCopyTex(arg0, arg1); + DCFlushRange(arg0, lbl_1_bss_1184); } void fn_1_89BC(ModelData *model, Mtx mtx) { - Mtx44 sp34; - GXTexObj sp14; - MTXOrtho(sp34, 0, 480, 0, 576, 0, 1000); - GXSetProjection(sp34, GX_ORTHOGRAPHIC); - MTXIdentity(mtx); - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanAmbColor(GX_COLOR0A0, lbl_1_data_268); - GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_268); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXInitTexObj(&sp14, lbl_1_bss_1180, 640, 480, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&sp14, GX_TEXMAP0); - GXSetBlendMode(GX_BM_BLEND, GX_BL_INVSRCALPHA, GX_BL_SRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(0, 0, -10); - GXTexCoord2f32(0, 0); - GXPosition3f32(576, 0, -10); - GXTexCoord2f32(1, 0); - GXPosition3f32(576, 480, -10); - GXTexCoord2f32(1, 1); - GXPosition3f32(0, 480, -10); - GXTexCoord2f32(0, 1); - GXEnd(); - fn_1_8904(lbl_1_bss_1180, GX_FALSE); + Mtx44 sp34; + GXTexObj sp14; + MTXOrtho(sp34, 0, 480, 0, 576, 0, 1000); + GXSetProjection(sp34, GX_ORTHOGRAPHIC); + MTXIdentity(mtx); + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanAmbColor(GX_COLOR0A0, lbl_1_data_268); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_268); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXInitTexObj(&sp14, lbl_1_bss_1180, 640, 480, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp14, GX_TEXMAP0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_INVSRCALPHA, GX_BL_SRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(0, 0, -10); + GXTexCoord2f32(0, 0); + GXPosition3f32(576, 0, -10); + GXTexCoord2f32(1, 0); + GXPosition3f32(576, 480, -10); + GXTexCoord2f32(1, 1); + GXPosition3f32(0, 480, -10); + GXTexCoord2f32(0, 1); + GXEnd(); + fn_1_8904(lbl_1_bss_1180, GX_FALSE); } void fn_1_8EA0(void) { - lbl_1_bss_1168 = 0; + lbl_1_bss_1168 = 0; } void fn_1_8EB4(s16 model) { - HsfMaterial *temp_r31; - HsfData *temp_r30; - s32 temp_r29; - ModelData *temp_r28; - s16 *temp_r27; - s16 temp_r26; - temp_r28 = &Hu3DData[model]; - temp_r30 = temp_r28->hsfData; - temp_r26 = temp_r30->materialCnt; - temp_r27 = &lbl_1_bss_968[lbl_1_bss_1168][0]; - *temp_r27 = model; - temp_r31 = temp_r30->material; - for(temp_r29=0; temp_r29vtxMode = 1; - } - lbl_1_bss_1168++; + HsfMaterial *temp_r31; + HsfData *temp_r30; + s32 temp_r29; + ModelData *temp_r28; + s16 *temp_r27; + s16 temp_r26; + temp_r28 = &Hu3DData[model]; + temp_r30 = temp_r28->hsfData; + temp_r26 = temp_r30->materialCnt; + temp_r27 = &lbl_1_bss_968[lbl_1_bss_1168][0]; + *temp_r27 = model; + temp_r31 = temp_r30->material; + for (temp_r29 = 0; temp_r29 < temp_r26; temp_r31++, temp_r29++) { + temp_r31->vtxMode = 1; + } + lbl_1_bss_1168++; } void fn_1_8F60(float arg0) { - s16 *temp_r31; - s32 temp_r30; - temp_r31 = &lbl_1_bss_968[0][0]; - for(temp_r30=0; temp_r30motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_90[var_r29][0]); - } else { - object->motion[var_r29] - = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r28 + lbl_1_data_90[var_r29][0], MEMORY_DEFAULT_NUM, HEAP_DATA)); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_90[var_r29][0]); } } } @@ -271,7 +271,8 @@ void fn_1_7C8C(omObjData *object) if (var_r31->unk_0C) { Vec sp18 = { 0.0f, 1.0f, 0.0f }; PSMTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); - } else { + } + else { Vec spC = { 0.0f, 1.0f, 0.0f }; PSMTXIdentity(var_r31->unk_1C4); C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f); @@ -322,7 +323,8 @@ void fn_1_82FC(omObjData *object) if (fn_1_26F8() == 2) { if (var_r31->unk_44) { fn_1_ADC4(object); - } else { + } + else { var_r31->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; @@ -336,7 +338,8 @@ void fn_1_82FC(omObjData *object) } if ((s32)var_r31->unk_50 != 0) { (void)var_r29; - } else { + } + else { var_r29 = 1; } fn_1_9FF0(object); @@ -348,7 +351,8 @@ void fn_1_82FC(omObjData *object) var_r31->unk_50 = 0; object->func = fn_1_8B0C; } - } else if (var_r31->unk_3C) { + } + else if (var_r31->unk_3C) { var_r31->unk_40 = 1; fn_1_2728(2); var_r31->unk_50 = 0; @@ -377,7 +381,8 @@ void fn_1_86E8(omObjData *object) if (var_r31->unk_44 != 0) { var_r31->unk_1C = 0; fn_1_B2C0(object); - } else { + } + else { var_r31->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; @@ -398,7 +403,8 @@ void fn_1_86E8(omObjData *object) fn_1_9298(object); if ((s32)var_r31->unk_50 != 0) { (void)var_r29; - } else if (var_r31->unk_2C) { + } + else if (var_r31->unk_2C) { var_r29 = 1; } fn_1_91E0(object); @@ -435,7 +441,8 @@ void fn_1_8B0C(omObjData *object) if (var_r31->unk_24 > 1.0f) { var_r31->unk_24 = 1.0f; } - } else { + } + else { var_r31->unk_20 = 0.0f; var_r31->unk_24 = 0.01f; fn_1_2770(object->work[0]); @@ -447,7 +454,8 @@ void fn_1_8B0C(omObjData *object) var_r31->unk_28 = 0; if (fn_1_2740(object->work[0]) >= 0) { fn_1_B8A0(object, 1); - } else { + } + else { fn_1_B8A0(object, 2); } var_r31->unk_50++; @@ -481,7 +489,8 @@ void fn_1_8D30(omObjData *object) if (fn_1_2740(object->work[0]) >= 0) { var_r31->unk_68 = 0.0f; fn_1_B8A0(object, 1); - } else { + } + else { fn_1_B8A0(object, 2); } var_r31->unk_50++; @@ -518,7 +527,8 @@ void fn_1_8E44(omObjData *object) sp8.y = 0.0f; if (PSVECMag(&sp8) > 0.0f) { PSVECNormalize(&sp8, &sp8); - } else { + } + else { sp8.x = 1.0f; sp8.z = 0.0f; } @@ -539,7 +549,8 @@ void fn_1_8E44(omObjData *object) sp8.y = 0.0f; if (PSVECMag(&sp8) > 0.0f) { PSVECNormalize(&sp8, &sp8); - } else { + } + else { sp8.x = 0.0f; sp8.z = 1.0f; } @@ -619,7 +630,8 @@ void fn_1_9298(omObjData *object) var_r31->unk_B4.x += var_r31->unk_B4.y; if (var_r31->unk_B4.x >= 360.0f) { var_r31->unk_B4.x -= 360.0f; - } else if (var_r31->unk_B4.x < 0.0f) { + } + else if (var_r31->unk_B4.x < 0.0f) { var_r31->unk_B4.x += 360.0f; } PSMTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); @@ -661,7 +673,8 @@ void fn_1_9298(omObjData *object) case 2: if (var_r31->unk_E0.y >= 0.0f) { var_r31->unk_AC += (1.0f / 60.0f); - } else { + } + else { var_r31->unk_AC -= (1.0f / 60.0f); } var_r31->unk_34 = 0; @@ -681,7 +694,8 @@ void fn_1_9298(omObjData *object) var_r31->unk_E0.y = 0.0f; fn_1_B8A0(object, 9); var_r31->unk_A0++; - } else { + } + else { var_r31->unk_E0.y += (0.016666668f * (0.016666668f * var_r31->unk_11C.w)); var_r31->unk_D4.y += var_r31->unk_E0.y; if (var_r31->unk_D4.y <= var_r31->unk_F8.y) { @@ -762,7 +776,8 @@ void fn_1_9A1C(omObjData *object) } if (var_f31 == 0.0f) { var_f30 = 11.5f; - } else { + } + else { var_f30 = 23.0 - fabs(var_f31); var_f30 = (0.5f * var_f30) * (var_f31 / fabs(var_f31)); } @@ -803,13 +818,15 @@ void fn_1_9C14(omObjData *object) if (var_r31->unk_24 > var_f30) { fn_1_B8A0(object, 4); var_f29 = var_r31->unk_24; - } else { + } + else { fn_1_B8A0(object, 3); var_f29 = var_r31->unk_24 / var_f30; } CharModelMotionSpeedSet(var_r31->unk_00, var_f29); } - } else { + } + else { var_r31->unk_E0.x = var_r31->unk_E0.y = var_r31->unk_E0.z = 0.0f; if (var_r31->unk_28 && CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { fn_1_B8A0(object, 0); @@ -890,7 +907,8 @@ void fn_1_9FF0(omObjData *object) var_r31->unk_98 = var_r31->unk_F8.y - var_r31->unk_104.y; var_r31->unk_98 += -0.27222225f; var_r31->unk_30 = 0; - } else { + } + else { var_r31->unk_98 = var_r31->unk_F8.y - var_r31->unk_104.y; var_r31->unk_98 += -0.8166667f; var_r31->unk_30 = 1; @@ -923,7 +941,8 @@ void fn_1_9FF0(omObjData *object) var_f31 = 0.0f; sp8.x = 1.0f; sp8.y = sp8.z = 0.0f; - } else { + } + else { if (var_f31 > 1.0f) { var_f31 = 1.0f; } @@ -1003,7 +1022,8 @@ void fn_1_9FF0(omObjData *object) } PSVECScale(&sp14, &sp14, (0.0033333336f * var_f29) + var_r31->unk_144); PSVECAdd(&var_r31->unk_14C, &sp14, &var_r31->unk_14C); - } else { + } + else { PSVECScale(&var_r31->unk_14C, &var_r31->unk_14C, 0.98f); } var_r31->unk_14C.y = 0.0f; @@ -1020,12 +1040,14 @@ void fn_1_9FF0(omObjData *object) sp8.x = var_r31->unk_14C.z; sp8.y = 0.0f; sp8.z = -var_r31->unk_14C.x; - } else { + } + else { sp8.x = 1.0f; sp8.y = sp8.z = 0.0f; } C_QUATRotAxisRad(&var_r31->unk_184, &sp8, 0.9424779f * var_f31); - } else { + } + else { sp8.x = var_r31->unk_14C.z; sp8.y = 0.0f; sp8.z = -var_r31->unk_14C.x; @@ -1090,7 +1112,8 @@ void fn_1_ADC4(omObjData *object) var_r31->unk_110 = sp28; } var_r31->unk_84 = 60.0f * ((0.23f - (0.04f * var_r31->unk_74)) + (0.001f * ((0.4f - (0.15f * var_r31->unk_74)) * frandmod(1000)))); - } else { + } + else { var_r31->unk_84--; } sp28 = var_r31->unk_110; @@ -1101,7 +1124,8 @@ void fn_1_ADC4(omObjData *object) var_f31 = PSVECMag(&sp10); if (var_r31->unk_48) { var_r30 = 1; - } else { + } + else { var_r30 = 0; } var_r29 = var_r30; @@ -1129,7 +1153,8 @@ void fn_1_B2C0(omObjData *object) var_r29 = 0; if (var_r31->unk_90) { var_r31->unk_90--; - } else { + } + else { var_r31->unk_88 = 1.0f; if (frandmod(1000) < 500) { var_r31->unk_88 = -1.0f; @@ -1142,7 +1167,8 @@ void fn_1_B2C0(omObjData *object) if (lbl_1_bss_884 >= object->work[0]) { if (lbl_1_bss_880) { lbl_1_bss_880--; - } else { + } + else { lbl_1_bss_880 = 60.0f * (8.0f + (0.004f * frandmod(1000))); } } @@ -1160,11 +1186,13 @@ void fn_1_B2C0(omObjData *object) if (var_r31->unk_80 > 240.0f) { var_r31->unk_80 = 1; } - } else { + } + else { var_r31->unk_80 = 60.0f * (0.00080000004f * ((1.05f - var_r31->unk_74) * frandmod(1000))); var_r31->unk_80 += (var_r31->unk_8C * (30.0f + (0.03f * frandmod(1000)))); } - } else { + } + else { var_r31->unk_80--; if (!var_r31->unk_80) { var_r31->unk_10 |= 256; diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index aeb0c910..49e3af90 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -164,7 +164,7 @@ UnkM417Struct3 *fn_1_3574(omObjData *arg0, s16 arg1, s16 arg2) var_r31 = var_r30; for (var_r29 = 0; var_r29 < arg2; var_r29++, var_r31++, arg1++) { var_r31->unk_00 = arg1; - arg0->model[arg1] = Hu3DModelCreate(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M417, 3), MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[arg1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M417, 3)); Hu3DModelLayerSet(arg0->model[var_r31->unk_00], 0); var_f30 = frandmod(360); var_f29 = frandmod(640); @@ -196,7 +196,8 @@ void fn_1_37A0(omObjData *object, UnkM417Struct3 *arg1) var_r29 = 0; if (arg1->unk_30 > arg1->unk_34) { var_r29 = 1; - } else { + } + else { PSVECSubtract(&arg1->unk_14, &arg1->unk_08, &sp8); var_f31 = PSVECMag(&sp8); if (var_f31 < 50.0f) { @@ -247,7 +248,7 @@ void fn_1_3BC4(omObjData *object) Hu3DModelLayerSet(object->model[1], 1); object->model[2] = Hu3DHookFuncCreate(fn_1_6B60); Hu3DModelLayerSet(object->model[2], 7); - var_r30 = Hu3DParticleCreate(HuSprAnimRead(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M417, 17), MEMORY_DEFAULT_NUM, HEAP_DATA)), 512); + var_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M417, 17)), 512); object->model[3] = var_r30; Hu3DModelLayerSet(var_r30, 4); Hu3DParticleColSet(var_r30, 255, 255, 255); @@ -339,7 +340,8 @@ void fn_1_3D58(omObjData *object) lbl_1_bss_178.unk_24[var_r29] = 0.0f; var_f31 = 850.0f / var_f31; PSVECScale(var_r28, var_r28, var_f31); - } else { + } + else { lbl_1_bss_178.unk_28[var_r31] = 1; lbl_1_bss_178.unk_1C[var_r31] = var_r30; lbl_1_bss_178.unk_24[var_r30] = 1.0f; @@ -368,7 +370,8 @@ void fn_1_3D58(omObjData *object) (*var_r27)[1] = lbl_1_bss_178.unk_1C[var_r29 + 30]; (*var_r27)[2] = lbl_1_bss_178.unk_1C[var_r29 + 1]; (*var_r27)[3] = lbl_1_bss_178.unk_1C[var_r29 + 31]; - } else { + } + else { var_r29 = var_r30 + (var_r31 * 30); (*var_r27)[1] = lbl_1_bss_178.unk_1C[var_r29]; (*var_r27)[3] = lbl_1_bss_178.unk_1C[var_r29 + 30]; @@ -447,7 +450,8 @@ void fn_1_4BC8(float arg8, float arg9) if (arg9 < 0.0f) { arg9 = 0.0f; - } else if (arg9 > 1.0f) { + } + else if (arg9 > 1.0f) { arg9 = 1.0f; } var_f30 = 1.0f - arg9; @@ -474,7 +478,7 @@ void fn_1_4BC8(float arg8, float arg9) return; } } - (void)var_r31; + (void)var_r31; } void fn_1_4E64(omObjData *object) @@ -521,12 +525,14 @@ void fn_1_4E64(omObjData *object) } if (PSVECMag(&var_r31->unk_04) > 800.0f && var_r31->unk_00 >= 2 && (var_r31->unk_1C -= 0.033333335f, var_r31->unk_1C < 0.0f)) { var_r31->unk_00 = 0; - } else { + } + else { if (var_r31->unk_00 < 2) { PSVECSubtract(&sp8, &var_r31->unk_04, &sp20); if (PSVECDotProduct(&sp14, &sp20) <= 0.0f) { var_r31->unk_00 = 2; - } else { + } + else { var_f31 = 1.2f * (PSVECMag(&sp20) / (var_r31->unk_18 * var_r31->unk_28)); if (var_f31 < 1.2f) { if (var_f31 > 1.0f) { @@ -538,7 +544,8 @@ void fn_1_4E64(omObjData *object) var_r29->unk_0C = var_f31; } } - } else if (var_r31->unk_00 == 2 && PSVECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) { + } + else if (var_r31->unk_00 == 2 && PSVECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) { var_r31->unk_00 = 3; fn_1_6D64(lbl_1_bss_58, 0, var_r31->unk_10, 20.0f + (40.0f * var_r31->unk_20), var_r31->unk_20); sp2C.x = sind(var_r31->unk_10); @@ -631,7 +638,8 @@ void fn_1_57B0(omObjData *object) var_r29->unk_0C += var_r29->unk_18; if (var_r29->unk_0C >= 360.0f) { var_r29->unk_0C -= 360.0f; - } else if (var_r29->unk_0C < 0.0f) { + } + else if (var_r29->unk_0C < 0.0f) { var_r29->unk_0C += 360.0f; } var_f31 = var_r29->unk_0C; @@ -688,8 +696,8 @@ void fn_1_57B0(omObjData *object) DCStoreRangeNoSync(lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4], 1080 * sizeof(GXColor)); DCStoreRangeNoSync(lbl_1_bss_178.unk_6D4[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec2f)); PPCSync(); - (void)var_r30; - (void)var_r30; + (void)var_r30; + (void)var_r30; } void fn_1_5E3C(omObjData *object) @@ -714,7 +722,8 @@ void fn_1_5E3C(omObjData *object) GXColor1x16(var_r31); GXTexCoord1x16(var_r31); } - } else { + } + else { GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 59); for (var_r30 = 29; var_r30 >= 0; var_r30--) { var_r31 = lbl_1_bss_178.unk_1C[var_r30 + (var_r29 * 30)]; @@ -936,7 +945,8 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA) arg8 += 180.0f; arg9 = 60.0f; var_f27 = fn_1_75BC(); - } else { + } + else { var_r28 = 20.0f + (80.0f * argA); var_f27 = 0.0f; } @@ -972,7 +982,8 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA) var_r31->unk40.r = 200.0f + (55.0f * var_f31); var_r31->unk40.g = 220.0f + (20.0f * var_f31); var_r31->unk40.b = 245.0f + (10.0f * var_f31); - } else { + } + else { var_r31->unk2C = 100.0f + frandmod(100); var_r31->unk40.a = frandmod(100) + 80; var_r31->unk40.r = 200.0f + (55.0f * var_f31); @@ -1087,7 +1098,8 @@ void fn_1_7968(float arg8, float arg9, float argA, Vec *arg0) if (var_r30 < 0) { arg0->x = arg0->z = 0.0f; arg0->y = 1.0f; - } else { + } + else { *arg0 = lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4][var_r30]; } } diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 3b0f0170..34badc03 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -442,7 +442,8 @@ void fn_1_330(omObjData *object) if ((var_r26 & 16) && lbl_1_bss_48 == -1) { lbl_1_bss_48 = HuAudSeqPlay(70); } - } else { + } + else { var_r26 = 0; } if (lbl_1_bss_50 == -1 || !var_r26) { @@ -463,7 +464,8 @@ void fn_1_330(omObjData *object) MGSeqParamSet(lbl_1_bss_4C, 1, var_r25); if (lbl_1_bss_58 == 600) { lbl_1_bss_34 = 3.0f; - } else if (lbl_1_bss_58 == 1200) { + } + else if (lbl_1_bss_58 == 1200) { lbl_1_bss_34 = 2.5f; } if (--lbl_1_bss_58 < -1 || lbl_1_bss_1C[0] <= 0 || lbl_1_bss_1C[1] <= 0) { @@ -485,9 +487,11 @@ void fn_1_330(omObjData *object) if (fn_1_2EDC()) { if (lbl_1_bss_1C[0] == lbl_1_bss_1C[1]) { var_r28 = 2; - } else if (lbl_1_bss_1C[0] > lbl_1_bss_1C[1]) { + } + else if (lbl_1_bss_1C[0] > lbl_1_bss_1C[1]) { var_r28 = 0; - } else { + } + else { var_r28 = 1; } if (var_r28 < 2) { @@ -505,7 +509,8 @@ void fn_1_330(omObjData *object) } lbl_1_bss_50 = MGSeqCreate(5, 3, sp8[0], sp8[1], -1, -1); HuAudSStreamPlay(1); - } else { + } + else { for (var_r27 = 0; var_r27 < 2; var_r27++) { var_r30 = lbl_1_bss_8C[var_r27]->data; for (var_r31 = 0; var_r31 < 2; var_r31++) { @@ -546,32 +551,32 @@ s32 lbl_1_data_10C = 66051; s32 lbl_1_data_110[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; s32 lbl_1_data_150[8] = { - 6225920, - 1703936, - 7143424, - 9043968, - 1114112, - 8716288, - 8454144, - 851968, + DATADIR_MARIOMOT, + DATADIR_LUIGIMOT, + DATADIR_PEACHMOT, + DATADIR_YOSHIMOT, + DATADIR_DONKEYMOT, + DATADIR_WARIOMOT, + DATADIR_WALUIGIMOT, + DATADIR_DAISYMOT, }; UnkM426Struct13 lbl_1_data_170[12] = { - { 6225920, 0xFFFFFFFF }, - { 6225922, 0xFFFFFFFF }, - { 6225923, 0xFFFFFFFF }, - { 6225925, 0xFFFFFFFF }, - { 6225926, 0xFFFFFFFF }, - { 6225940, 0xFFFFFFFF }, - { 6225942, 0xFFFFFFFF }, - { 6225945, 0xFFFFFFFF }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 20), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 22), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), DATA_NUM_LISTEND }, { 0, 0 }, { 0, 1 }, - { 6225943, 0xFFFFFFFF }, - { 6226034, 0xFFFFFFFF }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 114), DATA_NUM_LISTEND }, }; -s32 lbl_1_data_1D0[2] = { 3735584, 3735592 }; +s32 lbl_1_data_1D0[2] = { DATA_MAKE_NUM(DATADIR_M426, 32), DATA_MAKE_NUM(DATADIR_M426, 40) }; void fn_1_DB8(omObjData *arg0) { @@ -620,7 +625,8 @@ void fn_1_EB8(void) } if (var_r30 != 2) { memcpy(&lbl_1_bss_18, &lbl_1_data_10C, 4); - } else { + } + else { for (var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[var_r31].group) { lbl_1_bss_18[var_r30] = var_r31; @@ -721,14 +727,16 @@ void fn_1_125C(omObjData *object) var_r31->unk_40 = lbl_1_data_0[var_r27].x; if (var_r31->unk_40 < 0.0f) { var_r31->unk_44 = 90.0f; - } else { + } + else { var_r31->unk_44 = -90.0f; } var_r31->unk_48 = lbl_1_bss_8C[var_r31->unk_00]; var_r28 = var_r31->unk_48->data; if (object != var_r28->unk_04[0]) { var_r31->unk_4C = var_r28->unk_04[0]; - } else { + } + else { var_r31->unk_4C = var_r28->unk_04[1]; } memset(&var_r31->unk_50, 0, 0x3C); @@ -751,13 +759,15 @@ void fn_1_125C(omObjData *object) if (lbl_1_data_170[var_r29].unk_04 == -1) { if ((var_r29 == 11) && (var_r31->unk_0C == 4)) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 114)); - } else { + } + else { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_170[var_r29].unk_00); } if (var_r29 == 5) { CharModelVoiceEnableSet(var_r31->unk_0C, object->motion[var_r29], 0); } - } else { + } + else { object->motion[var_r29] = Hu3DJointMotion( object->model[0], HuDataSelHeapReadNum(var_r31->unk_0C + lbl_1_data_1D0[lbl_1_data_170[var_r29].unk_04], 268435456, HEAP_DATA)); } @@ -817,7 +827,8 @@ void fn_1_16F8(omObjData *object) sp20 = sp1C = 0.0f; sp10 = var_r21 = 0; fn_1_2F5C(object, &sp20, &sp1C, &sp10); - } else { + } + else { sp20 = HuPadStkX[var_r31->unk_10]; sp1C = HuPadStkY[var_r31->unk_10]; var_r21 = HuPadBtn[var_r31->unk_10]; @@ -833,10 +844,11 @@ void fn_1_16F8(omObjData *object) case 1: if (var_r31->unk_90 == -1) { var_r31->unk_90 = fn_1_48F0(object->trans.z); - } else { + } + else { if (!lbl_1_bss_40) { sp20 = sp1C = 0.0f; - + sp10 = var_r21 = 0; } if (fabs(sp20) > 8.0) { @@ -850,7 +862,8 @@ void fn_1_16F8(omObjData *object) } if (var_r31->unk_94 != -1) { var_f27 = 16.0f; - } else { + } + else { var_f27 = 0.0f; } var_r31->unk_50[var_r31->unk_8C] = var_f27; @@ -863,22 +876,27 @@ void fn_1_16F8(omObjData *object) var_f28 *= 0.06666667f; if (var_r31->unk_98 != 0.0f) { var_r26 = 3; - } else if (var_f28 <= 0.0f) { + } + else if (var_f28 <= 0.0f) { if (lbl_1_bss_54 == 5) { var_r26 = 8; - } else { + } + else { var_r26 = 0; } - } else if (var_f28 < 10.0f) { + } + else if (var_f28 < 10.0f) { var_r26 = 1; - } else { + } + else { var_r26 = 2; } if (var_r26 != var_r31->unk_28) { var_r31->unk_28 = var_r26; if (var_r26 == 3) { CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0); - } else { + } + else { CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); } } @@ -887,7 +905,8 @@ void fn_1_16F8(omObjData *object) if (var_f31 < 0.0f) { var_r27 = var_r31->unk_90 - 1; var_r25 = var_r31->unk_90 - 2; - } else { + } + else { var_r27 = var_r31->unk_90 + 1; var_r25 = var_r31->unk_90 + 2; } @@ -924,7 +943,8 @@ void fn_1_16F8(omObjData *object) var_r31->unk_3C = 0; object->trans.x = var_f25; object->trans.z = var_f24; - } else if (var_f27 != 0.0f) { + } + else if (var_f27 != 0.0f) { var_f27 = 1.0f / var_f27; object->trans.x += var_f28 * (var_f30 * var_f27); object->trans.z += var_f28 * (var_f31 * var_f27); @@ -934,11 +954,13 @@ void fn_1_16F8(omObjData *object) var_f31 = object->trans.z - var_f21; if (fabs(var_f30) > 8.0 || fabs(var_f31) > 8.0) { var_f26 = atan2d(var_f30, var_f31); - } else { + } + else { if (fabs(sp20) > 8.0 || fabs(sp1C) > 8.0) { var_f26 = atan2d(sp20, -sp1C); var_f26 = var_f26; - } else { + } + else { var_f26 = object->rot.y; } } @@ -950,7 +972,8 @@ void fn_1_16F8(omObjData *object) var_r31->unk_28 = 9; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 8.0f, 8.0f, 0); } - } else if (sp10 & 256) { + } + else if (sp10 & 256) { var_r31->unk_3C = 20; } } @@ -965,11 +988,13 @@ void fn_1_16F8(omObjData *object) if (fn_1_4AF4(&lbl_1_bss_C, object->rot.y, 1)) { if (!var_r31->unk_00) { HuAudFXPlay(1601); - } else { + } + else { HuAudFXPlay(1602); } } - } else if (var_r31->unk_2C >= 20) { + } + else if (var_r31->unk_2C >= 20) { var_r31->unk_24 = 0; var_r31->unk_2C = 0; var_r31->unk_28 = 8; @@ -988,7 +1013,8 @@ void fn_1_16F8(omObjData *object) if (fabs(object->trans.x) > 750.0) { if (object->trans.x > 0.0f) { object->trans.x = 750.0f; - } else { + } + else { object->trans.x = -750.0f; } } @@ -1020,10 +1046,12 @@ void fn_1_16F8(omObjData *object) if (lbl_1_bss_40 == 0) { var_r31->unk_2C = 59; } - } else if (var_r31->unk_2C == 60.0f) { + } + else if (var_r31->unk_2C == 60.0f) { var_r31->unk_28 = 7; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0); - } else if (var_r31->unk_2C >= 90.0f) { + } + else if (var_r31->unk_2C >= 90.0f) { var_r31->unk_24 = 7; var_r31->unk_28 = 8; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); @@ -1056,7 +1084,8 @@ void fn_1_16F8(omObjData *object) object->rot.y = fn_1_770C(0.0f, object->rot.y, 10.0f); if (var_r31->unk_24 == 8) { var_r26 = 10; - } else { + } + else { var_r26 = 11; } if (var_r26 != var_r31->unk_28) { @@ -1207,7 +1236,8 @@ void fn_1_2B74(Vec *arg0) if (arg0->x < 0.0f) { var_r26 = 0; - } else { + } + else { var_r26 = 1; } if (lbl_1_bss_8C[var_r26]) { @@ -1226,21 +1256,26 @@ void fn_1_2B74(Vec *arg0) var_r31->unk_90 = var_r31->unk_94 = -1; if (!var_r29->unk_00) { var_r31->unk_9C.x = -1.0f; - } else { + } + else { var_r31->unk_9C.x = 1.0f; } if (fabs(var_r31->unk_4C->trans.z - var_r30->trans.z) < 100.0) { var_r31->unk_90 = fn_1_48F0(var_r30->trans.z); if (var_r31->unk_90 == 5) { var_r31->unk_9C.z = -1.0f; - } else if (!var_r31->unk_90) { + } + else if (!var_r31->unk_90) { var_r31->unk_9C.z = 1.0f; - } else if ((var_r31->unk_4C->trans.z - var_r30->trans.z) < 0.0f) { + } + else if ((var_r31->unk_4C->trans.z - var_r30->trans.z) < 0.0f) { var_r31->unk_9C.z = 1.0f; - } else { + } + else { var_r31->unk_9C.z = -1.0f; } - } else { + } + else { var_r31->unk_9C.z = 0.0f; } var_r31->unk_9C.y = 45.5f; @@ -1396,12 +1431,14 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) for (var_r30 = 0; var_r30 < 6; var_r27++, var_r30++) { sp14[var_r27] = var_r30; } - } else { + } + else { if (var_r31->unk_90 < var_r29) { for (var_r30 = 0; var_r30 < 3; var_r27++, var_r30++) { sp14[var_r27] = var_r30; } - } else { + } + else { for (var_r30 = 3; var_r30 < 6; var_r27++, var_r30++) { sp14[var_r27] = var_r30; } @@ -1437,16 +1474,20 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) if (var_r29 == -1) { if (var_r31->unk_90 < 3) { var_r31->unk_B0 = 1; - } else { + } + else { var_r31->unk_B0 = 4; } - } else if (var_r29 > var_r31->unk_90) { + } + else if (var_r29 > var_r31->unk_90) { var_r31->unk_B0 = 1; - } else { + } + else { var_r31->unk_B0 = 4; } var_r31->unk_BC = 1; - } else { + } + else { var_r31->unk_BC = 2; } var_r31->unk_B8 = 0; @@ -1525,7 +1566,8 @@ void fn_1_3714(omObjData *object) var_r31->unk_20 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 6)); var_r31->unk_24 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 8)); var_r31->unk_28 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 9)); - } else { + } + else { var_r31->unk_10 = Hu3DModelLink(var_r28->unk_10); Hu3DModelShadowMapSet(var_r31->unk_10); var_r31->unk_14 = Hu3DModelLink(var_r28->unk_14); @@ -1594,7 +1636,8 @@ void fn_1_3EFC(omObjData *object) var_f30 = 50.0f + (-19.999998f * var_f31); Hu3DModelPosSet(var_r30->unk_20, -500.0f, var_f30, var_r30->unk_38); Hu3DModelPosSet(var_r30->unk_28, 500.0f, var_f29, var_r30->unk_38); - } else { + } + else { var_f29 = 50.0f + (-19.999998f * var_f31); var_f30 = 30.000002f + (19.999998f * var_f31); Hu3DModelPosSet(var_r30->unk_1C, -500.0f, var_f30, var_r30->unk_38); @@ -1603,7 +1646,8 @@ void fn_1_3EFC(omObjData *object) if (var_r30->unk_0C >= 2) { if (var_r30->unk_04 == 0) { HuAudFXPlay(1600); - } else { + } + else { HuAudFXPlay(1599); } fn_1_4738(var_r28, var_r30->unk_04); @@ -1639,7 +1683,8 @@ void fn_1_3EFC(omObjData *object) object->work[2] = 0; } lbl_1_bss_30--; - } else { + } + else { if (object->work[0]) { if (++object->work[0] >= 20) { object->work[0] = 0; @@ -1835,7 +1880,8 @@ s32 fn_1_4AF4(Vec *arg0, float arg8, s32 arg1) var_r30 = lbl_1_bss_78->data; if (arg0->x < 0.0f) { var_f28 = -500.0f; - } else { + } + else { var_f28 = 500.0f; } for (var_r29 = 0; var_r29 < 6; var_r29++, var_r30++) { @@ -1856,7 +1902,8 @@ s32 fn_1_4AF4(Vec *arg0, float arg8, s32 arg1) if (!var_r30->unk_08) { return 0; } - } else if (var_r30->unk_08 == 1) { + } + else if (var_r30->unk_08 == 1) { return 0; } if (arg1) { @@ -1881,15 +1928,17 @@ void fn_1_4F14(omObjData *object) for (var_r29 = 0; var_r29 < 6; var_r29++, var_r31++) { if (var_r29 == 0) { var_r31->unk_00 = Hu3DModelCreateFile(3735579); - } else { + } + else { var_r31->unk_00 = Hu3DModelLink(var_r30->unk_00); } Hu3DModelShadowSet(var_r31->unk_00); Hu3DModelLayerSet(var_r31->unk_00, 2); if (var_r29 == 0) { - var_r31->unk_08 = Hu3DJointMotion(var_r31->unk_00, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M426, 28), MEMORY_DEFAULT_NUM, HEAP_DATA)); - var_r31->unk_0C = Hu3DJointMotion(var_r31->unk_00, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M426, 29), MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { + var_r31->unk_08 = Hu3DJointMotionFile(var_r31->unk_00, DATA_MAKE_NUM(DATADIR_M426, 28)); + var_r31->unk_0C = Hu3DJointMotionFile(var_r31->unk_00, DATA_MAKE_NUM(DATADIR_M426, 29)); + } + else { var_r31->unk_08 = var_r30->unk_08; var_r31->unk_0C = var_r30->unk_0C; } @@ -1955,14 +2004,16 @@ void fn_1_5134(omObjData *object) var_r31->unk_30 = 0; var_r31->unk_28 = 3; Hu3DMotionShiftSet(var_r31->unk_00, var_r31->unk_0C, 0.0f, 8.0f, 0x40000001); - } else { + } + else { var_r31->unk_48 = fn_1_770C(0.0f, var_r31->unk_48, 10.0f); } break; case 3: if (!var_r26) { var_f31 = 90.0f; - } else { + } + else { var_f31 = 270.0f; } if (fabs(fn_1_75F4(var_f31, var_r31->unk_48)) < 5.0) { @@ -1970,7 +2021,8 @@ void fn_1_5134(omObjData *object) if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34) { var_r31->unk_34 = lbl_1_bss_34; } - } else { + } + else { var_r31->unk_48 = fn_1_770C(var_f31, var_r31->unk_48, 10.0f); if ((var_r31->unk_34 -= 0.1f) < 0.0f) { var_r31->unk_34 = 0.0f; @@ -1990,7 +2042,8 @@ void fn_1_5134(omObjData *object) var_r31->unk_34 = 0.0f; if (var_r31->unk_3C > 0.0f) { var_r31->unk_3C = 399.0f; - } else { + } + else { var_r31->unk_3C = -399.0f; } var_r31->unk_18 = 0; @@ -2002,7 +2055,8 @@ void fn_1_5134(omObjData *object) lbl_1_bss_1C[0]--; fn_1_3654(0); HuAudFXPlay(1603); - } else { + } + else { lbl_1_bss_1C[1]--; fn_1_3654(1); HuAudFXPlay(1604); @@ -2028,20 +2082,23 @@ void fn_1_5134(omObjData *object) fn_1_2B74(&sp8); if (var_r31->unk_3C < 0.0f) { fn_1_46A4(var_r31->unk_24, 0); - } else { + } + else { fn_1_46A4(var_r31->unk_24, 1); } var_r31->unk_28 = 5; if (var_r26 == 0) { var_r31->unk_4C += 30.000002f; - } else { + } + else { var_r31->unk_4C -= 30.000002f; } if (fabs(var_r31->unk_4C) > 150.0) { if (!var_r26) { var_r31->unk_4C = 150.0f; - } else { + } + else { var_r31->unk_4C = -150.0f; } } @@ -2067,7 +2124,8 @@ void fn_1_5134(omObjData *object) if (!var_r31->unk_38) { Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_3C, var_r31->unk_40, var_r31->unk_44); Hu3DModelRotSet(var_r31->unk_00, 0.0f, var_r31->unk_48, 0.0f); - } else { + } + else { Hu3DModelAttrSet(var_r31->unk_00, 1); } } @@ -2155,11 +2213,14 @@ s32 fn_1_5D3C(void) } if (var_r31->unk_3C < 0.0f) { var_r30++; - } else if (var_r31->unk_3C > 0.0f) { + } + else if (var_r31->unk_3C > 0.0f) { var_r29++; - } else if (frand() & 1) { + } + else if (frand() & 1) { var_r30++; - } else { + } + else { var_r29++; } } @@ -2194,7 +2255,8 @@ void fn_1_5EBC(omObjData *object) if (var_r30 == 0) { var_r31->unk_08 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M426, 0), MEMORY_DEFAULT_NUM)); var_r31->unk_04 = fn_1_795C(var_r31->unk_08, 512); - } else { + } + else { var_r31->unk_08 = var_r29->unk_08; var_r31->unk_04 = fn_1_7DC8(var_r29->unk_04); } @@ -2230,7 +2292,8 @@ void fn_1_6008(omObjData *object) } if (var_r30->unk_10 <= 0) { Hu3DModelAttrSet(var_r30->unk_04, 1); - } else { + } + else { Hu3DModelAttrReset(var_r30->unk_04, 1); var_r26 = &Hu3DData[var_r30->unk_04]; var_r29 = var_r26->unk_120; @@ -2358,7 +2421,8 @@ s32 fn_1_63B8(s32 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor arg3) var_r31->unk_30.x = arg1->x - var_r30->unk_14.x; var_r31->unk_30.y = arg1->y - var_r30->unk_14.y; var_r31->unk_30.z = arg1->z - var_r30->unk_14.z; - } else { + } + else { var_r31->unk_30.x = var_r30->unk_14.x; var_r31->unk_30.y = var_r30->unk_14.y; var_r31->unk_30.z = var_r30->unk_14.z; @@ -2368,7 +2432,8 @@ s32 fn_1_63B8(s32 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor arg3) var_r31->unk_04.x = arg2->x; var_r31->unk_04.y = arg2->y; var_r31->unk_04.z = arg2->z; - } else { + } + else { var_r31->unk_04.x = var_r31->unk_04.y = var_r31->unk_04.z = 0.0f; } @@ -2498,7 +2563,8 @@ void fn_1_6A34(omObjData *object) for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { if (var_r29 == 0) { var_r31->unk_00 = 100; - } else { + } + else { var_r31->unk_00 = 490; } var_r31->unk_04 = 65; @@ -2570,10 +2636,11 @@ void fn_1_6DC0(omObjData *object) if (var_r31->unk_0C) { var_f31 = 1.0 + (0.8f * sind((180.0f * (var_r31->unk_0C / 20.0f)))); var_r31->unk_0C--; - } else { + } + else { var_f31 = 1.0f; } - var_r28 = lbl_1_bss_1C[var_r29]; + var_r28 = lbl_1_bss_1C[var_r29]; if ((sp8[0] = var_r28 / 10) > 9) { sp8[0] = 9; } @@ -2635,7 +2702,8 @@ void fn_1_7328(s32 arg0) for (var_r30 = 0; var_r30 < 6; var_r30++) { if (arg0) { espDispOn(var_r31->unk_14[var_r30]); - } else { + } + else { espDispOff(var_r31->unk_14[var_r30]); } } @@ -2686,18 +2754,21 @@ float fn_1_75F4(float arg8, float arg9) if (arg8 >= 360.0f) { arg8 -= 360.0f; - } else if (arg8 < 0.0f) { + } + else if (arg8 < 0.0f) { arg8 += 360.0f; } if (arg9 >= 360.0f) { arg9 -= 360.0f; - } else if (arg9 < 0.0f) { + } + else if (arg9 < 0.0f) { arg9 += 360.0f; } var_f31 = arg8 - arg9; if (var_f31 <= -180.0f) { var_f31 += 360.0f; - } else if (var_f31 >= 180.0f) { + } + else if (var_f31 >= 180.0f) { var_f31 -= 360.0f; } return var_f31; @@ -2710,12 +2781,14 @@ float fn_1_770C(float arg8, float arg9, float argA) if (arg8 >= 360.0) { arg8 -= 360.0; - } else if (arg8 < 0.0) { + } + else if (arg8 < 0.0) { arg8 += 360.0; } if (arg9 >= 360.0) { arg9 -= 360.0; - } else if (arg9 < 0.0) { + } + else if (arg9 < 0.0) { arg9 += 360.0; } var_f30 = 360.0 + (arg8 - arg9); @@ -2725,19 +2798,23 @@ float fn_1_770C(float arg8, float arg9, float argA) if (var_f30 < 180.0) { if (var_f30 <= argA) { var_f31 = var_f30; - } else { + } + else { var_f31 = argA; } - } else if ((360.0 - var_f30) <= argA) { + } + else if ((360.0 - var_f30) <= argA) { var_f31 = -(360.0 - var_f30); - } else { + } + else { var_f31 = -argA; } var_f31 += arg9; if (var_f31 >= 360.0) { var_f31 -= 360.0; var_f31 = var_f31; - } else if (var_f31 < 0.0) { + } + else if (var_f31 < 0.0) { var_f31 += 360.0; var_f31 = var_f31; } @@ -2936,16 +3013,19 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) if (shadowModelDrawF != 0) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else { + } + else { var_r21 = var_r31->unk_38->bmp->dataFmt & 15; if (var_r21 == 7 || var_r21 == 8) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } if (arg0->attr & 2) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); } } @@ -3000,7 +3080,8 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) var_r30++; var_r30->x = var_r30->y = var_r30->z = 0.0f; var_r30++; - } else { + } + else { if (!var_r29->unk_2C) { var_r28 = sp98; var_r27 = sp38; @@ -3012,7 +3093,8 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); PSVECScale(var_r27++, var_r28, var_r29->unk_28); PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - } else { + } + else { PSVECScale(&lbl_1_data_22C[0], &sp98[0], var_r29->unk_28); PSVECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28); PSVECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28); @@ -3080,11 +3162,13 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1) if (shadowModelDrawF) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else { + } + else { var_r28 = var_r29->bmp->dataFmt & 15; if (var_r28 == 7 || var_r28 == 8) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index 1d05f6c6..bbb553b2 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -1,21 +1,21 @@ #include "REL/executor.h" #include "game/chrman.h" +#include "game/frand.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/frand.h" #include "game/wipe.h" -#include "game/minigame_seq.h" #include "game/gamework_data.h" +#include "game/mapspace.h" #include "game/pad.h" #include "game/printfunc.h" -#include "game/mapspace.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/esprite.h" #include "game/sprite.h" @@ -23,7 +23,6 @@ #include "ext_math.h" #include "rel_sqrt_consts.h" - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -66,12 +65,14 @@ float lbl_1_bss_2F0; s32 lbl_1_bss_2B0[16]; UnkBss1B0Struct lbl_1_bss_1B0[32]; -void fn_1_0(void) { +void fn_1_0(void) +{ lbl_1_bss_358.unk04 = NULL; lbl_1_bss_358.unk08 = NULL; } -void fn_1_24(u16 arg0, s16 arg1) { +void fn_1_24(u16 arg0, s16 arg1) +{ UnkBss358Struct *temp_r31; UnkBss358Struct *temp_r30; UnkBss358Struct *temp_r29; @@ -89,7 +90,8 @@ void fn_1_24(u16 arg0, s16 arg1) { temp_r31->unk08 = temp_r29; } -s16 fn_1_AC(s16 arg0) { +s16 fn_1_AC(s16 arg0) +{ UnkBss358Struct *var_r31; UnkBss358Struct *temp_r29; UnkBss358Struct *temp_r30; @@ -113,12 +115,14 @@ s16 fn_1_AC(s16 arg0) { return -1; } -void fn_1_150(void) { +void fn_1_150(void) +{ lbl_1_bss_340.unk10 = NULL; lbl_1_bss_340.unk14 = NULL; } -void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) { +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ UnkBss340Struct *temp_r27; UnkBss340Struct *var_r31; UnkBss340Struct *temp_r28; @@ -148,7 +152,8 @@ void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec var_r31->unk14 = temp_r27; } -void fn_1_2D8(void) { +void fn_1_2D8(void) +{ UnkBss340Struct *var_r31; UnkBss340Struct *temp_r28; UnkBss340Struct *temp_r29; @@ -183,7 +188,8 @@ void fn_1_2D8(void) { } } -void fn_1_414(void) { +void fn_1_414(void) +{ s32 i; for (i = 0; i < 32; i++) { @@ -192,7 +198,8 @@ void fn_1_414(void) { } } -s16 fn_1_46C(s32 arg0) { +s16 fn_1_46C(s32 arg0) +{ s32 i; for (i = 0; i < 32; i++) { @@ -210,7 +217,8 @@ s16 fn_1_46C(s32 arg0) { return Hu3DModelCreateFile(arg0); } -void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ s32 var_r30; espBankSet(arg0[arg1 + 1], 10); @@ -233,14 +241,16 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { espBankSet(arg0[arg1 + 6], var_r30 % 10); } -void fn_1_798(s32 arg0) { +void fn_1_798(s32 arg0) +{ lbl_1_bss_2F0 = 0.0f; lbl_1_bss_300 = lbl_1_bss_304; GWMGRecordSet(arg0, lbl_1_bss_300); fn_1_580(lbl_1_bss_2B0, 7, lbl_1_bss_304); } -void fn_1_9EC(void) { +void fn_1_9EC(void) +{ s32 i; for (i = 0; i < 16; i++) { @@ -248,7 +258,8 @@ void fn_1_9EC(void) { } } -void fn_1_A40(void) { +void fn_1_A40(void) +{ float temp_f31; s32 i; @@ -261,7 +272,8 @@ void fn_1_A40(void) { } } -void fn_1_B4C(float arg0, s32 arg1) { +void fn_1_B4C(float arg0, s32 arg1) +{ float temp_f30; float temp_f31; s32 i; @@ -298,7 +310,8 @@ void fn_1_B4C(float arg0, s32 arg1) { } } -void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ float temp_f31; if (1.0f < arg0) { @@ -310,13 +323,15 @@ void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); } -void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) { +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ Hu3DCameraPosSetV(1, arg0, arg1, arg2); lbl_1_bss_330 = *arg0; lbl_1_bss_318 = *arg2; } -s32 fn_1_13DC(float arg0, Vec *arg1) { +s32 fn_1_13DC(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -325,13 +340,15 @@ s32 fn_1_13DC(float arg0, Vec *arg1) { Hu3DCameraPosSetV(1, &sp18, arg1, &spC); if (1.0f <= arg0) { return 1; - } else { + } + else { lbl_1_bss_2F4 = 1; return 0; } } -void fn_1_1710(float arg0, Vec *arg1) { +void fn_1_1710(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -341,7 +358,8 @@ void fn_1_1710(float arg0, Vec *arg1) { lbl_1_bss_2F4 = 1; } -void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ Mtx sp1C; Vec sp10; float temp_f30; @@ -368,7 +386,8 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { arg2->z = 0.0f; } -void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ Mtx sp10; Hu3DModelObjMtxGet(arg0, arg1, sp10); @@ -377,7 +396,8 @@ void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { arg2->z = sp10[2][3]; } -void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ Mtx spC; ModelData *var_r30; @@ -392,7 +412,8 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { arg2->z = spC[2][3]; } -float fn_1_1E20(float arg0, float arg1, float arg2) { +float fn_1_1E20(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -410,11 +431,13 @@ float fn_1_1E20(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_1F24(s32 arg0) { +void fn_1_1F24(s32 arg0) +{ lbl_1_bss_2F8 = HuAudSeqPlay((s32)arg0); } -void fn_1_1F58(s32 arg0) { +void fn_1_1F58(s32 arg0) +{ if (lbl_1_bss_2F8 >= 0) { if (arg0 < 0) { arg0 = 1000; @@ -424,7 +447,8 @@ void fn_1_1F58(s32 arg0) { lbl_1_bss_2F8 = -1; } -void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ Vec sp18; float var_f28; s32 var_r30; @@ -433,7 +457,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { sp18.y = 0.0f; sp18.z = 0.0f; sp18.x = arg2 / 4.0f; - sp18.z = -(float) arg3 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; var_r30 = 0; var_f28 = VECMagXZ(&sp18); if (0.5f <= var_f28) { @@ -447,173 +471,146 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); if (8.0f <= var_f28) { var_r30 = 2; - } else { + } + else { var_r30 = 1; } } - PSVECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + PSVECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } typedef struct data_1340_sub_struct { - char *unk0; - s32 unk4; - s32 unk8[4]; - Vec unk18; + char *unk0; + s32 unk4; + s32 unk8[4]; + Vec unk18; } Data1340SubStruct; typedef struct data_1340_struct { - s32 unk0; - s32 *unk4; - s32 unk8[4]; - float unk18; - s32 unk1C; - Data1340SubStruct *unk20; + s32 unk0; + s32 *unk4; + s32 unk8[4]; + float unk18; + s32 unk1C; + Data1340SubStruct *unk20; } Data1340Struct; typedef struct data_13A8_struct { - float unk0; - float unk4; - float unk8; - s32 unkC; + float unk0; + float unk4; + float unk8; + s32 unkC; } Data13A8Struct; typedef struct bss_130_struct { - s32 unk0; - float unk4; - float unk8; - float unkC; - float unk10; - float unk14; + s32 unk0; + float unk4; + float unk8; + float unkC; + float unk10; + float unk14; } Bss130Struct; -s16 lbl_1_data_0[8] = { - 0, 1, 2, 3, - 4, 5, 6, 7 -}; +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; Data1340SubStruct lbl_1_data_22C[] = { - { "baseA2-null2", 1, { 13, 1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null11", 0, { 10, 0, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null12", 0, { 6, 3, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null13", 8, { 20, 2, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null5", 16, { 14, 5, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null6", 0, { 9, 4, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null20", 128, { 2, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null21", 128, { 8, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null22", 0, { 19, 7, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null7", 0, { 5, 15, 10, -1 }, { 0, 0, 0 } }, - { "baseA2-null10", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null18", 0, { 17, 12, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null17", 0, { 18, 11, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null3", 0, { 0, 14, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null4", 0, { 4, 13, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null8", 0, { 9, 16, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null9", 0, { 22, 15, 17, -1 }, { 0, 0, 0 } }, - { "baseA2-null19", 0, { 11, 23, 16, -1 }, { 0, 0, 0 } }, - { "baseA2-null16", 0, { 12, 19, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null15", 0, { 8, 18, 20, -1 }, { 0, 0, 0 } }, - { "baseA2-null14", 0, { 3, 19, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null39", 0, { 30, 22, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null40", 0, { 16, 21, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null27", 0, { 17, 37, 24, -1 }, { 0, 0, 0 } }, - { "baseA2-null28", 64, { 32, 23, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null23", 64, { 33, 26, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null24", 0, { 38, 25, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null35", 0, { 31, 28, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null34", 32, { 35, 27, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null31", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null37", 0, { 21, 34, 31, -1 }, { 0, 0, 0 } }, - { "baseA2-null36", 0, { 27, 30, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null29", 0, { 24, 33, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null30", 0, { 25, 32, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null38", 2, { 30, 35, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null33", 0, { 28, 34, 36, -1 }, { 0, 0, 0 } }, - { "baseA2-null32", 0, { 29, 35, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null26", 0, { 23, 38, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null25", 4, { 26, 37, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null2", 1, { 13, 1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null11", 0, { 10, 0, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null12", 0, { 6, 3, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null13", 8, { 20, 2, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null5", 16, { 14, 5, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null6", 0, { 9, 4, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null20", 128, { 2, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null21", 128, { 8, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null22", 0, { 19, 7, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null7", 0, { 5, 15, 10, -1 }, { 0, 0, 0 } }, + { "baseA2-null10", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null18", 0, { 17, 12, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null17", 0, { 18, 11, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null3", 0, { 0, 14, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null4", 0, { 4, 13, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null8", 0, { 9, 16, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null9", 0, { 22, 15, 17, -1 }, { 0, 0, 0 } }, + { "baseA2-null19", 0, { 11, 23, 16, -1 }, { 0, 0, 0 } }, + { "baseA2-null16", 0, { 12, 19, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null15", 0, { 8, 18, 20, -1 }, { 0, 0, 0 } }, + { "baseA2-null14", 0, { 3, 19, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null39", 0, { 30, 22, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null40", 0, { 16, 21, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null27", 0, { 17, 37, 24, -1 }, { 0, 0, 0 } }, + { "baseA2-null28", 64, { 32, 23, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null23", 64, { 33, 26, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null24", 0, { 38, 25, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null35", 0, { 31, 28, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null34", 32, { 35, 27, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null31", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null37", 0, { 21, 34, 31, -1 }, { 0, 0, 0 } }, + { "baseA2-null36", 0, { 27, 30, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null29", 0, { 24, 33, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null30", 0, { 25, 32, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null38", 2, { 30, 35, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null33", 0, { 28, 34, 36, -1 }, { 0, 0, 0 } }, + { "baseA2-null32", 0, { 29, 35, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null26", 0, { 23, 38, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null25", 4, { 26, 37, -1, -1 }, { 0, 0, 0 } }, }; Data1340SubStruct lbl_1_data_9EC[] = { - { "baseB2-null1", 1, { 12, 1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null2", 0, { 8, 0, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null6", 0, { 9, 3, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null10", 0, { 15, 2, 4, -1 }, { 0, 0, 0 } }, - { "baseB2-null11", 0, { 10, 3, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null12", 0, { 11, 6, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null13", 8, { 18, 5, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null7", 16, { 14, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null4", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null5", 0, { 2, 8, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null14", 128, { 4, 11, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null15", 0, { 5, 10, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null3", 0, { 0, 13, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null9", 0, { 21, 12, 14, -1 }, { 0, 0, 0 } }, - { "baseB2-null8", 0, { 7, 13, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null16", 0, { 3, 16, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null17", 0, { 24, 15, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null18", 128, { 18, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null19", 0, { 6, 17, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null20", 0, { 35, 20, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null21", 0, { 27, 19, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null30", 0, { 13, 22, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null29", 0, { 38, 21, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null31", 0, { 32, 24, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null33", 0, { 16, 23, 25, -1 }, { 0, 0, 0 } }, - { "baseB2-null34", 0, { 30, 24, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null42", 64, { 34, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null25", 0, { 20, 28, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null26", 32, { 37, 27, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null36", 0, { 39, 30, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null35", 0, { 25, 33, 29, -1 }, { 0, 0, 0 } }, - { "baseB2-null24", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null32", 64, { 23, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null38", 0, { 30, 40, 34, -1 }, { 0, 0, 0 } }, - { "baseB2-null40", 0, { 26, 33, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null22", 2, { 19, 36, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null23", 0, { 31, 35, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null27", 0, { 28, 38, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null28", 0, { 22, 37, 39, -1 }, { 0, 0, 0 } }, - { "baseB2-null37", 0, { 29, 38, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null39", 0, { 33, 41, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null41", 4, { 40, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null1", 1, { 12, 1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null2", 0, { 8, 0, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null6", 0, { 9, 3, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null10", 0, { 15, 2, 4, -1 }, { 0, 0, 0 } }, + { "baseB2-null11", 0, { 10, 3, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null12", 0, { 11, 6, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null13", 8, { 18, 5, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null7", 16, { 14, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null4", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null5", 0, { 2, 8, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null14", 128, { 4, 11, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null15", 0, { 5, 10, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null3", 0, { 0, 13, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null9", 0, { 21, 12, 14, -1 }, { 0, 0, 0 } }, + { "baseB2-null8", 0, { 7, 13, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null16", 0, { 3, 16, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null17", 0, { 24, 15, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null18", 128, { 18, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null19", 0, { 6, 17, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null20", 0, { 35, 20, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null21", 0, { 27, 19, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null30", 0, { 13, 22, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null29", 0, { 38, 21, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null31", 0, { 32, 24, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null33", 0, { 16, 23, 25, -1 }, { 0, 0, 0 } }, + { "baseB2-null34", 0, { 30, 24, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null42", 64, { 34, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null25", 0, { 20, 28, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null26", 32, { 37, 27, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null36", 0, { 39, 30, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null35", 0, { 25, 33, 29, -1 }, { 0, 0, 0 } }, + { "baseB2-null24", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null32", 64, { 23, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null38", 0, { 30, 40, 34, -1 }, { 0, 0, 0 } }, + { "baseB2-null40", 0, { 26, 33, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null22", 2, { 19, 36, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null23", 0, { 31, 35, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null27", 0, { 28, 38, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null28", 0, { 22, 37, 39, -1 }, { 0, 0, 0 } }, + { "baseB2-null37", 0, { 29, 38, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null39", 0, { 33, 41, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null41", 4, { 40, -1, -1, -1 }, { 0, 0, 0 } }, }; Vec lbl_1_data_FD4 = { 0, 1, -1 }; Vec lbl_1_data_FE0 = { 0, 1, 0 }; s32 lbl_1_data_FEC[4] = { 1, 2, 4, 8 }; -float lbl_1_data_FFC[4][4] = { - 0, 0, 320, 240, - 0, 240, 320, 240, - 320, 0, 320, 240, - 320, 240, 320, 240 -}; -float lbl_1_data_103C[4][4] = { - 2, 2, 316, 236, - 2, 242, 316, 236, - 322, 2, 316, 236, - 322, 242, 316, 236 -}; +float lbl_1_data_FFC[4][4] = { 0, 0, 320, 240, 0, 240, 320, 240, 320, 0, 320, 240, 320, 240, 320, 240 }; +float lbl_1_data_103C[4][4] = { 2, 2, 316, 236, 2, 242, 316, 236, 322, 2, 316, 236, 322, 242, 316, 236 }; -float lbl_1_data_107C[4][4] = { - 0, 0, 640, 480, - 0, 480, 640, 0, - 640, 0, 0, 480, - 640, 480, 0, 0 -}; +float lbl_1_data_107C[4][4] = { 0, 0, 640, 480, 0, 480, 640, 0, 640, 0, 0, 480, 640, 480, 0, 0 }; -float lbl_1_data_10BC[4][4] = { - 0, 0, 0, 480, - 0, 480, 0, 0, - 0, 0, 640, 480, - 0, 480, 640, 0 -}; +float lbl_1_data_10BC[4][4] = { 0, 0, 0, 480, 0, 480, 0, 0, 0, 0, 640, 480, 0, 480, 640, 0 }; -float lbl_1_data_10FC[4][2] = { - -1, -1, - -1, 1, - 1, -1, - 1, 1 -}; +float lbl_1_data_10FC[4][2] = { -1, -1, -1, 1, 1, -1, 1, 1 }; Vec lbl_1_data_111C = { 0, 10000, 0 }; Vec lbl_1_data_1128 = { 0, -1, 0 }; @@ -621,236 +618,227 @@ GXColor lbl_1_data_1134 = { 255, 255, 255, 255 }; Vec lbl_1_data_1138 = { 0, 8000, 1000 }; Vec lbl_1_data_1144 = { 0, 0, 0 }; s32 lbl_1_data_1150[8][10] = { - 0x005F0000, - 0x005F0002, - 0x005F0003, - 0x005F0017, - 0x005F0072, - 0x005F005A, - 0x003C0008, - 0x005F0058, - 0x005F0059, - 0x003C0000, - 0x001A0000, - 0x001A0002, - 0x001A0003, - 0x001A0017, - 0x001A0072, - 0x001A005A, - 0x003C0009, - 0x001A0058, - 0x001A0059, - 0x003C0001, - 0x006D0000, - 0x006D0002, - 0x006D0003, - 0x006D0017, - 0x006D0072, - 0x006D005A, - 0x003C000A, - 0x006D0058, - 0x006D0059, - 0x003C0002, - 0x008A0000, - 0x008A0002, - 0x008A0003, - 0x008A0017, - 0x008A0072, - 0x008A005A, - 0x003C000B, - 0x008A0058, - 0x008A0059, - 0x003C0003, - 0x00850000, - 0x00850002, - 0x00850003, - 0x00850017, - 0x00850072, - 0x0085005A, - 0x003C000C, - 0x00850058, - 0x00850059, - 0x003C0004, - 0x00110000, - 0x00110002, - 0x00110003, - 0x00110017, - 0x00110072, - 0x0011005A, - 0x003C000D, - 0x00110058, - 0x00110059, - 0x003C0005, - 0x000D0000, - 0x000D0002, - 0x000D0003, - 0x000D0017, - 0x000D0072, - 0x000D005A, - 0x003C000E, - 0x000D0058, - 0x000D0059, - 0x003C0006, - 0x00810000, - 0x00810002, - 0x00810003, - 0x00810017, - 0x00810072, - 0x0081005A, - 0x003C000F, - 0x00810058, - 0x00810059, - 0x003C0007 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x08), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x58), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x72), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x09), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x58), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x01), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x02), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x03), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x72), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x58), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x72), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x58), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x72), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0C), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x58), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x04), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x72), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x58), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x05), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x72), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x58), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x06), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x72), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0F), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x58), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x07), }; s32 lbl_1_data_1290[8] = { - 0x610000, - 0x610001, - 0x610002, - 0x610003, - 0x610004, - 0x610005, - 0x610006, - 0x610007 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), }; s32 lbl_1_data_12B0[8] = { - 0x003C002C, 0x003C002E, - 0x003C002C, 0x003C002E, - 0x003C002D, 0x003C002E, - 0x003C002D, 0x003C002E + DATA_MAKE_NUM(DATADIR_M429, 0x2C), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), + DATA_MAKE_NUM(DATADIR_M429, 0x2C), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), + DATA_MAKE_NUM(DATADIR_M429, 0x2D), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), + DATA_MAKE_NUM(DATADIR_M429, 0x2D), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), }; s32 lbl_1_data_12D0[4] = { - 0x003C003D, - 0x003C003D, - 0x003C003E, - 0x003C003E + DATA_MAKE_NUM(DATADIR_M429, 0x3D), + DATA_MAKE_NUM(DATADIR_M429, 0x3D), + DATA_MAKE_NUM(DATADIR_M429, 0x3E), + DATA_MAKE_NUM(DATADIR_M429, 0x3E), }; s32 lbl_1_data_12E0[4][3] = { - 0x003C0024, 0x003C0030, 0x003C0025, - 0x003C0026, 0x003C0030, 0x003C0027, - 0x003C0028, 0x003C0030, 0x003C0029, - 0x003C002A, 0x003C0030, 0x003C002B, + DATA_MAKE_NUM(DATADIR_M429, 0x24), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x25), + DATA_MAKE_NUM(DATADIR_M429, 0x26), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x27), + DATA_MAKE_NUM(DATADIR_M429, 0x28), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x29), + DATA_MAKE_NUM(DATADIR_M429, 0x2A), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x2B), }; s32 lbl_1_data_1310[4] = { - 0x003C003A, - 0x003C003A, - 0x003C003B, - 0x003C003B + DATA_MAKE_NUM(DATADIR_M429, 0x3A), + DATA_MAKE_NUM(DATADIR_M429, 0x3A), + DATA_MAKE_NUM(DATADIR_M429, 0x3B), + DATA_MAKE_NUM(DATADIR_M429, 0x3B), }; s32 lbl_1_data_1320[4] = { - 0x003C0013, - 0x003C0016, - 0x003C0015, - 0x003C0014 + DATA_MAKE_NUM(DATADIR_M429, 0x13), + DATA_MAKE_NUM(DATADIR_M429, 0x16), + DATA_MAKE_NUM(DATADIR_M429, 0x15), + DATA_MAKE_NUM(DATADIR_M429, 0x14), }; s32 lbl_1_data_1330[4] = { - 0x003C001C, - 0x003C001F, - 0x003C001E, - 0x003C001D + DATA_MAKE_NUM(DATADIR_M429, 0x1C), + DATA_MAKE_NUM(DATADIR_M429, 0x1F), + DATA_MAKE_NUM(DATADIR_M429, 0x1E), + DATA_MAKE_NUM(DATADIR_M429, 0x1D), }; Data1340Struct lbl_1_data_1340[2] = { - { - 0, - lbl_1_data_1320, - { - 0x003C0010, - 0x003C0011, - 0x003C0017, - 0x003C0018 - }, - 13000, - 39, - lbl_1_data_22C - }, - { - 4, - lbl_1_data_1330, - { - 0x003C0019, - 0x003C001A, - 0x003C0020, - 0x003C0021 - }, - 13000, - 42, - lbl_1_data_9EC - }, + { + 0, + lbl_1_data_1320, + { + DATA_MAKE_NUM(DATADIR_M429, 0x10), + DATA_MAKE_NUM(DATADIR_M429, 0x11), + DATA_MAKE_NUM(DATADIR_M429, 0x17), + DATA_MAKE_NUM(DATADIR_M429, 0x18), + }, + 13000, + 39, + lbl_1_data_22C, + }, + { + 4, + lbl_1_data_1330, + { + DATA_MAKE_NUM(DATADIR_M429, 0x19), + DATA_MAKE_NUM(DATADIR_M429, 0x1A), + DATA_MAKE_NUM(DATADIR_M429, 0x20), + DATA_MAKE_NUM(DATADIR_M429, 0x21), + }, + 13000, + 42, + lbl_1_data_9EC, + }, }; s32 lbl_1_data_1388[8] = { - 0x003C0032, - 0x003C0033, - 0x003C0034, - 0x003C0035, - 0x003C0036, - 0x003C0037, - 0x003C0038, - 0x003C0039 + DATA_MAKE_NUM(DATADIR_M429, 0x32), + DATA_MAKE_NUM(DATADIR_M429, 0x33), + DATA_MAKE_NUM(DATADIR_M429, 0x34), + DATA_MAKE_NUM(DATADIR_M429, 0x35), + DATA_MAKE_NUM(DATADIR_M429, 0x36), + DATA_MAKE_NUM(DATADIR_M429, 0x37), + DATA_MAKE_NUM(DATADIR_M429, 0x38), + DATA_MAKE_NUM(DATADIR_M429, 0x39), }; -Data13A8Struct lbl_1_data_13A8 = { - 0.5f, - 100.0f, - 130.0f, - 15 -}; +Data13A8Struct lbl_1_data_13A8 = { 0.5f, 100.0f, 130.0f, 15 }; -Data13A8Struct lbl_1_data_13B8 = { - 0.6f, - 110.0f, - 120.0f, - 12 -}; +Data13A8Struct lbl_1_data_13B8 = { 0.6f, 110.0f, 120.0f, 12 }; -Data13A8Struct lbl_1_data_13C8 = { - 0.7f, - 120.0f, - 110.0f, - 9 -}; +Data13A8Struct lbl_1_data_13C8 = { 0.7f, 120.0f, 110.0f, 9 }; -Data13A8Struct lbl_1_data_13D8 = { - 0.8f, - 130.0f, - 100.0f, - 6 -}; +Data13A8Struct lbl_1_data_13D8 = { 0.8f, 130.0f, 100.0f, 6 }; HsfanimStruct00 lbl_1_data_13E8 = { - 30, - { 0, 0 }, - 1.0f, - 10.0f, - 360.0f, - { 0.0f, 0.1f, 0.0f }, - 1.0f, - 1.0f, - 30.0f, - 1.05f, - 1, - { - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - }, - { - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - }, + 30, + { 0, 0 }, + 1.0f, + 10.0f, + 360.0f, + { 0.0f, 0.1f, 0.0f }, + 1.0f, + 1.0f, + 30.0f, + 1.05f, + 1, + { + { 255, 255, 255, 255 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 255 }, + }, + { + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + }, }; - omObjData *lbl_1_bss_1AC; omObjData *lbl_1_bss_1A8; omObjData **lbl_1_bss_1A4; @@ -887,2002 +875,2010 @@ s32 lbl_1_bss_4; s32 lbl_1_bss_0; typedef struct work_8F68 { - Data13A8Struct *unk0; - Vec unk4; - Vec unk10; - Vec unk1C; - Vec unk28; - Vec unk34; - Vec unk40; - float unk4C; - float unk50; - float unk54; - float unk58; - float unk5C; - float unk60; - float unk64; - float unk68; - float unk6C; - s32 unk70; - u8 *unk74; - s32 unk78; - s32 unk7C; - s32 unk80; - s32 unk84; - s32 unk88; - s32 unk8C; - float unk90; - u32 unk94[2]; - s32 unk9C; - s32 unkA0; - s32 unkA4; - s32 unkA8; - s32 unkAC; - s32 unkB0; - s32 unkB4; - s32 unkB8[4]; - s32 unkC8[4][2]; - s32 unkE8; - s32 unkEC; - s32 unkF0; - s32 unkF4; - s32 unkF8; - s32 unkFC; - s32 unk100; - s32 unk104; - s32 unk108; - s32 unk10C; - s32 unk110; - s32 unk114; - s32 unk118; - s32 unk11C; - s32 unk120; + Data13A8Struct *unk0; + Vec unk4; + Vec unk10; + Vec unk1C; + Vec unk28; + Vec unk34; + Vec unk40; + float unk4C; + float unk50; + float unk54; + float unk58; + float unk5C; + float unk60; + float unk64; + float unk68; + float unk6C; + s32 unk70; + u8 *unk74; + s32 unk78; + s32 unk7C; + s32 unk80; + s32 unk84; + s32 unk88; + s32 unk8C; + float unk90; + u32 unk94[2]; + s32 unk9C; + s32 unkA0; + s32 unkA4; + s32 unkA8; + s32 unkAC; + s32 unkB0; + s32 unkB4; + s32 unkB8[4]; + s32 unkC8[4][2]; + s32 unkE8; + s32 unkEC; + s32 unkF0; + s32 unkF4; + s32 unkF8; + s32 unkFC; + s32 unk100; + s32 unk104; + s32 unk108; + s32 unk10C; + s32 unk110; + s32 unk114; + s32 unk118; + s32 unk11C; + s32 unk120; } Work8F68; void fn_1_23B4(void) { - Work8F68 *temp_r31; - s32 temp_r30; - HuSysVWaitSet(1); - lbl_1_bss_11C -= HuPadSubStkX[0]/59.0f; - lbl_1_bss_120 -= 4*(HuPadSubStkY[0]/59.0f); - lbl_1_bss_118 -= 4*(HuPadTrigL[0]/150.0f); - lbl_1_bss_118 += 4*(HuPadTrigR[0]/150.0f); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_1_bss_1A4[temp_r30]->data; - print8(24, 96+(16*temp_r30), 1.5f, "%d %d %d M%2d %04x %2d %2d %d %d", temp_r31->unk100, temp_r31->unk10C, temp_r31->unk104, temp_r31->unk8C, temp_r31->unkE8, temp_r31->unkEC, temp_r31->unkF0, temp_r31->unk80, temp_r31->unk8C); - } + Work8F68 *temp_r31; + s32 temp_r30; + HuSysVWaitSet(1); + lbl_1_bss_11C -= HuPadSubStkX[0] / 59.0f; + lbl_1_bss_120 -= 4 * (HuPadSubStkY[0] / 59.0f); + lbl_1_bss_118 -= 4 * (HuPadTrigL[0] / 150.0f); + lbl_1_bss_118 += 4 * (HuPadTrigR[0] / 150.0f); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_1_bss_1A4[temp_r30]->data; + print8(24, 96 + (16 * temp_r30), 1.5f, "%d %d %d M%2d %04x %2d %2d %d %d", temp_r31->unk100, temp_r31->unk10C, temp_r31->unk104, + temp_r31->unk8C, temp_r31->unkE8, temp_r31->unkEC, temp_r31->unkF0, temp_r31->unk80, temp_r31->unk8C); + } } Data1340SubStruct *fn_1_2614(s32 arg0) { - Data1340SubStruct *temp_r31; - s32 temp_r30; - temp_r31 = lbl_1_bss_190->unk20; - for(temp_r30=0; temp_r30unk1C; temp_r30++, temp_r31++) { - if(arg0 & temp_r31->unk4) { - return temp_r31; - } - } - return NULL; + Data1340SubStruct *temp_r31; + s32 temp_r30; + temp_r31 = lbl_1_bss_190->unk20; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_190->unk1C; temp_r30++, temp_r31++) { + if (arg0 & temp_r31->unk4) { + return temp_r31; + } + } + return NULL; } void fn_1_2684(void) { - Data1340SubStruct *temp_r31; - s32 temp_r30; - - s32 temp_r28; - temp_r30 = frandmod(2); - lbl_1_bss_190 = &lbl_1_data_1340[temp_r30]; - temp_r30 = Hu3DModelCreateFile(lbl_1_bss_190->unk8[0]); - Hu3DModelAttrSet(temp_r30, 1); - Hu3DModelPosSet(temp_r30, 0, 0, 0); - Hu3DModelRotSet(temp_r30, 0, -90.f*lbl_1_bss_34, 0); - for(temp_r28=0; temp_r28unk1C; temp_r28++) { - fn_1_1D18(temp_r30, lbl_1_bss_190->unk20[temp_r28].unk0, &lbl_1_bss_190->unk20[temp_r28].unk18); - } - lbl_1_bss_128 = 2000; - lbl_1_bss_124 = 2000; - temp_r31 = fn_1_2614(1); - if(NULL != temp_r31) { - lbl_1_bss_128 = 2.0f*ABS(temp_r31->unk18.x); - lbl_1_bss_124 = 2.2f*ABS(temp_r31->unk18.z); - } + Data1340SubStruct *temp_r31; + s32 temp_r30; + + s32 temp_r28; + temp_r30 = frandmod(2); + lbl_1_bss_190 = &lbl_1_data_1340[temp_r30]; + temp_r30 = Hu3DModelCreateFile(lbl_1_bss_190->unk8[0]); + Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelPosSet(temp_r30, 0, 0, 0); + Hu3DModelRotSet(temp_r30, 0, -90.f * lbl_1_bss_34, 0); + for (temp_r28 = 0; temp_r28 < lbl_1_bss_190->unk1C; temp_r28++) { + fn_1_1D18(temp_r30, lbl_1_bss_190->unk20[temp_r28].unk0, &lbl_1_bss_190->unk20[temp_r28].unk18); + } + lbl_1_bss_128 = 2000; + lbl_1_bss_124 = 2000; + temp_r31 = fn_1_2614(1); + if (NULL != temp_r31) { + lbl_1_bss_128 = 2.0f * ABS(temp_r31->unk18.x); + lbl_1_bss_124 = 2.2f * ABS(temp_r31->unk18.z); + } } void fn_1_2950(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f28; - float temp_f27; - s32 temp_r31; - Data1340SubStruct *temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - s32 temp_r26; - temp_r28 = arg0->unkEC; - temp_r31 = -1; - temp_f27 = lbl_1_bss_190->unk18; - temp_r30 = lbl_1_bss_190->unk20; - for(temp_r29=0; temp_r29unk1C; temp_r29++, temp_r30++) { - temp_f31 = arg0->unk4.x-temp_r30->unk18.x; - temp_f30 = arg0->unk4.z-temp_r30->unk18.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(arg0->unk54+200.0f > temp_f28 && temp_f27 > temp_f28) { - temp_r31 = temp_r29; - temp_f27 = temp_f28; - } - } - if(temp_r31 >= 0) { - arg0->unkEC = temp_r31; - if(temp_r28 != temp_r31) { - if(--arg0->unk8C < 0) { - arg0->unk8C = -1; - } - } - temp_r27 = temp_r31/32; - temp_r26 = temp_r31%32; - arg0->unk94[temp_r27] |= 1 << temp_r26; - } + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f27; + s32 temp_r31; + Data1340SubStruct *temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + s32 temp_r26; + temp_r28 = arg0->unkEC; + temp_r31 = -1; + temp_f27 = lbl_1_bss_190->unk18; + temp_r30 = lbl_1_bss_190->unk20; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_190->unk1C; temp_r29++, temp_r30++) { + temp_f31 = arg0->unk4.x - temp_r30->unk18.x; + temp_f30 = arg0->unk4.z - temp_r30->unk18.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (arg0->unk54 + 200.0f > temp_f28 && temp_f27 > temp_f28) { + temp_r31 = temp_r29; + temp_f27 = temp_f28; + } + } + if (temp_r31 >= 0) { + arg0->unkEC = temp_r31; + if (temp_r28 != temp_r31) { + if (--arg0->unk8C < 0) { + arg0->unk8C = -1; + } + } + temp_r27 = temp_r31 / 32; + temp_r26 = temp_r31 % 32; + arg0->unk94[temp_r27] |= 1 << temp_r26; + } } void fn_1_2BE0(Work8F68 *arg0, s32 arg1, s32 arg2, s32 arg3, u8 *arg4, s32 *arg5) { - s32 sp8[2]; - s32 temp_r31; - Data1340SubStruct *temp_r30; - s32 temp_r29; - u8 *temp_r27; - - s32 temp_r24; - s32 temp_r23; - temp_r24 = arg1/32; - temp_r23 = arg1%32; - arg5[temp_r24] |= 1 << temp_r23; - temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3+1, MEMORY_DEFAULT_NUM); - for(temp_r31=0; temp_r31unk20[arg1]; - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r30->unk8[temp_r31] < 0) { - break; - } - temp_r27[arg3] = temp_r30->unk8[temp_r31]; - if(arg2 == temp_r30->unk8[temp_r31]) { - if(arg0->unk78 > arg3+1) { - if(NULL != arg0->unk74) { - HuMemDirectFree(arg0->unk74); - } - arg0->unk74 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3+1, MEMORY_DEFAULT_NUM); - for(temp_r29=0; temp_r29unk74[temp_r29] = temp_r27[temp_r29]; - } - arg0->unk78 = arg3+1; - } - } else { - if(temp_r30->unk8[temp_r31] >= 0) { - temp_r24 = temp_r30->unk8[temp_r31]/32; - temp_r23 = temp_r30->unk8[temp_r31]%32; - if((arg5[temp_r24] & (1 << temp_r23)) == 0u) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - sp8[temp_r29] = arg5[temp_r29]; - } - fn_1_2BE0(arg0, temp_r30->unk8[temp_r31], arg2, arg3+1, temp_r27, sp8); - } - } - } - } - HuMemDirectFree(temp_r27); + s32 sp8[2]; + s32 temp_r31; + Data1340SubStruct *temp_r30; + s32 temp_r29; + u8 *temp_r27; + + s32 temp_r24; + s32 temp_r23; + temp_r24 = arg1 / 32; + temp_r23 = arg1 % 32; + arg5[temp_r24] |= 1 << temp_r23; + temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 + 1, MEMORY_DEFAULT_NUM); + for (temp_r31 = 0; temp_r31 < arg3; temp_r31++) { + temp_r27[temp_r31] = arg4[temp_r31]; + } + temp_r30 = &lbl_1_bss_190->unk20[arg1]; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r30->unk8[temp_r31] < 0) { + break; + } + temp_r27[arg3] = temp_r30->unk8[temp_r31]; + if (arg2 == temp_r30->unk8[temp_r31]) { + if (arg0->unk78 > arg3 + 1) { + if (NULL != arg0->unk74) { + HuMemDirectFree(arg0->unk74); + } + arg0->unk74 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 + 1, MEMORY_DEFAULT_NUM); + for (temp_r29 = 0; temp_r29 < arg3 + 1; temp_r29++) { + arg0->unk74[temp_r29] = temp_r27[temp_r29]; + } + arg0->unk78 = arg3 + 1; + } + } + else { + if (temp_r30->unk8[temp_r31] >= 0) { + temp_r24 = temp_r30->unk8[temp_r31] / 32; + temp_r23 = temp_r30->unk8[temp_r31] % 32; + if ((arg5[temp_r24] & (1 << temp_r23)) == 0u) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + sp8[temp_r29] = arg5[temp_r29]; + } + fn_1_2BE0(arg0, temp_r30->unk8[temp_r31], arg2, arg3 + 1, temp_r27, sp8); + } + } + } + } + HuMemDirectFree(temp_r27); } void fn_1_2E14(Work8F68 *arg0) { - s32 spC[2]; - u8 sp8; - s32 temp_r30; - if(NULL != arg0->unk74) { - HuMemDirectFree(arg0->unk74); - } - arg0->unk74 = NULL; - arg0->unk78 = 65535; - arg0->unk7C = 0; - if(arg0->unkEC == arg0->unkF0) { - arg0->unkE8 |= 0x8; - arg0->unkF0 = -1; - return; - } - sp8 = arg0->unkEC; - for(temp_r30=0; temp_r30<2; temp_r30++) { - spC[temp_r30] = 0; - } - fn_1_2BE0(arg0, arg0->unkEC, arg0->unkF0, 1, &sp8, spC); + s32 spC[2]; + u8 sp8; + s32 temp_r30; + if (NULL != arg0->unk74) { + HuMemDirectFree(arg0->unk74); + } + arg0->unk74 = NULL; + arg0->unk78 = 65535; + arg0->unk7C = 0; + if (arg0->unkEC == arg0->unkF0) { + arg0->unkE8 |= 0x8; + arg0->unkF0 = -1; + return; + } + sp8 = arg0->unkEC; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + spC[temp_r30] = 0; + } + fn_1_2BE0(arg0, arg0->unkEC, arg0->unkF0, 1, &sp8, spC); } void fn_1_2EEC(Work8F68 *arg0) { - Vec sp18; - Vec spC; - float temp_f31; - float temp_f30; - float temp_f28; - Data1340SubStruct *temp_r30; - Data1340SubStruct *temp_r29; - - if(NULL != arg0->unk74 && arg0->unk78 >= 2) { - temp_r30 = &lbl_1_bss_190->unk20[arg0->unk74[0]]; - temp_r29 = &lbl_1_bss_190->unk20[arg0->unk74[1]]; - temp_f31 = temp_r30->unk18.x-arg0->unk4.x; - temp_f30 = temp_r30->unk18.z-arg0->unk4.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(150.0f > temp_f28) { - arg0->unk7C = 1; - return; - } - VECSubtract(&temp_r29->unk18, &temp_r30->unk18, &sp18); - VECSubtract(&arg0->unk4, &temp_r30->unk18, &spC); - if(0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { - VECNormalize(&sp18, &sp18); - VECNormalize(&spC, &spC); - if(0.8f < VECDotProduct(&sp18, &spC)) { - arg0->unk7C = 1; - } - } - } + Vec sp18; + Vec spC; + float temp_f31; + float temp_f30; + float temp_f28; + Data1340SubStruct *temp_r30; + Data1340SubStruct *temp_r29; + + if (NULL != arg0->unk74 && arg0->unk78 >= 2) { + temp_r30 = &lbl_1_bss_190->unk20[arg0->unk74[0]]; + temp_r29 = &lbl_1_bss_190->unk20[arg0->unk74[1]]; + temp_f31 = temp_r30->unk18.x - arg0->unk4.x; + temp_f30 = temp_r30->unk18.z - arg0->unk4.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (150.0f > temp_f28) { + arg0->unk7C = 1; + return; + } + VECSubtract(&temp_r29->unk18, &temp_r30->unk18, &sp18); + VECSubtract(&arg0->unk4, &temp_r30->unk18, &spC); + if (0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { + VECNormalize(&sp18, &sp18); + VECNormalize(&spC, &spC); + if (0.8f < VECDotProduct(&sp18, &spC)) { + arg0->unk7C = 1; + } + } + } } -void fn_1_31A8(omObjData *object) -{ - -} +void fn_1_31A8(omObjData *object) { } void fn_1_31AC(omObjData *object) { - object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk4[lbl_1_bss_34]); - Hu3DModelAttrSet(object->model[0], 1); - omSetTra(object, 0, 0, 0); - omSetRot(object, 0, 0, 0); - object->func = fn_1_31A8; + object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk4[lbl_1_bss_34]); + Hu3DModelAttrSet(object->model[0], 1); + omSetTra(object, 0, 0, 0); + omSetRot(object, 0, 0, 0); + object->func = fn_1_31A8; } typedef struct work_3284 { - Vec unk0; - float unkC; - float unk10; - s32 unk14; - s32 unk18; + Vec unk0; + float unkC; + float unk10; + s32 unk14; + s32 unk18; } Work3284; void fn_1_3284(omObjData *object) { - Work3284 *temp_r31 = object->data; - if(lbl_1_bss_1AC->work[0] >= 1007) { - temp_r31->unk10 *= 0.9f; - if(0.0f > temp_r31->unk10) { - temp_r31->unk10 = 0.0f; - } - } else { - if(temp_r31->unk18 & 0x1) { - temp_r31->unkC += 6.0f; - if(180.0f < temp_r31->unkC) { - temp_r31->unkC = 180.0f; - } - temp_r31->unk10 = 1.0-(0.5*sind(temp_r31->unkC)); - } - } - omSetSca(object, temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); - Hu3DModelScaleSet(object->model[1], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); - Hu3DModelScaleSet(object->model[0], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); + Work3284 *temp_r31 = object->data; + if (lbl_1_bss_1AC->work[0] >= 1007) { + temp_r31->unk10 *= 0.9f; + if (0.0f > temp_r31->unk10) { + temp_r31->unk10 = 0.0f; + } + } + else { + if (temp_r31->unk18 & 0x1) { + temp_r31->unkC += 6.0f; + if (180.0f < temp_r31->unkC) { + temp_r31->unkC = 180.0f; + } + temp_r31->unk10 = 1.0 - (0.5 * sind(temp_r31->unkC)); + } + } + omSetSca(object, temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); + Hu3DModelScaleSet(object->model[1], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); + Hu3DModelScaleSet(object->model[0], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); } void fn_1_33F8(omObjData *object) { - Work3284 *temp_r31 = object->data; - s32 temp_r29; - s32 temp_r28; - s32 *temp_r27; - Data1340SubStruct *temp_r26; - s32 temp_r25; - s32 temp_r24; - - temp_r31->unk0.x = 0; - temp_r31->unk0.y = 0; - temp_r31->unk0.z = 0; - temp_r31->unkC = 0; - temp_r31->unk10 = 1; - temp_r31->unk14 = -1; - temp_r31->unk18 = 0; - temp_r24 = 16 << ((object->work[0]+lbl_1_bss_34+2)&0x3); - temp_r25 = frandmod(lbl_1_bss_190->unk1C)+1; - temp_r28 = frandmod(lbl_1_bss_190->unk1C); - while(1) { - temp_r26 = &lbl_1_bss_190->unk20[temp_r28]; - if((temp_r24 & temp_r26->unk4) && --temp_r25 < 0) { - temp_r31->unk14 = temp_r28; - temp_r31->unk0 = temp_r26->unk18; - break; - } else { - temp_r28 = (temp_r28+1)%lbl_1_bss_190->unk1C; - } - } - temp_r31->unk0.y = 100; - temp_r27 = &lbl_1_data_12B0[object->work[0]*2]; - object->model[0] = Hu3DModelCreateFile(*temp_r27++); - object->model[1] = Hu3DModelCreateFile(*temp_r27++); - for(temp_r29=0; temp_r29<2; temp_r29++) { - Hu3DModelCameraSet(object->model[temp_r29], 15); - Hu3DModelAttrSet(object->model[temp_r29], 1); - Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); - Hu3DModelAttrReset(object->model[temp_r29], 0x40000002); - Hu3DModelLayerSet(object->model[temp_r29], 3); - Hu3DModelPosSet(object->model[temp_r29], temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); - Hu3DModelRotSet(object->model[temp_r29], 0, 0, 0); - Hu3DModelShadowSet(object->model[temp_r29]); - } - omSetTra(object, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); - omSetRot(object, 0, 0, 0); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_3284; + Work3284 *temp_r31 = object->data; + s32 temp_r29; + s32 temp_r28; + s32 *temp_r27; + Data1340SubStruct *temp_r26; + s32 temp_r25; + s32 temp_r24; + + temp_r31->unk0.x = 0; + temp_r31->unk0.y = 0; + temp_r31->unk0.z = 0; + temp_r31->unkC = 0; + temp_r31->unk10 = 1; + temp_r31->unk14 = -1; + temp_r31->unk18 = 0; + temp_r24 = 16 << ((object->work[0] + lbl_1_bss_34 + 2) & 0x3); + temp_r25 = frandmod(lbl_1_bss_190->unk1C) + 1; + temp_r28 = frandmod(lbl_1_bss_190->unk1C); + while (1) { + temp_r26 = &lbl_1_bss_190->unk20[temp_r28]; + if ((temp_r24 & temp_r26->unk4) && --temp_r25 < 0) { + temp_r31->unk14 = temp_r28; + temp_r31->unk0 = temp_r26->unk18; + break; + } + else { + temp_r28 = (temp_r28 + 1) % lbl_1_bss_190->unk1C; + } + } + temp_r31->unk0.y = 100; + temp_r27 = &lbl_1_data_12B0[object->work[0] * 2]; + object->model[0] = Hu3DModelCreateFile(*temp_r27++); + object->model[1] = Hu3DModelCreateFile(*temp_r27++); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + Hu3DModelCameraSet(object->model[temp_r29], 15); + Hu3DModelAttrSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); + Hu3DModelAttrReset(object->model[temp_r29], 0x40000002); + Hu3DModelLayerSet(object->model[temp_r29], 3); + Hu3DModelPosSet(object->model[temp_r29], temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); + Hu3DModelRotSet(object->model[temp_r29], 0, 0, 0); + Hu3DModelShadowSet(object->model[temp_r29]); + } + omSetTra(object, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); + omSetRot(object, 0, 0, 0); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_3284; } s32 fn_1_36FC(Work8F68 *arg0) { - AddX = 0; - AddZ = 0; - MapWall(arg0->unk54, arg0->unk4.x, arg0->unk4.y+arg0->unk54, arg0->unk4.z); - - arg0->unk4.x += AddX; - arg0->unk4.z += AddZ; - if(0.0f != ABS(AddX)+ABS(AddZ)) { - arg0->unk108 = 1; - return 1; - } else { - return 0; - } + AddX = 0; + AddZ = 0; + MapWall(arg0->unk54, arg0->unk4.x, arg0->unk4.y + arg0->unk54, arg0->unk4.z); + + arg0->unk4.x += AddX; + arg0->unk4.z += AddZ; + if (0.0f != ABS(AddX) + ABS(AddZ)) { + arg0->unk108 = 1; + return 1; + } + else { + return 0; + } } static inline void VECSet(Vec *dst, float x, float y, float z) { - dst->x = x; - dst->y = y; - dst->z = z; + dst->x = x; + dst->y = y; + dst->z = z; } void fn_1_386C(Work8F68 *arg0) { - Vec sp18; - Vec spC; - float temp_f31; - float temp_f30; - float temp_f28; - - Work8F68 *temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - temp_r28 = 0; - temp_r27 = 0; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r30 = lbl_1_bss_1A4[temp_r29]->data; - if(arg0->unk114 == temp_r30->unk114) { - continue; - } - temp_f31 = arg0->unk4.x-temp_r30->unk4.x; - temp_f30 = arg0->unk4.z-temp_r30->unk4.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 < arg0->unk54+temp_r30->unk54) { - if(0.0f == temp_f28) { - temp_f31 = 0; - temp_f30 = -1; - } else { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - } - temp_r27++; - arg0->unk4.x = temp_r30->unk4.x+(temp_f31*(arg0->unk54+temp_r30->unk54)); - arg0->unk4.z = temp_r30->unk4.z+(temp_f30*(arg0->unk54+temp_r30->unk54)); - fn_1_36FC(arg0); - VECSet(&sp18, arg0->unkF4, 0, arg0->unkF8); - VECSet(&spC, temp_r30->unkF4, 0, temp_r30->unkF8); - if(0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { - VECNormalize(&sp18, &sp18); - VECNormalize(&spC, &spC); - if(-0.8f > VECDotProduct(&sp18, &spC)) { - temp_r28++; - } - } - } - } - if(temp_r28 != 0 || temp_r27 >= 2) { - arg0->unk100++; - arg0->unk10C++; - } else { - arg0->unk10C = 0; - } + Vec sp18; + Vec spC; + float temp_f31; + float temp_f30; + float temp_f28; + + Work8F68 *temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + temp_r28 = 0; + temp_r27 = 0; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r30 = lbl_1_bss_1A4[temp_r29]->data; + if (arg0->unk114 == temp_r30->unk114) { + continue; + } + temp_f31 = arg0->unk4.x - temp_r30->unk4.x; + temp_f30 = arg0->unk4.z - temp_r30->unk4.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 < arg0->unk54 + temp_r30->unk54) { + if (0.0f == temp_f28) { + temp_f31 = 0; + temp_f30 = -1; + } + else { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + } + temp_r27++; + arg0->unk4.x = temp_r30->unk4.x + (temp_f31 * (arg0->unk54 + temp_r30->unk54)); + arg0->unk4.z = temp_r30->unk4.z + (temp_f30 * (arg0->unk54 + temp_r30->unk54)); + fn_1_36FC(arg0); + VECSet(&sp18, arg0->unkF4, 0, arg0->unkF8); + VECSet(&spC, temp_r30->unkF4, 0, temp_r30->unkF8); + if (0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { + VECNormalize(&sp18, &sp18); + VECNormalize(&spC, &spC); + if (-0.8f > VECDotProduct(&sp18, &spC)) { + temp_r28++; + } + } + } + } + if (temp_r28 != 0 || temp_r27 >= 2) { + arg0->unk100++; + arg0->unk10C++; + } + else { + arg0->unk10C = 0; + } } void fn_1_3DCC(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f28; - Work3284 *temp_r31; - s32 temp_r30; - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_1_bss_19C[temp_r30]->data; - temp_f31 = arg0->unk4.x-temp_r31->unk0.x; - temp_f30 = arg0->unk4.z-temp_r31->unk0.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 < arg0->unk54+50) { - if(0.0f == temp_f28) { - temp_f31 = 0; - temp_f30 = -1; - } else { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - } - arg0->unk4.x = temp_r31->unk0.x+(temp_f31*(arg0->unk54+50)); - arg0->unk4.z = temp_r31->unk0.z+(temp_f30*(arg0->unk54+50)); - } - } + float temp_f31; + float temp_f30; + float temp_f28; + Work3284 *temp_r31; + s32 temp_r30; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_1_bss_19C[temp_r30]->data; + temp_f31 = arg0->unk4.x - temp_r31->unk0.x; + temp_f30 = arg0->unk4.z - temp_r31->unk0.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 < arg0->unk54 + 50) { + if (0.0f == temp_f28) { + temp_f31 = 0; + temp_f30 = -1; + } + else { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + } + arg0->unk4.x = temp_r31->unk0.x + (temp_f31 * (arg0->unk54 + 50)); + arg0->unk4.z = temp_r31->unk0.z + (temp_f30 * (arg0->unk54 + 50)); + } + } } #include "src/REL/executor.c" void fn_1_40C0(Work8F68 *arg0, omObjData *arg1, s32 arg2) { - float temp_f31; - - s32 temp_r29; - if(arg2 >= 0 && arg0->unkA8 != arg2) { - arg0->unkA8 = arg2; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unkA8], 0, 8 ,0x40000001); - temp_r29 = -1; - temp_f31 = 1; - if(arg0->unkA4 == 1) { - temp_r29 = 9; - } - if(arg0->unkA4 == 0) { - switch(arg0->unkA8) { - case 0: - temp_r29 = 7; - break; - - case 1: - temp_r29 = 7; - temp_f31 = 30.0f/11.0f; - break; - - case 2: - temp_r29 = 8; - break; - } - } - - if(temp_r29 > 0 && arg0->unkAC != temp_r29) { - arg0->unkAC = temp_r29; - Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); - Hu3DMotionOverlaySpeedSet(arg1->model[0], temp_f31); - - } - } + float temp_f31; + + s32 temp_r29; + if (arg2 >= 0 && arg0->unkA8 != arg2) { + arg0->unkA8 = arg2; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unkA8], 0, 8, 0x40000001); + temp_r29 = -1; + temp_f31 = 1; + if (arg0->unkA4 == 1) { + temp_r29 = 9; + } + if (arg0->unkA4 == 0) { + switch (arg0->unkA8) { + case 0: + temp_r29 = 7; + break; + + case 1: + temp_r29 = 7; + temp_f31 = 30.0f / 11.0f; + break; + + case 2: + temp_r29 = 8; + break; + } + } + + if (temp_r29 > 0 && arg0->unkAC != temp_r29) { + arg0->unkAC = temp_r29; + Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); + Hu3DMotionOverlaySpeedSet(arg1->model[0], temp_f31); + } + } } void fn_1_4224(Work8F68 *arg0, omObjData *arg1) { - s32 temp_r25; - arg0->unk10 = arg0->unk4; - arg0->unk1C.x = 0; - arg0->unk1C.y = 0; - arg0->unk1C.z = 0; - arg0->unk1C.x = arg0->unkF4/4.0f; - arg0->unk1C.z = (-(float)arg0->unkF8)/4.0f; - temp_r25 = 0; - if((arg0->unkE8 & 0x1) == 0) { - arg0->unk58 = VECMagXZ(&arg0->unk1C); - if(0.5f <= arg0->unk58) { - if(10.0f <= arg0->unk58) { - arg0->unk1C.x /= arg0->unk58; - arg0->unk1C.z /= arg0->unk58; - arg0->unk58 = 10; - arg0->unk1C.x = 10.0f*arg0->unk1C.x; - arg0->unk1C.z = 10.0f*arg0->unk1C.z; - } - arg0->unk50 = fn_1_1E20(arg0->unk50, atan2d(arg0->unk1C.x, arg0->unk1C.z), 0.4f); - if(8.0f <= arg0->unk58) { - temp_r25 = 2; - } else { - temp_r25 = 1; - } - } - VECAdd(&arg0->unk4, &arg0->unk1C, &arg0->unk4); - } - arg0->unk108 = 0; - fn_1_36FC(arg0); - fn_1_386C(arg0); - fn_1_3DCC(arg0); - fn_1_36FC(arg0); - if(arg0->unk108) { - arg0->unk100++; - arg0->unk104++; - } else { - arg0->unk104 = 0; - } - fn_1_2950(arg0); - fn_1_40C0(arg0, arg1, temp_r25); + s32 temp_r25; + arg0->unk10 = arg0->unk4; + arg0->unk1C.x = 0; + arg0->unk1C.y = 0; + arg0->unk1C.z = 0; + arg0->unk1C.x = arg0->unkF4 / 4.0f; + arg0->unk1C.z = (-(float)arg0->unkF8) / 4.0f; + temp_r25 = 0; + if ((arg0->unkE8 & 0x1) == 0) { + arg0->unk58 = VECMagXZ(&arg0->unk1C); + if (0.5f <= arg0->unk58) { + if (10.0f <= arg0->unk58) { + arg0->unk1C.x /= arg0->unk58; + arg0->unk1C.z /= arg0->unk58; + arg0->unk58 = 10; + arg0->unk1C.x = 10.0f * arg0->unk1C.x; + arg0->unk1C.z = 10.0f * arg0->unk1C.z; + } + arg0->unk50 = fn_1_1E20(arg0->unk50, atan2d(arg0->unk1C.x, arg0->unk1C.z), 0.4f); + if (8.0f <= arg0->unk58) { + temp_r25 = 2; + } + else { + temp_r25 = 1; + } + } + VECAdd(&arg0->unk4, &arg0->unk1C, &arg0->unk4); + } + arg0->unk108 = 0; + fn_1_36FC(arg0); + fn_1_386C(arg0); + fn_1_3DCC(arg0); + fn_1_36FC(arg0); + if (arg0->unk108) { + arg0->unk100++; + arg0->unk104++; + } + else { + arg0->unk104 = 0; + } + fn_1_2950(arg0); + fn_1_40C0(arg0, arg1, temp_r25); } Work8F68 *fn_1_4DF0(s32 arg0) { - s32 temp_r31; - Work8F68 *temp_r30; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_1_bss_1A4[temp_r31]->data; - if(arg0 == temp_r30->unk110) { - return temp_r30; - } - } - return NULL; + s32 temp_r31; + Work8F68 *temp_r30; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_1_bss_1A4[temp_r31]->data; + if (arg0 == temp_r30->unk110) { + return temp_r30; + } + } + return NULL; } void fn_1_4E50(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f27; - Work8F68 *temp_r31; - - if((arg0->unkE8 & 0x4) && lbl_1_bss_28 < 0) { - temp_r31 = fn_1_4DF0(arg0->unk110 ^ 1); - if(temp_r31->unkE8 & 0x4) { - temp_f31 = arg0->unk4.x-temp_r31->unk4.x; - temp_f30 = arg0->unk4.z-temp_r31->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if((1.5f*(arg0->unk54+temp_r31->unk54)) >= temp_f27) { - lbl_1_bss_28 = arg0->unk110 & 0x2; - } - } - } + float temp_f31; + float temp_f30; + float temp_f27; + Work8F68 *temp_r31; + + if ((arg0->unkE8 & 0x4) && lbl_1_bss_28 < 0) { + temp_r31 = fn_1_4DF0(arg0->unk110 ^ 1); + if (temp_r31->unkE8 & 0x4) { + temp_f31 = arg0->unk4.x - temp_r31->unk4.x; + temp_f30 = arg0->unk4.z - temp_r31->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if ((1.5f * (arg0->unk54 + temp_r31->unk54)) >= temp_f27) { + lbl_1_bss_28 = arg0->unk110 & 0x2; + } + } + } } void fn_1_50AC(Work8F68 *arg0, omObjData *arg1) { - float temp_f31; - float temp_f30; - float temp_f27; - Work3284 *temp_r30; - s32 temp_r28; - omObjData *temp_r27; - if(arg0->unkE8 & 0x2) { - return; - } - for(temp_r28=0; temp_r28<4; temp_r28++) { - if((arg0->unk110 & 0x2) != (lbl_1_bss_19C[temp_r28]->work[0] & 0x2)) { - continue; - } - temp_r30 = lbl_1_bss_19C[temp_r28]->data; - if(temp_r30->unk18 & 0x1) { - continue; - } - temp_f31 = temp_r30->unk0.x-arg0->unk4.x; - temp_f30 = temp_r30->unk0.z-arg0->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(50+arg0->unk54 >= temp_f27) { - omVibrate(arg0->unk114, 12, 6, 6); - arg0->unk9C = 2002; - arg0->unk5C = 0; - arg0->unkE8 |= 0x2; - arg0->unkE8 &= ~0x10; - arg0->unk28 = temp_r30->unk0; - arg0->unkA4 = lbl_1_bss_2C[arg0->unk110 >> 1]++; - arg0->unkA0 = (arg0->unk110 & 0x2)+arg0->unkA4; - Hu3DModelAttrReset(arg1->model[0], 0x40000001); - if(!arg0->unkA4) { - arg0->unkA8 = 5; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0, 10, 0); - HuAudFXPlay(1642); - } else { - arg0->unkA8 = 6; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[6], 0, 10, 0); - HuAudFXPlay(1643); - } - temp_r27 = lbl_1_bss_1A0[arg0->unkA0]; - omSetTra(temp_r27, arg0->unk28.x, arg0->unk28.y, arg0->unk28.z); - Hu3DModelAttrReset(temp_r27->model[0], 1); - - temp_r30->unk18 |= 0x1; - Hu3DModelAttrSet(lbl_1_bss_19C[temp_r28]->model[0], 1); - Hu3DModelAttrReset(lbl_1_bss_19C[temp_r28]->model[1], 1); - break; - } - } + float temp_f31; + float temp_f30; + float temp_f27; + Work3284 *temp_r30; + s32 temp_r28; + omObjData *temp_r27; + if (arg0->unkE8 & 0x2) { + return; + } + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + if ((arg0->unk110 & 0x2) != (lbl_1_bss_19C[temp_r28]->work[0] & 0x2)) { + continue; + } + temp_r30 = lbl_1_bss_19C[temp_r28]->data; + if (temp_r30->unk18 & 0x1) { + continue; + } + temp_f31 = temp_r30->unk0.x - arg0->unk4.x; + temp_f30 = temp_r30->unk0.z - arg0->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (50 + arg0->unk54 >= temp_f27) { + omVibrate(arg0->unk114, 12, 6, 6); + arg0->unk9C = 2002; + arg0->unk5C = 0; + arg0->unkE8 |= 0x2; + arg0->unkE8 &= ~0x10; + arg0->unk28 = temp_r30->unk0; + arg0->unkA4 = lbl_1_bss_2C[arg0->unk110 >> 1]++; + arg0->unkA0 = (arg0->unk110 & 0x2) + arg0->unkA4; + Hu3DModelAttrReset(arg1->model[0], 0x40000001); + if (!arg0->unkA4) { + arg0->unkA8 = 5; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0, 10, 0); + HuAudFXPlay(1642); + } + else { + arg0->unkA8 = 6; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[6], 0, 10, 0); + HuAudFXPlay(1643); + } + temp_r27 = lbl_1_bss_1A0[arg0->unkA0]; + omSetTra(temp_r27, arg0->unk28.x, arg0->unk28.y, arg0->unk28.z); + Hu3DModelAttrReset(temp_r27->model[0], 1); + + temp_r30->unk18 |= 0x1; + Hu3DModelAttrSet(lbl_1_bss_19C[temp_r28]->model[0], 1); + Hu3DModelAttrReset(lbl_1_bss_19C[temp_r28]->model[1], 1); + break; + } + } } void fn_1_54BC(Work8F68 *arg0, omObjData *arg1) { - float temp_f31; - float temp_f30; - float temp_f29; - Vec sp14; - Vec sp8; - omObjData *temp_r29; - - arg0->unk5C++; - temp_f31 = arg0->unk5C/50; - if(1.0f <= temp_f31) { - temp_f31 = 1.0f; - } - fn_1_1D18(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), &sp14); - fn_1_11F4(temp_f31, &arg0->unk28, &sp14, &sp8); - sp8.y += sind(180.0f*temp_f31)*100; - temp_r29 = lbl_1_bss_1A0[arg0->unkA0]; - omSetTra(temp_r29, sp8.x, sp8.y, sp8.z); - (void)temp_f31; - if(80.0f <= arg0->unk5C++) { - arg0->unk9C = 2001; - arg0->unkE8 |= 0x4; - arg0->unkA8 = 0; - omSetTra(temp_r29, 0, 0, 0); - Hu3DModelHookSet(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), temp_r29->model[0]); - if(arg0->unkA4 == 0) { - arg0->unkAC = 7; - } else { - arg0->unkAC = 9; - } - Hu3DModelAttrSet(arg1->model[0], 0x40000201); - Hu3DMotionSet(arg1->model[0], arg1->motion[0]); - Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); - } + float temp_f31; + float temp_f30; + float temp_f29; + Vec sp14; + Vec sp8; + omObjData *temp_r29; + + arg0->unk5C++; + temp_f31 = arg0->unk5C / 50; + if (1.0f <= temp_f31) { + temp_f31 = 1.0f; + } + fn_1_1D18(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), &sp14); + fn_1_11F4(temp_f31, &arg0->unk28, &sp14, &sp8); + sp8.y += sind(180.0f * temp_f31) * 100; + temp_r29 = lbl_1_bss_1A0[arg0->unkA0]; + omSetTra(temp_r29, sp8.x, sp8.y, sp8.z); + (void)temp_f31; + if (80.0f <= arg0->unk5C++) { + arg0->unk9C = 2001; + arg0->unkE8 |= 0x4; + arg0->unkA8 = 0; + omSetTra(temp_r29, 0, 0, 0); + Hu3DModelHookSet(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), temp_r29->model[0]); + if (arg0->unkA4 == 0) { + arg0->unkAC = 7; + } + else { + arg0->unkAC = 9; + } + Hu3DModelAttrSet(arg1->model[0], 0x40000201); + Hu3DMotionSet(arg1->model[0], arg1->motion[0]); + Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); + } } s32 fn_1_583C(Work8F68 *arg0, s32 arg1) { - s32 temp_r31; - s32 temp_r29; - s32 temp_r27; - s32 temp_r26; - if(arg0->unkE8 & 0x10) { - return arg1; - } - temp_r29 = 0; - temp_r31 = arg1; - if(arg0->unk8C >= 0) { - arg0->unk88 = -1; - temp_r31 = frandmod(lbl_1_bss_190->unk1C); - do { - temp_r29++; - if(lbl_1_bss_190->unk1C <= temp_r29) { - temp_r31 = frandmod(lbl_1_bss_190->unk1C); - } else { - temp_r27 = temp_r31/32; - temp_r26 = temp_r31%32; - if((1 << temp_r26) & arg0->unk94[temp_r27]) { - temp_r31 = (temp_r31+1)%lbl_1_bss_190->unk1C; - } - } - } while(temp_r31 == arg1); - } - - return temp_r31; + s32 temp_r31; + s32 temp_r29; + s32 temp_r27; + s32 temp_r26; + if (arg0->unkE8 & 0x10) { + return arg1; + } + temp_r29 = 0; + temp_r31 = arg1; + if (arg0->unk8C >= 0) { + arg0->unk88 = -1; + temp_r31 = frandmod(lbl_1_bss_190->unk1C); + do { + temp_r29++; + if (lbl_1_bss_190->unk1C <= temp_r29) { + temp_r31 = frandmod(lbl_1_bss_190->unk1C); + } + else { + temp_r27 = temp_r31 / 32; + temp_r26 = temp_r31 % 32; + if ((1 << temp_r26) & arg0->unk94[temp_r27]) { + temp_r31 = (temp_r31 + 1) % lbl_1_bss_190->unk1C; + } + } + } while (temp_r31 == arg1); + } + + return temp_r31; } void fn_1_595C(Work8F68 *arg0, Work8F68 *arg1) { - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - Work3284 *temp_r26; - s32 temp_r24; - Data1340SubStruct *temp_r23; - - if(!(arg0->unkE8 & 0x10)) { - fn_1_2950(arg0); - if(arg0->unkEC >= 0) { - temp_r27 = 0; - temp_r23 = &lbl_1_bss_190->unk20[arg0->unkEC]; - for(temp_r28=0; temp_r28<4; temp_r28++) { - temp_r24 = temp_r23->unk8[temp_r28]; - if(temp_r24 < 0) { - break; - } - if(arg0->unkE8 & 0x2) { - if(temp_r24 == arg1->unkEC) { - temp_r27 = 1; - } - } else { - for(temp_r29=0; temp_r29<4; temp_r29++) { - if((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { - temp_r26 = lbl_1_bss_19C[temp_r29]->data; - if(!(temp_r26->unk18 & 0x1)) { - if(temp_r24 == temp_r26->unk14) { - temp_r27 = 1; - } - } - } - } - } - if(temp_r27 != 0) { - break; - } - } - if(temp_r27 != 0) { - arg0->unkF0 = -1; - arg0->unkE8 |= 0x10; - } - } - } + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + Work3284 *temp_r26; + s32 temp_r24; + Data1340SubStruct *temp_r23; + + if (!(arg0->unkE8 & 0x10)) { + fn_1_2950(arg0); + if (arg0->unkEC >= 0) { + temp_r27 = 0; + temp_r23 = &lbl_1_bss_190->unk20[arg0->unkEC]; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + temp_r24 = temp_r23->unk8[temp_r28]; + if (temp_r24 < 0) { + break; + } + if (arg0->unkE8 & 0x2) { + if (temp_r24 == arg1->unkEC) { + temp_r27 = 1; + } + } + else { + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if ((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { + temp_r26 = lbl_1_bss_19C[temp_r29]->data; + if (!(temp_r26->unk18 & 0x1)) { + if (temp_r24 == temp_r26->unk14) { + temp_r27 = 1; + } + } + } + } + } + if (temp_r27 != 0) { + break; + } + } + if (temp_r27 != 0) { + arg0->unkF0 = -1; + arg0->unkE8 |= 0x10; + } + } + } } s32 fn_1_5CDC(Work8F68 *arg0) { - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - Work3284 *temp_r27; - s32 temp_r24; - temp_r28 = -1; - temp_r24 = 65535; - arg0->unk88 = -1; - for(temp_r29=0; temp_r29<4; temp_r29++) { - if((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { - temp_r27 = lbl_1_bss_19C[temp_r29]->data; - if(temp_r27->unk18 & 0x1) { - continue; - } - arg0->unkF0 = temp_r27->unk14; - fn_1_2E14(arg0); - if(temp_r24 > arg0->unk78) { - temp_r28 = temp_r27->unk14; - temp_r24 = arg0->unk78; - arg0->unk88 = temp_r29; - } - } - } - temp_r28 = fn_1_583C(arg0, temp_r28); - return temp_r28; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + Work3284 *temp_r27; + s32 temp_r24; + temp_r28 = -1; + temp_r24 = 65535; + arg0->unk88 = -1; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if ((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { + temp_r27 = lbl_1_bss_19C[temp_r29]->data; + if (temp_r27->unk18 & 0x1) { + continue; + } + arg0->unkF0 = temp_r27->unk14; + fn_1_2E14(arg0); + if (temp_r24 > arg0->unk78) { + temp_r28 = temp_r27->unk14; + temp_r24 = arg0->unk78; + arg0->unk88 = temp_r29; + } + } + } + temp_r28 = fn_1_583C(arg0, temp_r28); + return temp_r28; } void fn_1_5F44(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f24; - float temp_f23; - - Vec spC4; - Work3284 *sp78; - - Work8F68 *temp_r28; - s32 temp_r18; - if(NULL == arg0->unk0) { - return; - } - temp_r28 = fn_1_4DF0(arg0->unk110^1); - arg0->unk90--; - if(0.0f < arg0->unk90) { - return; - } - if(arg0->unk100 > 30 || arg0->unk10C > 30) { - arg0->unk90 = 30; - if(arg0->unkE8 & 0x2) { - arg0->unk90 *= 2.5f; - } - } - arg0->unk84 -= 1.0f; - if(0.0f > arg0->unk84) { - arg0->unk80 -= 1.0f; - if(0.0f > arg0->unk80) { - arg0->unk80 = ((arg0->unk0->unk4/2)*frandf())+arg0->unk0->unk4; - arg0->unk84 = ((arg0->unk0->unk8/2)*frandf())+arg0->unk0->unk8; - } - } - if(arg0->unkF0 >= 0) { - if(arg0->unkE8 & 0x2) { - if(arg0->unk8C >= 0) { - if(arg0->unkE8 & 0x8) { - arg0->unkF0 = -1; - } - } else { - if(arg0->unkF0 != temp_r28->unkEC) { - arg0->unkF0 = -1; - } - } - } else { - if(arg0->unk88 >= 0) { - sp78 = lbl_1_bss_19C[arg0->unk88]->data; - if(sp78->unk18 & 0x1) { - arg0->unkF0 = -1; - } - } else { - if(arg0->unkE8 & 0x8) { - arg0->unkF0 = -1; - } - } - } - if(arg0->unk100 > 30) { - arg0->unkF0 = -1; - } - if(arg0->unk104 > 30) { - arg0->unkF0 = -1; - } - if(arg0->unk10C > 30) { - arg0->unkF0 = -1; - } - } - temp_r18 = -1; - if(arg0->unkF0 < 0) { - if(arg0->unkE8 & 0x2) { - arg0->unkF0 = fn_1_583C(arg0, temp_r28->unkEC); - } else { - arg0->unkF0 = fn_1_5CDC(arg0); - } - temp_r18 = arg0->unkF0; - arg0->unkE8 &= ~0x8; - fn_1_2E14(arg0); - fn_1_2EEC(arg0); - } - - if((arg0->unkE8 & 0x8) && (arg0->unkE8 & 0x2)) { - spC4 = temp_r28->unk4; - } else { - if(NULL == arg0->unk74) { - if(temp_r18 < 0) { - arg0->unkE8 &= ~0x8; - arg0->unkF0 = frandmod(lbl_1_bss_190->unk1C); - fn_1_2E14(arg0); - fn_1_2EEC(arg0); - return; - } else { - spC4 = lbl_1_bss_190->unk20[temp_r18].unk18; - } - } else { - spC4 = lbl_1_bss_190->unk20[arg0->unk74[arg0->unk7C]].unk18; - } - } - temp_f31 = spC4.x-arg0->unk4.x; - temp_f30 = spC4.z-arg0->unk4.z; - temp_f24 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(10.0f <= temp_f24) { - temp_f31 /= temp_f24; - temp_f30 /= temp_f24; - } else { - temp_f31 = 0; - temp_f30 = 0; - } - if(150.0f > temp_f24) { - fn_1_595C(arg0, temp_r28); - arg0->unk7C++; - if(arg0->unk78 <= arg0->unk7C) { - arg0->unk7C = arg0->unk78-1; - arg0->unkE8 |= 8; - } - } - temp_f23 = arg0->unk0->unk0; - arg0->unkF4 = (72.0f*temp_f31)*temp_f23; - arg0->unkF8 = (72.0f*-temp_f30)*temp_f23; - if(ABS(arg0->unkF4) > 72) { - arg0->unkF4 = ((arg0->unkF4 < 0) ? -1 : 1)*72; - } - if(ABS(arg0->unkF8) > 72) { - arg0->unkF8 = ((arg0->unkF8 < 0) ? -1 : 1)*72; - } + float temp_f31; + float temp_f30; + float temp_f24; + float temp_f23; + + Vec spC4; + Work3284 *sp78; + + Work8F68 *temp_r28; + s32 temp_r18; + if (NULL == arg0->unk0) { + return; + } + temp_r28 = fn_1_4DF0(arg0->unk110 ^ 1); + arg0->unk90--; + if (0.0f < arg0->unk90) { + return; + } + if (arg0->unk100 > 30 || arg0->unk10C > 30) { + arg0->unk90 = 30; + if (arg0->unkE8 & 0x2) { + arg0->unk90 *= 2.5f; + } + } + arg0->unk84 -= 1.0f; + if (0.0f > arg0->unk84) { + arg0->unk80 -= 1.0f; + if (0.0f > arg0->unk80) { + arg0->unk80 = ((arg0->unk0->unk4 / 2) * frandf()) + arg0->unk0->unk4; + arg0->unk84 = ((arg0->unk0->unk8 / 2) * frandf()) + arg0->unk0->unk8; + } + } + if (arg0->unkF0 >= 0) { + if (arg0->unkE8 & 0x2) { + if (arg0->unk8C >= 0) { + if (arg0->unkE8 & 0x8) { + arg0->unkF0 = -1; + } + } + else { + if (arg0->unkF0 != temp_r28->unkEC) { + arg0->unkF0 = -1; + } + } + } + else { + if (arg0->unk88 >= 0) { + sp78 = lbl_1_bss_19C[arg0->unk88]->data; + if (sp78->unk18 & 0x1) { + arg0->unkF0 = -1; + } + } + else { + if (arg0->unkE8 & 0x8) { + arg0->unkF0 = -1; + } + } + } + if (arg0->unk100 > 30) { + arg0->unkF0 = -1; + } + if (arg0->unk104 > 30) { + arg0->unkF0 = -1; + } + if (arg0->unk10C > 30) { + arg0->unkF0 = -1; + } + } + temp_r18 = -1; + if (arg0->unkF0 < 0) { + if (arg0->unkE8 & 0x2) { + arg0->unkF0 = fn_1_583C(arg0, temp_r28->unkEC); + } + else { + arg0->unkF0 = fn_1_5CDC(arg0); + } + temp_r18 = arg0->unkF0; + arg0->unkE8 &= ~0x8; + fn_1_2E14(arg0); + fn_1_2EEC(arg0); + } + + if ((arg0->unkE8 & 0x8) && (arg0->unkE8 & 0x2)) { + spC4 = temp_r28->unk4; + } + else { + if (NULL == arg0->unk74) { + if (temp_r18 < 0) { + arg0->unkE8 &= ~0x8; + arg0->unkF0 = frandmod(lbl_1_bss_190->unk1C); + fn_1_2E14(arg0); + fn_1_2EEC(arg0); + return; + } + else { + spC4 = lbl_1_bss_190->unk20[temp_r18].unk18; + } + } + else { + spC4 = lbl_1_bss_190->unk20[arg0->unk74[arg0->unk7C]].unk18; + } + } + temp_f31 = spC4.x - arg0->unk4.x; + temp_f30 = spC4.z - arg0->unk4.z; + temp_f24 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (10.0f <= temp_f24) { + temp_f31 /= temp_f24; + temp_f30 /= temp_f24; + } + else { + temp_f31 = 0; + temp_f30 = 0; + } + if (150.0f > temp_f24) { + fn_1_595C(arg0, temp_r28); + arg0->unk7C++; + if (arg0->unk78 <= arg0->unk7C) { + arg0->unk7C = arg0->unk78 - 1; + arg0->unkE8 |= 8; + } + } + temp_f23 = arg0->unk0->unk0; + arg0->unkF4 = (72.0f * temp_f31) * temp_f23; + arg0->unkF8 = (72.0f * -temp_f30) * temp_f23; + if (ABS(arg0->unkF4) > 72) { + arg0->unkF4 = ((arg0->unkF4 < 0) ? -1 : 1) * 72; + } + if (ABS(arg0->unkF8) > 72) { + arg0->unkF8 = ((arg0->unkF8 < 0) ? -1 : 1) * 72; + } } void fn_1_7098(s32 arg0, float *arg1) { - Bss130Struct *temp_r30; - Hu3DCameraViewportSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3], 0, 1); - Hu3DCameraScissorSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3]); - temp_r30 = &lbl_1_bss_130[arg0]; - temp_r30->unk8 = 0.9f*(arg1[0]+(arg1[2]/2)); - temp_r30->unkC = arg1[1]+(arg1[3]/2); - temp_r30->unk10 = arg1[2]/316; - temp_r30->unk14 = arg1[3]/236; - + Bss130Struct *temp_r30; + Hu3DCameraViewportSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3], 0, 1); + Hu3DCameraScissorSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3]); + temp_r30 = &lbl_1_bss_130[arg0]; + temp_r30->unk8 = 0.9f * (arg1[0] + (arg1[2] / 2)); + temp_r30->unkC = arg1[1] + (arg1[3] / 2); + temp_r30->unk10 = arg1[2] / 316; + temp_r30->unk14 = arg1[3] / 236; } void fn_1_7D38(omObjData *object); void fn_1_71F0(omObjData *object) { - Work8F68 *temp_r31; - s32 temp_r29; - temp_r31 = object->data; - - if(lbl_1_bss_1AC->work[0] == 1007) { - temp_r31->unkE8 &= ~0x1; - espDispOff(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - espDispOff(temp_r31->unkB8[temp_r29]); - espDispOff(temp_r31->unkC8[temp_r29][0]); - espDispOff(temp_r31->unkC8[temp_r29][1]); - } - if(temp_r31->unk9C == 2001) { - temp_r31->unk9C = 2003; - fn_1_40C0(temp_r31, object, 0); - if(lbl_1_bss_28 == (temp_r31->unk110 & 0x2)) { - GWPlayerCoinWinSet(temp_r31->unk114, 10); - } - object->func = fn_1_7D38; - return; - } - - } - if(GWPlayerCfg[temp_r31->unk114].iscom) { - temp_r31->unkF4 = 0; - temp_r31->unkF8 = 0; - temp_r31->unkFC = 0; - fn_1_5F44(temp_r31); - } else { - temp_r31->unkF4 = HuPadStkX[temp_r31->unk11C]; - temp_r31->unkF8 = HuPadStkY[temp_r31->unk11C]; - temp_r31->unkFC = HuPadBtnDown[temp_r31->unk11C]; - } - if(lbl_1_bss_1AC->work[0] < 1007 && (temp_r31->unkFC & (PAD_BUTTON_X|PAD_BUTTON_Y))) { - if(temp_r31->unkE8 & 0x1) { - temp_r31->unkE8 &= ~0x1; - espDispOff(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - espDispOff(temp_r31->unkB8[temp_r29]); - espDispOff(temp_r31->unkC8[temp_r29][0]); - espDispOff(temp_r31->unkC8[temp_r29][1]); - } - } else { - temp_r31->unkE8 |= 0x1; - espDispOn(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - espDispOn(temp_r31->unkB8[temp_r29]); - } - } - } - switch(temp_r31->unk9C) { - case 2001: - fn_1_4224(temp_r31, object); - fn_1_50AC(temp_r31, object); - fn_1_4E50(temp_r31); - break; - - case 2002: - fn_1_54BC(temp_r31, object); - break; - - default: - OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); - break; - } - if(temp_r31->unk104 == 0 && temp_r31->unk10C == 0) { - temp_r31->unk100 = 0; - } - lbl_1_bss_C8[temp_r31->unk110].x = temp_r31->unk4.x+(lbl_1_bss_120*sind(lbl_1_bss_11C)); - lbl_1_bss_C8[temp_r31->unk110].y = temp_r31->unk4.y+lbl_1_bss_118; - lbl_1_bss_C8[temp_r31->unk110].z = temp_r31->unk4.z+(lbl_1_bss_120*cosd(lbl_1_bss_11C)); - lbl_1_bss_68[temp_r31->unk110].x = temp_r31->unk4.x; - lbl_1_bss_68[temp_r31->unk110].y = temp_r31->unk4.y; - lbl_1_bss_68[temp_r31->unk110].z = temp_r31->unk4.z; - Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31->unk110], &lbl_1_bss_C8[temp_r31->unk110], &lbl_1_data_FE0, &lbl_1_bss_68[temp_r31->unk110]); - temp_r31->unk60 = temp_r31->unk50; - omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); - omSetRot(object, 0, temp_r31->unk50, 0); - + Work8F68 *temp_r31; + s32 temp_r29; + temp_r31 = object->data; + + if (lbl_1_bss_1AC->work[0] == 1007) { + temp_r31->unkE8 &= ~0x1; + espDispOff(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + espDispOff(temp_r31->unkB8[temp_r29]); + espDispOff(temp_r31->unkC8[temp_r29][0]); + espDispOff(temp_r31->unkC8[temp_r29][1]); + } + if (temp_r31->unk9C == 2001) { + temp_r31->unk9C = 2003; + fn_1_40C0(temp_r31, object, 0); + if (lbl_1_bss_28 == (temp_r31->unk110 & 0x2)) { + GWPlayerCoinWinSet(temp_r31->unk114, 10); + } + object->func = fn_1_7D38; + return; + } + } + if (GWPlayerCfg[temp_r31->unk114].iscom) { + temp_r31->unkF4 = 0; + temp_r31->unkF8 = 0; + temp_r31->unkFC = 0; + fn_1_5F44(temp_r31); + } + else { + temp_r31->unkF4 = HuPadStkX[temp_r31->unk11C]; + temp_r31->unkF8 = HuPadStkY[temp_r31->unk11C]; + temp_r31->unkFC = HuPadBtnDown[temp_r31->unk11C]; + } + if (lbl_1_bss_1AC->work[0] < 1007 && (temp_r31->unkFC & (PAD_BUTTON_X | PAD_BUTTON_Y))) { + if (temp_r31->unkE8 & 0x1) { + temp_r31->unkE8 &= ~0x1; + espDispOff(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + espDispOff(temp_r31->unkB8[temp_r29]); + espDispOff(temp_r31->unkC8[temp_r29][0]); + espDispOff(temp_r31->unkC8[temp_r29][1]); + } + } + else { + temp_r31->unkE8 |= 0x1; + espDispOn(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + espDispOn(temp_r31->unkB8[temp_r29]); + } + } + } + switch (temp_r31->unk9C) { + case 2001: + fn_1_4224(temp_r31, object); + fn_1_50AC(temp_r31, object); + fn_1_4E50(temp_r31); + break; + + case 2002: + fn_1_54BC(temp_r31, object); + break; + + default: + OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); + break; + } + if (temp_r31->unk104 == 0 && temp_r31->unk10C == 0) { + temp_r31->unk100 = 0; + } + lbl_1_bss_C8[temp_r31->unk110].x = temp_r31->unk4.x + (lbl_1_bss_120 * sind(lbl_1_bss_11C)); + lbl_1_bss_C8[temp_r31->unk110].y = temp_r31->unk4.y + lbl_1_bss_118; + lbl_1_bss_C8[temp_r31->unk110].z = temp_r31->unk4.z + (lbl_1_bss_120 * cosd(lbl_1_bss_11C)); + lbl_1_bss_68[temp_r31->unk110].x = temp_r31->unk4.x; + lbl_1_bss_68[temp_r31->unk110].y = temp_r31->unk4.y; + lbl_1_bss_68[temp_r31->unk110].z = temp_r31->unk4.z; + Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31->unk110], &lbl_1_bss_C8[temp_r31->unk110], &lbl_1_data_FE0, &lbl_1_bss_68[temp_r31->unk110]); + temp_r31->unk60 = temp_r31->unk50; + omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); + omSetRot(object, 0, temp_r31->unk50, 0); } void fn_1_7D38(omObjData *object) { - float temp_f27; - - Mtx sp74; - Vec sp8; + float temp_f27; - Work8F68 *temp_r31 = object->data; + Mtx sp74; + Vec sp8; - switch(temp_r31->unk9C) { - case 2000: - if(lbl_1_bss_1AC->work[0] >= 1006) { - temp_r31->unk9C++; - object->func = fn_1_71F0; - } - break; - - case 2003: - if(lbl_1_bss_1AC->work[0] == 1010) { - Hu3DMotionOverlayReset(object->model[0]); - if(lbl_1_bss_28 >= 0 && (temp_r31->unk110 == lbl_1_bss_28 || temp_r31->unk110 == (lbl_1_bss_28^1))) { - temp_r31->unk9C = 2004; - temp_r31->unk5C = 0; - temp_r31->unkE8 |= 0x20; - fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &temp_r31->unk28); - Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), sp74); - Hu3DMtxRotGet(sp74, &temp_r31->unk40); - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0)); - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk28.x, temp_r31->unk28.y , temp_r31->unk28.z); - if(temp_r31->unkA4 == 0) { - temp_r31->unk4C = lbl_1_bss_110; - Hu3DMotionSet(object->model[0], object->motion[5]); - } else { - temp_r31->unk4C = lbl_1_bss_110+180; - temp_r31->unk40.y = lbl_1_bss_110+180; - Hu3DMotionSet(object->model[0], object->motion[6]); - } - Hu3DMotionTimeSet(object->model[0], Hu3DMotionMaxTimeGet(object->model[0])-1); - Hu3DModelAttrReset(object->model[0], 0x40000003); - Hu3DModelAttrSet(object->model[0], 0x40000004); - temp_r31->unk40.x = 0; - temp_r31->unk40.z = 0; - omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); - temp_r31->unk4C = fmod(temp_r31->unk4C-temp_r31->unk40.y, 360); - if(0.0f > temp_r31->unk4C) { - temp_r31->unk4C += 360.0f; - } - if(180.0f < temp_r31->unk4C) { - temp_r31->unk4C -= 360.0f; - } - temp_r31->unk4C /= 60.0f; - } else { - temp_r31->unk9C = 2008; - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); - } - } - if(lbl_1_bss_1AC->work[0] == 1012) { - temp_r31->unk9C = 2008; - Hu3DMotionOverlayReset(object->model[0]); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); - } - if(temp_r31->unk9C == 2008 && temp_r31->unkA0 >= 0) { - Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 1); - fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &sp8); - temp_r31->unk70 = Hu3DParManLink(lbl_1_bss_8, &lbl_1_data_13E8); - temp_r31->unk6C = 0; - Hu3DParManPosSet(temp_r31->unk70, sp8.x, sp8.y, sp8.z); - Hu3DParManAttrReset(temp_r31->unk70, 1); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(temp_r31->unk70), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(temp_r31->unk70), 6); - } - break; - - case 2004: - temp_r31->unk5C++; - fn_1_11F4(temp_r31->unk5C/60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); - temp_r31->unk34.y += sind(temp_r31->unk5C*3.0f)*100; - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); - temp_r31->unk40.y += temp_r31->unk4C; - omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); - if(60.0f <= temp_r31->unk5C) { - temp_r31->unk9C++; - temp_r31->unk5C = 0; - temp_r31->unk28 = temp_r31->unk34; - if(temp_r31->unkA4 == 1) { - lbl_1_bss_F8[1].x -= 10*sind(lbl_1_bss_110); - lbl_1_bss_F8[1].z -= 10*cosd(lbl_1_bss_110); - } else { - sp8.x = (30*sind(lbl_1_bss_110))+temp_r31->unk34.x; - sp8.y = 30+temp_r31->unk34.y; - sp8.z = (30*cosd(lbl_1_bss_110))+temp_r31->unk34.z; - Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0); - Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); - Hu3DModelRotSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0, lbl_1_bss_110, 0); - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 1); - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000002); - Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000001); - } - } - break; - - case 2005: - temp_r31->unk5C++; - fn_1_11F4(temp_r31->unk5C/60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); - if(temp_r31->unkA4 == 0) { - temp_f27 = temp_r31->unk5C/20; - if(1.0f <= temp_f27) { - temp_f27 = 1.0f; - } - Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], temp_f27); - } - if(60.0f <= temp_r31->unk5C) { - temp_r31->unk9C++; - temp_r31->unk5C = 0; - if(temp_r31->unkA4 == 1) { - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); - Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); - HuAudFXPlay(1649); - } - } - - break; - - - case 2006: - temp_r31->unk5C++; - if(20.0f == temp_r31->unk5C) { - temp_r31->unk60 = temp_r31->unk64; - if(temp_r31->unkA4 == 0) { - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); - Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); - HuAudFXPlay(1648); - } - } - if(30.0f < temp_r31->unk5C && Hu3DMotionEndCheck(lbl_1_bss_1A0[temp_r31->unkA0 & 0x2]->model[0])) { - temp_r31->unk9C++; - lbl_1_bss_1C++; - } - break; - - case 2007: - if((temp_r31->unk110 & 0x1) < lbl_1_bss_20) { - temp_r31->unk9C = 2008; - Hu3DModelAttrReset(object->model[0], 0x40000004); - Hu3DMotionShiftSet(object->model[0], object->motion[3], 0, 8, 0); - } - break; - - case 2008: - if(temp_r31->unk70 >= 0) { - temp_r31->unk6C++; - if(10.0f == temp_r31->unk6C) { - Hu3DParManAttrSet(temp_r31->unk70, 1); - } - } - break; - - default: - OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); - break; - - } - if(temp_r31->unk9C >= 2005 && (temp_r31->unkE8 & 0x20)) { - temp_r31->unk68 += 4.0f; - sp8 = temp_r31->unk34; - sp8.y += sind(temp_r31->unk68)*5.0; - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], sp8.x, sp8.y, sp8.z); - sp8.x = temp_r31->unk34.x+(30.0*sind(lbl_1_bss_110)); - sp8.y = (temp_r31->unk34.y+30)+(5.0*sind(temp_r31->unk68)); - sp8.z = temp_r31->unk34.z+(30.0*cosd(lbl_1_bss_110)); - Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); - } - if(temp_r31->unk9C >= 2003) { - temp_r31->unk50 = fn_1_1E20(temp_r31->unk50, temp_r31->unk60, 0.1f); - } - omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); - omSetRot(object, 0, temp_r31->unk50, 0); + Work8F68 *temp_r31 = object->data; + + switch (temp_r31->unk9C) { + case 2000: + if (lbl_1_bss_1AC->work[0] >= 1006) { + temp_r31->unk9C++; + object->func = fn_1_71F0; + } + break; + + case 2003: + if (lbl_1_bss_1AC->work[0] == 1010) { + Hu3DMotionOverlayReset(object->model[0]); + if (lbl_1_bss_28 >= 0 && (temp_r31->unk110 == lbl_1_bss_28 || temp_r31->unk110 == (lbl_1_bss_28 ^ 1))) { + temp_r31->unk9C = 2004; + temp_r31->unk5C = 0; + temp_r31->unkE8 |= 0x20; + fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &temp_r31->unk28); + Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), sp74); + Hu3DMtxRotGet(sp74, &temp_r31->unk40); + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0)); + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk28.x, temp_r31->unk28.y, temp_r31->unk28.z); + if (temp_r31->unkA4 == 0) { + temp_r31->unk4C = lbl_1_bss_110; + Hu3DMotionSet(object->model[0], object->motion[5]); + } + else { + temp_r31->unk4C = lbl_1_bss_110 + 180; + temp_r31->unk40.y = lbl_1_bss_110 + 180; + Hu3DMotionSet(object->model[0], object->motion[6]); + } + Hu3DMotionTimeSet(object->model[0], Hu3DMotionMaxTimeGet(object->model[0]) - 1); + Hu3DModelAttrReset(object->model[0], 0x40000003); + Hu3DModelAttrSet(object->model[0], 0x40000004); + temp_r31->unk40.x = 0; + temp_r31->unk40.z = 0; + omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + temp_r31->unk4C = fmod(temp_r31->unk4C - temp_r31->unk40.y, 360); + if (0.0f > temp_r31->unk4C) { + temp_r31->unk4C += 360.0f; + } + if (180.0f < temp_r31->unk4C) { + temp_r31->unk4C -= 360.0f; + } + temp_r31->unk4C /= 60.0f; + } + else { + temp_r31->unk9C = 2008; + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + } + } + if (lbl_1_bss_1AC->work[0] == 1012) { + temp_r31->unk9C = 2008; + Hu3DMotionOverlayReset(object->model[0]); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + } + if (temp_r31->unk9C == 2008 && temp_r31->unkA0 >= 0) { + Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 1); + fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &sp8); + temp_r31->unk70 = Hu3DParManLink(lbl_1_bss_8, &lbl_1_data_13E8); + temp_r31->unk6C = 0; + Hu3DParManPosSet(temp_r31->unk70, sp8.x, sp8.y, sp8.z); + Hu3DParManAttrReset(temp_r31->unk70, 1); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(temp_r31->unk70), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(temp_r31->unk70), 6); + } + break; + + case 2004: + temp_r31->unk5C++; + fn_1_11F4(temp_r31->unk5C / 60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); + temp_r31->unk34.y += sind(temp_r31->unk5C * 3.0f) * 100; + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); + temp_r31->unk40.y += temp_r31->unk4C; + omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + if (60.0f <= temp_r31->unk5C) { + temp_r31->unk9C++; + temp_r31->unk5C = 0; + temp_r31->unk28 = temp_r31->unk34; + if (temp_r31->unkA4 == 1) { + lbl_1_bss_F8[1].x -= 10 * sind(lbl_1_bss_110); + lbl_1_bss_F8[1].z -= 10 * cosd(lbl_1_bss_110); + } + else { + sp8.x = (30 * sind(lbl_1_bss_110)) + temp_r31->unk34.x; + sp8.y = 30 + temp_r31->unk34.y; + sp8.z = (30 * cosd(lbl_1_bss_110)) + temp_r31->unk34.z; + Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0); + Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); + Hu3DModelRotSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0, lbl_1_bss_110, 0); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000001); + } + } + break; + + case 2005: + temp_r31->unk5C++; + fn_1_11F4(temp_r31->unk5C / 60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); + if (temp_r31->unkA4 == 0) { + temp_f27 = temp_r31->unk5C / 20; + if (1.0f <= temp_f27) { + temp_f27 = 1.0f; + } + Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], temp_f27); + } + if (60.0f <= temp_r31->unk5C) { + temp_r31->unk9C++; + temp_r31->unk5C = 0; + if (temp_r31->unkA4 == 1) { + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); + Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); + HuAudFXPlay(1649); + } + } + + break; + + case 2006: + temp_r31->unk5C++; + if (20.0f == temp_r31->unk5C) { + temp_r31->unk60 = temp_r31->unk64; + if (temp_r31->unkA4 == 0) { + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); + Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); + HuAudFXPlay(1648); + } + } + if (30.0f < temp_r31->unk5C && Hu3DMotionEndCheck(lbl_1_bss_1A0[temp_r31->unkA0 & 0x2]->model[0])) { + temp_r31->unk9C++; + lbl_1_bss_1C++; + } + break; + + case 2007: + if ((temp_r31->unk110 & 0x1) < lbl_1_bss_20) { + temp_r31->unk9C = 2008; + Hu3DModelAttrReset(object->model[0], 0x40000004); + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0, 8, 0); + } + break; + + case 2008: + if (temp_r31->unk70 >= 0) { + temp_r31->unk6C++; + if (10.0f == temp_r31->unk6C) { + Hu3DParManAttrSet(temp_r31->unk70, 1); + } + } + break; + + default: + OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); + break; + } + if (temp_r31->unk9C >= 2005 && (temp_r31->unkE8 & 0x20)) { + temp_r31->unk68 += 4.0f; + sp8 = temp_r31->unk34; + sp8.y += sind(temp_r31->unk68) * 5.0; + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], sp8.x, sp8.y, sp8.z); + sp8.x = temp_r31->unk34.x + (30.0 * sind(lbl_1_bss_110)); + sp8.y = (temp_r31->unk34.y + 30) + (5.0 * sind(temp_r31->unk68)); + sp8.z = temp_r31->unk34.z + (30.0 * cosd(lbl_1_bss_110)); + Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); + } + if (temp_r31->unk9C >= 2003) { + temp_r31->unk50 = fn_1_1E20(temp_r31->unk50, temp_r31->unk60, 0.1f); + } + omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); + omSetRot(object, 0, temp_r31->unk50, 0); } void fn_1_8F68(omObjData *object) { - Work8F68 *temp_r31; - s32 temp_r29; - s32 temp_r28; - Data1340SubStruct *temp_r23; - - temp_r31 = object->data; - temp_r31->unk118 = GWPlayerCfg[temp_r31->unk114].character; - temp_r31->unk11C = GWPlayerCfg[temp_r31->unk114].pad_idx; - temp_r31->unk9C = 2000; - temp_r31->unkA0 = -1; - temp_r31->unkA4 = -1; - temp_r31->unkE8 = 0; - temp_r31->unk70 = -1; - temp_r31->unk50 = 0; - temp_r31->unk68 = 0; - temp_r31->unkA8 = 0; - temp_r31->unkAC = -1; - temp_r31->unk54 = 65; - temp_r31->unk0 = 0; - temp_r31->unk80 = 0; - temp_r31->unk84 = 0; - temp_r31->unk74 = 0; - temp_r31->unk78 = 65535; - temp_r31->unk7C = 0; - temp_r31->unk88 = -1; - temp_r31->unk8C = -1; - temp_r31->unk90 = 0; - temp_r31->unkEC = -1; - temp_r31->unkF0 = -1; - temp_r31->unk100 = 0; - temp_r31->unk104 = 0; - temp_r31->unk10C = 0; - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31->unk94[temp_r29] = 0; - } - object->model[0] = CharModelCreate(lbl_1_data_0[temp_r31->unk118], 8); - CharModelStepTypeSet(lbl_1_data_0[temp_r31->unk118], 0); - for(temp_r29=0; temp_r29<10; temp_r29++) { - object->motion[temp_r29] = CharModelMotionCreate(lbl_1_data_0[temp_r31->unk118], lbl_1_data_1150[temp_r31->unk118][temp_r29]); - CharModelMotionSet(lbl_1_data_0[temp_r31->unk118], object->motion[temp_r29]); - } - Hu3DModelCameraSet(object->model[0], 15); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelLayerSet(object->model[0], 2); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelShadowSet(object->model[0]); - temp_r31->unk4.x = 0; - temp_r31->unk4.y = 0; - temp_r31->unk4.z = 0; - temp_r28 = temp_r31->unk110; - if(temp_r28 >= 2) { - temp_r28 ^= 1; - } - temp_r28 = (temp_r28+lbl_1_bss_34)%4; - temp_r23 = fn_1_2614(1 << temp_r28); - if(NULL != temp_r23) { - temp_r31->unk4 = temp_r23->unk18; - } - omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); - omSetRot(object, 0, temp_r31->unk50, 0); - lbl_1_bss_98[temp_r31->unk110].x = temp_r31->unk4.x; - lbl_1_bss_98[temp_r31->unk110].y = temp_r31->unk4.y+450; - lbl_1_bss_98[temp_r31->unk110].z = temp_r31->unk4.z+850; - lbl_1_bss_38[temp_r31->unk110].x = temp_r31->unk4.x; - lbl_1_bss_38[temp_r31->unk110].y = temp_r31->unk4.y; - lbl_1_bss_38[temp_r31->unk110].z = temp_r31->unk4.z; - temp_r31->unkB0 = espEntry(lbl_1_data_12D0[temp_r31->unk110], 134, 0); - espDrawNoSet(temp_r31->unkB0, 0); - lbl_1_bss_130[temp_r31->unk110].unk0 = temp_r31->unkB0; - espDispOff(temp_r31->unkB0); - espZRotSet(temp_r31->unkB0, (temp_r31->unk110 & 0x1) ? 0.0f : 180.0f); - temp_r31->unkB4 = espEntry(0x3C0031, 133, 0); - espDrawNoSet(temp_r31->unkB4, 0); - espDispOff(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r31->unkB8[temp_r29] = espEntry(lbl_1_data_1290[GWPlayerCfg[temp_r29].character], (temp_r31->unk114 == temp_r29) ? 129 : 130, 0); - espDrawNoSet(temp_r31->unkB8[temp_r29], 0); - espDispOff(temp_r31->unkB8[temp_r29]); - temp_r31->unkC8[temp_r29][0] = espEntry(lbl_1_data_1310[temp_r29], 128, 0); - espDrawNoSet(temp_r31->unkC8[temp_r29][0], 0); - espDispOff(temp_r31->unkC8[temp_r29][0]); - temp_r31->unkC8[temp_r29][1] = espEntry(0x3C003C, 128, 0); - espDrawNoSet(temp_r31->unkC8[temp_r29][1], 0); - espDispOff(temp_r31->unkC8[temp_r29][1]); - } - if(GWPlayerCfg[temp_r31->unk114].iscom) { - switch(GWPlayerCfg[temp_r31->unk114].diff) { - case 0: - temp_r31->unk0 = &lbl_1_data_13A8; - break; - - case 1: - temp_r31->unk0 = &lbl_1_data_13B8; - break; - - case 2: - temp_r31->unk0 = &lbl_1_data_13C8; - break; - - case 3: - default: - temp_r31->unk0 = &lbl_1_data_13D8; - break; - } - temp_r31->unk80 = frandf()*temp_r31->unk0->unk4; - temp_r31->unk8C = temp_r31->unk0->unkC+((temp_r31->unk0->unkC/2.0f)*frandf()); - } - CharModelVoiceEnableSet(temp_r31->unk118, object->motion[4], 0); - fn_1_2950(temp_r31); - Hu3DModelAttrReset(object->model[0], 1); - CharModelLayerSetAll2(5); - CharModelMotionDataClose(lbl_1_data_0[temp_r31->unk118]); - object->func = fn_1_7D38; + Work8F68 *temp_r31; + s32 temp_r29; + s32 temp_r28; + Data1340SubStruct *temp_r23; + + temp_r31 = object->data; + temp_r31->unk118 = GWPlayerCfg[temp_r31->unk114].character; + temp_r31->unk11C = GWPlayerCfg[temp_r31->unk114].pad_idx; + temp_r31->unk9C = 2000; + temp_r31->unkA0 = -1; + temp_r31->unkA4 = -1; + temp_r31->unkE8 = 0; + temp_r31->unk70 = -1; + temp_r31->unk50 = 0; + temp_r31->unk68 = 0; + temp_r31->unkA8 = 0; + temp_r31->unkAC = -1; + temp_r31->unk54 = 65; + temp_r31->unk0 = 0; + temp_r31->unk80 = 0; + temp_r31->unk84 = 0; + temp_r31->unk74 = 0; + temp_r31->unk78 = 65535; + temp_r31->unk7C = 0; + temp_r31->unk88 = -1; + temp_r31->unk8C = -1; + temp_r31->unk90 = 0; + temp_r31->unkEC = -1; + temp_r31->unkF0 = -1; + temp_r31->unk100 = 0; + temp_r31->unk104 = 0; + temp_r31->unk10C = 0; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31->unk94[temp_r29] = 0; + } + object->model[0] = CharModelCreate(lbl_1_data_0[temp_r31->unk118], 8); + CharModelStepTypeSet(lbl_1_data_0[temp_r31->unk118], 0); + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + object->motion[temp_r29] = CharModelMotionCreate(lbl_1_data_0[temp_r31->unk118], lbl_1_data_1150[temp_r31->unk118][temp_r29]); + CharModelMotionSet(lbl_1_data_0[temp_r31->unk118], object->motion[temp_r29]); + } + Hu3DModelCameraSet(object->model[0], 15); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelShadowSet(object->model[0]); + temp_r31->unk4.x = 0; + temp_r31->unk4.y = 0; + temp_r31->unk4.z = 0; + temp_r28 = temp_r31->unk110; + if (temp_r28 >= 2) { + temp_r28 ^= 1; + } + temp_r28 = (temp_r28 + lbl_1_bss_34) % 4; + temp_r23 = fn_1_2614(1 << temp_r28); + if (NULL != temp_r23) { + temp_r31->unk4 = temp_r23->unk18; + } + omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); + omSetRot(object, 0, temp_r31->unk50, 0); + lbl_1_bss_98[temp_r31->unk110].x = temp_r31->unk4.x; + lbl_1_bss_98[temp_r31->unk110].y = temp_r31->unk4.y + 450; + lbl_1_bss_98[temp_r31->unk110].z = temp_r31->unk4.z + 850; + lbl_1_bss_38[temp_r31->unk110].x = temp_r31->unk4.x; + lbl_1_bss_38[temp_r31->unk110].y = temp_r31->unk4.y; + lbl_1_bss_38[temp_r31->unk110].z = temp_r31->unk4.z; + temp_r31->unkB0 = espEntry(lbl_1_data_12D0[temp_r31->unk110], 134, 0); + espDrawNoSet(temp_r31->unkB0, 0); + lbl_1_bss_130[temp_r31->unk110].unk0 = temp_r31->unkB0; + espDispOff(temp_r31->unkB0); + espZRotSet(temp_r31->unkB0, (temp_r31->unk110 & 0x1) ? 0.0f : 180.0f); + temp_r31->unkB4 = espEntry(DATA_MAKE_NUM(DATADIR_M429, 0x31), 133, 0); + espDrawNoSet(temp_r31->unkB4, 0); + espDispOff(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r31->unkB8[temp_r29] = espEntry(lbl_1_data_1290[GWPlayerCfg[temp_r29].character], (temp_r31->unk114 == temp_r29) ? 129 : 130, 0); + espDrawNoSet(temp_r31->unkB8[temp_r29], 0); + espDispOff(temp_r31->unkB8[temp_r29]); + temp_r31->unkC8[temp_r29][0] = espEntry(lbl_1_data_1310[temp_r29], 128, 0); + espDrawNoSet(temp_r31->unkC8[temp_r29][0], 0); + espDispOff(temp_r31->unkC8[temp_r29][0]); + temp_r31->unkC8[temp_r29][1] = espEntry(DATA_MAKE_NUM(DATADIR_M429, 0x3C), 128, 0); + espDrawNoSet(temp_r31->unkC8[temp_r29][1], 0); + espDispOff(temp_r31->unkC8[temp_r29][1]); + } + if (GWPlayerCfg[temp_r31->unk114].iscom) { + switch (GWPlayerCfg[temp_r31->unk114].diff) { + case 0: + temp_r31->unk0 = &lbl_1_data_13A8; + break; + + case 1: + temp_r31->unk0 = &lbl_1_data_13B8; + break; + + case 2: + temp_r31->unk0 = &lbl_1_data_13C8; + break; + + case 3: + default: + temp_r31->unk0 = &lbl_1_data_13D8; + break; + } + temp_r31->unk80 = frandf() * temp_r31->unk0->unk4; + temp_r31->unk8C = temp_r31->unk0->unkC + ((temp_r31->unk0->unkC / 2.0f) * frandf()); + } + CharModelVoiceEnableSet(temp_r31->unk118, object->motion[4], 0); + fn_1_2950(temp_r31); + Hu3DModelAttrReset(object->model[0], 1); + CharModelLayerSetAll2(5); + CharModelMotionDataClose(lbl_1_data_0[temp_r31->unk118]); + object->func = fn_1_7D38; } -void fn_1_99EC(omObjData *object) -{ - -} +void fn_1_99EC(omObjData *object) { } void fn_1_99F0(omObjData *object) { - s32 temp_r30; - s32 *temp_r29; - temp_r29 = &lbl_1_data_12E0[object->work[0]][0]; - for(temp_r30=0; temp_r30<2; temp_r30++) { - object->model[temp_r30] = Hu3DModelCreateFile(*temp_r29++); - Hu3DModelCameraSet(object->model[temp_r30], 15); - Hu3DModelAttrSet(object->model[temp_r30], 1); - Hu3DModelAttrSet(object->model[temp_r30], 0x40000002); - Hu3DModelAttrReset(object->model[temp_r30], 0x40000001); - Hu3DModelLayerSet(object->model[temp_r30], 3); - Hu3DModelShadowSet(object->model[temp_r30]); - } - for(temp_r30=0; temp_r30<1; temp_r29++, temp_r30++) { - object->motion[temp_r30] = Hu3DJointMotionFile(object->model[0], temp_r29[0]); - } - Hu3DMotionSet(object->model[0], object->motion[0]); - omSetTra(object, 0, 0, 0); - omSetRot(object, 0, 0, 0); - object->func = fn_1_99EC; + s32 temp_r30; + s32 *temp_r29; + temp_r29 = &lbl_1_data_12E0[object->work[0]][0]; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + object->model[temp_r30] = Hu3DModelCreateFile(*temp_r29++); + Hu3DModelCameraSet(object->model[temp_r30], 15); + Hu3DModelAttrSet(object->model[temp_r30], 1); + Hu3DModelAttrSet(object->model[temp_r30], 0x40000002); + Hu3DModelAttrReset(object->model[temp_r30], 0x40000001); + Hu3DModelLayerSet(object->model[temp_r30], 3); + Hu3DModelShadowSet(object->model[temp_r30]); + } + for (temp_r30 = 0; temp_r30 < 1; temp_r29++, temp_r30++) { + object->motion[temp_r30] = Hu3DJointMotionFile(object->model[0], temp_r29[0]); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + omSetTra(object, 0, 0, 0); + omSetRot(object, 0, 0, 0); + object->func = fn_1_99EC; } void fn_1_9BAC(omObjData *object) { - float temp_f31; - float temp_f30; - - Vec *temp_r31; - Work8F68 *temp_r29; - s32 temp_r27; - temp_r31 = object->data; - temp_r31[1].x += (frandf()*12.0f)+12.0f; - temp_r27 = lbl_1_bss_28; - if(object->work[0] & 0x1) { - temp_r27 ^= 0x1; - } - temp_r29 = fn_1_4DF0(temp_r27); - temp_r31[1].y++; - if(90.0f < temp_r31[1].y) { - temp_r31[1].y = 90.0f; - } - temp_f31 = temp_r31[1].y/90.0f; - temp_f30 = sind(90.0f * temp_f31) * sind(90.0f * temp_f31); + float temp_f31; + float temp_f30; + + Vec *temp_r31; + Work8F68 *temp_r29; + s32 temp_r27; + temp_r31 = object->data; + temp_r31[1].x += (frandf() * 12.0f) + 12.0f; + temp_r27 = lbl_1_bss_28; + if (object->work[0] & 0x1) { + temp_r27 ^= 0x1; + } + temp_r29 = fn_1_4DF0(temp_r27); + temp_r31[1].y++; + if (90.0f < temp_r31[1].y) { + temp_r31[1].y = 90.0f; + } + temp_f31 = temp_r31[1].y / 90.0f; + temp_f30 = sind(90.0f * temp_f31) * sind(90.0f * temp_f31); temp_r31[0].x = lbl_1_bss_F8->x + temp_f30 * (temp_r29->unk4.x - lbl_1_bss_F8->x) * 1.5f; temp_r31[0].z = lbl_1_bss_F8->z + temp_f30 * (temp_r29->unk4.z - lbl_1_bss_F8->z) * 1.5f; - temp_r31[0].y += temp_r31[1].z; - temp_r31[1].z -= 0.4f; - omSetTra(object, temp_r31[0].x, temp_r31[0].y, temp_r31[0].z); - omSetRot(object, 0, temp_r31[1].x, 0); - if(0.0f > temp_r31[1].z && 180.0f > temp_r31[0].y) { - lbl_1_bss_20++; - HuAudFXPlay(7); - Hu3DModelAttrSet(object->model[0], 1); - CharModelCoinEffectCreate(lbl_1_data_FEC[lbl_1_bss_28], temp_r31); - omDelObjEx(lbl_1_bss_33C, object); - } + temp_r31[0].y += temp_r31[1].z; + temp_r31[1].z -= 0.4f; + omSetTra(object, temp_r31[0].x, temp_r31[0].y, temp_r31[0].z); + omSetRot(object, 0, temp_r31[1].x, 0); + if (0.0f > temp_r31[1].z && 180.0f > temp_r31[0].y) { + lbl_1_bss_20++; + HuAudFXPlay(7); + Hu3DModelAttrSet(object->model[0], 1); + CharModelCoinEffectCreate(lbl_1_data_FEC[lbl_1_bss_28], temp_r31); + omDelObjEx(lbl_1_bss_33C, object); + } } void fn_1_9EEC(omObjData *object) { - Vec *temp_r30; - temp_r30 = object->data; - object->model[0] = Hu3DModelLink(lbl_1_bss_1A); - Hu3DModelCameraSet(object->model[0], lbl_1_data_FEC[lbl_1_bss_28]); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000002); - Hu3DModelLayerSet(object->model[0], 4); - Hu3DModelShadowSet(object->model[0]); - temp_r30[0] = lbl_1_bss_F8[0]; - temp_r30[0].y += 20; - temp_r30[1].x = 0; - temp_r30[1].y = 0; - temp_r30[1].z = (4*frandf())+10; - omSetTra(object, temp_r30[0].x, temp_r30[0].y , temp_r30[0].z); - omSetRot(object, 0, temp_r30[1].x, 0); - omSetSca(object, 0.4f, 0.4f, 0.4f); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_9BAC; + Vec *temp_r30; + temp_r30 = object->data; + object->model[0] = Hu3DModelLink(lbl_1_bss_1A); + Hu3DModelCameraSet(object->model[0], lbl_1_data_FEC[lbl_1_bss_28]); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelLayerSet(object->model[0], 4); + Hu3DModelShadowSet(object->model[0]); + temp_r30[0] = lbl_1_bss_F8[0]; + temp_r30[0].y += 20; + temp_r30[1].x = 0; + temp_r30[1].y = 0; + temp_r30[1].z = (4 * frandf()) + 10; + omSetTra(object, temp_r30[0].x, temp_r30[0].y, temp_r30[0].z); + omSetRot(object, 0, temp_r30[1].x, 0); + omSetSca(object, 0.4f, 0.4f, 0.4f); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_9BAC; } void fn_1_A0A8(s32 arg0) { - omObjData *object; - object = omAddObjEx(lbl_1_bss_33C, 103, 1, 0, 3, fn_1_9EEC); - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec)*2, MEMORY_DEFAULT_NUM); - object->work[0] = arg0; + omObjData *object; + object = omAddObjEx(lbl_1_bss_33C, 103, 1, 0, 3, fn_1_9EEC); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec) * 2, MEMORY_DEFAULT_NUM); + object->work[0] = arg0; } void fn_1_A118(void) { - s32 temp_r31; - float temp_f31; - float temp_f30; - Vec sp8; - temp_f30 = sind(15.0f)/cosd(15.0f); - temp_f31 = 0.5f; - sp8.z = (1.0f-temp_f31)*(lbl_1_bss_190->unk18*temp_f30); - sp8.x = 1.2f*sp8.z; - sp8.y = lbl_1_bss_190->unk18*temp_f31; - Hu3DCameraCreate(15); - Hu3DCameraPerspectiveSet(15, 30, 10, 20000, 1.2f); - for(temp_r31=0; temp_r31<4; temp_r31++) { - fn_1_7098(temp_r31, &lbl_1_data_FFC[temp_r31][0]); - lbl_1_bss_C8[temp_r31].x = sp8.x*lbl_1_data_10FC[temp_r31][0]; - lbl_1_bss_C8[temp_r31].y = sp8.y; - lbl_1_bss_C8[temp_r31].z = sp8.z*lbl_1_data_10FC[temp_r31][1]; - lbl_1_bss_68[temp_r31].x = lbl_1_bss_C8[temp_r31].x; - lbl_1_bss_68[temp_r31].y = 0; - lbl_1_bss_68[temp_r31].z = lbl_1_bss_C8[temp_r31].z; - Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31], &lbl_1_bss_C8[temp_r31], &lbl_1_data_FD4, &lbl_1_bss_68[temp_r31]); - } + s32 temp_r31; + float temp_f31; + float temp_f30; + Vec sp8; + temp_f30 = sind(15.0f) / cosd(15.0f); + temp_f31 = 0.5f; + sp8.z = (1.0f - temp_f31) * (lbl_1_bss_190->unk18 * temp_f30); + sp8.x = 1.2f * sp8.z; + sp8.y = lbl_1_bss_190->unk18 * temp_f31; + Hu3DCameraCreate(15); + Hu3DCameraPerspectiveSet(15, 30, 10, 20000, 1.2f); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + fn_1_7098(temp_r31, &lbl_1_data_FFC[temp_r31][0]); + lbl_1_bss_C8[temp_r31].x = sp8.x * lbl_1_data_10FC[temp_r31][0]; + lbl_1_bss_C8[temp_r31].y = sp8.y; + lbl_1_bss_C8[temp_r31].z = sp8.z * lbl_1_data_10FC[temp_r31][1]; + lbl_1_bss_68[temp_r31].x = lbl_1_bss_C8[temp_r31].x; + lbl_1_bss_68[temp_r31].y = 0; + lbl_1_bss_68[temp_r31].z = lbl_1_bss_C8[temp_r31].z; + Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31], &lbl_1_bss_C8[temp_r31], &lbl_1_data_FD4, &lbl_1_bss_68[temp_r31]); + } } void fn_1_A588(s32 arg0, Vec *arg1, float arg2) { - Vec sp18; - Vec spC; - sp18.x = lbl_1_bss_C8[arg0].x+(arg2*(lbl_1_bss_98[arg0].x-lbl_1_bss_C8[arg0].x)); - sp18.y = lbl_1_bss_C8[arg0].y+(arg2*(lbl_1_bss_98[arg0].y-lbl_1_bss_C8[arg0].y)); - sp18.z = lbl_1_bss_C8[arg0].z+(arg2*(lbl_1_bss_98[arg0].z-lbl_1_bss_C8[arg0].z)); - spC.x = lbl_1_bss_68[arg0].x+(arg2*(lbl_1_bss_38[arg0].x-lbl_1_bss_68[arg0].x)); - spC.y = lbl_1_bss_68[arg0].y+(arg2*(lbl_1_bss_38[arg0].y-lbl_1_bss_68[arg0].y)); - spC.z = lbl_1_bss_68[arg0].z+(arg2*(lbl_1_bss_38[arg0].z-lbl_1_bss_68[arg0].z)); - Hu3DCameraPosSetV(lbl_1_data_FEC[arg0], &sp18, arg1, &spC); + Vec sp18; + Vec spC; + sp18.x = lbl_1_bss_C8[arg0].x + (arg2 * (lbl_1_bss_98[arg0].x - lbl_1_bss_C8[arg0].x)); + sp18.y = lbl_1_bss_C8[arg0].y + (arg2 * (lbl_1_bss_98[arg0].y - lbl_1_bss_C8[arg0].y)); + sp18.z = lbl_1_bss_C8[arg0].z + (arg2 * (lbl_1_bss_98[arg0].z - lbl_1_bss_C8[arg0].z)); + spC.x = lbl_1_bss_68[arg0].x + (arg2 * (lbl_1_bss_38[arg0].x - lbl_1_bss_68[arg0].x)); + spC.y = lbl_1_bss_68[arg0].y + (arg2 * (lbl_1_bss_38[arg0].y - lbl_1_bss_68[arg0].y)); + spC.z = lbl_1_bss_68[arg0].z + (arg2 * (lbl_1_bss_38[arg0].z - lbl_1_bss_68[arg0].z)); + Hu3DCameraPosSetV(lbl_1_data_FEC[arg0], &sp18, arg1, &spC); } void fn_1_A7B4(void) { - s32 temp_r31; - float *temp_r30; - float *temp_r29; - float temp_f31; - float temp_f30; - - - float sp20[4]; - lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C/120; - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - fn_1_A588(temp_r31, &lbl_1_data_FD4, temp_f31); - } - if(30.0f < lbl_1_bss_12C) { - temp_f30 = (lbl_1_bss_12C-30.0f)/60.0f; - if(1.0f < temp_f30) { - temp_f30 = 1; - } - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = &lbl_1_data_FFC[temp_r31][0]; - temp_r29 = &lbl_1_data_103C[temp_r31][0]; - sp20[0] = temp_r30[0]+(temp_f31*(temp_r29[0]-temp_r30[0])); - sp20[1] = temp_r30[1]+(temp_f31*(temp_r29[1]-temp_r30[1])); - sp20[2] = temp_r30[2]+(temp_f31*(temp_r29[2]-temp_r30[2])); - sp20[3] = temp_r30[3]+(temp_f31*(temp_r29[3]-temp_r30[3])); - fn_1_7098(temp_r31, sp20); - } - } + s32 temp_r31; + float *temp_r30; + float *temp_r29; + float temp_f31; + float temp_f30; + + float sp20[4]; + lbl_1_bss_12C++; + temp_f30 = lbl_1_bss_12C / 120; + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + fn_1_A588(temp_r31, &lbl_1_data_FD4, temp_f31); + } + if (30.0f < lbl_1_bss_12C) { + temp_f30 = (lbl_1_bss_12C - 30.0f) / 60.0f; + if (1.0f < temp_f30) { + temp_f30 = 1; + } + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = &lbl_1_data_FFC[temp_r31][0]; + temp_r29 = &lbl_1_data_103C[temp_r31][0]; + sp20[0] = temp_r30[0] + (temp_f31 * (temp_r29[0] - temp_r30[0])); + sp20[1] = temp_r30[1] + (temp_f31 * (temp_r29[1] - temp_r30[1])); + sp20[2] = temp_r30[2] + (temp_f31 * (temp_r29[2] - temp_r30[2])); + sp20[3] = temp_r30[3] + (temp_f31 * (temp_r29[3] - temp_r30[3])); + fn_1_7098(temp_r31, sp20); + } + } } void fn_1_AD74(float *arg0) { - float sp8[4]; - float *temp_r31; - s32 temp_r28; - float temp_f31; - float temp_f30; - - temp_r31 = &lbl_1_data_103C[0][0]; - temp_f30 = lbl_1_bss_12C/60; - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - for(temp_r28=0; temp_r28<4; temp_r28++, temp_r31 += 4, arg0 += 4) { - sp8[0] = temp_r31[0]+(temp_f31*(arg0[0]-temp_r31[0])); - sp8[1] = temp_r31[1]+(temp_f31*(arg0[1]-temp_r31[1])); - sp8[2] = temp_r31[2]+(temp_f31*(arg0[2]-temp_r31[2])); - sp8[3] = temp_r31[3]+(temp_f31*(arg0[3]-temp_r31[3])); - fn_1_7098(temp_r28, sp8); - - } + float sp8[4]; + float *temp_r31; + s32 temp_r28; + float temp_f31; + float temp_f30; + + temp_r31 = &lbl_1_data_103C[0][0]; + temp_f30 = lbl_1_bss_12C / 60; + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31 += 4, arg0 += 4) { + sp8[0] = temp_r31[0] + (temp_f31 * (arg0[0] - temp_r31[0])); + sp8[1] = temp_r31[1] + (temp_f31 * (arg0[1] - temp_r31[1])); + sp8[2] = temp_r31[2] + (temp_f31 * (arg0[2] - temp_r31[2])); + sp8[3] = temp_r31[3] + (temp_f31 * (arg0[3] - temp_r31[3])); + fn_1_7098(temp_r28, sp8); + } } void fn_1_B01C(void) { - float temp_f31; - float temp_f30; - float temp_f29; - - Work8F68 *temp_r31; - Work8F68 *temp_r30; - temp_r31 = fn_1_4DF0(lbl_1_bss_28); - temp_r30 = fn_1_4DF0(lbl_1_bss_28^1); - temp_f31 = temp_r31->unk4.x-temp_r30->unk4.x; - temp_f30 = temp_r31->unk4.z-temp_r30->unk4.z; - lbl_1_bss_110 = atan2d(temp_f31, temp_f30)+90; - if(90.0f < lbl_1_bss_110) { - lbl_1_bss_110 -= 180.0f; - } - - lbl_1_bss_38[lbl_1_bss_28].x = lbl_1_bss_68[lbl_1_bss_28].x-(temp_f31/2); - lbl_1_bss_38[lbl_1_bss_28].y = lbl_1_bss_68[lbl_1_bss_28].y+200; - lbl_1_bss_38[lbl_1_bss_28].z = lbl_1_bss_68[lbl_1_bss_28].z-(temp_f30/2); - temp_f29 = 1350; - lbl_1_bss_98[lbl_1_bss_28].x = lbl_1_bss_38[lbl_1_bss_28].x+(temp_f29*sind(lbl_1_bss_110)); - lbl_1_bss_98[lbl_1_bss_28].y = 250+lbl_1_bss_38[lbl_1_bss_28].y; - lbl_1_bss_98[lbl_1_bss_28].z = lbl_1_bss_38[lbl_1_bss_28].z+(temp_f29*cosd(lbl_1_bss_110)); - lbl_1_bss_F8[0] = lbl_1_bss_38[lbl_1_bss_28]; - lbl_1_bss_F8[1] = lbl_1_bss_38[lbl_1_bss_28]; - lbl_1_bss_F8[1].x += 50*sind(lbl_1_bss_110); - lbl_1_bss_F8[1].y += 15; - lbl_1_bss_F8[1].z += 50*cosd(lbl_1_bss_110); - temp_f31 = lbl_1_bss_F8[0].x-temp_r31->unk4.x; - temp_f30 = lbl_1_bss_F8[0].z-temp_r31->unk4.z; - temp_r31->unk60 = atan2d(temp_f31, temp_f30); - temp_f31 = lbl_1_bss_F8[0].x-temp_r30->unk4.x; - temp_f30 = lbl_1_bss_F8[0].z-temp_r30->unk4.z; - temp_r30->unk60 = atan2d(temp_f31, temp_f30); - temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x-temp_r31->unk4.x; - temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z-temp_r31->unk4.z; - temp_r31->unk64 = atan2d(temp_f31, temp_f30); - temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x-temp_r30->unk4.x; - temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z-temp_r30->unk4.z; - temp_r30->unk64 = atan2d(temp_f31, temp_f30); - omVibrate(temp_r31->unk114, 120, 6, 6); - omVibrate(temp_r30->unk114, 120, 6, 6); + float temp_f31; + float temp_f30; + float temp_f29; + + Work8F68 *temp_r31; + Work8F68 *temp_r30; + temp_r31 = fn_1_4DF0(lbl_1_bss_28); + temp_r30 = fn_1_4DF0(lbl_1_bss_28 ^ 1); + temp_f31 = temp_r31->unk4.x - temp_r30->unk4.x; + temp_f30 = temp_r31->unk4.z - temp_r30->unk4.z; + lbl_1_bss_110 = atan2d(temp_f31, temp_f30) + 90; + if (90.0f < lbl_1_bss_110) { + lbl_1_bss_110 -= 180.0f; + } + + lbl_1_bss_38[lbl_1_bss_28].x = lbl_1_bss_68[lbl_1_bss_28].x - (temp_f31 / 2); + lbl_1_bss_38[lbl_1_bss_28].y = lbl_1_bss_68[lbl_1_bss_28].y + 200; + lbl_1_bss_38[lbl_1_bss_28].z = lbl_1_bss_68[lbl_1_bss_28].z - (temp_f30 / 2); + temp_f29 = 1350; + lbl_1_bss_98[lbl_1_bss_28].x = lbl_1_bss_38[lbl_1_bss_28].x + (temp_f29 * sind(lbl_1_bss_110)); + lbl_1_bss_98[lbl_1_bss_28].y = 250 + lbl_1_bss_38[lbl_1_bss_28].y; + lbl_1_bss_98[lbl_1_bss_28].z = lbl_1_bss_38[lbl_1_bss_28].z + (temp_f29 * cosd(lbl_1_bss_110)); + lbl_1_bss_F8[0] = lbl_1_bss_38[lbl_1_bss_28]; + lbl_1_bss_F8[1] = lbl_1_bss_38[lbl_1_bss_28]; + lbl_1_bss_F8[1].x += 50 * sind(lbl_1_bss_110); + lbl_1_bss_F8[1].y += 15; + lbl_1_bss_F8[1].z += 50 * cosd(lbl_1_bss_110); + temp_f31 = lbl_1_bss_F8[0].x - temp_r31->unk4.x; + temp_f30 = lbl_1_bss_F8[0].z - temp_r31->unk4.z; + temp_r31->unk60 = atan2d(temp_f31, temp_f30); + temp_f31 = lbl_1_bss_F8[0].x - temp_r30->unk4.x; + temp_f30 = lbl_1_bss_F8[0].z - temp_r30->unk4.z; + temp_r30->unk60 = atan2d(temp_f31, temp_f30); + temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r31->unk4.x; + temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r31->unk4.z; + temp_r31->unk64 = atan2d(temp_f31, temp_f30); + temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r30->unk4.x; + temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r30->unk4.z; + temp_r30->unk64 = atan2d(temp_f31, temp_f30); + omVibrate(temp_r31->unk114, 120, 6, 6); + omVibrate(temp_r30->unk114, 120, 6, 6); } void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3) { - float temp_f31; - float temp_f30; - temp_f30 = (arg0[2]/2)*(arg1/lbl_1_bss_128); - temp_f31 = (arg0[3]/2)*(arg2/lbl_1_bss_124); - temp_f30 += arg0[0]+(arg0[2]/2); - temp_f31 += arg0[1]+(arg0[3]/2); - temp_f30 = 576.0f*(temp_f30/640.0f); - temp_f31 = 480.0f*(temp_f31/480.0f); - temp_f31 += (240.0f <= arg0[1]) ? -16.0f : 16.0f; - espPosSet(arg3, temp_f30, temp_f31); + float temp_f31; + float temp_f30; + temp_f30 = (arg0[2] / 2) * (arg1 / lbl_1_bss_128); + temp_f31 = (arg0[3] / 2) * (arg2 / lbl_1_bss_124); + temp_f30 += arg0[0] + (arg0[2] / 2); + temp_f31 += arg0[1] + (arg0[3] / 2); + temp_f30 = 576.0f * (temp_f30 / 640.0f); + temp_f31 = 480.0f * (temp_f31 / 480.0f); + temp_f31 += (240.0f <= arg0[1]) ? -16.0f : 16.0f; + espPosSet(arg3, temp_f30, temp_f31); } void fn_1_E96C(omObjData *object); void fn_1_B8E0(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f20; - float temp_f19; - - float *temp_r31; - s32 temp_r29; - Work8F68 *temp_r28; - Bss130Struct *temp_r27; - s32 temp_r24; - Work3284 *temp_r23; - Work8F68 *temp_r20; - - s32 sp74; - Work8F68 *sp68; - Work8F68 *sp5C; - if(omSysExitReq) { - fn_1_1F58(-1); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_E96C; - } - lbl_1_bss_114 += 1.0f/60.0f; - if(360.0f <= lbl_1_bss_114) { - lbl_1_bss_114 -= 360.0f; - } - Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_114, 0); - lbl_1_bss_308++; - switch(object->work[0]) { - - case 1000: - if(!WipeStatGet()) { - object->work[0]++; - lbl_1_bss_12C = 0; - HuAudFXPlay(1644); - } - break; - - case 1001: - lbl_1_bss_12C++; - if(60.0f <= lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - } - break; - - - case 1002: - lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C/60; - temp_f31 = 1-(sind(temp_f30*90.0f)*sind(temp_f30*90.0f)); - for(temp_r29=0; temp_r29<5; temp_r29++) { - espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31); - } - if(60.0f <= lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - for(temp_r29=0; temp_r29<5; temp_r29++) { - espKill(lbl_1_bss_10[temp_r29]); - } - } - break; - - case 1003: - lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C/60; - temp_f31 = sind(temp_f30*90.0f)*sind(temp_f30*90.0f); - for(temp_r29=0; temp_r29<4; temp_r29++) { - lbl_1_bss_130[temp_r29].unk4 = temp_f31; - } - if(60.0f <= lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - lbl_1_bss_4 = HuAudFXPlay(1645); - lbl_1_bss_0 = HuAudFXPlay(1646); - } - break; - - - case 1004: - fn_1_A7B4(); - if(120.0f <= lbl_1_bss_12C) { - object->work[0]++; - HuAudFXStop(lbl_1_bss_4); - } - break; - - - case 1005: - if(lbl_1_bss_2FE < 0) { - lbl_1_bss_2FE = MGSeqStartCreate(); - } else { - if(lbl_1_bss_2F8 < 0 && (MGSeqStatGet(lbl_1_bss_2FE) & 0x10)) { - fn_1_1F24(71); - } - if(!MGSeqStatGet(lbl_1_bss_2FE)) { - object->work[0]++; - lbl_1_bss_304 = 3600; - lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304/60); - lbl_1_bss_2FE = -1; - } - } - break; - - - case 1006: - MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304+59)/60); - lbl_1_bss_304--; - if(lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) { - object->work[0] = 1007; - lbl_1_bss_304 = 3600; - lbl_1_bss_12C = 0; - } - break; - - - case 1007: - if(lbl_1_bss_2FE < 0) { - MGSeqParamSet(lbl_1_bss_2FC, 2, -1); - lbl_1_bss_2FC = -1; - lbl_1_bss_2FE = MGSeqFinishCreate(); - fn_1_1F58(100); - lbl_1_bss_12C = 0; - if(lbl_1_bss_28 >= 0) { - Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 1); - } - } else { - sp74 = 0; - for(temp_r29=0; temp_r29<4; temp_r29++) { - if(((Work8F68 *)lbl_1_bss_1A4[temp_r29]->data)->unk9C >= 2003) { - sp74++; - } - } - if(sp74 == 4) { - lbl_1_bss_12C++; - } - if(lbl_1_bss_28 >= 0 && 60.0f == lbl_1_bss_12C) { - Hu3DModelAttrSet(object->model[3], 1); - Hu3DModelAttrReset(object->model[4], 1); - Hu3DModelAttrReset(object->model[4], 0x40000002); - } - if(60.0f < lbl_1_bss_12C && !MGSeqStatGet(lbl_1_bss_2FE)) { - lbl_1_bss_2FE =-1; - lbl_1_bss_12C = 0; - if(lbl_1_bss_28 < 0) { - object->work[0] = 1012; - lbl_1_bss_12C = 0; - lbl_1_bss_2FE = MGSeqDrawCreate(); - HuAudSStreamPlay(4); - } else { - object->work[0] = 1008; - fn_1_B01C(); - } - } - } - break; - - - case 1008: - lbl_1_bss_12C++; - if(60.0f < lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - HuAudFXPlay(1650); - for(temp_r29=0; temp_r29<4; temp_r29++) { - if(lbl_1_bss_28 != temp_r29) { - Hu3DCameraKill(lbl_1_data_FEC[temp_r29]); - } - } - } else { - fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]); - temp_f30 = lbl_1_bss_12C/60.0f; - temp_f31 = sind(temp_f30*90.0f)*sind(temp_f30*90.0f); - fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31); - - } - break; - - - case 1009: - lbl_1_bss_12C++; - if(120.0f < lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - HuAudFXPlay(1651); - } else { - temp_f30 = lbl_1_bss_12C/120.0f; - temp_f31 = sind(temp_f30*90.0f)*sind(temp_f30*90.0f); - temp_f20 = (6.0f*frandf())-3.0f; - temp_f19 = (6.0f*frandf())-3.0f; - omSetTra(object, temp_f20, -90*temp_f31, temp_f19); - Hu3DModelPosSet(object->model[3], temp_f20, -90*temp_f31, temp_f19); - Hu3DModelPosSet(object->model[4], temp_f20, -90*temp_f31, temp_f19); - } - break; - - - case 1010: - if(lbl_1_bss_1C >= 2) { - object->work[0]++; - lbl_1_bss_12C = 0; - } - break; - - - case 1011: - if(lbl_1_bss_20 > 0 && lbl_1_bss_2FE < 0) { - lbl_1_bss_2FE = MGSeqWinCreate(fn_1_4DF0(lbl_1_bss_28)->unk118, fn_1_4DF0(lbl_1_bss_28+1)->unk118, -1, -1); - HuAudSStreamPlay(1); - } - if(lbl_1_bss_24 < 20) { - if((lbl_1_bss_308 % 6) == 0) { - lbl_1_bss_24++; - fn_1_A0A8(lbl_1_bss_24); - } - } else { - if(lbl_1_bss_24 == lbl_1_bss_20) { - lbl_1_bss_12C++; - if(60.0f < lbl_1_bss_12C) { - object->work[0] = 1012; - lbl_1_bss_12C = 0; - } - } - } - break; - - - case 1012: - lbl_1_bss_12C++; - if(210.0f < lbl_1_bss_12C) { - if(lbl_1_bss_2FE < 0 || !MGSeqStatGet(lbl_1_bss_2FE)) { - fn_1_1F58(-1); - lbl_1_bss_2FE = -1; - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_E96C; - } - } - break; - - default: - OSReport("*** main mode error(%d)!!\n", object->work[0]); - break; - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r27 = &lbl_1_bss_130[temp_r29]; - if(temp_r27->unk0 >= 0) { - espPosSet(temp_r27->unk0, temp_r27->unk8, temp_r27->unkC); - espScaleSet(temp_r27->unk0, temp_r27->unk10, temp_r27->unk14); - espTPLvlSet(temp_r27->unk0, temp_r27->unk4); - espDispOn(temp_r27->unk0); - } - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r28 = lbl_1_bss_1A4[temp_r29]->data; - temp_r31 = &lbl_1_data_103C[temp_r28->unk110][0]; - if((temp_r28->unkE8 & 0x1) == 0) { - continue; - } - fn_1_B754(temp_r31, 0, 0, temp_r28->unkB4); - for(temp_r24=0; temp_r24<4; temp_r24++) { - temp_r20 = lbl_1_bss_1A4[temp_r24]->data; - fn_1_B754(temp_r31, temp_r20->unk4.x, temp_r20->unk4.z, temp_r28->unkB8[temp_r24]); - temp_r23 = lbl_1_bss_19C[temp_r24]->data; - fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][0]); - fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][1]); - if(temp_r23->unk18 & 0x1) { - espDispOn(temp_r28->unkC8[temp_r24][1]); - espDispOff(temp_r28->unkC8[temp_r24][0]); - } else { - espDispOn(temp_r28->unkC8[temp_r24][0]); - espDispOff(temp_r28->unkC8[temp_r24][1]); - } - } - } + float temp_f31; + float temp_f30; + float temp_f20; + float temp_f19; + + float *temp_r31; + s32 temp_r29; + Work8F68 *temp_r28; + Bss130Struct *temp_r27; + s32 temp_r24; + Work3284 *temp_r23; + Work8F68 *temp_r20; + + s32 sp74; + Work8F68 *sp68; + Work8F68 *sp5C; + if (omSysExitReq) { + fn_1_1F58(-1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_E96C; + } + lbl_1_bss_114 += 1.0f / 60.0f; + if (360.0f <= lbl_1_bss_114) { + lbl_1_bss_114 -= 360.0f; + } + Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_114, 0); + lbl_1_bss_308++; + switch (object->work[0]) { + + case 1000: + if (!WipeStatGet()) { + object->work[0]++; + lbl_1_bss_12C = 0; + HuAudFXPlay(1644); + } + break; + + case 1001: + lbl_1_bss_12C++; + if (60.0f <= lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + } + break; + + case 1002: + lbl_1_bss_12C++; + temp_f30 = lbl_1_bss_12C / 60; + temp_f31 = 1 - (sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f)); + for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { + espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31); + } + if (60.0f <= lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { + espKill(lbl_1_bss_10[temp_r29]); + } + } + break; + + case 1003: + lbl_1_bss_12C++; + temp_f30 = lbl_1_bss_12C / 60; + temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + lbl_1_bss_130[temp_r29].unk4 = temp_f31; + } + if (60.0f <= lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + lbl_1_bss_4 = HuAudFXPlay(1645); + lbl_1_bss_0 = HuAudFXPlay(1646); + } + break; + + case 1004: + fn_1_A7B4(); + if (120.0f <= lbl_1_bss_12C) { + object->work[0]++; + HuAudFXStop(lbl_1_bss_4); + } + break; + + case 1005: + if (lbl_1_bss_2FE < 0) { + lbl_1_bss_2FE = MGSeqStartCreate(); + } + else { + if (lbl_1_bss_2F8 < 0 && (MGSeqStatGet(lbl_1_bss_2FE) & 0x10)) { + fn_1_1F24(71); + } + if (!MGSeqStatGet(lbl_1_bss_2FE)) { + object->work[0]++; + lbl_1_bss_304 = 3600; + lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / 60); + lbl_1_bss_2FE = -1; + } + } + break; + + case 1006: + MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 59) / 60); + lbl_1_bss_304--; + if (lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) { + object->work[0] = 1007; + lbl_1_bss_304 = 3600; + lbl_1_bss_12C = 0; + } + break; + + case 1007: + if (lbl_1_bss_2FE < 0) { + MGSeqParamSet(lbl_1_bss_2FC, 2, -1); + lbl_1_bss_2FC = -1; + lbl_1_bss_2FE = MGSeqFinishCreate(); + fn_1_1F58(100); + lbl_1_bss_12C = 0; + if (lbl_1_bss_28 >= 0) { + Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], 1); + } + } + else { + sp74 = 0; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (((Work8F68 *)lbl_1_bss_1A4[temp_r29]->data)->unk9C >= 2003) { + sp74++; + } + } + if (sp74 == 4) { + lbl_1_bss_12C++; + } + if (lbl_1_bss_28 >= 0 && 60.0f == lbl_1_bss_12C) { + Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[4], 0x40000002); + } + if (60.0f < lbl_1_bss_12C && !MGSeqStatGet(lbl_1_bss_2FE)) { + lbl_1_bss_2FE = -1; + lbl_1_bss_12C = 0; + if (lbl_1_bss_28 < 0) { + object->work[0] = 1012; + lbl_1_bss_12C = 0; + lbl_1_bss_2FE = MGSeqDrawCreate(); + HuAudSStreamPlay(4); + } + else { + object->work[0] = 1008; + fn_1_B01C(); + } + } + } + break; + + case 1008: + lbl_1_bss_12C++; + if (60.0f < lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + HuAudFXPlay(1650); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (lbl_1_bss_28 != temp_r29) { + Hu3DCameraKill(lbl_1_data_FEC[temp_r29]); + } + } + } + else { + fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]); + temp_f30 = lbl_1_bss_12C / 60.0f; + temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); + fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31); + } + break; + + case 1009: + lbl_1_bss_12C++; + if (120.0f < lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + HuAudFXPlay(1651); + } + else { + temp_f30 = lbl_1_bss_12C / 120.0f; + temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); + temp_f20 = (6.0f * frandf()) - 3.0f; + temp_f19 = (6.0f * frandf()) - 3.0f; + omSetTra(object, temp_f20, -90 * temp_f31, temp_f19); + Hu3DModelPosSet(object->model[3], temp_f20, -90 * temp_f31, temp_f19); + Hu3DModelPosSet(object->model[4], temp_f20, -90 * temp_f31, temp_f19); + } + break; + + case 1010: + if (lbl_1_bss_1C >= 2) { + object->work[0]++; + lbl_1_bss_12C = 0; + } + break; + + case 1011: + if (lbl_1_bss_20 > 0 && lbl_1_bss_2FE < 0) { + lbl_1_bss_2FE = MGSeqWinCreate(fn_1_4DF0(lbl_1_bss_28)->unk118, fn_1_4DF0(lbl_1_bss_28 + 1)->unk118, -1, -1); + HuAudSStreamPlay(1); + } + if (lbl_1_bss_24 < 20) { + if ((lbl_1_bss_308 % 6) == 0) { + lbl_1_bss_24++; + fn_1_A0A8(lbl_1_bss_24); + } + } + else { + if (lbl_1_bss_24 == lbl_1_bss_20) { + lbl_1_bss_12C++; + if (60.0f < lbl_1_bss_12C) { + object->work[0] = 1012; + lbl_1_bss_12C = 0; + } + } + } + break; + + case 1012: + lbl_1_bss_12C++; + if (210.0f < lbl_1_bss_12C) { + if (lbl_1_bss_2FE < 0 || !MGSeqStatGet(lbl_1_bss_2FE)) { + fn_1_1F58(-1); + lbl_1_bss_2FE = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_E96C; + } + } + break; + + default: + OSReport("*** main mode error(%d)!!\n", object->work[0]); + break; + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r27 = &lbl_1_bss_130[temp_r29]; + if (temp_r27->unk0 >= 0) { + espPosSet(temp_r27->unk0, temp_r27->unk8, temp_r27->unkC); + espScaleSet(temp_r27->unk0, temp_r27->unk10, temp_r27->unk14); + espTPLvlSet(temp_r27->unk0, temp_r27->unk4); + espDispOn(temp_r27->unk0); + } + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r28 = lbl_1_bss_1A4[temp_r29]->data; + temp_r31 = &lbl_1_data_103C[temp_r28->unk110][0]; + if ((temp_r28->unkE8 & 0x1) == 0) { + continue; + } + fn_1_B754(temp_r31, 0, 0, temp_r28->unkB4); + for (temp_r24 = 0; temp_r24 < 4; temp_r24++) { + temp_r20 = lbl_1_bss_1A4[temp_r24]->data; + fn_1_B754(temp_r31, temp_r20->unk4.x, temp_r20->unk4.z, temp_r28->unkB8[temp_r24]); + temp_r23 = lbl_1_bss_19C[temp_r24]->data; + fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][0]); + fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][1]); + if (temp_r23->unk18 & 0x1) { + espDispOn(temp_r28->unkC8[temp_r24][1]); + espDispOff(temp_r28->unkC8[temp_r24][0]); + } + else { + espDispOn(temp_r28->unkC8[temp_r24][0]); + espDispOff(temp_r28->unkC8[temp_r24][1]); + } + } + } } void fn_1_D5E8(omObjData *object) { - float temp_f31; - float temp_f30; - s32 temp_r30; - Work3284 *temp_r29; - temp_f31 = 288; - temp_f30 = 240; - lbl_1_bss_10[0] = espEntry(lbl_1_data_1388[lbl_1_bss_190->unk0+lbl_1_bss_34], 132, 0); - espPosSet(lbl_1_bss_10[0], temp_f31, temp_f30); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = lbl_1_bss_19C[temp_r30]->data; - lbl_1_bss_10[temp_r30+1] = espEntry(lbl_1_data_1310[temp_r30], 131, 0); - espPosSet(lbl_1_bss_10[temp_r30+1], temp_f31+(0.07f*temp_r29->unk0.x), temp_f30+(0.07f*temp_r29->unk0.z)); - } - for(temp_r30=0; temp_r30<5; temp_r30++) { - espDrawNoSet(lbl_1_bss_10[temp_r30], 0); - espTPLvlSet(lbl_1_bss_10[temp_r30], 1.0f); - espDispOn(lbl_1_bss_10[temp_r30]); - } - object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[1]); - Hu3DModelCameraSet(object->model[0], 15); - Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelShadowMapSet(object->model[0]); - omSetTra(object, 0, 0, 0); - omSetRot(object, 0, -90.0f*lbl_1_bss_34, 0); - object->model[1] = Hu3DModelCreateFile(0x3C0022); - Hu3DModelCameraSet(object->model[1], 15); - Hu3DModelAttrSet(object->model[1], 0x4001); - Hu3DModelAttrSet(object->model[1], 0x40000002); - Hu3DModelLayerSet(object->model[1], 0); - Hu3DModelShadowMapSet(object->model[1]); - Hu3DModelPosSet(object->model[1], 0, 0, 0); - object->model[2] = Hu3DModelCreateFile(0x3C0023); - Hu3DModelCameraSet(object->model[2], 15); - Hu3DModelAttrSet(object->model[2], 0x4001); - Hu3DModelAttrSet(object->model[2], 0x40000002); - Hu3DModelLayerSet(object->model[2], 0); - Hu3DModelPosSet(object->model[2], 0, 0, 0); - object->model[3] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[2]); - Hu3DModelCameraSet(object->model[3], 15); - Hu3DModelAttrSet(object->model[3], 0x4001); - Hu3DModelAttrSet(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 0x40000001); - Hu3DModelLayerSet(object->model[3], 1); - Hu3DModelPosSet(object->model[3], 0, 0, 0); - Hu3DModelRotSet(object->model[3], 0, -90.0f*lbl_1_bss_34, 0); - object->model[4] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[3]); - Hu3DModelCameraSet(object->model[4], 15); - Hu3DModelAttrSet(object->model[4], 0x4001); - Hu3DModelAttrSet(object->model[4], 0x40000003); - Hu3DModelLayerSet(object->model[4], 1); - Hu3DModelPosSet(object->model[4], 0, 0, 0); - Hu3DModelRotSet(object->model[4], 0, -90.0f*lbl_1_bss_34, 0); - lbl_1_bss_114 = 45; - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DModelAttrReset(object->model[temp_r30], 1); - } - object->work[0] = 1000; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_B8E0; + float temp_f31; + float temp_f30; + s32 temp_r30; + Work3284 *temp_r29; + temp_f31 = 288; + temp_f30 = 240; + lbl_1_bss_10[0] = espEntry(lbl_1_data_1388[lbl_1_bss_190->unk0 + lbl_1_bss_34], 132, 0); + espPosSet(lbl_1_bss_10[0], temp_f31, temp_f30); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = lbl_1_bss_19C[temp_r30]->data; + lbl_1_bss_10[temp_r30 + 1] = espEntry(lbl_1_data_1310[temp_r30], 131, 0); + espPosSet(lbl_1_bss_10[temp_r30 + 1], temp_f31 + (0.07f * temp_r29->unk0.x), temp_f30 + (0.07f * temp_r29->unk0.z)); + } + for (temp_r30 = 0; temp_r30 < 5; temp_r30++) { + espDrawNoSet(lbl_1_bss_10[temp_r30], 0); + espTPLvlSet(lbl_1_bss_10[temp_r30], 1.0f); + espDispOn(lbl_1_bss_10[temp_r30]); + } + object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[1]); + Hu3DModelCameraSet(object->model[0], 15); + Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelShadowMapSet(object->model[0]); + omSetTra(object, 0, 0, 0); + omSetRot(object, 0, -90.0f * lbl_1_bss_34, 0); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x22)); + Hu3DModelCameraSet(object->model[1], 15); + Hu3DModelAttrSet(object->model[1], 0x4001); + Hu3DModelAttrSet(object->model[1], 0x40000002); + Hu3DModelLayerSet(object->model[1], 0); + Hu3DModelShadowMapSet(object->model[1]); + Hu3DModelPosSet(object->model[1], 0, 0, 0); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x23)); + Hu3DModelCameraSet(object->model[2], 15); + Hu3DModelAttrSet(object->model[2], 0x4001); + Hu3DModelAttrSet(object->model[2], 0x40000002); + Hu3DModelLayerSet(object->model[2], 0); + Hu3DModelPosSet(object->model[2], 0, 0, 0); + object->model[3] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[2]); + Hu3DModelCameraSet(object->model[3], 15); + Hu3DModelAttrSet(object->model[3], 0x4001); + Hu3DModelAttrSet(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], 0x40000001); + Hu3DModelLayerSet(object->model[3], 1); + Hu3DModelPosSet(object->model[3], 0, 0, 0); + Hu3DModelRotSet(object->model[3], 0, -90.0f * lbl_1_bss_34, 0); + object->model[4] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[3]); + Hu3DModelCameraSet(object->model[4], 15); + Hu3DModelAttrSet(object->model[4], 0x4001); + Hu3DModelAttrSet(object->model[4], 0x40000003); + Hu3DModelLayerSet(object->model[4], 1); + Hu3DModelPosSet(object->model[4], 0, 0, 0); + Hu3DModelRotSet(object->model[4], 0, -90.0f * lbl_1_bss_34, 0); + lbl_1_bss_114 = 45; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DModelAttrReset(object->model[temp_r30], 1); + } + object->work[0] = 1000; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_B8E0; } void ObjectSetup(void) { - s32 temp_r31; - omObjData *temp_r28; - Work8F68 *temp_r27; - s32 temp_r22; - s32 temp_r17; - Vec sp2C; - s32 sp1C; - s32 sp18; - s32 sp14; - - OSReport("******* M429 ObjectSetup *********\n"); - nMap = 0; - nChar = 0; - lbl_1_bss_33C = omInitObjMan(100, 8192); - omGameSysInit(lbl_1_bss_33C); - lbl_1_bss_308 = 0; - lbl_1_bss_2FE = -1; - lbl_1_bss_2FC = -1; - lbl_1_bss_28 = -1; - lbl_1_bss_24 =0 ; - lbl_1_bss_20 = 0; - lbl_1_bss_1C = 0; - lbl_1_bss_2F8 = -1; - lbl_1_bss_4 = -1; - lbl_1_bss_0 = -1; - lbl_1_bss_11C = 0; - lbl_1_bss_120 = 850; - lbl_1_bss_118 = 450; - for(temp_r31=0; temp_r31<2; temp_r31++) { - lbl_1_bss_2C[temp_r31] = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - lbl_1_bss_130[temp_r31].unk0 = -1; - lbl_1_bss_130[temp_r31].unk4 = 0; - } - lbl_1_bss_34 = frandmod(4); - fn_1_2684(); - fn_1_A118(); - temp_r17 = Hu3DGLightCreateV(&lbl_1_data_111C, &lbl_1_data_1128, &lbl_1_data_1134); - Hu3DGLightStaticSet(temp_r17, 1); - Hu3DGLightInfinitytSet(temp_r17); - Hu3DShadowCreate(30, 10, 20000); - Hu3DShadowTPLvlSet(0.5f); - VECNormalize(&lbl_1_data_1138, &sp2C); - Hu3DShadowPosSet(&lbl_1_data_1138, &sp2C, &lbl_1_data_1144); - omMakeGroupEx(lbl_1_bss_33C, 0, 4); - lbl_1_bss_1A4 = omGetGroupMemberListEx(lbl_1_bss_33C, 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r28 = omAddObjEx(lbl_1_bss_33C, 100, 1, 10, 0, fn_1_8F68); - temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8F68), MEMORY_DEFAULT_NUM); - temp_r28->work[0] = temp_r31; - temp_r27 = temp_r28->data; - temp_r27->unk110 = -1; - temp_r27->unk114 = temp_r28->work[0]; - temp_r27->unk120 = GWPlayerCfg[temp_r27->unk114].group; - } - (void)&sp14; + s32 temp_r31; + omObjData *temp_r28; + Work8F68 *temp_r27; + s32 temp_r22; + s32 temp_r17; + Vec sp2C; + s32 sp1C; + s32 sp18; + s32 sp14; - - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14 = -1; - sp18 = 40; - for(temp_r22=0; temp_r22<4; temp_r22++) { - temp_r27 = lbl_1_bss_1A4[temp_r22]->data; - if(temp_r27->unk110 < 0) { - sp1C = temp_r27->unk114+(temp_r27->unk120*4); - if(sp18 > sp1C) { - sp18 = sp1C; - sp14 = temp_r22; - } - } - } - ((Work8F68 *)lbl_1_bss_1A4[sp14]->data)->unk110 = temp_r31; - } - omMakeGroupEx(lbl_1_bss_33C, 1, 4); - lbl_1_bss_1A0 = omGetGroupMemberListEx(lbl_1_bss_33C, 1); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r28 = omAddObjEx(lbl_1_bss_33C, 101, 2, 1, 1, fn_1_99F0); - temp_r28->work[0] = temp_r31; - } - omMakeGroupEx(lbl_1_bss_33C, 2, 4); - lbl_1_bss_19C = omGetGroupMemberListEx(lbl_1_bss_33C, 2); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r28 = omAddObjEx(lbl_1_bss_33C, 102, 2, 0, 2, fn_1_33F8); - temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work3284), MEMORY_DEFAULT_NUM); - temp_r28->work[0] = temp_r31; - } - lbl_1_bss_1A = Hu3DModelCreateFile(0x3C002F); - Hu3DModelAttrSet(lbl_1_bss_1A, 1); - Hu3DModelAttrSet(lbl_1_bss_1A, 0x40000003); - omMakeGroupEx(lbl_1_bss_33C, 3, 20); - lbl_1_bss_198 = omGetGroupMemberListEx(lbl_1_bss_33C, 3); - lbl_1_bss_1A8 = omAddObjEx(lbl_1_bss_33C, 104, 5, 0, -1, fn_1_31AC); - MapObject[nMap++] = lbl_1_bss_1A8; - lbl_1_bss_1AC = omAddObjEx(lbl_1_bss_33C, 105, 5, 0, -1, fn_1_D5E8); - lbl_1_bss_C = HuSprAnimReadFile(0x3C003F); - HuSprAnimLock(lbl_1_bss_C); - lbl_1_bss_8 = Hu3DParManCreate(lbl_1_bss_C, 20, &lbl_1_data_13E8); - Hu3DParManAttrSet(lbl_1_bss_8, 1); + OSReport("******* M429 ObjectSetup *********\n"); + nMap = 0; + nChar = 0; + lbl_1_bss_33C = omInitObjMan(100, 8192); + omGameSysInit(lbl_1_bss_33C); + lbl_1_bss_308 = 0; + lbl_1_bss_2FE = -1; + lbl_1_bss_2FC = -1; + lbl_1_bss_28 = -1; + lbl_1_bss_24 = 0; + lbl_1_bss_20 = 0; + lbl_1_bss_1C = 0; + lbl_1_bss_2F8 = -1; + lbl_1_bss_4 = -1; + lbl_1_bss_0 = -1; + lbl_1_bss_11C = 0; + lbl_1_bss_120 = 850; + lbl_1_bss_118 = 450; + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + lbl_1_bss_2C[temp_r31] = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + lbl_1_bss_130[temp_r31].unk0 = -1; + lbl_1_bss_130[temp_r31].unk4 = 0; + } + lbl_1_bss_34 = frandmod(4); + fn_1_2684(); + fn_1_A118(); + temp_r17 = Hu3DGLightCreateV(&lbl_1_data_111C, &lbl_1_data_1128, &lbl_1_data_1134); + Hu3DGLightStaticSet(temp_r17, 1); + Hu3DGLightInfinitytSet(temp_r17); + Hu3DShadowCreate(30, 10, 20000); + Hu3DShadowTPLvlSet(0.5f); + VECNormalize(&lbl_1_data_1138, &sp2C); + Hu3DShadowPosSet(&lbl_1_data_1138, &sp2C, &lbl_1_data_1144); + omMakeGroupEx(lbl_1_bss_33C, 0, 4); + lbl_1_bss_1A4 = omGetGroupMemberListEx(lbl_1_bss_33C, 0); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r28 = omAddObjEx(lbl_1_bss_33C, 100, 1, 10, 0, fn_1_8F68); + temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8F68), MEMORY_DEFAULT_NUM); + temp_r28->work[0] = temp_r31; + temp_r27 = temp_r28->data; + temp_r27->unk110 = -1; + temp_r27->unk114 = temp_r28->work[0]; + temp_r27->unk120 = GWPlayerCfg[temp_r27->unk114].group; + } + (void)&sp14; + + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp14 = -1; + sp18 = 40; + for (temp_r22 = 0; temp_r22 < 4; temp_r22++) { + temp_r27 = lbl_1_bss_1A4[temp_r22]->data; + if (temp_r27->unk110 < 0) { + sp1C = temp_r27->unk114 + (temp_r27->unk120 * 4); + if (sp18 > sp1C) { + sp18 = sp1C; + sp14 = temp_r22; + } + } + } + ((Work8F68 *)lbl_1_bss_1A4[sp14]->data)->unk110 = temp_r31; + } + omMakeGroupEx(lbl_1_bss_33C, 1, 4); + lbl_1_bss_1A0 = omGetGroupMemberListEx(lbl_1_bss_33C, 1); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r28 = omAddObjEx(lbl_1_bss_33C, 101, 2, 1, 1, fn_1_99F0); + temp_r28->work[0] = temp_r31; + } + omMakeGroupEx(lbl_1_bss_33C, 2, 4); + lbl_1_bss_19C = omGetGroupMemberListEx(lbl_1_bss_33C, 2); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r28 = omAddObjEx(lbl_1_bss_33C, 102, 2, 0, 2, fn_1_33F8); + temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work3284), MEMORY_DEFAULT_NUM); + temp_r28->work[0] = temp_r31; + } + lbl_1_bss_1A = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x2F)); + Hu3DModelAttrSet(lbl_1_bss_1A, 1); + Hu3DModelAttrSet(lbl_1_bss_1A, 0x40000003); + omMakeGroupEx(lbl_1_bss_33C, 3, 20); + lbl_1_bss_198 = omGetGroupMemberListEx(lbl_1_bss_33C, 3); + lbl_1_bss_1A8 = omAddObjEx(lbl_1_bss_33C, 104, 5, 0, -1, fn_1_31AC); + MapObject[nMap++] = lbl_1_bss_1A8; + lbl_1_bss_1AC = omAddObjEx(lbl_1_bss_33C, 105, 5, 0, -1, fn_1_D5E8); + lbl_1_bss_C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M429, 0x3F)); + HuSprAnimLock(lbl_1_bss_C); + lbl_1_bss_8 = Hu3DParManCreate(lbl_1_bss_C, 20, &lbl_1_data_13E8); + Hu3DParManAttrSet(lbl_1_bss_8, 1); } void fn_1_E96C(omObjData *object) { - s32 temp_r31; - if(lbl_1_bss_0 >= 0) { - HuAudFXStop(lbl_1_bss_0); - lbl_1_bss_0 = -1; - } - if(WipeStatGet()) { - return; - } - if(lbl_1_bss_2FE >= 0) { - MGSeqKill(lbl_1_bss_2FE); - } - if(lbl_1_bss_2FC >= 0) { - MGSeqKill(lbl_1_bss_2FC); - } - MGSeqKillAll(); - HuAudAllStop(); - for(temp_r31=0; temp_r31<4; temp_r31++) { - CharModelKill(lbl_1_data_0[GWPlayerCfg[temp_r31].character]); - } - omOvlReturnEx(1, 1); + s32 temp_r31; + if (lbl_1_bss_0 >= 0) { + HuAudFXStop(lbl_1_bss_0); + lbl_1_bss_0 = -1; + } + if (WipeStatGet()) { + return; + } + if (lbl_1_bss_2FE >= 0) { + MGSeqKill(lbl_1_bss_2FE); + } + if (lbl_1_bss_2FC >= 0) { + MGSeqKill(lbl_1_bss_2FC); + } + MGSeqKillAll(); + HuAudAllStop(); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + CharModelKill(lbl_1_data_0[GWPlayerCfg[temp_r31].character]); + } + omOvlReturnEx(1, 1); } diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 44e0cea4..e95d89b0 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -2,15 +2,15 @@ #include "game/hsfmotion.h" #include "game/msm.h" +#include "game/audio.h" #include "game/object.h" #include "game/objsub.h" -#include "game/audio.h" -#include "game/wipe.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/sprite.h" -#include "game/minigame_seq.h" #include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "game/sprite.h" #include "ext_math.h" @@ -18,27 +18,26 @@ #include "rel_sqrt_consts.h" - typedef struct bss_5C_struct { - s16 unk0[6]; - s16 unkC[2]; - s16 unk10; - s16 unk12; - s16 unk14; - s16 unk16; - float unk18; - float unk1C; - float unk20; - float unk24; - float unk28[2]; - float unk30; - float unk34; + s16 unk0[6]; + s16 unkC[2]; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + float unk18; + float unk1C; + float unk20; + float unk24; + float unk28[2]; + float unk30; + float unk34; } Bss5CStruct; typedef struct camera_view_params { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraViewParams; Bss5CStruct lbl_1_bss_5C; @@ -61,212 +60,183 @@ s8 lbl_1_bss_0; Vec lbl_1_data_0 = { 800, 1300, 1000 }; Vec lbl_1_data_C = { 0, 0, 0 }; GXColor lbl_1_data_18 = { 255, 255, 255, 255 }; -Vec lbl_1_data_1C = { 10, 45, 0}; +Vec lbl_1_data_1C = { 10, 45, 0 }; Vec lbl_1_data_28 = { 1300, 2500, 1300 }; Vec lbl_1_data_34 = { 0, 1, 0 }; Vec lbl_1_data_40 = { 0, 0, -1200 }; -CameraViewParams lbl_1_data_4C[4] = { - { - 760, - { -324, -97, 0 }, - { -43, 0, 0 } - }, - { - 800, - { 325, -64, 0 }, - { -43, -20, 0 } - }, - { - 1460, - { 0, 57, 0 }, - { -37, 0, 0 } - }, - { - 880, - { -381, 25, 0 }, - { -14, 10, 0 } - } -}; +CameraViewParams lbl_1_data_4C[4] = { { 760, { -324, -97, 0 }, { -43, 0, 0 } }, { 800, { 325, -64, 0 }, { -43, -20, 0 } }, + { 1460, { 0, 57, 0 }, { -37, 0, 0 } }, { 880, { -381, 25, 0 }, { -14, 10, 0 } } }; -s32 lbl_1_data_BC[3] = { - -32, - -2, - 28 -}; +s32 lbl_1_data_BC[3] = { -32, -2, 28 }; -s32 lbl_1_data_C8[2] = { - 90, - 486 -}; +s32 lbl_1_data_C8[2] = { 90, 486 }; void fn_1_424(omObjData *object); void fn_1_A44(omObjData *object); void fn_1_2110(omObjData *object); - void ObjectSetup(void) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - Process *temp_r31; - LightData *temp_r30; - CameraData *temp_r29; - - Hu3DLightAllKill(); - lbl_1_bss_28 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_18); - Hu3DGLightInfinitytSet(lbl_1_bss_28); - temp_r30 = &Hu3DGlobalLight[lbl_1_bss_28]; - temp_r30->unk_00 |= 0x8000; - sp2C.x = sp2C.y = sp2C.z = 0; - Hu3DGLightPosAimSetV(lbl_1_bss_28, &lbl_1_data_0, &sp2C); - Hu3DShadowCreate(45, 20, 10000); - Hu3DShadowTPLvlSet(0.425f); - Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); - temp_r31 = omInitObjMan(50, 8192); - omGameSysInit(temp_r31); - HuAudSndGrpSet(56); - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 41.5, 5, 5000, 1.2f); - omAddObjEx(temp_r31, 32730, 0, 0, -1, omOutView); - temp_r29 = &Hu3DCamera[0]; - temp_r29->fov = -1; - sp14.x = 0; - sp14.y = 374; - sp14.z = 1086; - sp20.x = 0; - sp20.y = 568; - sp20.z = -1316; - sp8.z = sp20.x-sp14.x; - sp8.y = sp20.y-sp14.y; - sp8.x = sp20.z-sp14.z; - CRot.x = lbl_1_data_4C[0].rot.x; - CRot.y = lbl_1_data_4C[0].rot.y; - CRot.z = lbl_1_data_4C[0].rot.z; - Center.x = lbl_1_data_4C[0].pos.x; - Center.y = lbl_1_data_4C[0].pos.y; - Center.z = lbl_1_data_4C[0].pos.z; - CZoom = lbl_1_data_4C[0].zoom; - omAddObjEx(temp_r31, 1000, 0, 0, -1, fn_1_424); - lbl_1_bss_30 = omAddObjEx(temp_r31, 10, 9, 0, -1, fn_1_A44); - lbl_1_bss_2C = omAddObjEx(temp_r31, 50, 9, 9, -1, fn_1_2110); - Hu3DBGColorSet(0, 0, 0); - fn_1_7ABC(temp_r31); + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + Process *temp_r31; + LightData *temp_r30; + CameraData *temp_r29; + + Hu3DLightAllKill(); + lbl_1_bss_28 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_18); + Hu3DGLightInfinitytSet(lbl_1_bss_28); + temp_r30 = &Hu3DGlobalLight[lbl_1_bss_28]; + temp_r30->unk_00 |= 0x8000; + sp2C.x = sp2C.y = sp2C.z = 0; + Hu3DGLightPosAimSetV(lbl_1_bss_28, &lbl_1_data_0, &sp2C); + Hu3DShadowCreate(45, 20, 10000); + Hu3DShadowTPLvlSet(0.425f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + temp_r31 = omInitObjMan(50, 8192); + omGameSysInit(temp_r31); + HuAudSndGrpSet(56); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 41.5, 5, 5000, 1.2f); + omAddObjEx(temp_r31, 32730, 0, 0, -1, omOutView); + temp_r29 = &Hu3DCamera[0]; + temp_r29->fov = -1; + sp14.x = 0; + sp14.y = 374; + sp14.z = 1086; + sp20.x = 0; + sp20.y = 568; + sp20.z = -1316; + sp8.z = sp20.x - sp14.x; + sp8.y = sp20.y - sp14.y; + sp8.x = sp20.z - sp14.z; + CRot.x = lbl_1_data_4C[0].rot.x; + CRot.y = lbl_1_data_4C[0].rot.y; + CRot.z = lbl_1_data_4C[0].rot.z; + Center.x = lbl_1_data_4C[0].pos.x; + Center.y = lbl_1_data_4C[0].pos.y; + Center.z = lbl_1_data_4C[0].pos.z; + CZoom = lbl_1_data_4C[0].zoom; + omAddObjEx(temp_r31, 1000, 0, 0, -1, fn_1_424); + lbl_1_bss_30 = omAddObjEx(temp_r31, 10, 9, 0, -1, fn_1_A44); + lbl_1_bss_2C = omAddObjEx(temp_r31, 50, 9, 9, -1, fn_1_2110); + Hu3DBGColorSet(0, 0, 0); + fn_1_7ABC(temp_r31); } void fn_1_49C(omObjData *object); void fn_1_424(omObjData *object) { - if(omSysExitReq || lbl_1_bss_0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqAllFadeOut(100); - object->func = fn_1_49C; - } + if (omSysExitReq || lbl_1_bss_0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqAllFadeOut(100); + object->func = fn_1_49C; + } } void fn_1_71B8(s16 arg0); void fn_1_49C(omObjData *object) { - s16 i; - if(WipeStatGet()) { - return; - } - fn_1_71B8(lbl_1_bss_30->model[0]); - for(i=0; i<6; i++) { - fn_1_71B8(lbl_1_bss_5C.unk0[i]); - } - HuSprGrpKill(lbl_1_bss_30->model[1]); - HuSprGrpKill(lbl_1_bss_30->model[2]); - HuSprGrpKill(lbl_1_bss_30->model[3]); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - + s16 i; + if (WipeStatGet()) { + return; + } + fn_1_71B8(lbl_1_bss_30->model[0]); + for (i = 0; i < 6; i++) { + fn_1_71B8(lbl_1_bss_5C.unk0[i]); + } + HuSprGrpKill(lbl_1_bss_30->model[1]); + HuSprGrpKill(lbl_1_bss_30->model[2]); + HuSprGrpKill(lbl_1_bss_30->model[3]); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); } float fn_1_65CC(float arg0, float arg1, float arg2); u8 fn_1_57C(void) { - float temp_f31; - float temp_f30; - CameraViewParams *temp_r31; - s32 temp_r30; - temp_r31 = &lbl_1_data_4C[0]; - temp_r30 = 0; - lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8/90.0f; - if(lbl_1_bss_8 > 90) { - lbl_1_bss_8 = 0; - temp_f30 = 1; - temp_r30 = 1; - } - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - CZoom = fn_1_65CC(temp_r31[0].zoom, temp_r31[2].zoom, temp_f31); - Center.x = fn_1_65CC(temp_r31[0].pos.x, temp_r31[2].pos.x, temp_f31); - Center.y = fn_1_65CC(temp_r31[0].pos.y, temp_r31[2].pos.y, temp_f31); - Center.z = fn_1_65CC(temp_r31[0].pos.z, temp_r31[2].pos.z, temp_f31); - CRot.x = fn_1_65CC(temp_r31[0].rot.x, temp_r31[2].rot.x, temp_f31); - CRot.y = fn_1_65CC(temp_r31[0].rot.y, temp_r31[2].rot.y, temp_f31); - CRot.z = fn_1_65CC(temp_r31[0].rot.z, temp_r31[2].rot.z, temp_f31); - return temp_r30; + float temp_f31; + float temp_f30; + CameraViewParams *temp_r31; + s32 temp_r30; + temp_r31 = &lbl_1_data_4C[0]; + temp_r30 = 0; + lbl_1_bss_8++; + temp_f30 = lbl_1_bss_8 / 90.0f; + if (lbl_1_bss_8 > 90) { + lbl_1_bss_8 = 0; + temp_f30 = 1; + temp_r30 = 1; + } + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + CZoom = fn_1_65CC(temp_r31[0].zoom, temp_r31[2].zoom, temp_f31); + Center.x = fn_1_65CC(temp_r31[0].pos.x, temp_r31[2].pos.x, temp_f31); + Center.y = fn_1_65CC(temp_r31[0].pos.y, temp_r31[2].pos.y, temp_f31); + Center.z = fn_1_65CC(temp_r31[0].pos.z, temp_r31[2].pos.z, temp_f31); + CRot.x = fn_1_65CC(temp_r31[0].rot.x, temp_r31[2].rot.x, temp_f31); + CRot.y = fn_1_65CC(temp_r31[0].rot.y, temp_r31[2].rot.y, temp_f31); + CRot.z = fn_1_65CC(temp_r31[0].rot.z, temp_r31[2].rot.z, temp_f31); + return temp_r30; } typedef struct work_a44 { - u16 unk0; - s16 unk2; - s16 unk4; - s16 unk6[2]; - s16 unkA; - s32 unkC; - s16 unk10; - s16 unk12; - s16 unk14; - s16 unk16; + u16 unk0; + s16 unk2; + s16 unk4; + s16 unk6[2]; + s16 unkA; + s32 unkC; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; } WorkA44; s32 fn_1_7B0(void) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - CameraViewParams *temp_r31; - WorkA44 *temp_r30; - s32 temp_r29; - temp_r30 = lbl_1_bss_30->data; - temp_r31 = &lbl_1_data_4C[0]; - temp_r29 = 0; - lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8/120.0f; - if(lbl_1_bss_8 > 120) { - lbl_1_bss_8 = 120; - temp_f30 = 1; - temp_r29 = 1; - } - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - if(temp_r30->unk4 == 0) { - temp_f29 = temp_r31[3].pos.x; - temp_f28 = temp_r31[3].rot.y; - } else { - temp_f29 = -temp_r31[3].pos.x; - temp_f28 = -temp_r31[3].rot.y; - } - CZoom = fn_1_65CC(temp_r31[2].zoom, temp_r31[3].zoom, temp_f31); - Center.x = fn_1_65CC(temp_r31[2].pos.x, temp_f29, temp_f31); - Center.y = fn_1_65CC(temp_r31[2].pos.y, temp_r31[3].pos.y, temp_f31); - Center.z = fn_1_65CC(temp_r31[2].pos.z, temp_r31[3].pos.z, temp_f31); - CRot.x = fn_1_65CC(temp_r31[2].rot.x, temp_r31[3].rot.x, temp_f31); - CRot.y = fn_1_65CC(temp_r31[2].rot.y, temp_f28, temp_f31); - CRot.z = fn_1_65CC(temp_r31[2].rot.z, temp_r31[3].rot.z, temp_f31); - return temp_r29; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + CameraViewParams *temp_r31; + WorkA44 *temp_r30; + s32 temp_r29; + temp_r30 = lbl_1_bss_30->data; + temp_r31 = &lbl_1_data_4C[0]; + temp_r29 = 0; + lbl_1_bss_8++; + temp_f30 = lbl_1_bss_8 / 120.0f; + if (lbl_1_bss_8 > 120) { + lbl_1_bss_8 = 120; + temp_f30 = 1; + temp_r29 = 1; + } + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + if (temp_r30->unk4 == 0) { + temp_f29 = temp_r31[3].pos.x; + temp_f28 = temp_r31[3].rot.y; + } + else { + temp_f29 = -temp_r31[3].pos.x; + temp_f28 = -temp_r31[3].rot.y; + } + CZoom = fn_1_65CC(temp_r31[2].zoom, temp_r31[3].zoom, temp_f31); + Center.x = fn_1_65CC(temp_r31[2].pos.x, temp_f29, temp_f31); + Center.y = fn_1_65CC(temp_r31[2].pos.y, temp_r31[3].pos.y, temp_f31); + Center.z = fn_1_65CC(temp_r31[2].pos.z, temp_r31[3].pos.z, temp_f31); + CRot.x = fn_1_65CC(temp_r31[2].rot.x, temp_r31[3].rot.x, temp_f31); + CRot.y = fn_1_65CC(temp_r31[2].rot.y, temp_f28, temp_f31); + CRot.z = fn_1_65CC(temp_r31[2].rot.z, temp_r31[3].rot.z, temp_f31); + return temp_r29; } - void fn_1_6030(ModelData *arg0, Work72B4 *arg1, Mtx arg2); s16 fn_1_6C74(AnimData *arg0, s16 arg1, float arg2, s16 arg3, s16 arg4); void fn_1_7244(s16 arg0, unkHook72B4 arg1); @@ -275,89 +245,89 @@ void fn_1_10A4(omObjData *object); void fn_1_A44(omObjData *object) { - float temp_f31; - - s16 temp_r31; - s16 temp_r30; - s16 temp_r28; - - AnimData *temp_r27; - WorkA44 *temp_r26; - s16 temp_r25; - - AnimData *temp_r24; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA44), MEMORY_DEFAULT_NUM); - temp_r26 = object->data; - temp_r26->unk0 = 4; - temp_r26->unk6[0] = 0; - temp_r26->unkA = 900; - temp_r26->unk10 = -1; - temp_r27 = HuSprAnimRead(HuDataReadNum(0x3E001A, MEMORY_DEFAULT_NUM)); - object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64); - fn_1_7244(object->model[0], fn_1_6030); - Hu3DModelLayerSet(object->model[0], 7); - temp_r30 = HuSprGrpCreate(4); - object->model[3] = temp_r30; - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001B, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 16, 0); - HuSprGrpMemberSet(temp_r30, 0, temp_r28); - HuSprAttrSet(temp_r30, 0, HUSPR_ATTR_DISPOFF); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001D, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 32, 0); - HuSprGrpMemberSet(temp_r30, 2, temp_r28); - HuSprAttrSet(temp_r30, 2, HUSPR_ATTR_DISPOFF); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001C, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 16, 0); - HuSprGrpMemberSet(temp_r30, 1, temp_r28); - HuSprAttrSet(temp_r30, 1, HUSPR_ATTR_DISPOFF); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001D, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 32, 0); - HuSprGrpMemberSet(temp_r30, 3, temp_r28); - HuSprAttrSet(temp_r30, 3, HUSPR_ATTR_DISPOFF); - temp_f31 = 288; - HuSprPosSet(temp_r30, 0, temp_f31-198, 64); - HuSprPosSet(temp_r30, 1, temp_f31+198, 64); - HuSprPosSet(temp_r30, 2, temp_f31-198, 64); - HuSprTPLvlSet(temp_r30, 2, 88); - HuSprColorSet(temp_r30, 2, 0, 0, 0); - HuSprPosSet(temp_r30, 3, temp_f31+198, 64); - HuSprTPLvlSet(temp_r30, 3, 88); - HuSprColorSet(temp_r30, 3, 0, 0, 0); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61000B, MEMORY_DEFAULT_NUM)); - temp_r24 = HuSprAnimRead(HuDataReadNum(0x61000A, MEMORY_DEFAULT_NUM)); - temp_r30 = HuSprGrpCreate(6); - object->model[1] = temp_r30; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r28 = HuSprCreate(temp_r27, 0, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0]+lbl_1_data_BC[temp_r31], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - for(temp_r31=3; temp_r31<6; temp_r31++) { - temp_r25 = temp_r31-3; - temp_r28 = HuSprCreate(temp_r24, 8, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0]+lbl_1_data_BC[temp_r25], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - temp_r30 = HuSprGrpCreate(6); - object->model[2] = temp_r30; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r28 = HuSprCreate(temp_r27, 0, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1]+lbl_1_data_BC[temp_r31], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - for(temp_r31=3; temp_r31<6; temp_r31++) { - temp_r25 = temp_r31-3; - temp_r28 = HuSprCreate(temp_r24, 8, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1]+lbl_1_data_BC[temp_r25], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - (void)temp_r31; - (void)temp_r31; - object->func = fn_1_10A4; + float temp_f31; + + s16 temp_r31; + s16 temp_r30; + s16 temp_r28; + + AnimData *temp_r27; + WorkA44 *temp_r26; + s16 temp_r25; + + AnimData *temp_r24; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA44), MEMORY_DEFAULT_NUM); + temp_r26 = object->data; + temp_r26->unk0 = 4; + temp_r26->unk6[0] = 0; + temp_r26->unkA = 900; + temp_r26->unk10 = -1; + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1A), MEMORY_DEFAULT_NUM)); + object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64); + fn_1_7244(object->model[0], fn_1_6030); + Hu3DModelLayerSet(object->model[0], 7); + temp_r30 = HuSprGrpCreate(4); + object->model[3] = temp_r30; + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 16, 0); + HuSprGrpMemberSet(temp_r30, 0, temp_r28); + HuSprAttrSet(temp_r30, 0, HUSPR_ATTR_DISPOFF); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 32, 0); + HuSprGrpMemberSet(temp_r30, 2, temp_r28); + HuSprAttrSet(temp_r30, 2, HUSPR_ATTR_DISPOFF); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 16, 0); + HuSprGrpMemberSet(temp_r30, 1, temp_r28); + HuSprAttrSet(temp_r30, 1, HUSPR_ATTR_DISPOFF); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 32, 0); + HuSprGrpMemberSet(temp_r30, 3, temp_r28); + HuSprAttrSet(temp_r30, 3, HUSPR_ATTR_DISPOFF); + temp_f31 = 288; + HuSprPosSet(temp_r30, 0, temp_f31 - 198, 64); + HuSprPosSet(temp_r30, 1, temp_f31 + 198, 64); + HuSprPosSet(temp_r30, 2, temp_f31 - 198, 64); + HuSprTPLvlSet(temp_r30, 2, 88); + HuSprColorSet(temp_r30, 2, 0, 0, 0); + HuSprPosSet(temp_r30, 3, temp_f31 + 198, 64); + HuSprTPLvlSet(temp_r30, 3, 88); + HuSprColorSet(temp_r30, 3, 0, 0, 0); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0B), MEMORY_DEFAULT_NUM)); + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0A), MEMORY_DEFAULT_NUM)); + temp_r30 = HuSprGrpCreate(6); + object->model[1] = temp_r30; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r28 = HuSprCreate(temp_r27, 0, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0] + lbl_1_data_BC[temp_r31], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + for (temp_r31 = 3; temp_r31 < 6; temp_r31++) { + temp_r25 = temp_r31 - 3; + temp_r28 = HuSprCreate(temp_r24, 8, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0] + lbl_1_data_BC[temp_r25], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + temp_r30 = HuSprGrpCreate(6); + object->model[2] = temp_r30; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r28 = HuSprCreate(temp_r27, 0, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1] + lbl_1_data_BC[temp_r31], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + for (temp_r31 = 3; temp_r31 < 6; temp_r31++) { + temp_r25 = temp_r31 - 3; + temp_r28 = HuSprCreate(temp_r24, 8, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1] + lbl_1_data_BC[temp_r25], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + (void)temp_r31; + (void)temp_r31; + object->func = fn_1_10A4; } void fn_1_140C(omObjData *object); @@ -368,329 +338,331 @@ void fn_1_5480(void); void fn_1_10A4(omObjData *object) { - WorkA44 *temp_r31; - s16 temp_r30; - s16 temp_r28; - CameraData *temp_r27; - temp_r31 = object->data; - temp_r30 = 99; - switch(fn_1_2090(28)) { - case 4: - if(lbl_1_bss_E == 0) { - lbl_1_bss_E = 1; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - temp_r27 = &Hu3DCamera[0]; - temp_r27->fov = 41.5f; - } - if(!WipeStatGet()) { - fn_1_2050(28, 8); - fn_1_2050(224, 32); - } - break; - - case 8: - if(fn_1_1634(object)) { - fn_1_2050(1, 0); - fn_1_2050(28, 12); - } - break; - - case 12: - if(temp_r31->unk10 != -1) { - temp_r28 = (temp_r31->unkA+59)/60; - if(temp_r28 < 0) { - temp_r28 = 0; - } - MGSeqParamSet(temp_r31->unk10, 1, temp_r28); - } - fn_1_140C(object); - if(fn_1_2090(224) == 128) { - if(lbl_1_bss_12C[0].unk138[0] == 3) { - temp_r30 = 0; - } else if(lbl_1_bss_12C[1].unk138[0] == 3) { - temp_r30 = 1; - } else { - if(temp_r31->unk6[0] == 5) { - if(lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { - temp_r30 = -1; - } else { - if(lbl_1_bss_12C[0].unk138[0] > lbl_1_bss_12C[1].unk138[0]) { - temp_r30 = 0; - } else { - temp_r30 = 1; - } - } - } - } - } - if(temp_r30 != 99) { - if(fn_1_2090(1) == 0) { - temp_r31->unk2 = MGSeqFinishCreate(); - HuAudSeqAllFadeOut(100); - } - fn_1_5480(); - fn_1_2000(temp_r30); - fn_1_2050(1, 1); - if(temp_r31->unk0 & 0x2) { - if(temp_r30 == -1) { - lbl_1_bss_A = 1; - } - fn_1_2050(28, 16); - } - if(temp_r30 != -1) { - fn_1_8474(temp_r30^1); - } else { - fn_1_8474(0); - fn_1_8474(1); - } - } - break; - - case 16: - if(fn_1_1A40(object)) { - fn_1_2050(28, 20); - } - break; - - case 20: - if(++lbl_1_bss_C > 210.0f) { - lbl_1_bss_0 = 1; - } - break; - } + WorkA44 *temp_r31; + s16 temp_r30; + s16 temp_r28; + CameraData *temp_r27; + temp_r31 = object->data; + temp_r30 = 99; + switch (fn_1_2090(28)) { + case 4: + if (lbl_1_bss_E == 0) { + lbl_1_bss_E = 1; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + temp_r27 = &Hu3DCamera[0]; + temp_r27->fov = 41.5f; + } + if (!WipeStatGet()) { + fn_1_2050(28, 8); + fn_1_2050(224, 32); + } + break; + + case 8: + if (fn_1_1634(object)) { + fn_1_2050(1, 0); + fn_1_2050(28, 12); + } + break; + + case 12: + if (temp_r31->unk10 != -1) { + temp_r28 = (temp_r31->unkA + 59) / 60; + if (temp_r28 < 0) { + temp_r28 = 0; + } + MGSeqParamSet(temp_r31->unk10, 1, temp_r28); + } + fn_1_140C(object); + if (fn_1_2090(224) == 128) { + if (lbl_1_bss_12C[0].unk138[0] == 3) { + temp_r30 = 0; + } + else if (lbl_1_bss_12C[1].unk138[0] == 3) { + temp_r30 = 1; + } + else { + if (temp_r31->unk6[0] == 5) { + if (lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { + temp_r30 = -1; + } + else { + if (lbl_1_bss_12C[0].unk138[0] > lbl_1_bss_12C[1].unk138[0]) { + temp_r30 = 0; + } + else { + temp_r30 = 1; + } + } + } + } + } + if (temp_r30 != 99) { + if (fn_1_2090(1) == 0) { + temp_r31->unk2 = MGSeqFinishCreate(); + HuAudSeqAllFadeOut(100); + } + fn_1_5480(); + fn_1_2000(temp_r30); + fn_1_2050(1, 1); + if (temp_r31->unk0 & 0x2) { + if (temp_r30 == -1) { + lbl_1_bss_A = 1; + } + fn_1_2050(28, 16); + } + if (temp_r30 != -1) { + fn_1_8474(temp_r30 ^ 1); + } + else { + fn_1_8474(0); + fn_1_8474(1); + } + } + break; + + case 16: + if (fn_1_1A40(object)) { + fn_1_2050(28, 20); + } + break; + + case 20: + if (++lbl_1_bss_C > 210.0f) { + lbl_1_bss_0 = 1; + } + break; + } } void fn_1_140C(omObjData *object) { - float temp_f31; - float temp_f30; - WorkA44 *temp_r31 = object->data; - if((temp_r31->unk0 & 0x300) == 0) { - return; - } - temp_r31->unk12++; - temp_f31 = temp_r31->unk12/18.0f; - if(temp_r31->unk12 > 18.0f) { - temp_r31->unk12 = 0; - temp_f31 = 1.0f; - temp_r31->unk12 = 18; - temp_r31->unk0 &= ~0x300; - } - temp_f30 = 1.0-cosd(90.0f*temp_f31); - - temp_f31 = 1.0+sind(180.0f*temp_f31); - HuSprAttrReset(lbl_1_bss_30->model[temp_r31->unk6[1]+1], temp_r31->unk16, HUSPR_ATTR_DISPOFF); - HuSprScaleSet(lbl_1_bss_30->model[temp_r31->unk6[1]+1], temp_r31->unk16, temp_f31, temp_f31); - HuSprTPLvlSet(lbl_1_bss_30->model[temp_r31->unk6[1]+1], temp_r31->unk16, temp_f30); - + float temp_f31; + float temp_f30; + WorkA44 *temp_r31 = object->data; + if ((temp_r31->unk0 & 0x300) == 0) { + return; + } + temp_r31->unk12++; + temp_f31 = temp_r31->unk12 / 18.0f; + if (temp_r31->unk12 > 18.0f) { + temp_r31->unk12 = 0; + temp_f31 = 1.0f; + temp_r31->unk12 = 18; + temp_r31->unk0 &= ~0x300; + } + temp_f30 = 1.0 - cosd(90.0f * temp_f31); + + temp_f31 = 1.0 + sind(180.0f * temp_f31); + HuSprAttrReset(lbl_1_bss_30->model[temp_r31->unk6[1] + 1], temp_r31->unk16, HUSPR_ATTR_DISPOFF); + HuSprScaleSet(lbl_1_bss_30->model[temp_r31->unk6[1] + 1], temp_r31->unk16, temp_f31, temp_f31); + HuSprTPLvlSet(lbl_1_bss_30->model[temp_r31->unk6[1] + 1], temp_r31->unk16, temp_f30); } void fn_1_2AB0(s16 arg0); u8 fn_1_1634(omObjData *object) { - WorkA44 *temp_r30 = object->data; - s32 temp_r29; - s32 temp_r27; - s32 temp_r26; - switch(lbl_1_bss_A) { - case 0: - if(fn_1_2090(224) == 64) { - fn_1_2050(1, 1); - lbl_1_bss_A++; - } - break; - - case 1: - if(fn_1_57C()) { - lbl_1_bss_A++; - } - break; - - case 2: - temp_r30->unk2 = MGSeqStartCreate(); - temp_r30->unkC = -1; - lbl_1_bss_A++; - break; - - case 3: - if(temp_r30->unk2 != -1) { - temp_r26 = MGSeqStatGet(temp_r30->unk2); - if((temp_r26 & 0x10) && temp_r30->unkC == -1) { - temp_r30->unkC = HuAudSeqPlay(72); - } - } - if(temp_r30->unk2 == -1 || temp_r26 == 0) { - temp_r27 = object->model[1]; - for(temp_r29=3; temp_r29<6; temp_r29++) { - HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); - } - temp_r27 = object->model[2]; - for(temp_r29=3; temp_r29<6; temp_r29++) { - HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); - } - temp_r27 = object->model[3]; - for(temp_r29=0; temp_r29<4; temp_r29++) { - HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); - } - fn_1_2AB0(999); - lbl_1_bss_A = 0; - - return 1; - } - break; - } - return 0; + WorkA44 *temp_r30 = object->data; + s32 temp_r29; + s32 temp_r27; + s32 temp_r26; + switch (lbl_1_bss_A) { + case 0: + if (fn_1_2090(224) == 64) { + fn_1_2050(1, 1); + lbl_1_bss_A++; + } + break; + + case 1: + if (fn_1_57C()) { + lbl_1_bss_A++; + } + break; + + case 2: + temp_r30->unk2 = MGSeqStartCreate(); + temp_r30->unkC = -1; + lbl_1_bss_A++; + break; + + case 3: + if (temp_r30->unk2 != -1) { + temp_r26 = MGSeqStatGet(temp_r30->unk2); + if ((temp_r26 & 0x10) && temp_r30->unkC == -1) { + temp_r30->unkC = HuAudSeqPlay(72); + } + } + if (temp_r30->unk2 == -1 || temp_r26 == 0) { + temp_r27 = object->model[1]; + for (temp_r29 = 3; temp_r29 < 6; temp_r29++) { + HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); + } + temp_r27 = object->model[2]; + for (temp_r29 = 3; temp_r29 < 6; temp_r29++) { + HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); + } + temp_r27 = object->model[3]; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); + } + fn_1_2AB0(999); + lbl_1_bss_A = 0; + + return 1; + } + break; + } + return 0; } u8 fn_1_1A40(omObjData *object) { - WorkA44 *temp_r30; - Bss12CStruct *temp_r29; - s32 temp_r28; - s32 temp_r25; - temp_r30 = object->data; - switch(lbl_1_bss_A) { - case 0: - temp_r28 = fn_1_7FB8(temp_r30->unk4); - fn_1_8474(temp_r30->unk4^1); - temp_r28 &= fn_1_7B0(); - if((u8)temp_r28) { - lbl_1_bss_4 = 1; - fn_1_A7D0(temp_r30->unk4); - HuAudSStreamPlay(1); - lbl_1_bss_C = 0; - lbl_1_bss_A++; - } - break; - - case 1: - if(temp_r30->unk4 == -1) { - temp_r28 = fn_1_8474(0); - temp_r25 = fn_1_8474(1); - if((u8)temp_r28 == 0 || (u8)temp_r25 == 0) { - return 0; - } - if(temp_r30->unk2 == -1 || !MGSeqStatGet(temp_r30->unk2)) { - temp_r30->unk2 = -1; - lbl_1_bss_4 = 1; - fn_1_A904(0); - fn_1_A904(1); - HuAudSStreamPlay(4); - lbl_1_bss_A++; - } - } else { - if(++lbl_1_bss_C > 1) { - lbl_1_bss_A++; - } - } - break; - - case 2: - if(temp_r30->unk4 != -1) { - temp_r29 = &lbl_1_bss_12C[temp_r30->unk4]; - temp_r30->unk2 = MGSeqWinCreate(GWPlayerCfg[temp_r29->unk0[0]].character, - GWPlayerCfg[temp_r29->unk0[1]].character, - -1, - -1); - GWPlayerCoinWinAdd(temp_r29->unk0[0], 10); - GWPlayerCoinWinAdd(temp_r29->unk0[1], 10); - } else { - temp_r30->unk2 = MGSeqDrawCreate(); - } - lbl_1_bss_A++; - break; - - case 3: - lbl_1_bss_A = lbl_1_bss_C = 0; - return 1; - - default: - break; - - } - return 0; + WorkA44 *temp_r30; + Bss12CStruct *temp_r29; + s32 temp_r28; + s32 temp_r25; + temp_r30 = object->data; + switch (lbl_1_bss_A) { + case 0: + temp_r28 = fn_1_7FB8(temp_r30->unk4); + fn_1_8474(temp_r30->unk4 ^ 1); + temp_r28 &= fn_1_7B0(); + if ((u8)temp_r28) { + lbl_1_bss_4 = 1; + fn_1_A7D0(temp_r30->unk4); + HuAudSStreamPlay(1); + lbl_1_bss_C = 0; + lbl_1_bss_A++; + } + break; + + case 1: + if (temp_r30->unk4 == -1) { + temp_r28 = fn_1_8474(0); + temp_r25 = fn_1_8474(1); + if ((u8)temp_r28 == 0 || (u8)temp_r25 == 0) { + return 0; + } + if (temp_r30->unk2 == -1 || !MGSeqStatGet(temp_r30->unk2)) { + temp_r30->unk2 = -1; + lbl_1_bss_4 = 1; + fn_1_A904(0); + fn_1_A904(1); + HuAudSStreamPlay(4); + lbl_1_bss_A++; + } + } + else { + if (++lbl_1_bss_C > 1) { + lbl_1_bss_A++; + } + } + break; + + case 2: + if (temp_r30->unk4 != -1) { + temp_r29 = &lbl_1_bss_12C[temp_r30->unk4]; + temp_r30->unk2 = MGSeqWinCreate(GWPlayerCfg[temp_r29->unk0[0]].character, GWPlayerCfg[temp_r29->unk0[1]].character, -1, -1); + GWPlayerCoinWinAdd(temp_r29->unk0[0], 10); + GWPlayerCoinWinAdd(temp_r29->unk0[1], 10); + } + else { + temp_r30->unk2 = MGSeqDrawCreate(); + } + lbl_1_bss_A++; + break; + + case 3: + lbl_1_bss_A = lbl_1_bss_C = 0; + return 1; + + default: + break; + } + return 0; } void fn_1_2000(s16 arg0) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - if(arg0 == -1 || temp_r31->unk6[1] == -1) { - temp_r31->unk0 |= 0x2; - } - temp_r31->unk4 = arg0; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + if (arg0 == -1 || temp_r31->unk6[1] == -1) { + temp_r31->unk0 |= 0x2; + } + temp_r31->unk4 = arg0; } void fn_1_2050(u16 arg0, u16 arg1) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - temp_r31->unk0 &= ~arg0; - temp_r31->unk0 |= arg1; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + temp_r31->unk0 &= ~arg0; + temp_r31->unk0 |= arg1; } u16 fn_1_2090(u16 arg0) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - if(!temp_r31) { - return 0; - } - return temp_r31->unk0 & arg0; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + if (!temp_r31) { + return 0; + } + return temp_r31->unk0 & arg0; } void fn_1_20D0(s16 arg0) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - temp_r31->unk0 |= 0x100; - temp_r31->unk12 = 0; - temp_r31->unk16 = arg0; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + temp_r31->unk0 |= 0x100; + temp_r31->unk12 = 0; + temp_r31->unk16 = arg0; } s32 lbl_1_data_114[2][2] = { - 0x003E0001, - 0x003E0003, - 0x003E0005, - 0x003E0006 + DATA_MAKE_NUM(DATADIR_M431, 0x01), + DATA_MAKE_NUM(DATADIR_M431, 0x03), + DATA_MAKE_NUM(DATADIR_M431, 0x05), + DATA_MAKE_NUM(DATADIR_M431, 0x06), }; s32 lbl_1_data_124[2][2] = { - 0x003E0007, - 0x003E0008, - 0x003E0009, - 0x003E000A + DATA_MAKE_NUM(DATADIR_M431, 0x07), + DATA_MAKE_NUM(DATADIR_M431, 0x08), + DATA_MAKE_NUM(DATADIR_M431, 0x09), + DATA_MAKE_NUM(DATADIR_M431, 0x0A), }; s32 lbl_1_data_134[5] = { - 0x003E000C, - 0x003E000D, - 0x003E000E, - 0x003E000F, - 0x003E0010 + DATA_MAKE_NUM(DATADIR_M431, 0x0C), + DATA_MAKE_NUM(DATADIR_M431, 0x0D), + DATA_MAKE_NUM(DATADIR_M431, 0x0E), + DATA_MAKE_NUM(DATADIR_M431, 0x0F), + DATA_MAKE_NUM(DATADIR_M431, 0x10), }; s32 lbl_1_data_148[5] = { - 0x003E001C, - 0x003E001D, - 0x003E001E, - 0x003E001F, - 0x003E0020 + DATA_MAKE_NUM(DATADIR_M431, 0x1C), + DATA_MAKE_NUM(DATADIR_M431, 0x1D), + DATA_MAKE_NUM(DATADIR_M431, 0x1E), + DATA_MAKE_NUM(DATADIR_M431, 0x1F), + DATA_MAKE_NUM(DATADIR_M431, 0x20), }; typedef struct unk2110_obj { - u32 unk0; - float unk4; - float unk8; - Vec unkC; - s16 unk18; - s16 unk1A; - s16 unk1C; - s16 unk1E; - float unk20; + u32 unk0; + float unk4; + float unk8; + Vec unkC; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + float unk20; } Unk2110Obj; typedef struct work_2110 { - float unk0; - Unk2110Obj unk4[10]; - s16 unk16C[10]; + float unk0; + Unk2110Obj unk4[10]; + s16 unk16C[10]; } Work2110; void fn_1_2AC0(omObjData *object); @@ -700,115 +672,120 @@ void fn_1_498C(s16 arg0, Work2110 *arg1); void fn_1_2110(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f29; - s16 temp_r31; - Unk2110Obj *temp_r29; - Work2110 *temp_r28; - s16 temp_r27; - AnimData *temp_r26; - s16 temp_r25; - - object->stat |= 0x100; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 2*sizeof(Work2110), MEMORY_DEFAULT_NUM); - temp_r28 = object->data; - object->model[0] = Hu3DModelCreateFile(0x3E0000); - Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelScaleSet(object->model[0], 1.2f, 1.2f, 1.2f); - temp_r31 = Hu3DModelCreateFile(0x3E0011); - Hu3DModelAttrSet(temp_r31, 0x40000001); - Hu3DModelLayerSet(temp_r31, 0); - Hu3DMotionSpeedSet(temp_r31, 0.25f); - temp_r31 = Hu3DModelCreateFile(0x3E0012); - Hu3DModelAttrSet(temp_r31, 0x40000001); - Hu3DModelLayerSet(temp_r31, 0); - Hu3DMotionSpeedSet(temp_r31, 0.25f); - temp_r31 = Hu3DModelCreateFile(0x3E0013); - object->model[5] = temp_r31; - object->motion[0] = Hu3DJointMotionFile(temp_r31, 0x3E0014); - object->motion[1] = Hu3DJointMotionFile(temp_r31, 0x3E0015); - object->motion[2] = Hu3DJointMotionFile(temp_r31, 0x3E0016); - object->motion[3] = Hu3DJointMotionFile(temp_r31, 0x3E0017); - object->motion[4] = Hu3DJointMotionFile(temp_r31, 0x3E0014); - object->motion[5] = Hu3DJointMotionFile(temp_r31, 0x3E0018); - object->motion[6] = Hu3DJointMotionFile(temp_r31, 0x3E0019); - Hu3DModelPosSet(temp_r31, 0, 0, -230); - Hu3DModelShadowSet(temp_r31); - Hu3DModelAttrSet(temp_r31, 0x40000001); - Hu3DMotionSet(temp_r31, object->motion[0]); - for(temp_r31=0; temp_r31<2; temp_r31++, temp_r28++) { - temp_r25 = Hu3DModelCreateFile(lbl_1_data_114[0][temp_r31]); - temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; - temp_f31 = 0; - temp_f29 = 100; - Hu3DModelPosSet(temp_r25, temp_f30, temp_f31, temp_f29); - object->model[temp_r31+1] = Hu3DModelCreateFile(0x3E0002); - temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; - temp_f31 = 0; - temp_f29 = 100; - Hu3DModelPosSet(object->model[temp_r31+1], temp_f30, temp_f31, temp_f29); - Hu3DModelAttrSet(object->model[temp_r31+1], 0x40000002); - - object->model[temp_r31+3] = Hu3DModelCreateFile(lbl_1_data_114[1][temp_r31]); - temp_f31 = 45; - Hu3DModelPosSet(object->model[temp_r31+3], temp_f30, temp_f31, temp_f29); - Hu3DModelRotSet(object->model[temp_r31+3], 0, lbl_1_data_1D0, 0); - for(temp_r27 = 0, temp_r29 = &temp_r28->unk4[0]; temp_r27<10; temp_r27++, temp_r29++) { - if(fmod((float)temp_r27, 2)) { - if(temp_r27 == 1) { - temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][0]); - } else { - temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[1].unk1E); - } - } else { - if(temp_r27 == 0) { - temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][1]); - } else { - temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[0].unk1E); - } - } - Hu3DModelPosSet(temp_r29->unk1E, 0, -500, 0); - if(temp_r27 == 0) { - temp_r29->unk1C = Hu3DModelCreateFile(0x3E000B); - } else { - temp_r29->unk1C = Hu3DModelLink(temp_r28->unk4[0].unk1C); - } - Hu3DData[temp_r29->unk1C].pos.y = 1000; - Hu3DModelAttrSet(temp_r29->unk1C, 1); - temp_r29->unk0 = 0; - temp_r29->unk4 = lbl_1_data_1D0+(36.0f*temp_r27); - } - temp_r28->unk0 = 0; - fn_1_48D0(temp_r28); - fn_1_498C(temp_r31, temp_r28); - } - for(temp_r31=0; temp_r31<20; temp_r31++) { - if(temp_r31 < 5) { - lbl_1_bss_34[temp_r31] = Hu3DModelCreateFile(lbl_1_data_134[temp_r31]); - } else { - temp_r27 = fmod((float)temp_r31, 5); - lbl_1_bss_34[temp_r31] = Hu3DModelLink(lbl_1_bss_34[temp_r27]); - } - Hu3DModelPosSet(lbl_1_bss_34[temp_r31], 0, -500, 0); - } - Hu3DModelShadowMapObjSet(object->model[0], "field"); - Hu3DModelShadowMapSet(object->model[1]); - Hu3DModelShadowMapSet(object->model[2]); - temp_r26 = HuSprAnimRead(HuDataReadNum(0x3E001B, MEMORY_DEFAULT_NUM)); - lbl_1_bss_5C.unk0[0] = fn_1_6C74(temp_r26, 1, 140, 0, 0); - Hu3DModelLayerSet(lbl_1_bss_5C.unk0[0], 7); - for(temp_r31=0; temp_r31<5; temp_r31++) { - temp_r26 = HuSprAnimRead(HuDataReadNum(lbl_1_data_148[temp_r31], MEMORY_DEFAULT_NUM)); - lbl_1_bss_5C.unk0[temp_r31+1] = fn_1_6C74(temp_r26, 2, 45, 0, 0); - Hu3DModelLayerSet(lbl_1_bss_5C.unk0[temp_r31+1], 7); - } - object->func = fn_1_2AC0; + float temp_f31; + float temp_f30; + float temp_f29; + s16 temp_r31; + Unk2110Obj *temp_r29; + Work2110 *temp_r28; + s16 temp_r27; + AnimData *temp_r26; + s16 temp_r25; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(Work2110), MEMORY_DEFAULT_NUM); + temp_r28 = object->data; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x00)); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelScaleSet(object->model[0], 1.2f, 1.2f, 1.2f); + temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x11)); + Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DModelLayerSet(temp_r31, 0); + Hu3DMotionSpeedSet(temp_r31, 0.25f); + temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x12)); + Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DModelLayerSet(temp_r31, 0); + Hu3DMotionSpeedSet(temp_r31, 0.25f); + temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x13)); + object->model[5] = temp_r31; + object->motion[0] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x14)); + object->motion[1] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x15)); + object->motion[2] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x16)); + object->motion[3] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x17)); + object->motion[4] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x14)); + object->motion[5] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x18)); + object->motion[6] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x19)); + Hu3DModelPosSet(temp_r31, 0, 0, -230); + Hu3DModelShadowSet(temp_r31); + Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DMotionSet(temp_r31, object->motion[0]); + for (temp_r31 = 0; temp_r31 < 2; temp_r31++, temp_r28++) { + temp_r25 = Hu3DModelCreateFile(lbl_1_data_114[0][temp_r31]); + temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; + temp_f31 = 0; + temp_f29 = 100; + Hu3DModelPosSet(temp_r25, temp_f30, temp_f31, temp_f29); + object->model[temp_r31 + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x02)); + temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; + temp_f31 = 0; + temp_f29 = 100; + Hu3DModelPosSet(object->model[temp_r31 + 1], temp_f30, temp_f31, temp_f29); + Hu3DModelAttrSet(object->model[temp_r31 + 1], 0x40000002); + + object->model[temp_r31 + 3] = Hu3DModelCreateFile(lbl_1_data_114[1][temp_r31]); + temp_f31 = 45; + Hu3DModelPosSet(object->model[temp_r31 + 3], temp_f30, temp_f31, temp_f29); + Hu3DModelRotSet(object->model[temp_r31 + 3], 0, lbl_1_data_1D0, 0); + for (temp_r27 = 0, temp_r29 = &temp_r28->unk4[0]; temp_r27 < 10; temp_r27++, temp_r29++) { + if (fmod((float)temp_r27, 2)) { + if (temp_r27 == 1) { + temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][0]); + } + else { + temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[1].unk1E); + } + } + else { + if (temp_r27 == 0) { + temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][1]); + } + else { + temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[0].unk1E); + } + } + Hu3DModelPosSet(temp_r29->unk1E, 0, -500, 0); + if (temp_r27 == 0) { + temp_r29->unk1C = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x0B)); + } + else { + temp_r29->unk1C = Hu3DModelLink(temp_r28->unk4[0].unk1C); + } + Hu3DData[temp_r29->unk1C].pos.y = 1000; + Hu3DModelAttrSet(temp_r29->unk1C, 1); + temp_r29->unk0 = 0; + temp_r29->unk4 = lbl_1_data_1D0 + (36.0f * temp_r27); + } + temp_r28->unk0 = 0; + fn_1_48D0(temp_r28); + fn_1_498C(temp_r31, temp_r28); + } + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + if (temp_r31 < 5) { + lbl_1_bss_34[temp_r31] = Hu3DModelCreateFile(lbl_1_data_134[temp_r31]); + } + else { + temp_r27 = fmod((float)temp_r31, 5); + lbl_1_bss_34[temp_r31] = Hu3DModelLink(lbl_1_bss_34[temp_r27]); + } + Hu3DModelPosSet(lbl_1_bss_34[temp_r31], 0, -500, 0); + } + Hu3DModelShadowMapObjSet(object->model[0], "field"); + Hu3DModelShadowMapSet(object->model[1]); + Hu3DModelShadowMapSet(object->model[2]); + temp_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1B), MEMORY_DEFAULT_NUM)); + lbl_1_bss_5C.unk0[0] = fn_1_6C74(temp_r26, 1, 140, 0, 0); + Hu3DModelLayerSet(lbl_1_bss_5C.unk0[0], 7); + for (temp_r31 = 0; temp_r31 < 5; temp_r31++) { + temp_r26 = HuSprAnimRead(HuDataReadNum(lbl_1_data_148[temp_r31], MEMORY_DEFAULT_NUM)); + lbl_1_bss_5C.unk0[temp_r31 + 1] = fn_1_6C74(temp_r26, 2, 45, 0, 0); + Hu3DModelLayerSet(lbl_1_bss_5C.unk0[temp_r31 + 1], 7); + } + object->func = fn_1_2AC0; } void fn_1_2AB0(s16 arg0) { - lbl_1_bss_10 = arg0; + lbl_1_bss_10 = arg0; } void fn_1_2C94(Work2110 *arg0); @@ -820,37 +797,37 @@ void fn_1_5708(void); void fn_1_2AC0(omObjData *object) { - Work2110 *temp_r31 = object->data; - if(!fn_1_2090(1)) { - if(fn_1_2090(28) == 12 || fn_1_2090(28) == 8) { - switch(fn_1_2090(224)) { - case 32: - fn_1_2C94(temp_r31); - break; - - case 64: - fn_1_30E0(temp_r31); - break; - - case 96: - fn_1_3540(temp_r31); - break; - - case 128: - if(fn_1_2090(28) == 12) { - fn_1_3D7C(temp_r31); - } - break; - - case 0: - fn_1_4028(temp_r31); - break; - } - fn_1_498C(0, &temp_r31[0]); - fn_1_498C(1, &temp_r31[1]); - } - } - fn_1_5708(); + Work2110 *temp_r31 = object->data; + if (!fn_1_2090(1)) { + if (fn_1_2090(28) == 12 || fn_1_2090(28) == 8) { + switch (fn_1_2090(224)) { + case 32: + fn_1_2C94(temp_r31); + break; + + case 64: + fn_1_30E0(temp_r31); + break; + + case 96: + fn_1_3540(temp_r31); + break; + + case 128: + if (fn_1_2090(28) == 12) { + fn_1_3D7C(temp_r31); + } + break; + + case 0: + fn_1_4028(temp_r31); + break; + } + fn_1_498C(0, &temp_r31[0]); + fn_1_498C(1, &temp_r31[1]); + } + } + fn_1_5708(); } u16 lbl_1_data_162 = 1; @@ -859,163 +836,162 @@ void fn_1_4798(Work2110 *arg0); void fn_1_2C94(Work2110 *arg0) { - float temp_f31; - float temp_f30; - Unk2110Obj *temp_r31; - s16 temp_r29; - s16 temp_r28; - WorkA44 *temp_r26; - temp_r26 = lbl_1_bss_30->data; - - switch(lbl_1_data_162) { - case 0: - if(lbl_1_bss_10 == 1) { - HuAudFXPlay(1670); - } - lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10/60.0f; - if(temp_f31 >= 1.0f) { - temp_r26->unkA = 900; - lbl_1_bss_10 = 0; - temp_f31 = 1; - lbl_1_data_162++; - - } - temp_f31 = cosd(temp_f31*90.0f); - temp_f30 = -50+(95*temp_f31); - break; - - case 1: - temp_f30 = -50; - fn_1_4798(arg0); - lbl_1_data_162++; - break; - - case 2: - if(lbl_1_bss_10 == 1) { - HuAudFXPlay(1663); - } - lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10/60.0f; - if(temp_f31 >= 1.0f) { - lbl_1_bss_10 = 0; - temp_f31 = 1.0f; - lbl_1_data_162++; - } - temp_f31 = sind(temp_f31*90.0f); - temp_f30 = -50+(95*temp_f31); - break; - - case 3: - temp_f30 = 45; - fn_1_2050(224, 64); - lbl_1_data_162 = 0; - break; - } - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r31 = &arg0->unk4[0]; - for(temp_r28=0; temp_r28<10; temp_r28++, temp_r31++) { - if(lbl_1_data_162 || -50.0f != Hu3DData[temp_r31->unk1A].pos.y) { - Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - Hu3DModelRotSet(temp_r31->unk1A, 0, temp_r31->unk8, 0); - Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - Hu3DModelRotSet(temp_r31->unk1E, 0, temp_r31->unk8, 0); - } - - } - } + float temp_f31; + float temp_f30; + Unk2110Obj *temp_r31; + s16 temp_r29; + s16 temp_r28; + WorkA44 *temp_r26; + temp_r26 = lbl_1_bss_30->data; + + switch (lbl_1_data_162) { + case 0: + if (lbl_1_bss_10 == 1) { + HuAudFXPlay(1670); + } + lbl_1_bss_10++; + temp_f31 = lbl_1_bss_10 / 60.0f; + if (temp_f31 >= 1.0f) { + temp_r26->unkA = 900; + lbl_1_bss_10 = 0; + temp_f31 = 1; + lbl_1_data_162++; + } + temp_f31 = cosd(temp_f31 * 90.0f); + temp_f30 = -50 + (95 * temp_f31); + break; + + case 1: + temp_f30 = -50; + fn_1_4798(arg0); + lbl_1_data_162++; + break; + + case 2: + if (lbl_1_bss_10 == 1) { + HuAudFXPlay(1663); + } + lbl_1_bss_10++; + temp_f31 = lbl_1_bss_10 / 60.0f; + if (temp_f31 >= 1.0f) { + lbl_1_bss_10 = 0; + temp_f31 = 1.0f; + lbl_1_data_162++; + } + temp_f31 = sind(temp_f31 * 90.0f); + temp_f30 = -50 + (95 * temp_f31); + break; + + case 3: + temp_f30 = 45; + fn_1_2050(224, 64); + lbl_1_data_162 = 0; + break; + } + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r31 = &arg0->unk4[0]; + for (temp_r28 = 0; temp_r28 < 10; temp_r28++, temp_r31++) { + if (lbl_1_data_162 || -50.0f != Hu3DData[temp_r31->unk1A].pos.y) { + Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + Hu3DModelRotSet(temp_r31->unk1A, 0, temp_r31->unk8, 0); + Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + Hu3DModelRotSet(temp_r31->unk1E, 0, temp_r31->unk8, 0); + } + } + } } void fn_1_30E0(Work2110 *arg0) { - float temp_f31; - s16 sp8[2]; - Unk2110Obj *temp_r31; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r25; - u32 temp_r22; - switch(lbl_1_data_162) { - case 0: - lbl_1_bss_10++; - if(lbl_1_bss_10 > 60) { - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } - return; - - case 1: - temp_r28 = arg0[0].unk16C[4]; - arg0[0].unk4[temp_r28].unk0 = 4; - temp_r28 = arg0[1].unk16C[4]; - arg0[1].unk4[temp_r28].unk0 = 4; - lbl_1_bss_10 = 999; - lbl_1_data_162++; - break; - - case 2: - temp_r31 = &arg0[0].unk4[arg0[0].unk16C[5]]; - if((temp_r31->unk0 & 0x1C) == 0x10) { - lbl_1_bss_10 = 0; - fn_1_2050(224, 96); - lbl_1_data_162 = 0; - return; - } - break; - } - temp_r25 = 0; - sp8[0] = sp8[1] = ++lbl_1_bss_10; - for(temp_r27=0; temp_r27<2; temp_r27++, arg0++) { - for(temp_r29=4; temp_r29>-6; temp_r29--) { - temp_r28 = (temp_r29 < 0) ? arg0->unk16C[temp_r29+10] : arg0->unk16C[temp_r29]; - temp_r31 = &arg0[0].unk4[temp_r28]; - switch(temp_r22 = temp_r31->unk0 & 0x1C) { - case 4: - if(sp8[temp_r27] > 15) { - sp8[temp_r27] = 0; - temp_r25 = 1; - if(temp_r29-1 > -6) { - temp_r28 = ((temp_r29-1) < 0) ? arg0->unk16C[(temp_r29-1)+10] : arg0->unk16C[(temp_r29-1)]; - arg0[0].unk4[temp_r28].unk0 &= ~0x1C; - arg0[0].unk4[temp_r28].unk0 |= 0x4; - } - temp_r31->unk0 &= ~0x1C; - temp_r31->unk0 |= 8; - temp_r31->unk20 = 0; - Hu3DModelAttrReset(temp_r31->unk1C, 1); - } - break; - - case 8: - case 12: - temp_f31 = Hu3DData[temp_r31->unk1C].pos.y; - temp_r31->unk20 -= 0.98f; - temp_f31 += temp_r31->unk20; - if(temp_f31 <= 50.0f) { - temp_f31 = 50.0f; - temp_r31->unk0 &= ~0x1C; - if(temp_r22 == 8) { - temp_r31->unk20 = 6; - temp_r31->unk0 |= 12; - HuAudFXPlay(1664); - } else { - temp_r31->unk20 = 0; - temp_r31->unk0 |= 16; - } - } - Hu3DModelPosSet(temp_r31->unk1C, temp_r31->unkC.x, temp_f31, temp_r31->unkC.z); - Hu3DModelRotSet(temp_r31->unk1C, 0, temp_r31->unk8, 0); - break; - - default: - break; - } - } - } - if(temp_r25) { - lbl_1_bss_10 = 0; - } + float temp_f31; + s16 sp8[2]; + Unk2110Obj *temp_r31; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r25; + u32 temp_r22; + switch (lbl_1_data_162) { + case 0: + lbl_1_bss_10++; + if (lbl_1_bss_10 > 60) { + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + return; + + case 1: + temp_r28 = arg0[0].unk16C[4]; + arg0[0].unk4[temp_r28].unk0 = 4; + temp_r28 = arg0[1].unk16C[4]; + arg0[1].unk4[temp_r28].unk0 = 4; + lbl_1_bss_10 = 999; + lbl_1_data_162++; + break; + + case 2: + temp_r31 = &arg0[0].unk4[arg0[0].unk16C[5]]; + if ((temp_r31->unk0 & 0x1C) == 0x10) { + lbl_1_bss_10 = 0; + fn_1_2050(224, 96); + lbl_1_data_162 = 0; + return; + } + break; + } + temp_r25 = 0; + sp8[0] = sp8[1] = ++lbl_1_bss_10; + for (temp_r27 = 0; temp_r27 < 2; temp_r27++, arg0++) { + for (temp_r29 = 4; temp_r29 > -6; temp_r29--) { + temp_r28 = (temp_r29 < 0) ? arg0->unk16C[temp_r29 + 10] : arg0->unk16C[temp_r29]; + temp_r31 = &arg0[0].unk4[temp_r28]; + switch (temp_r22 = temp_r31->unk0 & 0x1C) { + case 4: + if (sp8[temp_r27] > 15) { + sp8[temp_r27] = 0; + temp_r25 = 1; + if (temp_r29 - 1 > -6) { + temp_r28 = ((temp_r29 - 1) < 0) ? arg0->unk16C[(temp_r29 - 1) + 10] : arg0->unk16C[(temp_r29 - 1)]; + arg0[0].unk4[temp_r28].unk0 &= ~0x1C; + arg0[0].unk4[temp_r28].unk0 |= 0x4; + } + temp_r31->unk0 &= ~0x1C; + temp_r31->unk0 |= 8; + temp_r31->unk20 = 0; + Hu3DModelAttrReset(temp_r31->unk1C, 1); + } + break; + + case 8: + case 12: + temp_f31 = Hu3DData[temp_r31->unk1C].pos.y; + temp_r31->unk20 -= 0.98f; + temp_f31 += temp_r31->unk20; + if (temp_f31 <= 50.0f) { + temp_f31 = 50.0f; + temp_r31->unk0 &= ~0x1C; + if (temp_r22 == 8) { + temp_r31->unk20 = 6; + temp_r31->unk0 |= 12; + HuAudFXPlay(1664); + } + else { + temp_r31->unk20 = 0; + temp_r31->unk0 |= 16; + } + } + Hu3DModelPosSet(temp_r31->unk1C, temp_r31->unkC.x, temp_f31, temp_r31->unkC.z); + Hu3DModelRotSet(temp_r31->unk1C, 0, temp_r31->unk8, 0); + break; + + default: + break; + } + } + } + if (temp_r25) { + lbl_1_bss_10 = 0; + } } s32 lbl_1_data_164 = -1; @@ -1028,476 +1004,483 @@ s32 fn_1_7A78(s32 arg0, s16 arg1); void fn_1_3540(Work2110 *arg0) { - float sp8[2]; - float temp_f31; - float temp_f30; - Unk2110Obj *temp_r30; - s16 temp_r29; - Bss61CWork *temp_r27; - s16 temp_r26; - s16 temp_r25; - temp_r25 = 0; - switch(lbl_1_data_162) { - case 0: - lbl_1_bss_20[0] = arg0[0].unk0; - lbl_1_bss_20[1] = arg0[1].unk0; - temp_r29 = rand16()%11; - temp_f31 = (temp_r29 < 5) ? 360.0f : 180.0f; - temp_f31 += temp_r29*36.0f; - lbl_1_bss_18[0] = lbl_1_bss_20[0]+temp_f31; - lbl_1_bss_18[1] = lbl_1_bss_20[1]-temp_f31; - lbl_1_bss_14 = (0.01f*temp_f31)*60; - lbl_1_data_162++; - lbl_1_data_164 = HuAudFXPlay(1665); - break; - - case 1: - if(lbl_1_bss_10 == lbl_1_bss_14) { - arg0[0].unk0 = fmod(arg0[0].unk0, 360); - arg0[1].unk0 = fmod(arg0[1].unk0, 360); - if(arg0[0].unk0 < 0.0f) { - arg0[0].unk0 += 360.0f; - } - if(arg0[1].unk0 < 0.0f) { - arg0[1].unk0 += 360.0f; - } - fn_1_48D0(&arg0[0]); - fn_1_48D0(&arg0[1]); - lbl_1_data_162++; - lbl_1_bss_10 = 0; - temp_r25 = 1; - } - break; - - case 2: - temp_r25 = 1; - fn_1_4D4C(); - fn_1_52D8(); - fn_1_566C(1); - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r27 = lbl_1_bss_61C[temp_r29]->data; - fn_1_4E30(temp_r27->unkA, temp_r27); - } - lbl_1_data_162 = 0; - fn_1_2050(224, 0); - break; - } - sp8[0] = lbl_1_data_1D0+arg0[0].unk0; - sp8[1] = lbl_1_data_1D0+arg0[1].unk0; - if(temp_r25 == 0) { - lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10/(float)lbl_1_bss_14; - temp_f31 = sind(temp_f31*90.0f); - if(lbl_1_bss_10 > lbl_1_bss_14-120) { - temp_f30 = (lbl_1_bss_10-(lbl_1_bss_14-120))/120.0f; - if(temp_f30 < 0.0f) { - temp_f30 = 0.0f; - } else { - if(temp_f30 > 1.0f) { - temp_f30 = 1.0f; - } - } - if(lbl_1_data_164 != -1) { - HuAudFXPitchSet(lbl_1_data_164, -8191.0f*temp_f30); - fn_1_7A78(lbl_1_data_164, (1.0f-temp_f30)*127); - } - if(lbl_1_bss_10 >= lbl_1_bss_14) { - if(lbl_1_data_164 != -1) { - HuAudFXStop(lbl_1_data_164); - lbl_1_data_164 = -1; - HuAudFXPlay(1675); - } - } - } - if(lbl_1_bss_10 > lbl_1_bss_14) { - lbl_1_bss_10 = lbl_1_bss_14; - temp_f31 = 1; - } - arg0[0].unk0 = lbl_1_bss_20[0]+(temp_f31*(lbl_1_bss_18[0]-lbl_1_bss_20[0])); - arg0[1].unk0 = lbl_1_bss_20[1]+(temp_f31*(lbl_1_bss_18[1]-lbl_1_bss_20[1])); - } - Hu3DData[lbl_1_bss_2C->model[3]].rot.y = sp8[0]; - Hu3DData[lbl_1_bss_2C->model[4]].rot.y = sp8[1]; - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r30 = &arg0->unk4[0]; - for(temp_r26=0; temp_r26<10; temp_r26++, temp_r30++) { - float temp_f29 = temp_r30->unkC.x; - float temp_f28 = temp_r30->unkC.z; - Hu3DModelPosSet(temp_r30->unk1A, temp_f29, 45, temp_f28); - Hu3DModelRotSet(temp_r30->unk1A, 0, temp_r30->unk8, 0); - Hu3DModelPosSet(temp_r30->unk1E, temp_f29, 45, temp_f28); - Hu3DModelRotSet(temp_r30->unk1E, 0, temp_r30->unk8, 0); - Hu3DModelPosSet(temp_r30->unk1C, temp_f29, 50, temp_f28); - Hu3DModelRotSet(temp_r30->unk1C, 0, temp_r30->unk8, 0); - } - } + float sp8[2]; + float temp_f31; + float temp_f30; + Unk2110Obj *temp_r30; + s16 temp_r29; + Bss61CWork *temp_r27; + s16 temp_r26; + s16 temp_r25; + temp_r25 = 0; + switch (lbl_1_data_162) { + case 0: + lbl_1_bss_20[0] = arg0[0].unk0; + lbl_1_bss_20[1] = arg0[1].unk0; + temp_r29 = rand16() % 11; + temp_f31 = (temp_r29 < 5) ? 360.0f : 180.0f; + temp_f31 += temp_r29 * 36.0f; + lbl_1_bss_18[0] = lbl_1_bss_20[0] + temp_f31; + lbl_1_bss_18[1] = lbl_1_bss_20[1] - temp_f31; + lbl_1_bss_14 = (0.01f * temp_f31) * 60; + lbl_1_data_162++; + lbl_1_data_164 = HuAudFXPlay(1665); + break; + + case 1: + if (lbl_1_bss_10 == lbl_1_bss_14) { + arg0[0].unk0 = fmod(arg0[0].unk0, 360); + arg0[1].unk0 = fmod(arg0[1].unk0, 360); + if (arg0[0].unk0 < 0.0f) { + arg0[0].unk0 += 360.0f; + } + if (arg0[1].unk0 < 0.0f) { + arg0[1].unk0 += 360.0f; + } + fn_1_48D0(&arg0[0]); + fn_1_48D0(&arg0[1]); + lbl_1_data_162++; + lbl_1_bss_10 = 0; + temp_r25 = 1; + } + break; + + case 2: + temp_r25 = 1; + fn_1_4D4C(); + fn_1_52D8(); + fn_1_566C(1); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r27 = lbl_1_bss_61C[temp_r29]->data; + fn_1_4E30(temp_r27->unkA, temp_r27); + } + lbl_1_data_162 = 0; + fn_1_2050(224, 0); + break; + } + sp8[0] = lbl_1_data_1D0 + arg0[0].unk0; + sp8[1] = lbl_1_data_1D0 + arg0[1].unk0; + if (temp_r25 == 0) { + lbl_1_bss_10++; + temp_f31 = lbl_1_bss_10 / (float)lbl_1_bss_14; + temp_f31 = sind(temp_f31 * 90.0f); + if (lbl_1_bss_10 > lbl_1_bss_14 - 120) { + temp_f30 = (lbl_1_bss_10 - (lbl_1_bss_14 - 120)) / 120.0f; + if (temp_f30 < 0.0f) { + temp_f30 = 0.0f; + } + else { + if (temp_f30 > 1.0f) { + temp_f30 = 1.0f; + } + } + if (lbl_1_data_164 != -1) { + HuAudFXPitchSet(lbl_1_data_164, -8191.0f * temp_f30); + fn_1_7A78(lbl_1_data_164, (1.0f - temp_f30) * 127); + } + if (lbl_1_bss_10 >= lbl_1_bss_14) { + if (lbl_1_data_164 != -1) { + HuAudFXStop(lbl_1_data_164); + lbl_1_data_164 = -1; + HuAudFXPlay(1675); + } + } + } + if (lbl_1_bss_10 > lbl_1_bss_14) { + lbl_1_bss_10 = lbl_1_bss_14; + temp_f31 = 1; + } + arg0[0].unk0 = lbl_1_bss_20[0] + (temp_f31 * (lbl_1_bss_18[0] - lbl_1_bss_20[0])); + arg0[1].unk0 = lbl_1_bss_20[1] + (temp_f31 * (lbl_1_bss_18[1] - lbl_1_bss_20[1])); + } + Hu3DData[lbl_1_bss_2C->model[3]].rot.y = sp8[0]; + Hu3DData[lbl_1_bss_2C->model[4]].rot.y = sp8[1]; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r30 = &arg0->unk4[0]; + for (temp_r26 = 0; temp_r26 < 10; temp_r26++, temp_r30++) { + float temp_f29 = temp_r30->unkC.x; + float temp_f28 = temp_r30->unkC.z; + Hu3DModelPosSet(temp_r30->unk1A, temp_f29, 45, temp_f28); + Hu3DModelRotSet(temp_r30->unk1A, 0, temp_r30->unk8, 0); + Hu3DModelPosSet(temp_r30->unk1E, temp_f29, 45, temp_f28); + Hu3DModelRotSet(temp_r30->unk1E, 0, temp_r30->unk8, 0); + Hu3DModelPosSet(temp_r30->unk1C, temp_f29, 50, temp_f28); + Hu3DModelRotSet(temp_r30->unk1C, 0, temp_r30->unk8, 0); + } + } } void fn_1_3FD0(Unk72B4Data18 *arg0); - void fn_1_3D7C(Work2110 *arg0) { - Unk2110Obj *temp_r31; - ModelData *temp_r30; - s16 temp_r29; - WorkA44 *temp_r28; - s16 temp_r27; - switch(lbl_1_data_162) { - case 0: - if(++lbl_1_bss_10 > 60) { - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } - break; - - case 1: - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r31 = &arg0->unk4[0]; - for(temp_r27=0; temp_r27<10; temp_r27++, temp_r31++) { - temp_r30 = &Hu3DData[temp_r31->unk1C]; - temp_r31->unk0 &= ~0x1C; - if(!(temp_r31->unk0 & 0x1)) { - fn_1_5B70(temp_r30->pos.x, 20+temp_r30->pos.y, temp_r30->pos.z, 20, fn_1_3FD0, temp_r31->unk1C); - if(temp_r29 == 0) { - HuAudFXPlay(1669); - } else { - HuAudFXPlay(1674); - } - } else { - temp_r30->pos.y = 1000; - } - temp_r31->unk0 &= ~0x3; - Hu3DModelScaleSet(temp_r31->unk1A, 1, 1, 1); - } - } - lbl_1_data_162++; - break; - - case 2: - if(++lbl_1_bss_10 > 60) { - lbl_1_bss_10 = lbl_1_data_162 = 0; - fn_1_2050(224, 32); - } - break; - } + Unk2110Obj *temp_r31; + ModelData *temp_r30; + s16 temp_r29; + WorkA44 *temp_r28; + s16 temp_r27; + switch (lbl_1_data_162) { + case 0: + if (++lbl_1_bss_10 > 60) { + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + break; + + case 1: + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r31 = &arg0->unk4[0]; + for (temp_r27 = 0; temp_r27 < 10; temp_r27++, temp_r31++) { + temp_r30 = &Hu3DData[temp_r31->unk1C]; + temp_r31->unk0 &= ~0x1C; + if (!(temp_r31->unk0 & 0x1)) { + fn_1_5B70(temp_r30->pos.x, 20 + temp_r30->pos.y, temp_r30->pos.z, 20, fn_1_3FD0, temp_r31->unk1C); + if (temp_r29 == 0) { + HuAudFXPlay(1669); + } + else { + HuAudFXPlay(1674); + } + } + else { + temp_r30->pos.y = 1000; + } + temp_r31->unk0 &= ~0x3; + Hu3DModelScaleSet(temp_r31->unk1A, 1, 1, 1); + } + } + lbl_1_data_162++; + break; + + case 2: + if (++lbl_1_bss_10 > 60) { + lbl_1_bss_10 = lbl_1_data_162 = 0; + fn_1_2050(224, 32); + } + break; + } } void fn_1_3FD0(Unk72B4Data18 *arg0) { - Hu3DData[arg0->unk2C].pos.y = 1000; - Hu3DModelAttrSet(arg0->unk2C, 1); + Hu3DData[arg0->unk2C].pos.y = 1000; + Hu3DModelAttrSet(arg0->unk2C, 1); } void fn_1_4028(Work2110 *arg0) { - float temp_f31; - float temp_f30; - Unk2110Obj *temp_r31; - WorkA44 *temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - Bss61CWork *temp_r24; - temp_r30 = lbl_1_bss_30->data; - temp_r27 = -1; - switch(lbl_1_data_162) { - case 0: - temp_r30->unk10 = MGSeqTimerCreate(15); - lbl_1_data_162++; - break; - - case 1: - if(lbl_1_bss_12C[0].unk134[0] && lbl_1_bss_12C[0].unk134[1]) { - temp_r27 = 0; - } - if(lbl_1_bss_12C[1].unk134[0] && lbl_1_bss_12C[1].unk134[1]) { - if(temp_r27 == 0) { - temp_r27 = (rand16() % 2) ? 0 : 1; - } else { - temp_r27 = 1; - } - } - temp_r30->unk6[1] = temp_r27; - if(temp_r27 != -1) { - fn_1_A7D0(temp_r30->unk6[1]); - fn_1_20D0(lbl_1_bss_12C[temp_r27].unk138[0]); - fn_1_5480(); - fn_1_566C(3); - lbl_1_bss_12C[temp_r27].unk138[0]++; - MGSeqParamSet(temp_r30->unk10, 2, -1); - temp_r30->unk10 = -1; - temp_r30->unk6[0]++; - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } else { - if(--temp_r30->unkA < -1) { - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r24 = lbl_1_bss_61C[temp_r29]->data; - for(temp_r28=0; temp_r28<8; temp_r28++) { - temp_r24->unk5E[temp_r28] = -1; - } - } - fn_1_5480(); - fn_1_566C(4); - temp_r30->unkA = 0; - MGSeqParamSet(temp_r30->unk10, 2, -1); - - temp_r30->unk10 = -1; - temp_r30->unk6[0]++; - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } - } - if(temp_r30->unk6[0] >= 5) { - if(lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { - HuAudFXPlay(11); - } - } - break; - - case 2: - if(++lbl_1_bss_10 > 90.0f) { - lbl_1_bss_10 = 0; - lbl_1_data_162 = 1; - fn_1_2050(224, 128); - } - break; - } - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r31 = &arg0->unk4[0]; - for(temp_r28=0; temp_r28<10; temp_r28++, temp_r31++) { - if(!(temp_r31->unk0 & 0x1)) { - continue; - } - if(temp_r31->unk0 & 0x2) { - temp_r31->unk18++; - temp_f31 = temp_r31->unk18/30.0f; - if(temp_f31 >= 1.0f) { - temp_r31->unk20 -= 1.0f; - if(temp_r31->unk20 < 0.4f) { - temp_r31->unk20 = 0.4f; - } - temp_r31->unk18 = 0; - temp_f31 = 1.0f; - } - temp_f31 = (temp_r31->unk20*0.7f)*sind(180.0f*temp_f31)+1.0f; - Hu3DModelScaleSet(temp_r31->unk1A, temp_f31, temp_f31, temp_f31); - } else { - if(!temp_r31->unk20) { - if(++temp_r31->unk18 > 30.0f) { - temp_r31->unk20 = 1; - temp_r31->unk18 = 0; - } - } else { - temp_r31->unk18++; - temp_f31 = temp_r31->unk18/54.0f; - if(temp_f31 >= 1.0f) { - temp_r31->unk18 = 54; - temp_f31 = 1.0f; - } - temp_f31 = cosd(temp_f31*90.0f); - temp_f30 = -50+(95*temp_f31); - Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - } - } - } - } + float temp_f31; + float temp_f30; + Unk2110Obj *temp_r31; + WorkA44 *temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + Bss61CWork *temp_r24; + temp_r30 = lbl_1_bss_30->data; + temp_r27 = -1; + switch (lbl_1_data_162) { + case 0: + temp_r30->unk10 = MGSeqTimerCreate(15); + lbl_1_data_162++; + break; + + case 1: + if (lbl_1_bss_12C[0].unk134[0] && lbl_1_bss_12C[0].unk134[1]) { + temp_r27 = 0; + } + if (lbl_1_bss_12C[1].unk134[0] && lbl_1_bss_12C[1].unk134[1]) { + if (temp_r27 == 0) { + temp_r27 = (rand16() % 2) ? 0 : 1; + } + else { + temp_r27 = 1; + } + } + temp_r30->unk6[1] = temp_r27; + if (temp_r27 != -1) { + fn_1_A7D0(temp_r30->unk6[1]); + fn_1_20D0(lbl_1_bss_12C[temp_r27].unk138[0]); + fn_1_5480(); + fn_1_566C(3); + lbl_1_bss_12C[temp_r27].unk138[0]++; + MGSeqParamSet(temp_r30->unk10, 2, -1); + temp_r30->unk10 = -1; + temp_r30->unk6[0]++; + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + else { + if (--temp_r30->unkA < -1) { + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r24 = lbl_1_bss_61C[temp_r29]->data; + for (temp_r28 = 0; temp_r28 < 8; temp_r28++) { + temp_r24->unk5E[temp_r28] = -1; + } + } + fn_1_5480(); + fn_1_566C(4); + temp_r30->unkA = 0; + MGSeqParamSet(temp_r30->unk10, 2, -1); + + temp_r30->unk10 = -1; + temp_r30->unk6[0]++; + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + } + if (temp_r30->unk6[0] >= 5) { + if (lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { + HuAudFXPlay(11); + } + } + break; + + case 2: + if (++lbl_1_bss_10 > 90.0f) { + lbl_1_bss_10 = 0; + lbl_1_data_162 = 1; + fn_1_2050(224, 128); + } + break; + } + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r31 = &arg0->unk4[0]; + for (temp_r28 = 0; temp_r28 < 10; temp_r28++, temp_r31++) { + if (!(temp_r31->unk0 & 0x1)) { + continue; + } + if (temp_r31->unk0 & 0x2) { + temp_r31->unk18++; + temp_f31 = temp_r31->unk18 / 30.0f; + if (temp_f31 >= 1.0f) { + temp_r31->unk20 -= 1.0f; + if (temp_r31->unk20 < 0.4f) { + temp_r31->unk20 = 0.4f; + } + temp_r31->unk18 = 0; + temp_f31 = 1.0f; + } + temp_f31 = (temp_r31->unk20 * 0.7f) * sind(180.0f * temp_f31) + 1.0f; + Hu3DModelScaleSet(temp_r31->unk1A, temp_f31, temp_f31, temp_f31); + } + else { + if (!temp_r31->unk20) { + if (++temp_r31->unk18 > 30.0f) { + temp_r31->unk20 = 1; + temp_r31->unk18 = 0; + } + } + else { + temp_r31->unk18++; + temp_f31 = temp_r31->unk18 / 54.0f; + if (temp_f31 >= 1.0f) { + temp_r31->unk18 = 54; + temp_f31 = 1.0f; + } + temp_f31 = cosd(temp_f31 * 90.0f); + temp_f30 = -50 + (95 * temp_f31); + Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + } + } + } + } } s16 fn_1_4724(void) { - return lbl_1_data_162; + return lbl_1_data_162; } u32 fn_1_4738(s16 arg0, s16 arg1) { - Work2110 *temp_r31; - temp_r31 = lbl_1_bss_2C->data; - temp_r31 += arg0; - if(arg1 == -1) { - return 0; - } - return temp_r31->unk4[temp_r31->unk16C[arg1]].unk0; + Work2110 *temp_r31; + temp_r31 = lbl_1_bss_2C->data; + temp_r31 += arg0; + if (arg1 == -1) { + return 0; + } + return temp_r31->unk4[temp_r31->unk16C[arg1]].unk0; } void fn_1_66DC(s16 *arg0, s16 arg1, s16 arg2); void fn_1_4798(Work2110 *arg0) { - s16 temp_r31; - s16 sp10[10]; - Unk2110Obj *sp8[2]; - fn_1_66DC(sp10, 0, 10); - sp8[0] = &arg0[0].unk4[0]; - sp8[1] = &arg0[1].unk4[0]; - for(temp_r31=0; temp_r31<10; temp_r31++, sp8[0]++, sp8[1]++) { - sp8[0]->unk1A = lbl_1_bss_34[sp10[temp_r31]]; - sp8[1]->unk1A = lbl_1_bss_34[sp10[temp_r31]+10]; - sp8[0]->unk18 = sp8[1]->unk18 = (sp10[temp_r31] < 5) ? sp10[temp_r31] : sp10[temp_r31]-5; - } + s16 temp_r31; + s16 sp10[10]; + Unk2110Obj *sp8[2]; + fn_1_66DC(sp10, 0, 10); + sp8[0] = &arg0[0].unk4[0]; + sp8[1] = &arg0[1].unk4[0]; + for (temp_r31 = 0; temp_r31 < 10; temp_r31++, sp8[0]++, sp8[1]++) { + sp8[0]->unk1A = lbl_1_bss_34[sp10[temp_r31]]; + sp8[1]->unk1A = lbl_1_bss_34[sp10[temp_r31] + 10]; + sp8[0]->unk18 = sp8[1]->unk18 = (sp10[temp_r31] < 5) ? sp10[temp_r31] : sp10[temp_r31] - 5; + } } void fn_1_48D0(Work2110 *arg0) { - float temp_f31; - s16 temp_r31; - s16 temp_r30; - for(temp_r30=0; temp_r30<10; temp_r30++) { - temp_f31 = arg0->unk0+arg0->unk4[temp_r30].unk4; - temp_r31 = (temp_f31/360.0f)*10.0f; - if(temp_r31 >= 10) { - temp_r31 -= 10; - } else if(temp_r31 < 0) { - temp_r31 += 10; - } - arg0->unk16C[temp_r31] = temp_r30; - } + float temp_f31; + s16 temp_r31; + s16 temp_r30; + for (temp_r30 = 0; temp_r30 < 10; temp_r30++) { + temp_f31 = arg0->unk0 + arg0->unk4[temp_r30].unk4; + temp_r31 = (temp_f31 / 360.0f) * 10.0f; + if (temp_r31 >= 10) { + temp_r31 -= 10; + } + else if (temp_r31 < 0) { + temp_r31 += 10; + } + arg0->unk16C[temp_r31] = temp_r30; + } } void fn_1_498C(s16 arg0, Work2110 *arg1) { - float temp_f31; - Unk2110Obj *temp_r31; - Bss12CStruct *temp_r30; - s16 temp_r29; - temp_r31 = &arg1->unk4[0]; - temp_r30 = &lbl_1_bss_12C[arg0]; - for(temp_r29=0; temp_r29<10; temp_r29++, temp_r31++) { - temp_f31 = arg1->unk0+temp_r31->unk4; - if(temp_f31 >= 360.0f) { - temp_f31 -= 360.0f; - } - temp_r31->unkC.x = temp_r30->unkC.x+(153.0*sind(temp_f31)); - temp_r31->unkC.z = temp_r30->unkC.z+(153.0*cosd(temp_f31)); - temp_r31->unk8 = atan2d(temp_r30->unkC.x-temp_r31->unkC.x, temp_r30->unkC.z-temp_r31->unkC.z); - } + float temp_f31; + Unk2110Obj *temp_r31; + Bss12CStruct *temp_r30; + s16 temp_r29; + temp_r31 = &arg1->unk4[0]; + temp_r30 = &lbl_1_bss_12C[arg0]; + for (temp_r29 = 0; temp_r29 < 10; temp_r29++, temp_r31++) { + temp_f31 = arg1->unk0 + temp_r31->unk4; + if (temp_f31 >= 360.0f) { + temp_f31 -= 360.0f; + } + temp_r31->unkC.x = temp_r30->unkC.x + (153.0 * sind(temp_f31)); + temp_r31->unkC.z = temp_r30->unkC.z + (153.0 * cosd(temp_f31)); + temp_r31->unk8 = atan2d(temp_r30->unkC.x - temp_r31->unkC.x, temp_r30->unkC.z - temp_r31->unkC.z); + } } s16 fn_1_4B14(s16 arg0, s16 arg1, s16 *arg2) { - Unk2110Obj *temp_r31; - s16 temp_r30; - Work2110 *temp_r29; - temp_r29 = lbl_1_bss_2C->data; - *arg2 = 0; - temp_r29 += arg0; - temp_r31 = &temp_r29->unk4[temp_r29->unk16C[arg1]]; - if(temp_r31->unk0 & 0x1) { - return -1; - } - temp_r31->unk0 |= 0x1; - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(!lbl_1_bss_12C[arg0].unk134[temp_r30] && lbl_1_bss_5C.unkC[temp_r30] == temp_r31->unk18) { - *arg2 = 1; - lbl_1_bss_12C[arg0].unk134[temp_r30] = 1; - temp_r31->unk0 |= 0x2; - temp_r31->unk18 = 0; - temp_r31->unk20 = 1; - Hu3DMotionTimeSet(lbl_1_bss_2C->model[arg0+1], 0); - Hu3DModelAttrReset(lbl_1_bss_2C->model[arg0+1], 0x40000002); - HuAudFXPlay(9); - break; - } - - } - return temp_r31->unk1C; + Unk2110Obj *temp_r31; + s16 temp_r30; + Work2110 *temp_r29; + temp_r29 = lbl_1_bss_2C->data; + *arg2 = 0; + temp_r29 += arg0; + temp_r31 = &temp_r29->unk4[temp_r29->unk16C[arg1]]; + if (temp_r31->unk0 & 0x1) { + return -1; + } + temp_r31->unk0 |= 0x1; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (!lbl_1_bss_12C[arg0].unk134[temp_r30] && lbl_1_bss_5C.unkC[temp_r30] == temp_r31->unk18) { + *arg2 = 1; + lbl_1_bss_12C[arg0].unk134[temp_r30] = 1; + temp_r31->unk0 |= 0x2; + temp_r31->unk18 = 0; + temp_r31->unk20 = 1; + Hu3DMotionTimeSet(lbl_1_bss_2C->model[arg0 + 1], 0); + Hu3DModelAttrReset(lbl_1_bss_2C->model[arg0 + 1], 0x40000002); + HuAudFXPlay(9); + break; + } + } + return temp_r31->unk1C; } s16 fn_1_4CDC(s16 arg0, s16 arg1) { - Work2110 *temp_r31; - Unk2110Obj *temp_r30; - temp_r31 = lbl_1_bss_2C->data; - temp_r31 += arg0; - temp_r30 = &temp_r31->unk4[temp_r31->unk16C[arg1]]; - if(temp_r30->unk0 & 0x1) { - return 0; - } else { - return 1; - } + Work2110 *temp_r31; + Unk2110Obj *temp_r30; + temp_r31 = lbl_1_bss_2C->data; + temp_r31 += arg0; + temp_r30 = &temp_r31->unk4[temp_r31->unk16C[arg1]]; + if (temp_r30->unk0 & 0x1) { + return 0; + } + else { + return 1; + } } void fn_1_4D4C(void) { - lbl_1_bss_5C.unkC[0] = rand16()%5; - lbl_1_bss_5C.unkC[1] = rand16()%5; - lbl_1_bss_12C[0].unk134[0] = lbl_1_bss_12C[0].unk134[1] = 0; - lbl_1_bss_12C[1].unk134[0] = lbl_1_bss_12C[1].unk134[1] = 0; + lbl_1_bss_5C.unkC[0] = rand16() % 5; + lbl_1_bss_5C.unkC[1] = rand16() % 5; + lbl_1_bss_12C[0].unk134[0] = lbl_1_bss_12C[0].unk134[1] = 0; + lbl_1_bss_12C[1].unk134[0] = lbl_1_bss_12C[1].unk134[1] = 0; } void fn_1_6638(s16 *arg0, s16 arg1); void fn_1_4E30(s16 arg0, Bss61CWork *arg1) { - s16 sp1E[10]; - s16 spA[10]; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - Work2110 *temp_r27; - Unk2110Obj *temp_r26; - temp_r27 = lbl_1_bss_2C->data; - for(temp_r30=0; temp_r30<10; temp_r30++) { - sp1E[temp_r30] = spA[temp_r30] = 0; - } - for(temp_r30=0; temp_r30<8; temp_r30++) { - arg1->unk5E[temp_r30] = -1; - } - temp_r27 += arg0; - for(temp_r28=0, temp_r29=0; temp_r28<2; temp_r28++) { - for(temp_r30=0; temp_r30<10; temp_r30++) { - temp_r26 = &temp_r27->unk4[temp_r27->unk16C[temp_r30]]; - if(temp_r26->unk18 == lbl_1_bss_5C.unkC[temp_r28] && !sp1E[temp_r30]) { - arg1->unk5E[temp_r29++] = temp_r30; - sp1E[temp_r30] = 1; - } - } - } - for(temp_r28=0, temp_r30=0; temp_r28<10; temp_r28++) { - if(!sp1E[temp_r28]) { - spA[temp_r30++] = temp_r28; - } - } - fn_1_6638(spA, temp_r30); - temp_r30 = 0; - if(temp_r29 == 2) { - temp_r29 += 2; - } - - while(1) { - if(temp_r29 >= 8) { - break; - } - arg1->unk5E[temp_r29++] = spA[temp_r30++]; - } - arg1->unk70 = 0; - temp_r29 = arg1->unk14->unk4; - switch(GWPlayerCfg[arg1->unk4].diff) { - case 0: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%3)+2) : ((rand16()%3)+1); - arg1->unk6E = 8; - break; - - case 1: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%3)+1) : ((rand16()%3)+0); - arg1->unk6E = 7; - break; - - case 2: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%3)+0) : ((rand16()%2)+0); - arg1->unk6E = 6; - break; - - case 3: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%2)+0) : 0; - arg1->unk6E = 5; - break; - } - if(arg1->unk6E < 4) { - arg1->unk6E = 4; - } + s16 sp1E[10]; + s16 spA[10]; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + Work2110 *temp_r27; + Unk2110Obj *temp_r26; + temp_r27 = lbl_1_bss_2C->data; + for (temp_r30 = 0; temp_r30 < 10; temp_r30++) { + sp1E[temp_r30] = spA[temp_r30] = 0; + } + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + arg1->unk5E[temp_r30] = -1; + } + temp_r27 += arg0; + for (temp_r28 = 0, temp_r29 = 0; temp_r28 < 2; temp_r28++) { + for (temp_r30 = 0; temp_r30 < 10; temp_r30++) { + temp_r26 = &temp_r27->unk4[temp_r27->unk16C[temp_r30]]; + if (temp_r26->unk18 == lbl_1_bss_5C.unkC[temp_r28] && !sp1E[temp_r30]) { + arg1->unk5E[temp_r29++] = temp_r30; + sp1E[temp_r30] = 1; + } + } + } + for (temp_r28 = 0, temp_r30 = 0; temp_r28 < 10; temp_r28++) { + if (!sp1E[temp_r28]) { + spA[temp_r30++] = temp_r28; + } + } + fn_1_6638(spA, temp_r30); + temp_r30 = 0; + if (temp_r29 == 2) { + temp_r29 += 2; + } + + while (1) { + if (temp_r29 >= 8) { + break; + } + arg1->unk5E[temp_r29++] = spA[temp_r30++]; + } + arg1->unk70 = 0; + temp_r29 = arg1->unk14->unk4; + switch (GWPlayerCfg[arg1->unk4].diff) { + case 0: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 3) + 2) : ((rand16() % 3) + 1); + arg1->unk6E = 8; + break; + + case 1: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 3) + 1) : ((rand16() % 3) + 0); + arg1->unk6E = 7; + break; + + case 2: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 3) + 0) : ((rand16() % 2) + 0); + arg1->unk6E = 6; + break; + + case 3: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 2) + 0) : 0; + arg1->unk6E = 5; + break; + } + if (arg1->unk6E < 4) { + arg1->unk6E = 4; + } } void fn_1_5524(void); @@ -1506,397 +1489,401 @@ Unk72B4Data18 *fn_1_6B34(s16 arg0, Vec *arg1, Vec *arg2, float arg3, GXColor *ar void fn_1_52D8(void) { - Bss5CStruct *temp_r31; - s16 temp_r30; - Unk72B4Data18 *temp_r29; - Vec sp18; - Vec spC; - GXColor sp8 = { 255, 255, 255, 255 }; - temp_r31 = &lbl_1_bss_5C; - sp18.x = 0; - sp18.y = 200; - sp18.z = -300; - spC.x = spC.z = 1; - spC.y = 0.5f; - fn_1_6B34(temp_r31->unk0[0], &sp18, &spC, 0, &sp8); - for(temp_r30=0; temp_r30<2; temp_r30++) { - sp18.x = (temp_r30 == 0) ? -60.0f : 60.0f; - sp18.y = 220; - sp18.z = -290; - spC.x = spC.y = spC.z = 1; - temp_r29 = fn_1_6B34(temp_r31->unk0[temp_r31->unkC[temp_r30]+1], &sp18, &spC, 0, &sp8); - temp_r29->unk28 = temp_r30; - } - fn_1_5524(); + Bss5CStruct *temp_r31; + s16 temp_r30; + Unk72B4Data18 *temp_r29; + Vec sp18; + Vec spC; + GXColor sp8 = { 255, 255, 255, 255 }; + temp_r31 = &lbl_1_bss_5C; + sp18.x = 0; + sp18.y = 200; + sp18.z = -300; + spC.x = spC.z = 1; + spC.y = 0.5f; + fn_1_6B34(temp_r31->unk0[0], &sp18, &spC, 0, &sp8); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + sp18.x = (temp_r30 == 0) ? -60.0f : 60.0f; + sp18.y = 220; + sp18.z = -290; + spC.x = spC.y = spC.z = 1; + temp_r29 = fn_1_6B34(temp_r31->unk0[temp_r31->unkC[temp_r30] + 1], &sp18, &spC, 0, &sp8); + temp_r29->unk28 = temp_r30; + } + fn_1_5524(); } Work72B4 *fn_1_7218(s16 arg0); void fn_1_5480(void) { - Work72B4 *temp_r31; - Bss5CStruct *temp_r30 = &lbl_1_bss_5C; - s16 temp_r29; - temp_r31 = fn_1_7218(temp_r30->unk0[0]); - temp_r31->unk18[0].unk56 = 0; - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31 = fn_1_7218(temp_r30->unk0[temp_r30->unkC[temp_r29]+1]); - temp_r31->unk18[0].unk56 = temp_r31->unk18[1].unk56 = 0; - - } + Work72B4 *temp_r31; + Bss5CStruct *temp_r30 = &lbl_1_bss_5C; + s16 temp_r29; + temp_r31 = fn_1_7218(temp_r30->unk0[0]); + temp_r31->unk18[0].unk56 = 0; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = fn_1_7218(temp_r30->unk0[temp_r30->unkC[temp_r29] + 1]); + temp_r31->unk18[0].unk56 = temp_r31->unk18[1].unk56 = 0; + } } void fn_1_5524(void) { - float temp_f30; - Bss5CStruct *temp_r31; - Work72B4 *temp_r30; - s16 temp_r29; - s16 temp_r28; - temp_r31 = &lbl_1_bss_5C; - temp_r30 = fn_1_7218(temp_r31->unk0[0]); - temp_r30->unk18[0].unk48.x = temp_r31->unk18; - for(temp_r28=0; temp_r28<2; temp_r28++) { - temp_r30 = fn_1_7218(temp_r31->unk0[temp_r31->unkC[temp_r28]+1]); - for(temp_r29=0; temp_r29<2; temp_r29++) { - if(temp_r30->unk18[temp_r29].unk56) { - temp_f30 = (temp_r30->unk18[temp_r29].unk28 == 0) ? -60.0f : 60.0f; - temp_r30->unk18[temp_r29].unk48.x = temp_f30+temp_r31->unk18; - } - } - } - + float temp_f30; + Bss5CStruct *temp_r31; + Work72B4 *temp_r30; + s16 temp_r29; + s16 temp_r28; + temp_r31 = &lbl_1_bss_5C; + temp_r30 = fn_1_7218(temp_r31->unk0[0]); + temp_r30->unk18[0].unk48.x = temp_r31->unk18; + for (temp_r28 = 0; temp_r28 < 2; temp_r28++) { + temp_r30 = fn_1_7218(temp_r31->unk0[temp_r31->unkC[temp_r28] + 1]); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + if (temp_r30->unk18[temp_r29].unk56) { + temp_f30 = (temp_r30->unk18[temp_r29].unk28 == 0) ? -60.0f : 60.0f; + temp_r30->unk18[temp_r29].unk48.x = temp_f30 + temp_r31->unk18; + } + } + } } void fn_1_566C(s16 arg0) { - ModelData *sp8 = &Hu3DData[lbl_1_bss_2C->model[5]]; - lbl_1_bss_5C.unk14 = 0; - lbl_1_bss_5C.unk12 = 0; - lbl_1_bss_5C.unk10 = arg0; - lbl_1_bss_5C.unk20 = lbl_1_bss_5C.unk34 = 0; - lbl_1_bss_5C.unk28[1] = lbl_1_bss_5C.unk28[0]; + ModelData *sp8 = &Hu3DData[lbl_1_bss_2C->model[5]]; + lbl_1_bss_5C.unk14 = 0; + lbl_1_bss_5C.unk12 = 0; + lbl_1_bss_5C.unk10 = arg0; + lbl_1_bss_5C.unk20 = lbl_1_bss_5C.unk34 = 0; + lbl_1_bss_5C.unk28[1] = lbl_1_bss_5C.unk28[0]; } void fn_1_5708(void) { - Bss5CStruct *temp_r31; - ModelData *temp_r30; - WorkA44 *temp_r29; - temp_r30 = &Hu3DData[lbl_1_bss_2C->model[5]]; - temp_r29 = lbl_1_bss_30->data; - temp_r31 = &lbl_1_bss_5C; - switch(temp_r31->unk10) { - case 0: - if(temp_r30->unk_08 != lbl_1_bss_2C->motion[0]) { - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[0], 0, 8, 0x40000001); - } - break; - - case 1: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[1], 0, 8, 0); - } else { - if(temp_r30->unk_0C == -1) { - if(temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { - temp_r31->unk16 = rand16()%2; - temp_r31->unk12 = 0; - temp_r31->unk10 = 2; - } - } - } - break; - - case 2: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, 0x40000001); - } else { - if(temp_r29->unkA < 180) { - temp_r31->unk12 = 0; - temp_r31->unk10 = 5; - } - } - break; - - case 3: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[2], 0, 8, 0x40000001); - } else { - if(temp_r30->unk_0C == -1) { - if(temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])-1.0f) { - if(++temp_r31->unk14 > 1) { - temp_r31->unk12 = 0; - temp_r31->unk10 = 0; - } - } - } - } - break; - - case 4: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[3], 0, 8, 0); - } else { - if(temp_r30->unk_0C == -1) { - if(temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { - temp_r31->unk12 = 0; - temp_r31->unk10 = 0; - } - } - } - break; - - case 5: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[6], 0, 8, 0x40000001); - } - break; - } - temp_r30->pos.x = temp_r31->unk18; - temp_r30->rot.y = temp_r31->unk28[0]; + Bss5CStruct *temp_r31; + ModelData *temp_r30; + WorkA44 *temp_r29; + temp_r30 = &Hu3DData[lbl_1_bss_2C->model[5]]; + temp_r29 = lbl_1_bss_30->data; + temp_r31 = &lbl_1_bss_5C; + switch (temp_r31->unk10) { + case 0: + if (temp_r30->unk_08 != lbl_1_bss_2C->motion[0]) { + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[0], 0, 8, 0x40000001); + } + break; + + case 1: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[1], 0, 8, 0); + } + else { + if (temp_r30->unk_0C == -1) { + if (temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { + temp_r31->unk16 = rand16() % 2; + temp_r31->unk12 = 0; + temp_r31->unk10 = 2; + } + } + } + break; + + case 2: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, 0x40000001); + } + else { + if (temp_r29->unkA < 180) { + temp_r31->unk12 = 0; + temp_r31->unk10 = 5; + } + } + break; + + case 3: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[2], 0, 8, 0x40000001); + } + else { + if (temp_r30->unk_0C == -1) { + if (temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5]) - 1.0f) { + if (++temp_r31->unk14 > 1) { + temp_r31->unk12 = 0; + temp_r31->unk10 = 0; + } + } + } + } + break; + + case 4: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[3], 0, 8, 0); + } + else { + if (temp_r30->unk_0C == -1) { + if (temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { + temp_r31->unk12 = 0; + temp_r31->unk10 = 0; + } + } + } + break; + + case 5: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[6], 0, 8, 0x40000001); + } + break; + } + temp_r30->pos.x = temp_r31->unk18; + temp_r30->rot.y = temp_r31->unk28[0]; } void fn_1_5B70(float arg0, float arg1, float arg2, s16 arg3, unkHook72B4Data18 arg4, s16 arg5) { - Vec sp2C; - Vec sp20; - GXColor sp1A; - float temp_f31; - float temp_f30; - - Unk72B4Data18 *temp_r31; - s16 temp_r30; - temp_f30 = 360.0f/arg3; - temp_f31 = rand16()%361; - for(temp_r30=0; temp_r30model[0], &sp2C, &sp20, 0, &sp1A); - if(!temp_r31) { - break; - } - temp_r31->unk30 = arg4; - temp_r31->unk2C = arg5; - temp_r31->unk28 = 0; - temp_r31->unk2A = (rand16()%2)+2; - temp_r31->unk0.x = 3.5*sind(temp_f31); - temp_r31->unk0.y = 0.01f*((rand16()%16)+20); - temp_r31->unk0.z = 3.5*cosd(temp_f31); - temp_r31->unkC.x = temp_r31->unk0.x*0.03f; - temp_r31->unkC.y = temp_r31->unk0.y*0.03f; - temp_r31->unkC.z = temp_r31->unk0.z*0.03f; - } + Vec sp2C; + Vec sp20; + GXColor sp1A; + float temp_f31; + float temp_f30; + + Unk72B4Data18 *temp_r31; + s16 temp_r30; + temp_f30 = 360.0f / arg3; + temp_f31 = rand16() % 361; + for (temp_r30 = 0; temp_r30 < arg3; temp_r30++, temp_f31 += temp_f30) { + sp2C.x = arg0 + ((rand16() % 21) - 10); + sp2C.y = arg1 + ((rand16() % 21) - 10); + sp2C.z = arg2 + ((rand16() % 21) - 10); + sp20.x = sp20.y = sp20.z = 0.1f * ((rand16() % 11) + 15); + sp1A.r = sp1A.g = sp1A.b = (rand16() % 128) + 128; + sp1A.a = 128; + temp_r31 = fn_1_6B34(lbl_1_bss_30->model[0], &sp2C, &sp20, 0, &sp1A); + if (!temp_r31) { + break; + } + temp_r31->unk30 = arg4; + temp_r31->unk2C = arg5; + temp_r31->unk28 = 0; + temp_r31->unk2A = (rand16() % 2) + 2; + temp_r31->unk0.x = 3.5 * sind(temp_f31); + temp_r31->unk0.y = 0.01f * ((rand16() % 16) + 20); + temp_r31->unk0.z = 3.5 * cosd(temp_f31); + temp_r31->unkC.x = temp_r31->unk0.x * 0.03f; + temp_r31->unkC.y = temp_r31->unk0.y * 0.03f; + temp_r31->unkC.z = temp_r31->unk0.z * 0.03f; + } } void fn_1_6030(ModelData *arg0, Work72B4 *arg1, Mtx arg2) { - Unk72B4Data18 *temp_r31; - s16 temp_r29; - GXColor *temp_r28; - unkHook72B4Data18 temp_r27; - temp_r31 = arg1->unk18; - temp_r28 = arg1->unk24; - for(temp_r29=0; temp_r29unk0; temp_r29++, temp_r31++, temp_r28++) { - if(temp_r31->unk56 == 0){ - continue; - } - temp_r31->unk48.x += temp_r31->unk0.x; - temp_r31->unk48.y += temp_r31->unk0.y; - temp_r31->unk48.z += temp_r31->unk0.z; - temp_r31->unk0.x -= temp_r31->unkC.x; - temp_r31->unk0.y -= temp_r31->unkC.y; - temp_r31->unk0.z -= temp_r31->unkC.z; - temp_r31->unk28++; - if(temp_r31->unk28 >= temp_r31->unk2A) { - temp_r31->unk28 = 0; - temp_r31->unk54++; - } - if(temp_r31->unk54 >= arg1->unk14) { - temp_r31->unk30 = NULL; - temp_r31->unk56 = 0; - } else { - if(temp_r31->unk54 == 2 && temp_r31->unk30) { - temp_r27 = temp_r31->unk30; - temp_r27(temp_r31); - } - } - } + Unk72B4Data18 *temp_r31; + s16 temp_r29; + GXColor *temp_r28; + unkHook72B4Data18 temp_r27; + temp_r31 = arg1->unk18; + temp_r28 = arg1->unk24; + for (temp_r29 = 0; temp_r29 < arg1->unk0; temp_r29++, temp_r31++, temp_r28++) { + if (temp_r31->unk56 == 0) { + continue; + } + temp_r31->unk48.x += temp_r31->unk0.x; + temp_r31->unk48.y += temp_r31->unk0.y; + temp_r31->unk48.z += temp_r31->unk0.z; + temp_r31->unk0.x -= temp_r31->unkC.x; + temp_r31->unk0.y -= temp_r31->unkC.y; + temp_r31->unk0.z -= temp_r31->unkC.z; + temp_r31->unk28++; + if (temp_r31->unk28 >= temp_r31->unk2A) { + temp_r31->unk28 = 0; + temp_r31->unk54++; + } + if (temp_r31->unk54 >= arg1->unk14) { + temp_r31->unk30 = NULL; + temp_r31->unk56 = 0; + } + else { + if (temp_r31->unk54 == 2 && temp_r31->unk30) { + temp_r27 = temp_r31->unk30; + temp_r27(temp_r31); + } + } + } } void fn_1_6184(Vec *arg0, Bss12CInner *arg1) { - s16 temp_r31; - s16 temp_r30; - float spC[3]; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - temp_f28 = arg0[1].x-arg0[0].x; - temp_f27 = arg0[1].y-arg0[0].y; - temp_f26 = arg0[1].z-arg0[0].z; - temp_f25 = arg0[2].x-arg0[0].x; - temp_f24 = arg0[2].y-arg0[0].y; - temp_f23 = arg0[2].z-arg0[0].z; - spC[0] = (temp_f27*temp_f23)-(temp_f26*temp_f24); - spC[1] = (temp_f26*temp_f25)-(temp_f28*temp_f23); - spC[2] = (temp_f28*temp_f24)-(temp_f27*temp_f25); - temp_f29 = VECMagPoint(spC[0], spC[1], spC[2]); - if(0.0f != temp_f29) { - spC[0] /= temp_f29; - spC[1] /= temp_f29; - spC[2] /= temp_f29; - } - arg1->unkC = (spC[0]*arg0[0].x)+(spC[1]*arg0[0].y)+(spC[2]*arg0[0].z); - temp_r30 = 0; - for(temp_r31=1; temp_r31<3; temp_r31++) { - if(ABS(spC[temp_r30]) < ABS(spC[temp_r31])) { - temp_r30 = temp_r31; - } - } - arg1->unk0.x = spC[0]; - arg1->unk0.y = spC[1]; - arg1->unk0.z = spC[2]; - arg1->unk10 = temp_r30; + s16 temp_r31; + s16 temp_r30; + float spC[3]; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + temp_f28 = arg0[1].x - arg0[0].x; + temp_f27 = arg0[1].y - arg0[0].y; + temp_f26 = arg0[1].z - arg0[0].z; + temp_f25 = arg0[2].x - arg0[0].x; + temp_f24 = arg0[2].y - arg0[0].y; + temp_f23 = arg0[2].z - arg0[0].z; + spC[0] = (temp_f27 * temp_f23) - (temp_f26 * temp_f24); + spC[1] = (temp_f26 * temp_f25) - (temp_f28 * temp_f23); + spC[2] = (temp_f28 * temp_f24) - (temp_f27 * temp_f25); + temp_f29 = VECMagPoint(spC[0], spC[1], spC[2]); + if (0.0f != temp_f29) { + spC[0] /= temp_f29; + spC[1] /= temp_f29; + spC[2] /= temp_f29; + } + arg1->unkC = (spC[0] * arg0[0].x) + (spC[1] * arg0[0].y) + (spC[2] * arg0[0].z); + temp_r30 = 0; + for (temp_r31 = 1; temp_r31 < 3; temp_r31++) { + if (ABS(spC[temp_r30]) < ABS(spC[temp_r31])) { + temp_r30 = temp_r31; + } + } + arg1->unk0.x = spC[0]; + arg1->unk0.y = spC[1]; + arg1->unk0.z = spC[2]; + arg1->unk10 = temp_r30; } float fn_1_6504(float arg0, float arg1, float arg2) { - float temp_f31 = arg1-arg0; - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } else if(temp_f31 < -180.0f) { - temp_f31 += 360.0f; - } - temp_f31 = arg0+(temp_f31*arg2); - if(temp_f31 >= 360.0f) { - temp_f31 -= 360.0f; - } else if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - return temp_f31; + float temp_f31 = arg1 - arg0; + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + else if (temp_f31 < -180.0f) { + temp_f31 += 360.0f; + } + temp_f31 = arg0 + (temp_f31 * arg2); + if (temp_f31 >= 360.0f) { + temp_f31 -= 360.0f; + } + else if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + return temp_f31; } float fn_1_65CC(float arg0, float arg1, float arg2) { - return arg0+(arg2*(arg1-arg0)); + return arg0 + (arg2 * (arg1 - arg0)); } float fn_1_65DC(float arg0, float arg1, float arg2, float arg3) { - float temp_f31 = 1.0f-arg3; - return (arg0*(temp_f31*temp_f31))+((2.0f*temp_f31)*arg3*arg1)+(arg2*(arg3*arg3)); + float temp_f31 = 1.0f - arg3; + return (arg0 * (temp_f31 * temp_f31)) + ((2.0f * temp_f31) * arg3 * arg1) + (arg2 * (arg3 * arg3)); } void fn_1_6638(s16 *arg0, s16 arg1) { - s16 temp_r31; - s16 spCE[99]; - s16 sp8[99]; - memcpy(sp8, arg0, arg1*sizeof(s16)); - fn_1_66DC(spCE, 0, arg1); - for(temp_r31=0; temp_r31=0; temp_r31--) { - temp_r29 = rand16()%(s16)(temp_r31+1); - temp_r28 = arg0[temp_r31]; - arg0[temp_r31] = arg0[temp_r29]; - arg0[temp_r29] = temp_r28; - } + s16 temp_r31; + s16 temp_r29; + s16 temp_r28; + for (temp_r31 = 0; temp_r31 < arg2; temp_r31++) { + arg0[temp_r31] = arg1 + temp_r31; + } + for (temp_r31 = arg2 - 1; temp_r31 >= 0; temp_r31--) { + temp_r29 = rand16() % (s16)(temp_r31 + 1); + temp_r28 = arg0[temp_r31]; + arg0[temp_r31] = arg0[temp_r29]; + arg0[temp_r29] = temp_r28; + } } void fn_1_67C0(void) { - if(HuPadBtnDown[0] & PAD_TRIGGER_L) { - lbl_1_bss_12 ^= 1; - } - if(lbl_1_bss_12 == 0) { - return; - } - if(HuPadBtn[0] & PAD_BUTTON_LEFT) { - CRot.y++; - } - if(HuPadBtn[0] & PAD_BUTTON_RIGHT) { - CRot.y--; - } - if(HuPadBtn[0] & PAD_BUTTON_UP) { - CRot.x--; - } - if(HuPadBtn[0] & PAD_BUTTON_DOWN) { - CRot.x++; - } - Center.x += HuPadSubStkX[0]; - if(HuPadBtn[0] & PAD_TRIGGER_R) { - Center.y += HuPadSubStkY[0]; - } else { - Center.z += HuPadSubStkY[0]; - } - if(HuPadBtn[0] & PAD_BUTTON_X) { - CZoom += 10; - } - if(HuPadBtn[0] & PAD_BUTTON_Y) { - CZoom -= 10; - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - OSReport("\nCZoom = %.2f \n", CZoom); - OSReport("Center x = %.2f: y = %.2f: z = %.2f \n", Center.x, Center.y, Center.z); - OSReport("CRot x = %.2f: y = %.2f: z = %.2f \n", CRot.x, CRot.y, CRot.z); - } - + if (HuPadBtnDown[0] & PAD_TRIGGER_L) { + lbl_1_bss_12 ^= 1; + } + if (lbl_1_bss_12 == 0) { + return; + } + if (HuPadBtn[0] & PAD_BUTTON_LEFT) { + CRot.y++; + } + if (HuPadBtn[0] & PAD_BUTTON_RIGHT) { + CRot.y--; + } + if (HuPadBtn[0] & PAD_BUTTON_UP) { + CRot.x--; + } + if (HuPadBtn[0] & PAD_BUTTON_DOWN) { + CRot.x++; + } + Center.x += HuPadSubStkX[0]; + if (HuPadBtn[0] & PAD_TRIGGER_R) { + Center.y += HuPadSubStkY[0]; + } + else { + Center.z += HuPadSubStkY[0]; + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + CZoom += 10; + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + CZoom -= 10; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + OSReport("\nCZoom = %.2f \n", CZoom); + OSReport("Center x = %.2f: y = %.2f: z = %.2f \n", Center.x, Center.y, Center.z); + OSReport("CRot x = %.2f: y = %.2f: z = %.2f \n", CRot.x, CRot.y, CRot.z); + } } Unk72B4Data18 *fn_1_6B34(s16 arg0, Vec *arg1, Vec *arg2, float arg3, GXColor *arg4) { - Unk72B4Data18 *temp_r31; - Work72B4 *temp_r30; - s16 temp_r29; - ModelData *temp_r28; - temp_r28 = &Hu3DData[arg0]; - temp_r30 = temp_r28->unk_120; - for(temp_r29 = 0, temp_r31 = temp_r30->unk18; temp_r29unk0; temp_r29++, temp_r31++) { - if(!temp_r31->unk56) { - break; - } - } - if(temp_r29 == temp_r30->unk0) { - return NULL; - } - temp_r30->unk24[temp_r29].r = arg4->r; - temp_r30->unk24[temp_r29].g = arg4->g; - temp_r30->unk24[temp_r29].b = arg4->b; - temp_r30->unk24[temp_r29].a = arg4->a; - temp_r31->unk34 = temp_r29; - temp_r31->unk38 = arg3; - temp_r31->unk3C = *arg2; - temp_r31->unk48 = *arg1; - temp_r31->unk54 = 0; - temp_r31->unk30 = NULL; - temp_r31->unk56 = 1; - return temp_r31; + Unk72B4Data18 *temp_r31; + Work72B4 *temp_r30; + s16 temp_r29; + ModelData *temp_r28; + temp_r28 = &Hu3DData[arg0]; + temp_r30 = temp_r28->unk_120; + for (temp_r29 = 0, temp_r31 = temp_r30->unk18; temp_r29 < temp_r30->unk0; temp_r29++, temp_r31++) { + if (!temp_r31->unk56) { + break; + } + } + if (temp_r29 == temp_r30->unk0) { + return NULL; + } + temp_r30->unk24[temp_r29].r = arg4->r; + temp_r30->unk24[temp_r29].g = arg4->g; + temp_r30->unk24[temp_r29].b = arg4->b; + temp_r30->unk24[temp_r29].a = arg4->a; + temp_r31->unk34 = temp_r29; + temp_r31->unk38 = arg3; + temp_r31->unk3C = *arg2; + temp_r31->unk48 = *arg1; + temp_r31->unk54 = 0; + temp_r31->unk30 = NULL; + temp_r31->unk56 = 1; + return temp_r31; } void fn_1_72B4(ModelData *model, Mtx mtx); @@ -1904,136 +1891,137 @@ void fn_1_7824(HsfVector2f *arg0, s16 arg1, s16 arg2, float arg3, float arg4); s16 fn_1_6C74(AnimData *arg0, s16 arg1, float arg2, s16 arg3, s16 arg4) { - Work72B4 *temp_r31; - s16 temp_r30; - HsfVector2f *temp_r29; - ModelData *temp_r28; - GXColor *temp_r27; - Vec *temp_r25; - Unk72B4Data18 *temp_r24; - s16 temp_r22; - void *temp_r21; - s16 temp_r20; - s16 temp_r19; - void *temp_r18; - temp_r20 = Hu3DHookFuncCreate(fn_1_72B4); - temp_r28 = &Hu3DData[temp_r20]; - temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(Work72B4), temp_r28->unk_48); - temp_r28->unk_120 = temp_r31; - arg0->useNum++; - temp_r31->unk10 = arg0; - temp_r31->unk0 = arg1; - temp_r31->unk8 = 0; - temp_r31->unkC = 0; - temp_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(Unk72B4Data18), temp_r28->unk_48); - temp_r31->unk18 = temp_r24; - for(temp_r30=0; temp_r30unk54 = -1; - temp_r24->unk56 = 0; - } - temp_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(Vec)*4, temp_r28->unk_48); - temp_r31->unk1C = temp_r25; - for(temp_r30=0; temp_r30x = temp_r25->y = temp_r25->z = 0; - } - temp_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(GXColor), temp_r28->unk_48); - temp_r31->unk24 = temp_r27; - for(temp_r30=0; temp_r30r = temp_r27->g = temp_r27->b = temp_r27->a = 255; - } - temp_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(HsfVector2f)*4, temp_r28->unk_48); - temp_r31->unk20 = temp_r29; - for(temp_r30=0; temp_r30x = 0; - temp_r29->y = 0; - temp_r29++; - temp_r29->x = 1; - temp_r29->y = 0; - temp_r29++; - temp_r29->x = 1; - temp_r29->y = 1; - temp_r29++; - temp_r29->x = 0; - temp_r29->y = 1; - temp_r29++; - } - if(arg3 != 0 || arg4 != 0) { - temp_r22 = arg0->bmp->sizeX/arg3; - temp_r19 = arg0->bmp->sizeY/arg4; - temp_r31->unk14 = temp_r22*temp_r19; - temp_r31->unk60 = 1.0f/temp_r22; - temp_r31->unk64 = 1.0f/temp_r19; - } else { - temp_r22 = 1; - temp_r31->unk14 = 1; - temp_r31->unk60 = 1; - temp_r31->unk64 = 1; - } - temp_r31->unk5C = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk14*sizeof(HsfVector2f), temp_r28->unk_48); - fn_1_7824(temp_r31->unk5C, temp_r31->unk14, temp_r22, temp_r31->unk60, temp_r31->unk64); - temp_r31->unk2C[0].x = temp_r31->unk2C[3].x = temp_r31->unk2C[2].y = temp_r31->unk2C[3].y = -arg2; - temp_r31->unk2C[1].x = temp_r31->unk2C[2].x = temp_r31->unk2C[0].y = temp_r31->unk2C[1].y = arg2; - temp_r31->unk2C[0].z = temp_r31->unk2C[1].z = temp_r31->unk2C[2].z = temp_r31->unk2C[3].z = 0; - temp_r21 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48); - temp_r18 = temp_r21; - DCFlushRange(temp_r21, 0x20000); - GXBeginDisplayList(temp_r18, 0x20000); - GXBegin(GX_QUADS, GX_VTXFMT0, 4*arg1); - for(temp_r30=0; temp_r30unk4 = GXEndDisplayList(); - temp_r31->unk28 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk4, temp_r28->unk_48); - memcpy(temp_r31->unk28, temp_r21, temp_r31->unk4); - DCFlushRange(temp_r31->unk28, temp_r31->unk4); - HuMemDirectFree(temp_r21); - return temp_r20; + Work72B4 *temp_r31; + s16 temp_r30; + HsfVector2f *temp_r29; + ModelData *temp_r28; + GXColor *temp_r27; + Vec *temp_r25; + Unk72B4Data18 *temp_r24; + s16 temp_r22; + void *temp_r21; + s16 temp_r20; + s16 temp_r19; + void *temp_r18; + temp_r20 = Hu3DHookFuncCreate(fn_1_72B4); + temp_r28 = &Hu3DData[temp_r20]; + temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(Work72B4), temp_r28->unk_48); + temp_r28->unk_120 = temp_r31; + arg0->useNum++; + temp_r31->unk10 = arg0; + temp_r31->unk0 = arg1; + temp_r31->unk8 = 0; + temp_r31->unkC = 0; + temp_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Unk72B4Data18), temp_r28->unk_48); + temp_r31->unk18 = temp_r24; + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++, temp_r24++) { + temp_r24->unk54 = -1; + temp_r24->unk56 = 0; + } + temp_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, temp_r28->unk_48); + temp_r31->unk1C = temp_r25; + for (temp_r30 = 0; temp_r30 < arg1 * 4; temp_r30++, temp_r25++) { + temp_r25->x = temp_r25->y = temp_r25->z = 0; + } + temp_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), temp_r28->unk_48); + temp_r31->unk24 = temp_r27; + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++, temp_r27++) { + temp_r27->r = temp_r27->g = temp_r27->b = temp_r27->a = 255; + } + temp_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(HsfVector2f) * 4, temp_r28->unk_48); + temp_r31->unk20 = temp_r29; + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++) { + temp_r29->x = 0; + temp_r29->y = 0; + temp_r29++; + temp_r29->x = 1; + temp_r29->y = 0; + temp_r29++; + temp_r29->x = 1; + temp_r29->y = 1; + temp_r29++; + temp_r29->x = 0; + temp_r29->y = 1; + temp_r29++; + } + if (arg3 != 0 || arg4 != 0) { + temp_r22 = arg0->bmp->sizeX / arg3; + temp_r19 = arg0->bmp->sizeY / arg4; + temp_r31->unk14 = temp_r22 * temp_r19; + temp_r31->unk60 = 1.0f / temp_r22; + temp_r31->unk64 = 1.0f / temp_r19; + } + else { + temp_r22 = 1; + temp_r31->unk14 = 1; + temp_r31->unk60 = 1; + temp_r31->unk64 = 1; + } + temp_r31->unk5C = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk14 * sizeof(HsfVector2f), temp_r28->unk_48); + fn_1_7824(temp_r31->unk5C, temp_r31->unk14, temp_r22, temp_r31->unk60, temp_r31->unk64); + temp_r31->unk2C[0].x = temp_r31->unk2C[3].x = temp_r31->unk2C[2].y = temp_r31->unk2C[3].y = -arg2; + temp_r31->unk2C[1].x = temp_r31->unk2C[2].x = temp_r31->unk2C[0].y = temp_r31->unk2C[1].y = arg2; + temp_r31->unk2C[0].z = temp_r31->unk2C[1].z = temp_r31->unk2C[2].z = temp_r31->unk2C[3].z = 0; + temp_r21 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48); + temp_r18 = temp_r21; + DCFlushRange(temp_r21, 0x20000); + GXBeginDisplayList(temp_r18, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, 4 * arg1); + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++) { + GXPosition1x16(temp_r30 * 4); + GXColor1x16(temp_r30); + GXTexCoord1x16(temp_r30 * 4); + GXPosition1x16((temp_r30 * 4) + 1); + GXColor1x16(temp_r30); + GXTexCoord1x16((temp_r30 * 4) + 1); + GXPosition1x16((temp_r30 * 4) + 2); + GXColor1x16(temp_r30); + GXTexCoord1x16((temp_r30 * 4) + 2); + GXPosition1x16((temp_r30 * 4) + 3); + GXColor1x16(temp_r30); + GXTexCoord1x16((temp_r30 * 4) + 3); + } + temp_r31->unk4 = GXEndDisplayList(); + temp_r31->unk28 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk4, temp_r28->unk_48); + memcpy(temp_r31->unk28, temp_r21, temp_r31->unk4); + DCFlushRange(temp_r31->unk28, temp_r31->unk4); + HuMemDirectFree(temp_r21); + return temp_r20; } void fn_1_71B8(s16 arg0) { - ModelData *temp_r31; - Work72B4 *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - HuSprAnimKill(temp_r30->unk10); - Hu3DModelKill(arg0); + ModelData *temp_r31; + Work72B4 *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + HuSprAnimKill(temp_r30->unk10); + Hu3DModelKill(arg0); } Work72B4 *fn_1_7218(s16 arg0) { - ModelData *temp_r31; - temp_r31 = &Hu3DData[arg0]; - return temp_r31->unk_120; + ModelData *temp_r31; + temp_r31 = &Hu3DData[arg0]; + return temp_r31->unk_120; } void fn_1_7244(s16 arg0, unkHook72B4 arg1) { - ModelData *temp_r31; - Work72B4 *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - temp_r30->unkC = arg1; + ModelData *temp_r31; + Work72B4 *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + temp_r30->unkC = arg1; } void fn_1_727C(s16 arg0, u8 arg1) { - ModelData *temp_r31; - Work72B4 *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - temp_r30->unk8 = arg1; + ModelData *temp_r31; + Work72B4 *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + temp_r30->unk8 = arg1; } void fn_1_78F0(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, float arg3, float arg4); @@ -2043,171 +2031,175 @@ void fn_1_79FC(Mtx arg0, Mtx arg1); void fn_1_72B4(ModelData *model, Mtx mtx) { - Mtx sp128; - ROMtx spF8; - Mtx spC8; - Mtx sp98; - Vec sp68[4]; - Vec sp38[4]; - Vec sp8[4]; - Vec *temp_r31; - Work72B4 *temp_r30; - Unk72B4Data18 *temp_r29; - HsfVector2f *temp_r27; - s16 temp_r26; - s16 temp_r25; - unkHook72B4 temp_r23; - temp_r30 = model->unk_120; - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXSetNumTevStages(1); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - temp_r25 = temp_r30->unk10->bmp->dataFmt & ANIM_BMP_FMTMASK; - if(temp_r25 == ANIM_BMP_I8 || temp_r25 == ANIM_BMP_I4) { - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); - } - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); - if(model->attr & 0x2) { - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } - HuSprTexLoad(temp_r30->unk10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); - GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); - GXSetZCompLoc(GX_FALSE); - switch(temp_r30->unk8) { - case 0: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - break; - - case 1: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - break; - - case 2: - GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVSRCCLR, GX_LO_NOOP); - break; - } - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, temp_r30->unk1C, sizeof(Vec)); - GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSetArray(GX_VA_CLR0, temp_r30->unk24, sizeof(GXColor)); - GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX0, temp_r30->unk20, sizeof(HsfVector2f)); - fn_1_79FC(mtx, sp128); - PSMTXReorder(sp128, spF8); - if(!omPauseChk() && temp_r30->unkC) { - temp_r23 = temp_r30->unkC; - temp_r23(model, temp_r30, mtx); - } - temp_r29 = temp_r30->unk18; - temp_r31 = temp_r30->unk1C; - temp_r27 = temp_r30->unk20; - PSMTXROMultVecArray(spF8, temp_r30->unk2C, sp68, 4); - for(temp_r26=0; temp_r26unk0; temp_r26++, temp_r29++, temp_r27 += 4) { - if(temp_r29->unk56 == 0) { - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - } else { - if(0.0f == temp_r29->unk38) { - fn_1_7994(sp68, sp38, &temp_r29->unk3C, 4); - VECAdd(&sp38[0], &temp_r29->unk48, temp_r31++); - VECAdd(&sp38[1], &temp_r29->unk48, temp_r31++); - VECAdd(&sp38[2], &temp_r29->unk48, temp_r31++); - VECAdd(&sp38[3], &temp_r29->unk48, temp_r31++); - } else { - fn_1_7994(temp_r30->unk2C, sp38, &temp_r29->unk3C, 4); - MTXRotDeg(spC8, 'Z', temp_r29->unk38); - MTXConcat(sp128, spC8, sp98); - MTXMultVecArray(sp98, sp38, sp8, 4); - VECAdd(&sp8[0], &temp_r29->unk48, temp_r31++); - VECAdd(&sp8[1], &temp_r29->unk48, temp_r31++); - VECAdd(&sp8[2], &temp_r29->unk48, temp_r31++); - VECAdd(&sp8[3], &temp_r29->unk48, temp_r31++); - } - if(temp_r29->unk54 != -1) { - fn_1_78F0(temp_r27, temp_r30->unk5C, temp_r29->unk54, temp_r30->unk60, temp_r30->unk64); - } - } - } - DCFlushRangeNoSync(temp_r30->unk1C, (temp_r30->unk0*sizeof(Vec))*4); - DCFlushRangeNoSync(temp_r30->unk20, (temp_r30->unk0*sizeof(HsfVector2f))*4); - PPCSync(); - GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); + Mtx sp128; + ROMtx spF8; + Mtx spC8; + Mtx sp98; + Vec sp68[4]; + Vec sp38[4]; + Vec sp8[4]; + Vec *temp_r31; + Work72B4 *temp_r30; + Unk72B4Data18 *temp_r29; + HsfVector2f *temp_r27; + s16 temp_r26; + s16 temp_r25; + unkHook72B4 temp_r23; + temp_r30 = model->unk_120; + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + temp_r25 = temp_r30->unk10->bmp->dataFmt & ANIM_BMP_FMTMASK; + if (temp_r25 == ANIM_BMP_I8 || temp_r25 == ANIM_BMP_I4) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + if (model->attr & 0x2) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + HuSprTexLoad(temp_r30->unk10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + switch (temp_r30->unk8) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVSRCCLR, GX_LO_NOOP); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->unk1C, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, temp_r30->unk24, sizeof(GXColor)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r30->unk20, sizeof(HsfVector2f)); + fn_1_79FC(mtx, sp128); + PSMTXReorder(sp128, spF8); + if (!omPauseChk() && temp_r30->unkC) { + temp_r23 = temp_r30->unkC; + temp_r23(model, temp_r30, mtx); + } + temp_r29 = temp_r30->unk18; + temp_r31 = temp_r30->unk1C; + temp_r27 = temp_r30->unk20; + PSMTXROMultVecArray(spF8, temp_r30->unk2C, sp68, 4); + for (temp_r26 = 0; temp_r26 < temp_r30->unk0; temp_r26++, temp_r29++, temp_r27 += 4) { + if (temp_r29->unk56 == 0) { + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + } + else { + if (0.0f == temp_r29->unk38) { + fn_1_7994(sp68, sp38, &temp_r29->unk3C, 4); + VECAdd(&sp38[0], &temp_r29->unk48, temp_r31++); + VECAdd(&sp38[1], &temp_r29->unk48, temp_r31++); + VECAdd(&sp38[2], &temp_r29->unk48, temp_r31++); + VECAdd(&sp38[3], &temp_r29->unk48, temp_r31++); + } + else { + fn_1_7994(temp_r30->unk2C, sp38, &temp_r29->unk3C, 4); + MTXRotDeg(spC8, 'Z', temp_r29->unk38); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, sp38, sp8, 4); + VECAdd(&sp8[0], &temp_r29->unk48, temp_r31++); + VECAdd(&sp8[1], &temp_r29->unk48, temp_r31++); + VECAdd(&sp8[2], &temp_r29->unk48, temp_r31++); + VECAdd(&sp8[3], &temp_r29->unk48, temp_r31++); + } + if (temp_r29->unk54 != -1) { + fn_1_78F0(temp_r27, temp_r30->unk5C, temp_r29->unk54, temp_r30->unk60, temp_r30->unk64); + } + } + } + DCFlushRangeNoSync(temp_r30->unk1C, (temp_r30->unk0 * sizeof(Vec)) * 4); + DCFlushRangeNoSync(temp_r30->unk20, (temp_r30->unk0 * sizeof(HsfVector2f)) * 4); + PPCSync(); + GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } void fn_1_7824(HsfVector2f *arg0, s16 arg1, s16 arg2, float arg3, float arg4) { - s16 temp_r30; - s16 temp_r29; - s16 temp_r31; - for(temp_r31=0; temp_r31x = temp_r30*arg3; - arg0->y = temp_r29*arg4; - } + s16 temp_r30; + s16 temp_r29; + s16 temp_r31; + for (temp_r31 = 0; temp_r31 < arg1; temp_r31++, arg0++) { + temp_r30 = temp_r31 % arg2; + temp_r29 = temp_r31 / arg2; + arg0->x = temp_r30 * arg3; + arg0->y = temp_r29 * arg4; + } } void fn_1_78F0(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, float arg3, float arg4) { - arg0[0].x = arg1[arg2].x; - arg0[0].y = arg1[arg2].y; - arg0[1].x = arg3+arg1[arg2].x; - arg0[1].y = arg1[arg2].y; - arg0[2].x = arg3+arg1[arg2].x; - arg0[2].y = arg4+arg1[arg2].y; - arg0[3].x = arg1[arg2].x; - arg0[3].y = arg4+arg1[arg2].y; + arg0[0].x = arg1[arg2].x; + arg0[0].y = arg1[arg2].y; + arg0[1].x = arg3 + arg1[arg2].x; + arg0[1].y = arg1[arg2].y; + arg0[2].x = arg3 + arg1[arg2].x; + arg0[2].y = arg4 + arg1[arg2].y; + arg0[3].x = arg1[arg2].x; + arg0[3].y = arg4 + arg1[arg2].y; } void fn_1_7994(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) { - s16 temp_r31; - for(temp_r31=0; temp_r31x = arg0->x*arg2->x; - arg1->y = arg0->y*arg2->y; - arg1->z = arg0->z*arg2->z; - } + s16 temp_r31; + for (temp_r31 = 0; temp_r31 < arg3; temp_r31++, arg0++, arg1++) { + arg1->x = arg0->x * arg2->x; + arg1->y = arg0->y * arg2->y; + arg1->z = arg0->z * arg2->z; + } } void fn_1_79FC(Mtx arg0, Mtx arg1) { - arg1[0][0] = arg0[0][0]; - arg1[1][0] = arg0[0][1]; - arg1[2][0] = arg0[0][2]; - arg1[0][1] = arg0[1][0]; - arg1[1][1] = arg0[1][1]; - arg1[2][1] = arg0[1][2]; - arg1[0][2] = arg0[2][0]; - arg1[1][2] = arg0[2][1]; - arg1[2][2] = arg0[2][2]; - arg1[0][3] = 0; - arg1[1][3] = 0; - arg1[2][3] = 0; + arg1[0][0] = arg0[0][0]; + arg1[1][0] = arg0[0][1]; + arg1[2][0] = arg0[0][2]; + arg1[0][1] = arg0[1][0]; + arg1[1][1] = arg0[1][1]; + arg1[2][1] = arg0[1][2]; + arg1[0][2] = arg0[2][0]; + arg1[1][2] = arg0[2][1]; + arg1[2][2] = arg0[2][2]; + arg1[0][3] = 0; + arg1[1][3] = 0; + arg1[2][3] = 0; } s32 fn_1_7A78(s32 arg0, s16 arg1) { - UnkMsmStruct_01 sp10; - sp10.unk00 = 1; - sp10.unk04 = arg1; - return msmSeSetParam(arg0, &sp10); + UnkMsmStruct_01 sp10; + sp10.unk00 = 1; + sp10.unk04 = arg1; + return msmSeSetParam(arg0, &sp10); } diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index 78687d3a..77dea701 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -39,14 +39,14 @@ float lbl_1_data_1D4[8] = { }; u32 lbl_1_data_1F4[8] = { - 0x5F0000, - 0x5F0002, - 0x5F0003, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), -1, - 0x5F0048, - 0x5F0049, - 0x5F0017, - 0x5F0072 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72) }; char *lbl_1_data_230[8] = { @@ -621,7 +621,7 @@ void fn_1_9440(omObjData *object) if(lbl_1_data_1F4[temp_r28] != -1) { object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk8, lbl_1_data_1F4[temp_r28]); } else { - object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], 0x3E0021+temp_r31->unk8); + object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M431, 0x21)+temp_r31->unk8); } if(temp_r28 == 4 || temp_r28 == 5) { CharModelVoiceEnableSet(temp_r31->unk8, object->motion[temp_r28], 0); diff --git a/src/REL/m434Dll/main.c b/src/REL/m434Dll/main.c index 70261dd1..bb2349c4 100644 --- a/src/REL/m434Dll/main.c +++ b/src/REL/m434Dll/main.c @@ -1,23 +1,22 @@ -#include "game/object.h" -#include "game/objsub.h" +#include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/audio.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" #include "REL/m434Dll.h" -#include "math.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" #include "rel_sqrt_consts.h" - typedef struct camera_view { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraView; Vec lbl_1_data_0 = { -700, 2500, -700 }; @@ -28,7 +27,6 @@ Vec lbl_1_data_28 = { -700, 2500, 700 }; Vec lbl_1_data_34 = { 0, 1, 0 }; Vec lbl_1_data_40 = { 0, 0, 0 }; - omObjData *lbl_1_bss_3D4; omObjData *lbl_1_bss_3D0; omObjData *lbl_1_bss_3CC; @@ -61,58 +59,58 @@ void fn_1_16B4(void); void ObjectSetup(void) { - s32 i; - Process *objman; - OSReport("******* M434ObjectSetup *********\n"); - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - CZoom = 2097.6f; - Center.x = 0; - Center.y = 172; - Center.z = 361; - CRot.x = -32; - CRot.y = 0; - CRot.z = 0; - for(i=0; i<4; i++) { - CZoomM[i] = CZoom; - CenterM[i] = Center; - CRotM[i] = CRot; - } - fn_1_16B4(); - Hu3DCameraCreate(15); - Hu3DCameraPerspectiveSet(2, 30, 20, 25000, 1.2f); - Hu3DCameraViewportSet(2, 0, 0, 320, 240, 0, 1); - Hu3DCameraPerspectiveSet(13, 30, 20, 25000, 1.2f); - Hu3DCameraViewportSet(13, 0, 0, 640, 480, 0, 1); - lbl_1_bss_3CC = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - lbl_1_bss_3CC->work[0] = 4; - HuAudSndGrpSet(59); - lbl_1_data_C.x = -lbl_1_data_0.x; - lbl_1_data_C.y = -lbl_1_data_0.y; - lbl_1_data_C.z = -lbl_1_data_0.z; - VECNormalize(&lbl_1_data_C, &lbl_1_data_C); - lbl_1_bss_3B0 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); - Hu3DGLightInfinitytSet(lbl_1_bss_3B0); - Hu3DGLightStaticSet(lbl_1_bss_3B0, 1); - for(i=0; i<4; i++) { - lbl_1_bss_3A0[i] = GWPlayerCfg[i].group; - } - lbl_1_bss_3D4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_4FC); - lbl_1_bss_3D0 = omAddObjEx(objman, 0, 1, 0, -1, fn_1_CC8); - fn_1_1DB0(objman); - fn_1_4854(objman); - fn_1_6860(objman); - fn_1_1104(objman); + s32 i; + Process *objman; + OSReport("******* M434ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + CZoom = 2097.6f; + Center.x = 0; + Center.y = 172; + Center.z = 361; + CRot.x = -32; + CRot.y = 0; + CRot.z = 0; + for (i = 0; i < 4; i++) { + CZoomM[i] = CZoom; + CenterM[i] = Center; + CRotM[i] = CRot; + } + fn_1_16B4(); + Hu3DCameraCreate(15); + Hu3DCameraPerspectiveSet(2, 30, 20, 25000, 1.2f); + Hu3DCameraViewportSet(2, 0, 0, 320, 240, 0, 1); + Hu3DCameraPerspectiveSet(13, 30, 20, 25000, 1.2f); + Hu3DCameraViewportSet(13, 0, 0, 640, 480, 0, 1); + lbl_1_bss_3CC = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_3CC->work[0] = 4; + HuAudSndGrpSet(59); + lbl_1_data_C.x = -lbl_1_data_0.x; + lbl_1_data_C.y = -lbl_1_data_0.y; + lbl_1_data_C.z = -lbl_1_data_0.z; + VECNormalize(&lbl_1_data_C, &lbl_1_data_C); + lbl_1_bss_3B0 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_3B0); + Hu3DGLightStaticSet(lbl_1_bss_3B0, 1); + for (i = 0; i < 4; i++) { + lbl_1_bss_3A0[i] = GWPlayerCfg[i].group; + } + lbl_1_bss_3D4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_4FC); + lbl_1_bss_3D0 = omAddObjEx(objman, 0, 1, 0, -1, fn_1_CC8); + fn_1_1DB0(objman); + fn_1_4854(objman); + fn_1_6860(objman); + fn_1_1104(objman); } void fn_1_558(omObjData *object); void fn_1_4FC(omObjData *object) { - fn_1_1D64(0); - lbl_1_bss_3AA = 0; - lbl_1_bss_3A8 = 0; - object->func = fn_1_558; + fn_1_1D64(0); + lbl_1_bss_3AA = 0; + lbl_1_bss_3A8 = 0; + object->func = fn_1_558; } s32 lbl_1_data_70 = -1; @@ -122,138 +120,138 @@ void fn_1_1638(s32 arg0); void fn_1_558(omObjData *object) { - s32 temp_r31; - s32 temp_r29; - s32 sp10[2][4]; - s32 sp8[2]; - - switch(fn_1_1D54()) { - case 0: - lbl_1_bss_3C2 = 60; - lbl_1_bss_3C0 = 60; - fn_1_1D64(1); - lbl_1_bss_10[1] = 60; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - HuAudFXPlay(1736); - break; - - case 1: - if(fn_1_10F4() == 2) { - if(lbl_1_bss_10[1] != 0) { - if(--lbl_1_bss_10[1] == 0) { - lbl_1_bss_3BC = MGSeqStartCreate(); - HuAudStreamPlay("sound/mu_047a.adp", 1); - } - } else { - if(MGSeqStatGet(lbl_1_bss_3BC) == 0) { - fn_1_1D64(2); - HuAudFXPlay(1738); - lbl_1_bss_3B8 = MGSeqTimerCreate(60); - fn_1_1638(1); - } - if(lbl_1_data_70 < 0 && (MGSeqStatGet(lbl_1_bss_3BC) & 0x10)) { - lbl_1_data_70 = HuAudSeqPlay(67); - } - } - } - break; - - case 2: - if(--lbl_1_bss_3C0 == 0) { - lbl_1_bss_3C2--; - MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2); - lbl_1_bss_3C0 = 60; - } - if(!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) { - fn_1_1D64(3); - lbl_1_bss_10[1] = 60; - lbl_1_bss_3BC = MGSeqFinishCreate(); - HuAudStreamFadeOut(30); - HuAudSeqFadeOut(lbl_1_data_70, 100); - } - break; - - case 3: - if(lbl_1_bss_3B8 >= 0) { - MGSeqParamSet(lbl_1_bss_3B8, 2, -1); - lbl_1_bss_3B8 = -1; - } - if(MGSeqStatGet(lbl_1_bss_3BC) == 0) { - fn_1_1D64(4); - lbl_1_bss_10[1] = 60; - } - break; - - case 4: - if(--lbl_1_bss_10[1] == 0) { - sp8[0] = sp8[1] = 0; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r29 = fn_1_1D74(temp_r31); - sp10[temp_r29][sp8[temp_r29]++] = temp_r31; - } - lbl_1_bss_3AA = fn_1_1CB8(); - switch(lbl_1_bss_3AA) { - case -1: - lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[0][0]].character; - lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[0][1]].character; - MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); - GWPlayerCoinWinSet(sp10[0][0], 10); - GWPlayerCoinWinSet(sp10[0][1], 10); - HuAudSStreamPlay(1); - break; - - case 0: - MGSeqDrawCreate(); - HuAudSStreamPlay(4); - break; - - case 1: - lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[1][0]].character; - lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[1][1]].character; - MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); - GWPlayerCoinWinSet(sp10[1][0], 10); - GWPlayerCoinWinSet(sp10[1][1], 10); - HuAudSStreamPlay(1); - break; - } - fn_1_1D64(5); - lbl_1_bss_10[1] = 210; - } - break; - - case 5: - if(--lbl_1_bss_10[1] == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_C64; - } - - break; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - CZoomM[temp_r31] = CZoom; - CRotM[temp_r31] = CRot; - CenterM[temp_r31] = Center; - - } - if(omSysExitReq && !WipeStatGet()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_C64; - } + s32 temp_r31; + s32 temp_r29; + s32 sp10[2][4]; + s32 sp8[2]; + + switch (fn_1_1D54()) { + case 0: + lbl_1_bss_3C2 = 60; + lbl_1_bss_3C0 = 60; + fn_1_1D64(1); + lbl_1_bss_10[1] = 60; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + HuAudFXPlay(1736); + break; + + case 1: + if (fn_1_10F4() == 2) { + if (lbl_1_bss_10[1] != 0) { + if (--lbl_1_bss_10[1] == 0) { + lbl_1_bss_3BC = MGSeqStartCreate(); + HuAudStreamPlay("sound/mu_047a.adp", 1); + } + } + else { + if (MGSeqStatGet(lbl_1_bss_3BC) == 0) { + fn_1_1D64(2); + HuAudFXPlay(1738); + lbl_1_bss_3B8 = MGSeqTimerCreate(60); + fn_1_1638(1); + } + if (lbl_1_data_70 < 0 && (MGSeqStatGet(lbl_1_bss_3BC) & 0x10)) { + lbl_1_data_70 = HuAudSeqPlay(67); + } + } + } + break; + + case 2: + if (--lbl_1_bss_3C0 == 0) { + lbl_1_bss_3C2--; + MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2); + lbl_1_bss_3C0 = 60; + } + if (!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) { + fn_1_1D64(3); + lbl_1_bss_10[1] = 60; + lbl_1_bss_3BC = MGSeqFinishCreate(); + HuAudStreamFadeOut(30); + HuAudSeqFadeOut(lbl_1_data_70, 100); + } + break; + + case 3: + if (lbl_1_bss_3B8 >= 0) { + MGSeqParamSet(lbl_1_bss_3B8, 2, -1); + lbl_1_bss_3B8 = -1; + } + if (MGSeqStatGet(lbl_1_bss_3BC) == 0) { + fn_1_1D64(4); + lbl_1_bss_10[1] = 60; + } + break; + + case 4: + if (--lbl_1_bss_10[1] == 0) { + sp8[0] = sp8[1] = 0; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r29 = fn_1_1D74(temp_r31); + sp10[temp_r29][sp8[temp_r29]++] = temp_r31; + } + lbl_1_bss_3AA = fn_1_1CB8(); + switch (lbl_1_bss_3AA) { + case -1: + lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[0][0]].character; + lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[0][1]].character; + MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); + GWPlayerCoinWinSet(sp10[0][0], 10); + GWPlayerCoinWinSet(sp10[0][1], 10); + HuAudSStreamPlay(1); + break; + + case 0: + MGSeqDrawCreate(); + HuAudSStreamPlay(4); + break; + + case 1: + lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[1][0]].character; + lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[1][1]].character; + MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); + GWPlayerCoinWinSet(sp10[1][0], 10); + GWPlayerCoinWinSet(sp10[1][1], 10); + HuAudSStreamPlay(1); + break; + } + fn_1_1D64(5); + lbl_1_bss_10[1] = 210; + } + break; + + case 5: + if (--lbl_1_bss_10[1] == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_C64; + } + + break; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + CZoomM[temp_r31] = CZoom; + CRotM[temp_r31] = CRot; + CenterM[temp_r31] = Center; + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_C64; + } } void fn_1_C64(omObjData *object) { - if(WipeStatGet()) { - return; - } - fn_1_1E44(); - fn_1_4964(); - fn_1_6A84(); - fn_1_1684(); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - OSReport("******* M434Exit *********\n"); + if (WipeStatGet()) { + return; + } + fn_1_1E44(); + fn_1_4964(); + fn_1_6A84(); + fn_1_1684(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M434Exit *********\n"); } void fn_1_E44(omObjData *object); @@ -264,20 +262,19 @@ void fn_1_1A10(float arg0); void fn_1_CC8(omObjData *object) { - lbl_1_bss_8[0] = 0; - lbl_1_bss_8[1] = 140; - fn_1_16D8(); - fn_1_1950(302, 0, 125, -188, -24, 28, 0); - fn_1_1A00(1); - object->func = fn_1_E44; - omSetStatBit(object, 0x100); - object->model[0] = Hu3DModelCreateFile(0x410007); - Hu3DModelCameraSet(object->model[0], 4); - Hu3DModelLayerSet(object->model[0], 4); - Hu3DModelPosSet(object->model[0], -50, -40, -540); - Hu3DMotionSpeedSet(object->model[0], 1); - Hu3DModelRotSet(object->model[0], 0, 70, 0); - + lbl_1_bss_8[0] = 0; + lbl_1_bss_8[1] = 140; + fn_1_16D8(); + fn_1_1950(302, 0, 125, -188, -24, 28, 0); + fn_1_1A00(1); + object->func = fn_1_E44; + omSetStatBit(object, 0x100); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x07)); + Hu3DModelCameraSet(object->model[0], 4); + Hu3DModelLayerSet(object->model[0], 4); + Hu3DModelPosSet(object->model[0], -50, -40, -540); + Hu3DMotionSpeedSet(object->model[0], 1); + Hu3DModelRotSet(object->model[0], 0, 70, 0); } s32 lbl_1_data_A4[] = { 74, 98 }; @@ -287,335 +284,326 @@ void fn_1_10BC(omObjData *object); void fn_1_E44(omObjData *object) { - ModelData *temp_r31; - s32 temp_r30; - Vec sp8; - switch(lbl_1_bss_8[0]) { - case 0: - if(--lbl_1_bss_8[1] == 0) { - Hu3DModelAttrSet(object->model[0], 1); - lbl_1_bss_8[0] = 1; - } - for(temp_r30=0; temp_r30<2u; temp_r30++) { - if(lbl_1_bss_4 == lbl_1_data_A4[temp_r30]) { - temp_r31 = &Hu3DData[object->model[0]]; - sp8.x = temp_r31->pos.x+(lbl_1_data_AC[temp_r30]*cosd(temp_r31->rot.y)); - sp8.y = -15.000001f; - sp8.z = temp_r31->pos.z-(lbl_1_data_AC[temp_r30]*sind(temp_r31->rot.y)); - if(temp_r30 == 0) { - fn_1_47EC(&sp8); - HuAudFXPlay(1731); - } else { - fn_1_43AC(&sp8); - HuAudFXPlay(1739); - } - } - } - lbl_1_bss_4++; - break; - - case 1: - lbl_1_bss_0 += 0.02f; - if(lbl_1_bss_0 >= 1.0f) { - lbl_1_bss_8[0] = 2; - lbl_1_bss_0 = 1.0f; - object->func = fn_1_10BC; - } - fn_1_1A10(lbl_1_bss_0); - break; - } + ModelData *temp_r31; + s32 temp_r30; + Vec sp8; + switch (lbl_1_bss_8[0]) { + case 0: + if (--lbl_1_bss_8[1] == 0) { + Hu3DModelAttrSet(object->model[0], 1); + lbl_1_bss_8[0] = 1; + } + for (temp_r30 = 0; temp_r30 < 2u; temp_r30++) { + if (lbl_1_bss_4 == lbl_1_data_A4[temp_r30]) { + temp_r31 = &Hu3DData[object->model[0]]; + sp8.x = temp_r31->pos.x + (lbl_1_data_AC[temp_r30] * cosd(temp_r31->rot.y)); + sp8.y = -15.000001f; + sp8.z = temp_r31->pos.z - (lbl_1_data_AC[temp_r30] * sind(temp_r31->rot.y)); + if (temp_r30 == 0) { + fn_1_47EC(&sp8); + HuAudFXPlay(1731); + } + else { + fn_1_43AC(&sp8); + HuAudFXPlay(1739); + } + } + } + lbl_1_bss_4++; + break; + + case 1: + lbl_1_bss_0 += 0.02f; + if (lbl_1_bss_0 >= 1.0f) { + lbl_1_bss_8[0] = 2; + lbl_1_bss_0 = 1.0f; + object->func = fn_1_10BC; + } + fn_1_1A10(lbl_1_bss_0); + break; + } } void fn_1_1788(void); void fn_1_10BC(omObjData *object) { - fn_1_1788(); - fn_1_1788(); - object->func = NULL; + fn_1_1788(); + fn_1_1788(); + object->func = NULL; } s32 fn_1_10F4(void) { - return lbl_1_bss_8[0]; + return lbl_1_bss_8[0]; } void fn_1_1150(omObjData *object); -u16 lbl_1_data_B4[6] = { - 0, 1, 2, 3, 4, 4 -}; +u16 lbl_1_data_B4[6] = { 0, 1, 2, 3, 4, 4 }; -float lbl_1_data_C0[6][2] = { - 0,0, - 0,0, - -33,-2, - -9,-2, - 11,-2, - 31,-2 -}; +float lbl_1_data_C0[6][2] = { 0, 0, 0, 0, -33, -2, -9, -2, 11, -2, 31, -2 }; -float lbl_1_data_F0[2][2] = { - 104, 56, - 472, 56 -}; +float lbl_1_data_F0[2][2] = { 104, 56, 472, 56 }; typedef struct work_1150 { - s32 unk0; - s16 unk4; - s16 unk6[6]; - u16 unk12; + s32 unk0; + s16 unk4; + s16 unk6[6]; + u16 unk12; } Work1150; void fn_1_1104(Process *objman) { - lbl_1_bss_3C4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_1150); + lbl_1_bss_3C4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_1150); } void fn_1_1470(omObjData *object); void fn_1_1150(omObjData *object) { - Work1150 *temp_r31; - u32 temp_r30; - s32 temp_r29; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2*sizeof(Work1150), MEMORY_DEFAULT_NUM); - object->data = temp_r31; - memset(object->data, 0, 2*sizeof(Work1150)); - for(temp_r29=0; temp_r29<2; temp_r31++, temp_r29++) { - for(temp_r30=0; temp_r30<6; temp_r30++) { - switch(lbl_1_data_B4[temp_r30]) { - case 0: - temp_r31->unk6[temp_r30] = espEntry(0x61001D, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - espColorSet(temp_r31->unk6[temp_r30], 0, 0, 0); - espTPLvlSet(temp_r31->unk6[temp_r30], 0.5); - break; - - case 1: - temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? 0x61001B : 0x61001C, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - break; - - case 2: - temp_r31->unk6[temp_r30] = espEntry(0x41000C, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - espScaleSet(temp_r31->unk6[temp_r30], 0.75, 0.75); - break; - - case 3: - temp_r31->unk6[temp_r30] = espEntry(0x41000D, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - break; - - case 4: - temp_r31->unk6[temp_r30] = espEntry(0x610033, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 255); - break; - } - espDispOff(temp_r31->unk6[temp_r30]); - espDrawNoSet(temp_r31->unk6[temp_r30], 0); - espAttrSet(temp_r31->unk6[temp_r30], 1); - espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0]+lbl_1_data_C0[temp_r30][0], lbl_1_data_F0[temp_r29][1]+lbl_1_data_C0[temp_r30][1]); - } - temp_r31->unk0 = -1; - } - HuDataDirClose(0x610000); - object->func = fn_1_1470; + Work1150 *temp_r31; + u32 temp_r30; + s32 temp_r29; + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(Work1150), MEMORY_DEFAULT_NUM); + object->data = temp_r31; + memset(object->data, 0, 2 * sizeof(Work1150)); + for (temp_r29 = 0; temp_r29 < 2; temp_r31++, temp_r29++) { + for (temp_r30 = 0; temp_r30 < 6; temp_r30++) { + switch (lbl_1_data_B4[temp_r30]) { + case 0: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + espColorSet(temp_r31->unk6[temp_r30], 0, 0, 0); + espTPLvlSet(temp_r31->unk6[temp_r30], 0.5); + break; + + case 1: + temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B) : DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + break; + + case 2: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M434, 0x0C), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + espScaleSet(temp_r31->unk6[temp_r30], 0.75, 0.75); + break; + + case 3: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M434, 0x0D), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + break; + + case 4: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 255); + break; + } + espDispOff(temp_r31->unk6[temp_r30]); + espDrawNoSet(temp_r31->unk6[temp_r30], 0); + espAttrSet(temp_r31->unk6[temp_r30], 1); + espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0] + lbl_1_data_C0[temp_r30][0], + lbl_1_data_F0[temp_r29][1] + lbl_1_data_C0[temp_r30][1]); + } + temp_r31->unk0 = -1; + } + HuDataDirClose(DATADIR_MGCONST); + object->func = fn_1_1470; } void fn_1_1470(omObjData *object) { - float temp_f31; - Work1150 *temp_r31; - s32 temp_r30; - s32 temp_r29; - temp_r31 = object->data; - for(temp_r29=0; temp_r29<2; temp_r29++, temp_r31++) { - if(temp_r31->unk0 >= 0) { - if(temp_r31->unk0 == 0) { - for(temp_r30=0; temp_r30<6; temp_r30++) { - espDispOn(temp_r31->unk6[temp_r30]); - } - temp_r31->unk0++; - } - if(temp_r31->unk12) { - temp_r31->unk12--; - temp_f31 = (0.5*sind((180.0f*temp_r31->unk12)/16.0f))+1.0; - espScaleSet(temp_r31->unk6[4], temp_f31, temp_f31); - espScaleSet(temp_r31->unk6[5], temp_f31, temp_f31); - } - espBankSet(temp_r31->unk6[4], temp_r31->unk4/10); - espBankSet(temp_r31->unk6[5], temp_r31->unk4%10); - } - } + float temp_f31; + Work1150 *temp_r31; + s32 temp_r30; + s32 temp_r29; + temp_r31 = object->data; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, temp_r31++) { + if (temp_r31->unk0 >= 0) { + if (temp_r31->unk0 == 0) { + for (temp_r30 = 0; temp_r30 < 6; temp_r30++) { + espDispOn(temp_r31->unk6[temp_r30]); + } + temp_r31->unk0++; + } + if (temp_r31->unk12) { + temp_r31->unk12--; + temp_f31 = (0.5 * sind((180.0f * temp_r31->unk12) / 16.0f)) + 1.0; + espScaleSet(temp_r31->unk6[4], temp_f31, temp_f31); + espScaleSet(temp_r31->unk6[5], temp_f31, temp_f31); + } + espBankSet(temp_r31->unk6[4], temp_r31->unk4 / 10); + espBankSet(temp_r31->unk6[5], temp_r31->unk4 % 10); + } + } } void fn_1_1638(s32 arg0) { - Work1150 *temp_r31; - s32 temp_r30; - temp_r31 = lbl_1_bss_3C4->data; - for(temp_r30=0; temp_r30<2; temp_r30++, temp_r31++) { - temp_r31->unk0 = 0; - } + Work1150 *temp_r31; + s32 temp_r30; + temp_r31 = lbl_1_bss_3C4->data; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++, temp_r31++) { + temp_r31->unk0 = 0; + } } void fn_1_1684(void) { - HuMemDirectFree(lbl_1_bss_3C4->data); + HuMemDirectFree(lbl_1_bss_3C4->data); } void fn_1_16B4(void) { - lbl_1_bss_39C = 0; - lbl_1_bss_18 = 0; + lbl_1_bss_39C = 0; + lbl_1_bss_18 = 0; } void fn_1_16D8(void) { - CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; - temp_r31->zoom = CZoom; - temp_r31->pos.x = Center.x; - temp_r31->pos.y = Center.y; - temp_r31->pos.z = Center.z; - temp_r31->rot.x = CRot.x; - temp_r31->rot.y = CRot.y; - temp_r31->rot.z = CRot.z; + CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; + temp_r31->zoom = CZoom; + temp_r31->pos.x = Center.x; + temp_r31->pos.y = Center.y; + temp_r31->pos.z = Center.z; + temp_r31->rot.x = CRot.x; + temp_r31->rot.y = CRot.y; + temp_r31->rot.z = CRot.z; } void fn_1_1788(void) { - CameraView *temp_r31 = &lbl_1_bss_1C[--lbl_1_bss_39C]; - CZoom = temp_r31->zoom; - Center.x = temp_r31->pos.x; - Center.y = temp_r31->pos.y; - Center.z = temp_r31->pos.z; - CRot.x = temp_r31->rot.x; - CRot.y = temp_r31->rot.y; - CRot.z = temp_r31->rot.z; + CameraView *temp_r31 = &lbl_1_bss_1C[--lbl_1_bss_39C]; + CZoom = temp_r31->zoom; + Center.x = temp_r31->pos.x; + Center.y = temp_r31->pos.y; + Center.z = temp_r31->pos.z; + CRot.x = temp_r31->rot.x; + CRot.y = temp_r31->rot.y; + CRot.z = temp_r31->rot.z; } void fn_1_1838(CameraView *arg0) { - CameraView *temp_r30; - CameraView sp8; - sp8 = lbl_1_bss_1C[lbl_1_bss_39C++]; - temp_r30 = &sp8; - memcpy(temp_r30, arg0, sizeof(CameraView)); - CZoom = arg0->zoom; - Center.x = arg0->pos.x; - Center.y = arg0->pos.y; - Center.z = arg0->pos.z; - CRot.x = arg0->rot.x; - CRot.y = arg0->rot.y; - CRot.z = arg0->rot.z; + CameraView *temp_r30; + CameraView sp8; + sp8 = lbl_1_bss_1C[lbl_1_bss_39C++]; + temp_r30 = &sp8; + memcpy(temp_r30, arg0, sizeof(CameraView)); + CZoom = arg0->zoom; + Center.x = arg0->pos.x; + Center.y = arg0->pos.y; + Center.z = arg0->pos.z; + CRot.x = arg0->rot.x; + CRot.y = arg0->rot.y; + CRot.z = arg0->rot.z; } void fn_1_1950(float arg0, float arg1, float arg2, float arg3, float arg4, float arg5, float arg6) { - CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; - temp_r31->zoom = CZoom = arg0; - temp_r31->pos.x = Center.x = arg1; - temp_r31->pos.y = Center.y = arg2; - temp_r31->pos.z = Center.z = arg3; - temp_r31->rot.x = CRot.x = arg4; - temp_r31->rot.y = CRot.y = arg5; - temp_r31->rot.z = CRot.z = arg6; + CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; + temp_r31->zoom = CZoom = arg0; + temp_r31->pos.x = Center.x = arg1; + temp_r31->pos.y = Center.y = arg2; + temp_r31->pos.z = Center.z = arg3; + temp_r31->rot.x = CRot.x = arg4; + temp_r31->rot.y = CRot.y = arg5; + temp_r31->rot.z = CRot.z = arg6; } void fn_1_1A00(s32 arg0) { - lbl_1_bss_18 = arg0; + lbl_1_bss_18 = arg0; } -#define LERP_PARAM(view1, view2, field, weight) ((view1)->field+) +#define LERP_PARAM(view1, view2, field, weight) ((view1)->field +) void fn_1_1A10(float arg0) { - float weight; - CameraView *view1 = &lbl_1_bss_1C[lbl_1_bss_39C-1]; - CameraView *view2 = view1-1; - if(lbl_1_bss_39C < 2) { - return; - } - switch(lbl_1_bss_18) { - case 0: - weight = arg0; - break; - - case 1: - weight = sind(90.0f*arg0); - break; - - case 2: - weight = sind(90.0f*arg0); - weight *= weight; - break; - } - - CZoom = view1->zoom+(weight*(view2->zoom-view1->zoom)); - Center.x = view1->pos.x+(weight*(view2->pos.x-view1->pos.x)); - Center.y = view1->pos.y+(weight*(view2->pos.y-view1->pos.y)); - Center.z = view1->pos.z+(weight*(view2->pos.z-view1->pos.z)); - CRot.x = view1->rot.x+(weight*(view2->rot.x-view1->rot.x)); - CRot.y = view1->rot.y+(weight*(view2->rot.y-view1->rot.y)); - CRot.z = view1->rot.z+(weight*(view2->rot.z-view1->rot.z)); + float weight; + CameraView *view1 = &lbl_1_bss_1C[lbl_1_bss_39C - 1]; + CameraView *view2 = view1 - 1; + if (lbl_1_bss_39C < 2) { + return; + } + switch (lbl_1_bss_18) { + case 0: + weight = arg0; + break; + + case 1: + weight = sind(90.0f * arg0); + break; + + case 2: + weight = sind(90.0f * arg0); + weight *= weight; + break; + } + + CZoom = view1->zoom + (weight * (view2->zoom - view1->zoom)); + Center.x = view1->pos.x + (weight * (view2->pos.x - view1->pos.x)); + Center.y = view1->pos.y + (weight * (view2->pos.y - view1->pos.y)); + Center.z = view1->pos.z + (weight * (view2->pos.z - view1->pos.z)); + CRot.x = view1->rot.x + (weight * (view2->rot.x - view1->rot.x)); + CRot.y = view1->rot.y + (weight * (view2->rot.y - view1->rot.y)); + CRot.z = view1->rot.z + (weight * (view2->rot.z - view1->rot.z)); } void fn_1_1C44(s32 arg0, s32 arg1) { - Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; - temp_r31->unk4 += arg1; - temp_r31->unk12 = 16; + Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; + temp_r31->unk4 += arg1; + temp_r31->unk12 = 16; } s32 fn_1_1C88(s32 arg0) { - Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; - return temp_r31->unk4; + Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; + return temp_r31->unk4; } s32 fn_1_1CB8(void) { - s32 temp_r31 = fn_1_1C88(0); - s32 temp_r30 = fn_1_1C88(1); - if(temp_r31 == temp_r30) { - return 0; - } - if(temp_r31 > temp_r30) { - return -1; - } else { - return 1; - } + s32 temp_r31 = fn_1_1C88(0); + s32 temp_r30 = fn_1_1C88(1); + if (temp_r31 == temp_r30) { + return 0; + } + if (temp_r31 > temp_r30) { + return -1; + } + else { + return 1; + } } s16 fn_1_1D44(void) { - return lbl_1_bss_3C2; + return lbl_1_bss_3C2; } s32 fn_1_1D54(void) { - return lbl_1_bss_10[0]; + return lbl_1_bss_10[0]; } void fn_1_1D64(s32 arg0) { - lbl_1_bss_10[0] = arg0; + lbl_1_bss_10[0] = arg0; } s32 fn_1_1D74(s32 arg0) { - return lbl_1_bss_3A0[arg0]; + return lbl_1_bss_3A0[arg0]; } s32 fn_1_1D8C(void) { - return lbl_1_bss_3AA; + return lbl_1_bss_3AA; } void fn_1_1D9C(void) { - lbl_1_bss_3A8 = 1; + lbl_1_bss_3A8 = 1; } diff --git a/src/REL/m434Dll/map.c b/src/REL/m434Dll/map.c index ff42bdf1..b34cb98b 100644 --- a/src/REL/m434Dll/map.c +++ b/src/REL/m434Dll/map.c @@ -1,57 +1,56 @@ +#include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" -#include "game/hsfmotion.h" #include "game/audio.h" -#include "game/wipe.h" -#include "game/sprite.h" #include "game/frand.h" +#include "game/hsfmotion.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" #include "REL/m434Dll.h" -#include "math.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" typedef struct bss_2468_data { - Vec unk0; - u16 unkC; + Vec unk0; + u16 unkC; } Bss2468Data; typedef struct bss_450_data { - void *unk0; - u32 unk4; + void *unk0; + u32 unk4; } Bss450Data; typedef struct bss_3F0_data { - void *unk0; - u16 unk4; - u16 unk6; - u16 unk8; - u16 unkA; - u32 unkC; - s32 unk10; + void *unk0; + u16 unk4; + u16 unk6; + u16 unk8; + u16 unkA; + u32 unkC; + s32 unk10; } Bss3F0Data; typedef struct struct_data100 { - u16 unk0; - u16 unk2; - u16 unk4; - u16 unk6; - u16 unk8; + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u16 unk8; } StructData100; StructData100 lbl_1_data_100[5] = { - { 200, 200, 200, 200, 0 }, - { 320, 240, 160, 120, 1 }, - { 640, 480, 320, 240, 1 }, - { 640, 480, 640, 480, 0 }, - { 0, 0, 0, 0, 0 }, + { 200, 200, 200, 200, 0 }, + { 320, 240, 160, 120, 1 }, + { 640, 480, 320, 240, 1 }, + { 640, 480, 640, 480, 0 }, + { 0, 0, 0, 0, 0 }, }; - omObjData *lbl_1_bss_5868; Vec lbl_1_bss_2868[1024]; Bss2468Data lbl_1_bss_2468[64]; @@ -70,17 +69,17 @@ void fn_1_1E64(omObjData *object); void fn_1_1DB0(Process *objman) { - "\0"; //Force lbl_1_data_132 to 0 - lbl_1_bss_5868 = omAddObjEx(objman, 10, 16, 0, -1, fn_1_1E64); - CenterM[1].y = -CenterM[2].y + -15.000001f; - CRotM[1].x = -CRotM[2].x; + "\0"; // Force lbl_1_data_132 to 0 + lbl_1_bss_5868 = omAddObjEx(objman, 10, 16, 0, -1, fn_1_1E64); + CenterM[1].y = -CenterM[2].y + -15.000001f; + CRotM[1].x = -CRotM[2].x; } void fn_1_28F0(void); void fn_1_1E44(void) { - fn_1_28F0(); + fn_1_28F0(); } void fn_1_26A4(omObjData *object); @@ -98,384 +97,376 @@ void fn_1_443C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_1E64(omObjData *object) { - s32 temp_r30; - Vec *temp_r29; - HsfVector2f *temp_r28; - s32 temp_r27; - AnimData *temp_r26; - - object->model[9] = Hu3DHookFuncCreate(fn_1_3CC8); - Hu3DModelLayerSet(object->model[9], 1); - Hu3DModelCameraSet(object->model[9], 1); - object->model[1] = Hu3DModelCreateFile(0x410002); - Hu3DModelLayerSet(object->model[1], 2); - Hu3DModelCameraSet(object->model[1], 2); - object->model[0] = Hu3DModelCreateFile(0x410000); - Hu3DModelLayerSet(object->model[0], 2); - Hu3DModelCameraSet(object->model[0], 8); - object->model[8] = Hu3DModelCreateFile(0x410001); - Hu3DModelLayerSet(object->model[8], 2); - Hu3DModelCameraSet(object->model[8], 4); - object->model[3] = Hu3DModelCreateFile(0x410008); - Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000001); - Hu3DModelLayerSet(object->model[3], 2); - Hu3DModelCameraSet(object->model[3], 8); - object->model[4] = Hu3DModelCreateFile(0x410009); - Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); - Hu3DModelLayerSet(object->model[4], 2); - Hu3DModelCameraSet(object->model[4], 8); - object->model[2] = Hu3DHookFuncCreate(fn_1_2978); - Hu3DModelLayerSet(object->model[2], 3); - Hu3DModelCameraSet(object->model[2], 8); - temp_r29 = lbl_1_bss_2868; - for(temp_r30=0; temp_r30<32; temp_r30++) { - for(temp_r27=0; temp_r27<32; temp_r29++, temp_r27++) { - temp_r29->x = -700.0f+((1400.0f*temp_r27)/31.0f); - temp_r29->y = -15.000001f; - temp_r29->z = -600.0f+((1200.0f*temp_r30)/31.0f); - if(temp_r30 & 0x1) { - temp_r29->x += 700.0f/31.0f; - } - } - } - DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); - temp_r28 = lbl_1_bss_464; - for(temp_r30=0; temp_r30<1024; temp_r30++, temp_r28++) { - temp_r28->x = 360.0f*((1.0f/256.0f)*frand8()); - temp_r28->y = 2.0f*((1.0f/256.0f)*frand8())+0.5f; - } - memset(lbl_1_bss_2468, 0, sizeof(lbl_1_bss_2468)); - lbl_1_bss_2464 = 0; - lbl_1_bss_450.unk4 = 16384; - lbl_1_bss_450.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_450.unk4, MEMORY_DEFAULT_NUM); - DCInvalidateRange(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); - fn_1_3004(); - lbl_1_bss_440.unk4 = 16384; - lbl_1_bss_440.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_440.unk4, MEMORY_DEFAULT_NUM); - fn_1_3128(); - lbl_1_bss_45C = HuSprAnimReadFile(0x3D0019); - lbl_1_bss_458 = HuSprAnimReadFile(0x41000A); - HuDataDirClose(0x3D0000); - for(temp_r30=0; temp_r30<4; temp_r30++) { - lbl_1_bss_3F0[temp_r30].unk4 = lbl_1_data_100[temp_r30].unk0; - lbl_1_bss_3F0[temp_r30].unk6 = lbl_1_data_100[temp_r30].unk2; - lbl_1_bss_3F0[temp_r30].unk8 = lbl_1_data_100[temp_r30].unk4; - lbl_1_bss_3F0[temp_r30].unkA = lbl_1_data_100[temp_r30].unk6; - lbl_1_bss_3F0[temp_r30].unk10 = lbl_1_data_100[temp_r30].unk8; - lbl_1_bss_3F0[temp_r30].unkC = GXGetTexBufferSize(lbl_1_bss_3F0[temp_r30].unk8, lbl_1_bss_3F0[temp_r30].unkA, GX_TF_RGB565, GX_FALSE, 0); - lbl_1_bss_3F0[temp_r30].unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_3F0[temp_r30].unkC, MEMORY_DEFAULT_NUM); - memset(lbl_1_bss_3F0[temp_r30].unk0, 0, lbl_1_bss_3F0[temp_r30].unkC); - } - object->model[5] = Hu3DHookFuncCreate(fn_1_33A4); - Hu3DModelLayerSet(object->model[5], 3); - Hu3DModelCameraSet(object->model[5], 2); - object->model[6] = Hu3DHookFuncCreate(fn_1_349C); - Hu3DModelLayerSet(object->model[6], 3); - Hu3DModelCameraSet(object->model[6], 4); - object->model[7] = Hu3DHookFuncCreate(fn_1_3594); - Hu3DModelLayerSet(object->model[7], 5); - Hu3DModelCameraSet(object->model[7], 4); - temp_r26 = HuSprAnimReadFile(0x41000B); - object->model[10] = Hu3DParticleCreate(temp_r26, 100); - Hu3DParticleHookSet(object->model[10], fn_1_443C); - Hu3DModelAttrSet(object->model[10], 1); - Hu3DModelLayerSet(object->model[10], 4); - Hu3DModelCameraSet(object->model[10], 8); - object->func = fn_1_26A4; + s32 temp_r30; + Vec *temp_r29; + HsfVector2f *temp_r28; + s32 temp_r27; + AnimData *temp_r26; + + object->model[9] = Hu3DHookFuncCreate(fn_1_3CC8); + Hu3DModelLayerSet(object->model[9], 1); + Hu3DModelCameraSet(object->model[9], 1); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x02)); + Hu3DModelLayerSet(object->model[1], 2); + Hu3DModelCameraSet(object->model[1], 2); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x00)); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DModelCameraSet(object->model[0], 8); + object->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x01)); + Hu3DModelLayerSet(object->model[8], 2); + Hu3DModelCameraSet(object->model[8], 4); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x08)); + Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000001); + Hu3DModelLayerSet(object->model[3], 2); + Hu3DModelCameraSet(object->model[3], 8); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x09)); + Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); + Hu3DModelLayerSet(object->model[4], 2); + Hu3DModelCameraSet(object->model[4], 8); + object->model[2] = Hu3DHookFuncCreate(fn_1_2978); + Hu3DModelLayerSet(object->model[2], 3); + Hu3DModelCameraSet(object->model[2], 8); + temp_r29 = lbl_1_bss_2868; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++) { + for (temp_r27 = 0; temp_r27 < 32; temp_r29++, temp_r27++) { + temp_r29->x = -700.0f + ((1400.0f * temp_r27) / 31.0f); + temp_r29->y = -15.000001f; + temp_r29->z = -600.0f + ((1200.0f * temp_r30) / 31.0f); + if (temp_r30 & 0x1) { + temp_r29->x += 700.0f / 31.0f; + } + } + } + DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); + temp_r28 = lbl_1_bss_464; + for (temp_r30 = 0; temp_r30 < 1024; temp_r30++, temp_r28++) { + temp_r28->x = 360.0f * ((1.0f / 256.0f) * frand8()); + temp_r28->y = 2.0f * ((1.0f / 256.0f) * frand8()) + 0.5f; + } + memset(lbl_1_bss_2468, 0, sizeof(lbl_1_bss_2468)); + lbl_1_bss_2464 = 0; + lbl_1_bss_450.unk4 = 16384; + lbl_1_bss_450.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_450.unk4, MEMORY_DEFAULT_NUM); + DCInvalidateRange(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + fn_1_3004(); + lbl_1_bss_440.unk4 = 16384; + lbl_1_bss_440.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_440.unk4, MEMORY_DEFAULT_NUM); + fn_1_3128(); + lbl_1_bss_45C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x19)); + lbl_1_bss_458 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M434, 0x0A)); + HuDataDirClose(DATADIR_M430); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + lbl_1_bss_3F0[temp_r30].unk4 = lbl_1_data_100[temp_r30].unk0; + lbl_1_bss_3F0[temp_r30].unk6 = lbl_1_data_100[temp_r30].unk2; + lbl_1_bss_3F0[temp_r30].unk8 = lbl_1_data_100[temp_r30].unk4; + lbl_1_bss_3F0[temp_r30].unkA = lbl_1_data_100[temp_r30].unk6; + lbl_1_bss_3F0[temp_r30].unk10 = lbl_1_data_100[temp_r30].unk8; + lbl_1_bss_3F0[temp_r30].unkC = GXGetTexBufferSize(lbl_1_bss_3F0[temp_r30].unk8, lbl_1_bss_3F0[temp_r30].unkA, GX_TF_RGB565, GX_FALSE, 0); + lbl_1_bss_3F0[temp_r30].unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_3F0[temp_r30].unkC, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_3F0[temp_r30].unk0, 0, lbl_1_bss_3F0[temp_r30].unkC); + } + object->model[5] = Hu3DHookFuncCreate(fn_1_33A4); + Hu3DModelLayerSet(object->model[5], 3); + Hu3DModelCameraSet(object->model[5], 2); + object->model[6] = Hu3DHookFuncCreate(fn_1_349C); + Hu3DModelLayerSet(object->model[6], 3); + Hu3DModelCameraSet(object->model[6], 4); + object->model[7] = Hu3DHookFuncCreate(fn_1_3594); + Hu3DModelLayerSet(object->model[7], 5); + Hu3DModelCameraSet(object->model[7], 4); + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M434, 0x0B)); + object->model[10] = Hu3DParticleCreate(temp_r26, 100); + Hu3DParticleHookSet(object->model[10], fn_1_443C); + Hu3DModelAttrSet(object->model[10], 1); + Hu3DModelLayerSet(object->model[10], 4); + Hu3DModelCameraSet(object->model[10], 8); + object->func = fn_1_26A4; } HsfAttribute *fn_1_2608(s16 model, char *name) { - HsfData *temp_r31; - HsfAttribute *temp_r30; - s32 temp_r29; - ModelData *temp_r28; - HsfBitmap *temp_r27; - temp_r28 = &Hu3DData[model]; - temp_r31 = temp_r28->hsfData; - temp_r30 = temp_r31->attribute; - for(temp_r29=0; temp_r29attributeCnt; temp_r29++, temp_r30++) { - temp_r27 = temp_r30->bitmap; - if(strcmp(name, temp_r27->name) == 0) { - break; - } - } - if(temp_r29 >= temp_r31->attributeCnt) { - return NULL; - } - return temp_r30; + HsfData *temp_r31; + HsfAttribute *temp_r30; + s32 temp_r29; + ModelData *temp_r28; + HsfBitmap *temp_r27; + temp_r28 = &Hu3DData[model]; + temp_r31 = temp_r28->hsfData; + temp_r30 = temp_r31->attribute; + for (temp_r29 = 0; temp_r29 < temp_r31->attributeCnt; temp_r29++, temp_r30++) { + temp_r27 = temp_r30->bitmap; + if (strcmp(name, temp_r27->name) == 0) { + break; + } + } + if (temp_r29 >= temp_r31->attributeCnt) { + return NULL; + } + return temp_r30; } void fn_1_26A4(omObjData *object) { - s32 temp_r31; - Bss2468Data *temp_r30; - HsfVector2f *temp_r29; - HsfAttribute *temp_r27; - Vec *temp_r25; - s32 temp_r23; - s32 temp_r22; - Bss2468Data *sp8[64]; - - temp_r27 = fn_1_2608(object->model[1], "sora"); - if(temp_r27 != NULL) { - temp_r27->unk30 += 0.0001f; - temp_r27->unk34 -= 0.00005f; - } - temp_r30 = lbl_1_bss_2468; - temp_r22 = 0; - for(temp_r31=0; temp_r31<64; temp_r31++, temp_r30++) { - if(temp_r30->unkC) { - sp8[temp_r22++] = temp_r30; - } - } - temp_r25 = lbl_1_bss_2868; - temp_r29 = lbl_1_bss_464; - for(temp_r31=0; temp_r31<32; temp_r31++) { - for(temp_r23=0; temp_r23<32; temp_r23++, temp_r25++, temp_r29++) { - temp_r25->y = -15.000001f+(2.0f*sind(temp_r29->x)); - temp_r29->x += temp_r29->y; - } - } - DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); - for(temp_r31=0; temp_r31unkC--; - } - CenterM[1].y = -15.000001f+(-CenterM[2].y); - CRotM[1].x = -CRotM[2].x; + s32 temp_r31; + Bss2468Data *temp_r30; + HsfVector2f *temp_r29; + HsfAttribute *temp_r27; + Vec *temp_r25; + s32 temp_r23; + s32 temp_r22; + Bss2468Data *sp8[64]; + + temp_r27 = fn_1_2608(object->model[1], "sora"); + if (temp_r27 != NULL) { + temp_r27->unk30 += 0.0001f; + temp_r27->unk34 -= 0.00005f; + } + temp_r30 = lbl_1_bss_2468; + temp_r22 = 0; + for (temp_r31 = 0; temp_r31 < 64; temp_r31++, temp_r30++) { + if (temp_r30->unkC) { + sp8[temp_r22++] = temp_r30; + } + } + temp_r25 = lbl_1_bss_2868; + temp_r29 = lbl_1_bss_464; + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + for (temp_r23 = 0; temp_r23 < 32; temp_r23++, temp_r25++, temp_r29++) { + temp_r25->y = -15.000001f + (2.0f * sind(temp_r29->x)); + temp_r29->x += temp_r29->y; + } + } + DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); + for (temp_r31 = 0; temp_r31 < temp_r22; temp_r31++) { + temp_r30 = sp8[temp_r31]; + temp_r30->unkC--; + } + CenterM[1].y = -15.000001f + (-CenterM[2].y); + CRotM[1].x = -CRotM[2].x; } void fn_1_28F0(void) { - s32 temp_r31; - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(lbl_1_bss_3F0[temp_r31].unk0 != NULL) { - HuMemDirectFree(lbl_1_bss_3F0[temp_r31].unk0); - lbl_1_bss_3F0[temp_r31].unk0 = NULL; - } - } + s32 temp_r31; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (lbl_1_bss_3F0[temp_r31].unk0 != NULL) { + HuMemDirectFree(lbl_1_bss_3F0[temp_r31].unk0); + lbl_1_bss_3F0[temp_r31].unk0 = NULL; + } + } } GXColor lbl_1_data_139 = { 255, 255, 255, 64 }; -float lbl_1_data_140[2][3] = { - 0.012f, 0, 0, - 0, 0.012f, 0 -}; +float lbl_1_data_140[2][3] = { 0.012f, 0, 0, 0, 0.012f, 0 }; -float lbl_1_data_158[2][3] = { - 0, 0, 0.5f, - 0, 0.5f, 0 -}; +float lbl_1_data_158[2][3] = { 0, 0, 0.5f, 0, 0.5f, 0 }; void fn_1_2978(ModelData *model, Mtx mtx) { - float temp_f31; - - Mtx sp1AC; - Mtx sp17C; - Mtx sp14C; - Mtx sp11C; - Mtx spEC; - Mtx spBC; - Mtx sp8C; - Mtx sp5C; - Mtx sp2C; - GXTexObj spC; - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - GXSetNumTexGens(4); - GXInitTexObj(&spC, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&spC, GX_TEXMAP0); - GXInitTexObj(&spC, lbl_1_bss_3F0[1].unk0, lbl_1_bss_3F0[1].unk8, lbl_1_bss_3F0[1].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&spC, GX_TEXMAP1); - MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - MTXInverse(Hu3DCameraMtx, spBC); - MTXConcat(spBC, mtx, spBC); - MTXConcat(sp1AC, Hu3DCameraMtx, sp8C); - MTXConcat(sp8C, spBC, spBC); - GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); - MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, 0.5f, 0.5f, 0.5f); - MTXInverse(Hu3DCameraMtx, sp5C); - MTXConcat(sp5C, mtx, sp5C); - MTXConcat(sp1AC, Hu3DCameraMtx, sp2C); - MTXConcat(sp2C, sp5C, sp5C); - GXLoadTexMtxImm(sp5C, GX_TEXMTX1, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1); - GXSetNumTevStages(2); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A0, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevColor(GX_TEVSTAGE1, lbl_1_data_139); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - HuSprTexLoad(lbl_1_bss_45C, 0, GX_TEXMAP2, GX_REPEAT, GX_REPEAT, GX_LINEAR); - GXInitTexObj(&spC, lbl_1_bss_3F0[0].unk0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&spC, GX_TEXMAP3); - GXSetNumIndStages(2); - MTXRotDeg(sp11C, 'X', -90.0f); - temp_f31 = 1.0f/600.0f; - MTXScale(sp14C, temp_f31, temp_f31, temp_f31); - MTXConcat(sp14C, sp11C, sp17C); - sp17C[0][1] = -0.03f; - GXLoadTexMtxImm(sp17C, GX_TEXMTX2, GX_MTX2x4); - GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX2); - GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); - GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - GXSetIndTexMtx(GX_ITM_0, lbl_1_data_140, 0); - GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - MTXRotDeg(sp11C, 'X', -90.0f); - temp_f31 = 1.0f/1200.0f; - MTXScale(sp14C, temp_f31, temp_f31, temp_f31); - MTXConcat(sp14C, sp11C, sp17C); - MTXTrans(spEC, 0.5f, 0.5f, 0.0f); - MTXConcat(spEC, sp17C, sp17C); - GXLoadTexMtxImm(sp17C, GX_TEXMTX3, GX_MTX2x4); - GXSetTexCoordGen(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX3); - GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); - GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); - GXSetIndTexMtx(GX_ITM_1, lbl_1_data_158, 0); - GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, lbl_1_bss_2868, sizeof(Vec)); - GXSetCullMode(GX_CULL_BACK); - GXCallDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); - GXSetNumIndStages(0); - GXSetTevDirect(GX_TEVSTAGE0); - GXSetTevDirect(GX_TEVSTAGE1); + float temp_f31; + + Mtx sp1AC; + Mtx sp17C; + Mtx sp14C; + Mtx sp11C; + Mtx spEC; + Mtx spBC; + Mtx sp8C; + Mtx sp5C; + Mtx sp2C; + GXTexObj spC; + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetNumTexGens(4); + GXInitTexObj(&spC, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&spC, GX_TEXMAP0); + GXInitTexObj(&spC, lbl_1_bss_3F0[1].unk0, lbl_1_bss_3F0[1].unk8, lbl_1_bss_3F0[1].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&spC, GX_TEXMAP1); + MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, spBC); + MTXConcat(spBC, mtx, spBC); + MTXConcat(sp1AC, Hu3DCameraMtx, sp8C); + MTXConcat(sp8C, spBC, spBC); + GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, 0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, sp5C); + MTXConcat(sp5C, mtx, sp5C); + MTXConcat(sp1AC, Hu3DCameraMtx, sp2C); + MTXConcat(sp2C, sp5C, sp5C); + GXLoadTexMtxImm(sp5C, GX_TEXMTX1, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A0, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevColor(GX_TEVSTAGE1, lbl_1_data_139); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_45C, 0, GX_TEXMAP2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXInitTexObj(&spC, lbl_1_bss_3F0[0].unk0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&spC, GX_TEXMAP3); + GXSetNumIndStages(2); + MTXRotDeg(sp11C, 'X', -90.0f); + temp_f31 = 1.0f / 600.0f; + MTXScale(sp14C, temp_f31, temp_f31, temp_f31); + MTXConcat(sp14C, sp11C, sp17C); + sp17C[0][1] = -0.03f; + GXLoadTexMtxImm(sp17C, GX_TEXMTX2, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX2); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetIndTexMtx(GX_ITM_0, lbl_1_data_140, 0); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); + MTXRotDeg(sp11C, 'X', -90.0f); + temp_f31 = 1.0f / 1200.0f; + MTXScale(sp14C, temp_f31, temp_f31, temp_f31); + MTXConcat(sp14C, sp11C, sp17C); + MTXTrans(spEC, 0.5f, 0.5f, 0.0f); + MTXConcat(spEC, sp17C, sp17C); + GXLoadTexMtxImm(sp17C, GX_TEXMTX3, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX3); + GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); + GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); + GXSetIndTexMtx(GX_ITM_1, lbl_1_data_158, 0); + GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, lbl_1_bss_2868, sizeof(Vec)); + GXSetCullMode(GX_CULL_BACK); + GXCallDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); } void fn_1_3004(void) { - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - GXBeginDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); - for(temp_r30=0; temp_r30<31; temp_r30++) { - temp_r29 = temp_r30*32; - GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 64); - if(temp_r30 & 0x1) { - for(temp_r31=0; temp_r31<32; temp_r31++) { - GXPosition1x16(temp_r29+temp_r31+32); - GXPosition1x16(temp_r29+temp_r31); - } - } else { - for(temp_r31=31; temp_r31>=0; temp_r31--) { - GXPosition1x16(temp_r29+temp_r31); - GXPosition1x16(temp_r29+temp_r31+32); - - } - } - } - lbl_1_bss_450.unk4 = GXEndDisplayList(); - DCFlushRangeNoSync(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + GXBeginDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + for (temp_r30 = 0; temp_r30 < 31; temp_r30++) { + temp_r29 = temp_r30 * 32; + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 64); + if (temp_r30 & 0x1) { + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + GXPosition1x16(temp_r29 + temp_r31 + 32); + GXPosition1x16(temp_r29 + temp_r31); + } + } + else { + for (temp_r31 = 31; temp_r31 >= 0; temp_r31--) { + GXPosition1x16(temp_r29 + temp_r31); + GXPosition1x16(temp_r29 + temp_r31 + 32); + } + } + } + lbl_1_bss_450.unk4 = GXEndDisplayList(); + DCFlushRangeNoSync(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); } void fn_1_3128(void) { - GXBeginDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition2f32(-0.5f, -0.5f); - GXTexCoord2f32(0, 0); - GXPosition2f32(0.5f, -0.5f); - GXTexCoord2f32(1, 0); - GXPosition2f32(0.5f, 0.5f); - GXTexCoord2f32(1, 1); - GXPosition2f32(-0.5f, 0.5f); - GXTexCoord2f32(0, 1); - GXEnd(); - lbl_1_bss_440.unk4 = GXEndDisplayList(); - DCFlushRangeNoSync(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); + GXBeginDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2f32(-0.5f, -0.5f); + GXTexCoord2f32(0, 0); + GXPosition2f32(0.5f, -0.5f); + GXTexCoord2f32(1, 0); + GXPosition2f32(0.5f, 0.5f); + GXTexCoord2f32(1, 1); + GXPosition2f32(-0.5f, 0.5f); + GXTexCoord2f32(0, 1); + GXEnd(); + lbl_1_bss_440.unk4 = GXEndDisplayList(); + DCFlushRangeNoSync(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); } void fn_1_32DC(Bss3F0Data *arg0, GXBool arg1) { - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_TRUE); - GXSetTexCopySrc(0, 0, arg0->unk4, arg0->unk6); - GXSetTexCopyDst(arg0->unk8, arg0->unkA, GX_TF_RGB565, arg0->unk10); - GXSetCopyClear(BGColor, 0xFFFFFF); - GXCopyTex(arg0->unk0, arg1); - GXPixModeSync(); - DCFlushRange(arg0->unk0, arg0->unkC); - + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_TRUE); + GXSetTexCopySrc(0, 0, arg0->unk4, arg0->unk6); + GXSetTexCopyDst(arg0->unk8, arg0->unkA, GX_TF_RGB565, arg0->unk10); + GXSetCopyClear(BGColor, 0xFFFFFF); + GXCopyTex(arg0->unk0, arg1); + GXPixModeSync(); + DCFlushRange(arg0->unk0, arg0->unkC); } void fn_1_33A4(ModelData *model, Mtx mtx) { - fn_1_32DC(&lbl_1_bss_3F0[1], GX_TRUE); - + fn_1_32DC(&lbl_1_bss_3F0[1], GX_TRUE); } void fn_1_349C(ModelData *model, Mtx mtx) { - fn_1_32DC(&lbl_1_bss_3F0[2], GX_TRUE); + fn_1_32DC(&lbl_1_bss_3F0[2], GX_TRUE); } void fn_1_3594(ModelData *model, Mtx mtx) { - Mtx sp90; - Mtx sp60; - Mtx sp30; - GXTexObj sp10; - - fn_1_32DC(&lbl_1_bss_3F0[3], GX_FALSE); - GXLoadPosMtxImm(mtx, GX_PNMTX0); - MTXLightPerspective(sp90, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - MTXInverse(Hu3DCameraMtx, sp60); - MTXConcat(sp60, mtx, sp60); - MTXConcat(sp90, Hu3DCameraMtx, sp30); - MTXConcat(sp30, sp60, sp60); - GXLoadTexMtxImm(sp60, GX_TEXMTX0, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); - GXInitTexObj(&sp10, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&sp10, GX_TEXMAP0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, 1000.0f); - GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); - GXEnd(); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-1000.0f, -70.0f, -1000.0f); - GXPosition3f32(1000.0f, -70.0f, -1000.0f); - GXPosition3f32(1000.0f, -70.0f, 1000.0f); - GXPosition3f32(-1000.0f, -70.0f, 1000.0f); - GXEnd(); - fn_1_32DC(&lbl_1_bss_3F0[2], GX_FALSE); - GXInitTexObj(&sp10, lbl_1_bss_3F0[3].unk0, lbl_1_bss_3F0[3].unk8, lbl_1_bss_3F0[3].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&sp10, GX_TEXMAP0); - GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, 1000.0f); - GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); - GXEnd(); + Mtx sp90; + Mtx sp60; + Mtx sp30; + GXTexObj sp10; + + fn_1_32DC(&lbl_1_bss_3F0[3], GX_FALSE); + GXLoadPosMtxImm(mtx, GX_PNMTX0); + MTXLightPerspective(sp90, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, sp60); + MTXConcat(sp60, mtx, sp60); + MTXConcat(sp90, Hu3DCameraMtx, sp30); + MTXConcat(sp30, sp60, sp60); + GXLoadTexMtxImm(sp60, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXInitTexObj(&sp10, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp10, GX_TEXMAP0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, 1000.0f); + GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); + GXEnd(); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, -70.0f, -1000.0f); + GXPosition3f32(1000.0f, -70.0f, -1000.0f); + GXPosition3f32(1000.0f, -70.0f, 1000.0f); + GXPosition3f32(-1000.0f, -70.0f, 1000.0f); + GXEnd(); + fn_1_32DC(&lbl_1_bss_3F0[2], GX_FALSE); + GXInitTexObj(&sp10, lbl_1_bss_3F0[3].unk0, lbl_1_bss_3F0[3].unk8, lbl_1_bss_3F0[3].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp10, GX_TEXMAP0); + GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, 1000.0f); + GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); + GXEnd(); } GXColor lbl_1_data_170 = { 255, 0, 0, 255 }; @@ -484,133 +475,132 @@ GXColor lbl_1_data_178 = { 0, 126, 126, 255 }; void fn_1_3CC8(ModelData *model, Mtx mtx) { - - float temp_f31; - Mtx sp44; - Mtx sp14; - Bss2468Data *temp_r31; - s32 temp_r30; - s32 temp_r29; - - MTXOrtho(sp44, 0, 480, 0, 640, 0, 100); - GXSetProjection(sp44, GX_ORTHOGRAPHIC); - MTXIdentity(sp14); - GXLoadPosMtxImm(sp14, GX_PNMTX0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_178); - GXSetNumTexGens(0); - HuSprTexLoad(lbl_1_bss_458, 0, GX_TEXMAP0, GX_REPEAT, GX_REPEAT, GX_LINEAR); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetScissor(0, 0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition2u16(0, 0); - GXPosition2u16(lbl_1_bss_3F0[0].unk8, 0); - GXPosition2u16(lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); - GXPosition2u16(0, lbl_1_bss_3F0[0].unkA); - GXEnd(); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - GXSetNumTevStages(1); - - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXClearVtxDesc(); - - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - temp_r29 = lbl_1_bss_2464; - for(temp_r30=0; temp_r30<64; temp_r29 = (temp_r29+1)%64, temp_r30++) { - temp_r31 = &lbl_1_bss_2468[temp_r29]; - if(temp_r31->unkC == 0) { - continue; - } - temp_f31 = (0.2f+cosd((90.0f*temp_r31->unkC)/60.0f))*128.0f; - lbl_1_data_174.a = 255.0f*sind((90.0f*temp_r31->unkC)/60.0f); - GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_174); - MTXScale(sp14, 0.5f*temp_f31, 0.5f*temp_f31, 1.0f); - mtxTransCat(sp14, (200.0f*(600.0f+temp_r31->unk0.x))/1200.0f, (200.0f*(600.0f+temp_r31->unk0.z))/1200.0f, 0); - GXLoadPosMtxImm(sp14, GX_PNMTX0); - GXCallDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); - } - fn_1_32DC(&lbl_1_bss_3F0[0], GX_TRUE); + + float temp_f31; + Mtx sp44; + Mtx sp14; + Bss2468Data *temp_r31; + s32 temp_r30; + s32 temp_r29; + + MTXOrtho(sp44, 0, 480, 0, 640, 0, 100); + GXSetProjection(sp44, GX_ORTHOGRAPHIC); + MTXIdentity(sp14); + GXLoadPosMtxImm(sp14, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_178); + GXSetNumTexGens(0); + HuSprTexLoad(lbl_1_bss_458, 0, GX_TEXMAP0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetScissor(0, 0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2u16(0, 0); + GXPosition2u16(lbl_1_bss_3F0[0].unk8, 0); + GXPosition2u16(lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); + GXPosition2u16(0, lbl_1_bss_3F0[0].unkA); + GXEnd(); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumTevStages(1); + + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXClearVtxDesc(); + + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + temp_r29 = lbl_1_bss_2464; + for (temp_r30 = 0; temp_r30 < 64; temp_r29 = (temp_r29 + 1) % 64, temp_r30++) { + temp_r31 = &lbl_1_bss_2468[temp_r29]; + if (temp_r31->unkC == 0) { + continue; + } + temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / 60.0f)) * 128.0f; + lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / 60.0f); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_174); + MTXScale(sp14, 0.5f * temp_f31, 0.5f * temp_f31, 1.0f); + mtxTransCat(sp14, (200.0f * (600.0f + temp_r31->unk0.x)) / 1200.0f, (200.0f * (600.0f + temp_r31->unk0.z)) / 1200.0f, 0); + GXLoadPosMtxImm(sp14, GX_PNMTX0); + GXCallDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); + } + fn_1_32DC(&lbl_1_bss_3F0[0], GX_TRUE); } void fn_1_43AC(Vec *arg0) { - Bss2468Data *temp_r31; - temp_r31 = &lbl_1_bss_2468[lbl_1_bss_2464]; - if(temp_r31->unkC == 0) { - temp_r31->unk0.x = arg0->x; - temp_r31->unk0.y = arg0->y; - temp_r31->unk0.z = arg0->z; - temp_r31->unkC = 60; - lbl_1_bss_2464 = (lbl_1_bss_2464+1)%64; - return; - } + Bss2468Data *temp_r31; + temp_r31 = &lbl_1_bss_2468[lbl_1_bss_2464]; + if (temp_r31->unkC == 0) { + temp_r31->unk0.x = arg0->x; + temp_r31->unk0.y = arg0->y; + temp_r31->unk0.z = arg0->z; + temp_r31->unkC = 60; + lbl_1_bss_2464 = (lbl_1_bss_2464 + 1) % 64; + return; + } } void fn_1_443C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_00 == 0) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk2C = 10; - temp_f31 = ((1.0f/256.0f)*frand8())*360.0f; - temp_r31->unk34.x = (0.2f*sind(temp_f31))*100.0f; - temp_r31->unk34.y = 0; - temp_r31->unk34.z = (0.2f*cosd(temp_f31))*100.0f; - temp_f30 = (100.0f*(0.025f*((1.0f/256.0f)*frand8())))+2.5f; - temp_r31->unk08.x = temp_f30*sind(temp_f31); - temp_r31->unk08.y = (100.0f*(0.025f*(((1.0f/256.0f)*(s32)(frand() & 0x1FF))-1.0f)))+7.5000005f; - temp_r31->unk08.z = temp_f30*cosd(temp_f31); - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; - temp_r31->unk40.a = (frand() & 0x1F)+16; - } - } - temp_r28 = 0; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - temp_r28++; - continue; - } - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - temp_r31->unk08.y += -0.5f; - temp_r31->unk40.a--; - } - if(temp_r28 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_00 == 0) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk2C = 10; + temp_f31 = ((1.0f / 256.0f) * frand8()) * 360.0f; + temp_r31->unk34.x = (0.2f * sind(temp_f31)) * 100.0f; + temp_r31->unk34.y = 0; + temp_r31->unk34.z = (0.2f * cosd(temp_f31)) * 100.0f; + temp_f30 = (100.0f * (0.025f * ((1.0f / 256.0f) * frand8()))) + 2.5f; + temp_r31->unk08.x = temp_f30 * sind(temp_f31); + temp_r31->unk08.y = (100.0f * (0.025f * (((1.0f / 256.0f) * (s32)(frand() & 0x1FF)) - 1.0f))) + 7.5000005f; + temp_r31->unk08.z = temp_f30 * cosd(temp_f31); + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; + temp_r31->unk40.a = (frand() & 0x1F) + 16; + } + } + temp_r28 = 0; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + temp_r28++; + continue; + } + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + temp_r31->unk08.y += -0.5f; + temp_r31->unk40.a--; + } + if (temp_r28 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_47EC(Vec *arg0) { - Hu3DModelPosSet(lbl_1_bss_5868->model[10], arg0->x, arg0->y, arg0->z); - Hu3DModelAttrReset(lbl_1_bss_5868->model[10], 1); - -} \ No newline at end of file + Hu3DModelPosSet(lbl_1_bss_5868->model[10], arg0->x, arg0->y, arg0->z); + Hu3DModelAttrReset(lbl_1_bss_5868->model[10], 1); +} diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index de52de93..23239a7c 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -2324,7 +2324,7 @@ void fn_1_62BC(void *arg0) // var_r30->unk_2C = 0.01f; // var_r30->unk_28 = 0.01f; // var_r30->unk_24 = 0.01f; -// var_r30->unk_7C = Hu3DModelCreateFile(0x45000B); +// var_r30->unk_7C = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M438, 0x0B)); // var_r30->unk_7E = (30.0f * (0.000015258789f * fn_1_7DB4())) + 0x1E; // var_r29 = 0; // loop_6: diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index 7cfee7b4..cb684c5b 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -1,9 +1,9 @@ +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/hsfdraw.h" #include "game/init.h" @@ -11,12 +11,12 @@ #include "game/audio.h" #include "game/chrman.h" -#include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" -#include "game/sprite.h" #include "game/frand.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" #include "ext_math.h" @@ -25,128 +25,50 @@ #include "REL/m439data.h" typedef struct camera_params { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraViewParams; -CameraViewParams lbl_1_data_741C[] = { - { - 4775, - -2800, 0, -7700, - 343, 20, 0, - }, - { - 5000, - 0, 0, 0, - 290, 0, 0, - }, - { - 2800, - 0, 0, -7600, - 347, 0, 0, - }, - { - 2800, - 0, 0, -7600, - 290, 0, 0 - } -}; - +CameraViewParams lbl_1_data_741C[] = { { + 4775, + -2800, + 0, + -7700, + 343, + 20, + 0, + }, + { + 5000, + 0, + 0, + 0, + 290, + 0, + 0, + }, + { + 2800, + 0, + 0, + -7600, + 347, + 0, + 0, + }, + { 2800, 0, 0, -7600, 290, 0, 0 } }; typedef struct struct_data_748C { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC[2]; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC[2]; } StructData748C; -StructData748C lbl_1_data_748C[16] = { - { - 0, - -1, - 1, - { 1, 0 } - }, - { - 1, - 0, - 2, - { 2, 3 } - }, - { - 2, - 1, - 1, - { 4, 0 } - }, - { - 2, - 1, - 1, - { 5, 0 } - }, - { - 3, - 2, - 2, - { 6, 7 } - }, - { - 3, - 3, - 2, - { 8, 9 } - }, - { - 4, - 4, - 1, - { 10, 0 } - }, - { - 4, - 4, - 1, - { 11, 0 } - }, - { - 4, - 5, - 1, - { 12, 0 } - }, - { - 4, - 5, - 1, - { 13, 0 } - }, - { - 5, - 6, - 0, - { 0, 0 } - }, - { - 5, - 7, - 0, - { 0, 0 } - }, - { - 5, - 8, - 0, - { 0, 0 } - }, - { - 5, - 9, - 0, - { 0, 0 } - } -}; +StructData748C lbl_1_data_748C[16] = { { 0, -1, 1, { 1, 0 } }, { 1, 0, 2, { 2, 3 } }, { 2, 1, 1, { 4, 0 } }, { 2, 1, 1, { 5, 0 } }, + { 3, 2, 2, { 6, 7 } }, { 3, 3, 2, { 8, 9 } }, { 4, 4, 1, { 10, 0 } }, { 4, 4, 1, { 11, 0 } }, { 4, 5, 1, { 12, 0 } }, { 4, 5, 1, { 13, 0 } }, + { 5, 6, 0, { 0, 0 } }, { 5, 7, 0, { 0, 0 } }, { 5, 8, 0, { 0, 0 } }, { 5, 9, 0, { 0, 0 } } }; float lbl_1_data_75CC[5] = { -700, -2200, -3600, -5200, -6600 }; s32 lbl_1_data_75E0[4] = { 1, 2, 4, 8 }; @@ -156,7 +78,6 @@ GXColor lbl_1_data_7608 = { 255, 255, 255, 255 }; Vec lbl_1_data_760C = { 700, 2500, -700 }; Vec lbl_1_data_7618 = { 0, 1, 0 }; - omObjData *lbl_1_bss_170; omObjData *lbl_1_bss_16C; omObjData *lbl_1_bss_168; @@ -195,60 +116,59 @@ void fn_1_73F4(Process *objman); void fn_1_6C08(omObjData *object); - void ObjectSetup(void) { - Process *objman; - s16 light; - - CameraData *camera = &Hu3DCamera[0]; - OSReport("******* M439ObjectSetup *********\n"); - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 10, 100, 15000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_1_bss_168 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - lbl_1_bss_168->work[0] = 1; - lbl_1_bss_34.x = lbl_1_data_75FC.x-lbl_1_data_75F0.x; - lbl_1_bss_34.y = lbl_1_data_75FC.y-lbl_1_data_75F0.y; - lbl_1_bss_34.z = lbl_1_data_75FC.z-lbl_1_data_75F0.z; - VECNormalize(&lbl_1_bss_34, &lbl_1_bss_34); - light = Hu3DGLightCreateV(&lbl_1_data_75F0, &lbl_1_bss_34, &lbl_1_data_7608); - Hu3DGLightInfinitytSet(light); - Hu3DGLightStaticSet(light, 1); - Hu3DShadowCreate(20, 200, 10000); - Hu3DShadowTPLvlSet(0.625f); - Hu3DShadowPosSet(&lbl_1_data_760C, &lbl_1_data_7618, &lbl_1_data_75FC); - HuAudSndGrpSet(65); - lbl_1_bss_170 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_384); - lbl_1_bss_16C = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6C08); - fn_1_A18(objman); - fn_1_49C8(objman); - fn_1_5BA0(objman); - fn_1_73F4(objman); + Process *objman; + s16 light; + + CameraData *camera = &Hu3DCamera[0]; + OSReport("******* M439ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 10, 100, 15000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_1_bss_168 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_168->work[0] = 1; + lbl_1_bss_34.x = lbl_1_data_75FC.x - lbl_1_data_75F0.x; + lbl_1_bss_34.y = lbl_1_data_75FC.y - lbl_1_data_75F0.y; + lbl_1_bss_34.z = lbl_1_data_75FC.z - lbl_1_data_75F0.z; + VECNormalize(&lbl_1_bss_34, &lbl_1_bss_34); + light = Hu3DGLightCreateV(&lbl_1_data_75F0, &lbl_1_bss_34, &lbl_1_data_7608); + Hu3DGLightInfinitytSet(light); + Hu3DGLightStaticSet(light, 1); + Hu3DShadowCreate(20, 200, 10000); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_760C, &lbl_1_data_7618, &lbl_1_data_75FC); + HuAudSndGrpSet(65); + lbl_1_bss_170 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_384); + lbl_1_bss_16C = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6C08); + fn_1_A18(objman); + fn_1_49C8(objman); + fn_1_5BA0(objman); + fn_1_73F4(objman); } void fn_1_364(s32 arg0) { - lbl_1_bss_160 = arg0; + lbl_1_bss_160 = arg0; } s32 fn_1_374(void) { - return lbl_1_bss_160; + return lbl_1_bss_160; } void fn_1_408(omObjData *object); void fn_1_384(omObjData *object) { - fn_1_364(0); - lbl_1_bss_14C = 60; - lbl_1_bss_12E = 60; - lbl_1_bss_12C = 60; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_408; + fn_1_364(0); + lbl_1_bss_14C = 60; + lbl_1_bss_12E = 60; + lbl_1_bss_12C = 60; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_408; } s32 lbl_1_data_7648 = -1; @@ -261,111 +181,111 @@ void fn_1_C00(void); void fn_1_408(omObjData *object) { - switch(fn_1_374()) { - case 0: - if(lbl_1_bss_14C == 60) { - HuAudFXPlay(1797); - } - if(--lbl_1_bss_14C == 0) { - fn_1_364(1); - lbl_1_bss_14C = 120; - } - break; - - case 1: - if(--lbl_1_bss_14C == 0) { - WipeColorSet(0, 0, 0); - fn_1_364(2); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - } - break; - - case 2: - if(!WipeStatGet()) { - fn_1_364(3); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - lbl_1_data_764C = HuAudFXPlay(1798); - } - break; - - case 3: - if(!WipeStatGet()) { - fn_1_364(4); - lbl_1_bss_32 = MGSeqStartCreate(); - - } - break; - - case 4: - if(!MGSeqStatGet(lbl_1_bss_32)) { - fn_1_364(5); - lbl_1_bss_30 = MGSeqTimerCreate(60); - } - if(lbl_1_data_7648 < 0 && (MGSeqStatGet(lbl_1_bss_32) & 0x10)) { - lbl_1_data_7648 = HuAudSeqPlay(75); - } - break; - - case 5: - if(--lbl_1_bss_12C == 0) { - lbl_1_bss_12E--; - MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E); - lbl_1_bss_12C = 60; - } - if(lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) { - fn_1_364(6); - lbl_1_bss_32 = MGSeqFinishCreate(); - HuAudSeqFadeOut(lbl_1_data_7648, 100); - } - break; - - case 6: - if(lbl_1_bss_30 >= 0) { - MGSeqParamSet(lbl_1_bss_30, 2, -1); - lbl_1_bss_30 = -1; - } - if(!MGSeqStatGet(lbl_1_bss_32)) { - fn_1_364(7); - lbl_1_bss_14C = 60; - } - break; - - case 7: - if(fn_1_B7C() && --lbl_1_bss_14C == 0) { - fn_1_C00(); - fn_1_364(9); - if(lbl_1_bss_130) { - HuAudSStreamPlay(1); - } else { - HuAudSStreamPlay(4); - } - lbl_1_bss_14C = 210; - } - break; - - case 9: - if(--lbl_1_bss_14C == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - WipeColorSet(255, 255, 255); - HuAudFXStop(lbl_1_data_764C); - object->func = fn_1_9BC; - } - break; - } - if(lbl_1_bss_13A) { - s32 i; - for(i=0; ifunc = fn_1_9BC; - } + switch (fn_1_374()) { + case 0: + if (lbl_1_bss_14C == 60) { + HuAudFXPlay(1797); + } + if (--lbl_1_bss_14C == 0) { + fn_1_364(1); + lbl_1_bss_14C = 120; + } + break; + + case 1: + if (--lbl_1_bss_14C == 0) { + WipeColorSet(0, 0, 0); + fn_1_364(2); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + } + break; + + case 2: + if (!WipeStatGet()) { + fn_1_364(3); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + lbl_1_data_764C = HuAudFXPlay(1798); + } + break; + + case 3: + if (!WipeStatGet()) { + fn_1_364(4); + lbl_1_bss_32 = MGSeqStartCreate(); + } + break; + + case 4: + if (!MGSeqStatGet(lbl_1_bss_32)) { + fn_1_364(5); + lbl_1_bss_30 = MGSeqTimerCreate(60); + } + if (lbl_1_data_7648 < 0 && (MGSeqStatGet(lbl_1_bss_32) & 0x10)) { + lbl_1_data_7648 = HuAudSeqPlay(75); + } + break; + + case 5: + if (--lbl_1_bss_12C == 0) { + lbl_1_bss_12E--; + MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E); + lbl_1_bss_12C = 60; + } + if (lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) { + fn_1_364(6); + lbl_1_bss_32 = MGSeqFinishCreate(); + HuAudSeqFadeOut(lbl_1_data_7648, 100); + } + break; + + case 6: + if (lbl_1_bss_30 >= 0) { + MGSeqParamSet(lbl_1_bss_30, 2, -1); + lbl_1_bss_30 = -1; + } + if (!MGSeqStatGet(lbl_1_bss_32)) { + fn_1_364(7); + lbl_1_bss_14C = 60; + } + break; + + case 7: + if (fn_1_B7C() && --lbl_1_bss_14C == 0) { + fn_1_C00(); + fn_1_364(9); + if (lbl_1_bss_130) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(4); + } + lbl_1_bss_14C = 210; + } + break; + + case 9: + if (--lbl_1_bss_14C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeColorSet(255, 255, 255); + HuAudFXStop(lbl_1_data_764C); + object->func = fn_1_9BC; + } + break; + } + if (lbl_1_bss_13A) { + s32 i; + for (i = 0; i < lbl_1_bss_13A; i++) { + GWPlayerCoinWinSet(lbl_1_bss_132[i], lbl_1_bss_13C); + } + lbl_1_bss_13C += lbl_1_bss_13A; + lbl_1_bss_130 += lbl_1_bss_13A; + lbl_1_bss_13A = 0; + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeColorSet(255, 255, 255); + object->func = fn_1_9BC; + } } void fn_1_B20(void); @@ -373,133 +293,125 @@ void fn_1_5CAC(void); void fn_1_9BC(omObjData *object) { - if(!WipeStatGet()) { - fn_1_B20(); - fn_1_5CAC(); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - OSReport("******* M439Exit *********\n"); - - } + if (!WipeStatGet()) { + fn_1_B20(); + fn_1_5CAC(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M439Exit *********\n"); + } } void fn_1_D0C(omObjData *object); void fn_1_A18(Process *objman) { - s32 i; - lbl_1_bss_150[0] = lbl_1_bss_150[1] = lbl_1_bss_150[2] = lbl_1_bss_150[3] = -1; - lbl_1_bss_148 = 0; - lbl_1_bss_13C = 0; - lbl_1_bss_13A = 0; - lbl_1_bss_130 = 0; - omMakeGroupEx(objman, 0, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 5, 3, 50, 0, fn_1_D0C); - } - lbl_1_bss_40 = HuSprAnimRead(HuDataReadNum(0x460016, MEMORY_DEFAULT_NUM)); - + s32 i; + lbl_1_bss_150[0] = lbl_1_bss_150[1] = lbl_1_bss_150[2] = lbl_1_bss_150[3] = -1; + lbl_1_bss_148 = 0; + lbl_1_bss_13C = 0; + lbl_1_bss_13A = 0; + lbl_1_bss_130 = 0; + omMakeGroupEx(objman, 0, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 5, 3, 50, 0, fn_1_D0C); + } + lbl_1_bss_40 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M439, 0x16), MEMORY_DEFAULT_NUM)); } void fn_1_4978(omObjData *object); void fn_1_B20(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - for(i=0; i<4; i++) { - fn_1_4978(objList[i]); - - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for (i = 0; i < 4; i++) { + fn_1_4978(objList[i]); + } } typedef struct work_d0c { - u16 unk0_field0 : 1; - u16 unk0_field1 : 1; - u16 unk0_field2 : 1; - u16 unk0_field3 : 1; - u16 unk0_field4 : 1; - u16 unk0_field5 : 1; - u16 unk0_field6 : 1; - u16 unk0_field7 : 1; - u16 unk0_field8 : 1; - s16 unk2; - s16 unk4; - s8 unk6; - s8 unk7; - u16 unk8; - u16 unkA; - s16 unkC; - s16 unkE; - s16 unk10; - s16 unk12; - Vec unk14; - Vec unk20; - s32 unk2C; - u32 unk30; - float unk34; - float unk38; - s16 unk3C; - s16 unk3E; - float unk40; - s16 unk44; - s16 unk46; - float unk48; - float unk4C; - Vec unk50; - Vec unk5C; - Vec unk68; - Vec unk74; - u16 unk80; - Vec unk84; - float unk90; - float unk94; - Vec unk98; - float unkA4; - float unkA8; + u16 unk0_field0 : 1; + u16 unk0_field1 : 1; + u16 unk0_field2 : 1; + u16 unk0_field3 : 1; + u16 unk0_field4 : 1; + u16 unk0_field5 : 1; + u16 unk0_field6 : 1; + u16 unk0_field7 : 1; + u16 unk0_field8 : 1; + s16 unk2; + s16 unk4; + s8 unk6; + s8 unk7; + u16 unk8; + u16 unkA; + s16 unkC; + s16 unkE; + s16 unk10; + s16 unk12; + Vec unk14; + Vec unk20; + s32 unk2C; + u32 unk30; + float unk34; + float unk38; + s16 unk3C; + s16 unk3E; + float unk40; + s16 unk44; + s16 unk46; + float unk48; + float unk4C; + Vec unk50; + Vec unk5C; + Vec unk68; + Vec unk74; + u16 unk80; + Vec unk84; + float unk90; + float unk94; + Vec unk98; + float unkA4; + float unkA8; } WorkD0C; s32 fn_1_B7C(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - for(i=0; i<4; i++) { - WorkD0C *work = objList[i]->data; - if(!work->unk0_field7) { - return 0; - } - } - return 1; + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for (i = 0; i < 4; i++) { + WorkD0C *work = objList[i]->data; + if (!work->unk0_field7) { + return 0; + } + } + return 1; } void fn_1_C00(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - if(lbl_1_bss_13C == 0) { - for(i=0; i<4; i++) { - GWPlayerCoinWinSet(i, 3); - } - } else { - for(i=0; i<4; i++) { - WorkD0C *work = objList[i]->data; - if(!work->unk0_field0) { - GWPlayerCoinWinSet(i, lbl_1_bss_13C); - } - } - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + if (lbl_1_bss_13C == 0) { + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(i, 3); + } + } + else { + for (i = 0; i < 4; i++) { + WorkD0C *work = objList[i]->data; + if (!work->unk0_field0) { + GWPlayerCoinWinSet(i, lbl_1_bss_13C); + } + } + } } -s32 lbl_1_data_7694[7] = { - 0x5F0000, - 0x5F0002, - 0x5F0003, - 0x5F0014, - 0x5F0050, - 0x5F0017, - 0x5F0072 -}; +s32 lbl_1_data_7694[7] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x14), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x50), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72) }; void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix); @@ -507,63 +419,63 @@ void fn_1_2BB4(omObjData *object); void fn_1_D0C(omObjData *object) { - WorkD0C *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkD0C), MEMORY_DEFAULT_NUM); - u32 i; - s32 charNo; - object->data = work; - memset(work, 0, sizeof(WorkD0C)); - work->unk2 = lbl_1_bss_148++; - work->unk4 = GWPlayerCfg[work->unk2].pad_idx; - charNo = GWPlayerCfg[work->unk2].character; - work->unkC = charNo; - work->unkE = GWPlayerCfg[work->unk2].diff; - work->unk10 = GWPlayerCfg[work->unk2].group; - object->model[0] = CharModelCreate(charNo, 8); - if(work->unk2 == 0) { - Hu3DModelShadowSet(object->model[0]); - } - Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[work->unk2]); - work->unk2C = 0; - work->unk30 = 0x40000001; - for(i=0; i<7; i++) { - object->motion[i] = CharModelMotionCreate(work->unkC, lbl_1_data_7694[i]); - } - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - CharModelVoiceEnableSet(work->unkC, object->motion[4], 0); - CharModelDataClose(work->unkC); - object->model[1] = Hu3DModelCreateFile(0x460012); - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelCameraSet(object->model[1], lbl_1_data_75E0[work->unk2]); - work->unk0_field3 = 1; - work->unk44 = 0; - work->unk46 = 0; - work->unk40 = 1000; - work->unk14.x = 0; - work->unk94 = work->unkA4 = 0.5f; - object->rot.y = 180; - object->model[2] = Hu3DParticleCreate(lbl_1_bss_40, 10); - Hu3DParticleHookSet(object->model[2], fn_1_4528); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelCameraSet(object->model[2], lbl_1_data_75E0[work->unk2]); - object->func = fn_1_2BB4; + WorkD0C *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkD0C), MEMORY_DEFAULT_NUM); + u32 i; + s32 charNo; + object->data = work; + memset(work, 0, sizeof(WorkD0C)); + work->unk2 = lbl_1_bss_148++; + work->unk4 = GWPlayerCfg[work->unk2].pad_idx; + charNo = GWPlayerCfg[work->unk2].character; + work->unkC = charNo; + work->unkE = GWPlayerCfg[work->unk2].diff; + work->unk10 = GWPlayerCfg[work->unk2].group; + object->model[0] = CharModelCreate(charNo, 8); + if (work->unk2 == 0) { + Hu3DModelShadowSet(object->model[0]); + } + Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[work->unk2]); + work->unk2C = 0; + work->unk30 = 0x40000001; + for (i = 0; i < 7; i++) { + object->motion[i] = CharModelMotionCreate(work->unkC, lbl_1_data_7694[i]); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + CharModelVoiceEnableSet(work->unkC, object->motion[4], 0); + CharModelDataClose(work->unkC); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M439, 0x12)); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelCameraSet(object->model[1], lbl_1_data_75E0[work->unk2]); + work->unk0_field3 = 1; + work->unk44 = 0; + work->unk46 = 0; + work->unk40 = 1000; + work->unk14.x = 0; + work->unk94 = work->unkA4 = 0.5f; + object->rot.y = 180; + object->model[2] = Hu3DParticleCreate(lbl_1_bss_40, 10); + Hu3DParticleHookSet(object->model[2], fn_1_4528); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelCameraSet(object->model[2], lbl_1_data_75E0[work->unk2]); + object->func = fn_1_2BB4; } float fn_1_1024(float arg0, float arg1, float arg2) { - float temp_f31 = fmod(arg1-arg0, 360); - float temp_f30; - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - temp_f30 = fmod(arg0+(arg2*temp_f31), 360.0); - if(temp_f30 < 0.0f) { - temp_f30 += 360.0f; - } - return temp_f30; + float temp_f31 = fmod(arg1 - arg0, 360); + float temp_f30; + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f30 = fmod(arg0 + (arg2 * temp_f31), 360.0); + if (temp_f30 < 0.0f) { + temp_f30 += 360.0f; + } + return temp_f30; } float lbl_1_data_76B0[11][2] = { @@ -582,281 +494,277 @@ float lbl_1_data_76B0[11][2] = { s32 fn_1_1128(Vec *arg0) { - float sp20[2]; - float sp18[2]; - float sp10[2]; - float temp_f29; - - u32 i; - for(i=0; i<10; i++) { - s32 temp_r30 = i+1; - - float temp_f26; - sp20[0] = lbl_1_data_76B0[temp_r30][0]-lbl_1_data_76B0[i][0]; - sp20[1] = lbl_1_data_76B0[temp_r30][1]-lbl_1_data_76B0[i][1]; - temp_f26 = (((arg0->z*sp20[1])+((arg0->x*sp20[0])-(sp20[0]*lbl_1_data_76B0[i][0])))-(sp20[1]*lbl_1_data_76B0[i][1]))/((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f26 >= 0.0f && temp_f26 < 1.0f) { - sp10[0] = lbl_1_data_76B0[i][0]+(sp20[0]*temp_f26); - sp10[1] = lbl_1_data_76B0[i][1]+(sp20[1]*temp_f26); - sp18[0] = arg0->x-sp10[0]; - sp18[1] = arg0->z-sp10[1]; - temp_f29 = sqrtf((sp18[0]*sp18[0])+(sp18[1]*sp18[1])); - if(temp_f29 < 130.0f) { - if(temp_f29 != 0.0f) { - sp18[0] /= temp_f29; - sp18[1] /= temp_f29; - } else { - sp18[0] = 0; - sp18[1] = 1; - } - arg0->x = sp10[0]+(130.0f*sp18[0]); - arg0->z = sp10[1]+(130.0f*sp18[1]); - } - } - } - for(i=0; i<11; i++) { - sp20[0] = arg0->x-lbl_1_data_76B0[i][0]; - sp20[1] = arg0->z-lbl_1_data_76B0[i][1]; - temp_f29 = sqrtf((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f29 < 130.0f) { - if(temp_f29 != 0.0f) { - sp20[0] /= temp_f29; - sp20[1] /= temp_f29; - } else { - sp20[0] = 0; - sp20[1] = 1; - } - arg0->x = lbl_1_data_76B0[i][0]+(130.0f*sp20[0]); - arg0->z = lbl_1_data_76B0[i][1]+(130.0f*sp20[1]); - } - } + float sp20[2]; + float sp18[2]; + float sp10[2]; + float temp_f29; + + u32 i; + for (i = 0; i < 10; i++) { + s32 temp_r30 = i + 1; + + float temp_f26; + sp20[0] = lbl_1_data_76B0[temp_r30][0] - lbl_1_data_76B0[i][0]; + sp20[1] = lbl_1_data_76B0[temp_r30][1] - lbl_1_data_76B0[i][1]; + temp_f26 = (((arg0->z * sp20[1]) + ((arg0->x * sp20[0]) - (sp20[0] * lbl_1_data_76B0[i][0]))) - (sp20[1] * lbl_1_data_76B0[i][1])) + / ((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f26 >= 0.0f && temp_f26 < 1.0f) { + sp10[0] = lbl_1_data_76B0[i][0] + (sp20[0] * temp_f26); + sp10[1] = lbl_1_data_76B0[i][1] + (sp20[1] * temp_f26); + sp18[0] = arg0->x - sp10[0]; + sp18[1] = arg0->z - sp10[1]; + temp_f29 = sqrtf((sp18[0] * sp18[0]) + (sp18[1] * sp18[1])); + if (temp_f29 < 130.0f) { + if (temp_f29 != 0.0f) { + sp18[0] /= temp_f29; + sp18[1] /= temp_f29; + } + else { + sp18[0] = 0; + sp18[1] = 1; + } + arg0->x = sp10[0] + (130.0f * sp18[0]); + arg0->z = sp10[1] + (130.0f * sp18[1]); + } + } + } + for (i = 0; i < 11; i++) { + sp20[0] = arg0->x - lbl_1_data_76B0[i][0]; + sp20[1] = arg0->z - lbl_1_data_76B0[i][1]; + temp_f29 = sqrtf((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f29 < 130.0f) { + if (temp_f29 != 0.0f) { + sp20[0] /= temp_f29; + sp20[1] /= temp_f29; + } + else { + sp20[0] = 0; + sp20[1] = 1; + } + arg0->x = lbl_1_data_76B0[i][0] + (130.0f * sp20[0]); + arg0->z = lbl_1_data_76B0[i][1] + (130.0f * sp20[1]); + } + } } - -float lbl_1_data_7708[3][2][2] = { - -99.8, -1431.8, 77.2, -1437.8, - -1499.8, -4571.8, -1322.8, -4577.8, - 1300.2, -4571.8, 1477.2, -4577.8 -}; +float lbl_1_data_7708[3][2][2] = { -99.8, -1431.8, 77.2, -1437.8, -1499.8, -4571.8, -1322.8, -4577.8, 1300.2, -4571.8, 1477.2, -4577.8 }; s32 fn_1_16B0(Vec *arg0) { - s32 i; - for(i=0; i<3; i++) { - float sp20[2]; - float sp18[2]; - float sp10[2]; - float temp_f29; - float temp_f26; - s32 j; - sp20[0] = lbl_1_data_7708[i][1][0]-lbl_1_data_7708[i][0][0]; - sp20[1] = lbl_1_data_7708[i][1][1]-lbl_1_data_7708[i][0][1]; - temp_f26 = (((arg0->z*sp20[1])+((arg0->x*sp20[0])-(sp20[0]*lbl_1_data_7708[i][0][0])))-(sp20[1]*lbl_1_data_7708[i][0][1]))/((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f26 >= 0.0f && temp_f26 < 1.0f) { - sp10[0] = lbl_1_data_7708[i][0][0]+(sp20[0]*temp_f26); - sp10[1] = lbl_1_data_7708[i][0][1]+(sp20[1]*temp_f26); - sp18[0] = arg0->x-sp10[0]; - sp18[1] = arg0->z-sp10[1]; - temp_f29 = sqrtf((sp18[0]*sp18[0])+(sp18[1]*sp18[1])); - if(temp_f29 < 50.0f) { - if(temp_f29 != 0.0f) { - sp18[0] /= temp_f29; - sp18[1] /= temp_f29; - } else { - sp18[0] = 0; - sp18[1] = 1; - } - arg0->x = sp10[0]+(50.0f*sp18[0]); - arg0->z = sp10[1]+(50.0f*sp18[1]); - } - } - for(j=0; j<2; j++) { - sp20[0] = arg0->x-lbl_1_data_7708[i][j][0]; - sp20[1] = arg0->z-lbl_1_data_7708[i][j][1]; - temp_f29 = sqrtf((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f29 < 50.0f) { - if(temp_f29 != 0.0f) { - sp20[0] /= temp_f29; - sp20[1] /= temp_f29; - } else { - sp20[0] = 0; - sp20[1] = 1; - } - arg0->x = lbl_1_data_7708[i][j][0]+(50.0f*sp20[0]); - arg0->z = lbl_1_data_7708[i][j][1]+(50.0f*sp20[1]); - } - } - } + s32 i; + for (i = 0; i < 3; i++) { + float sp20[2]; + float sp18[2]; + float sp10[2]; + float temp_f29; + float temp_f26; + s32 j; + sp20[0] = lbl_1_data_7708[i][1][0] - lbl_1_data_7708[i][0][0]; + sp20[1] = lbl_1_data_7708[i][1][1] - lbl_1_data_7708[i][0][1]; + temp_f26 = (((arg0->z * sp20[1]) + ((arg0->x * sp20[0]) - (sp20[0] * lbl_1_data_7708[i][0][0]))) - (sp20[1] * lbl_1_data_7708[i][0][1])) + / ((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f26 >= 0.0f && temp_f26 < 1.0f) { + sp10[0] = lbl_1_data_7708[i][0][0] + (sp20[0] * temp_f26); + sp10[1] = lbl_1_data_7708[i][0][1] + (sp20[1] * temp_f26); + sp18[0] = arg0->x - sp10[0]; + sp18[1] = arg0->z - sp10[1]; + temp_f29 = sqrtf((sp18[0] * sp18[0]) + (sp18[1] * sp18[1])); + if (temp_f29 < 50.0f) { + if (temp_f29 != 0.0f) { + sp18[0] /= temp_f29; + sp18[1] /= temp_f29; + } + else { + sp18[0] = 0; + sp18[1] = 1; + } + arg0->x = sp10[0] + (50.0f * sp18[0]); + arg0->z = sp10[1] + (50.0f * sp18[1]); + } + } + for (j = 0; j < 2; j++) { + sp20[0] = arg0->x - lbl_1_data_7708[i][j][0]; + sp20[1] = arg0->z - lbl_1_data_7708[i][j][1]; + temp_f29 = sqrtf((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f29 < 50.0f) { + if (temp_f29 != 0.0f) { + sp20[0] /= temp_f29; + sp20[1] /= temp_f29; + } + else { + sp20[0] = 0; + sp20[1] = 1; + } + arg0->x = lbl_1_data_7708[i][j][0] + (50.0f * sp20[0]); + arg0->z = lbl_1_data_7708[i][j][1] + (50.0f * sp20[1]); + } + } + } } float fn_1_1C54(s32 arg0, Vec *arg1, Vec *arg2) { - Vec *temp_r31; - Vec *temp_r30; - s32 i; - Vec sp24; - Vec sp18; - s32 sp14 = -1; - float sp10 = 1000; - float *temp_r28 = lbl_1_data_108C[arg0]; - VECSubtract(arg2, arg1, &sp18); - temp_r31 = lbl_1_data_1014[arg0][0]; - temp_r30 = lbl_1_data_1014[arg0][1]; - for(i=0; ix*sp24.x)+(sp18.y*sp24.y)-(temp_r31->y*sp24.y)+(sp18.z*sp24.z)-(temp_r31->z*sp24.z))/temp_f31; - VECSubtract(&temp_r30[1], &temp_r30[0], &sp24); - temp_f31 = VECMag2Point(&sp24); - if(temp_f31 == 0.0f) { - continue; - } - temp_f28 = ((sp18.x*sp24.x)-(temp_r30->x*sp24.x)+(sp18.y*sp24.y)-(temp_r30->y*sp24.y)+(sp18.z*sp24.z)-(temp_r30->z*sp24.z))/temp_f31; - temp_f30 = 0.5f*(temp_f29+temp_f28); - if(temp_f30 < 0.0f || temp_f30 >= 1.0f) { - continue; - } else { - return temp_r28[i]+(temp_f30*(temp_r28[i+1]-temp_r28[i])); - - } - } - return -1; + Vec *temp_r31; + Vec *temp_r30; + s32 i; + Vec sp24; + Vec sp18; + s32 sp14 = -1; + float sp10 = 1000; + float *temp_r28 = lbl_1_data_108C[arg0]; + VECSubtract(arg2, arg1, &sp18); + temp_r31 = lbl_1_data_1014[arg0][0]; + temp_r30 = lbl_1_data_1014[arg0][1]; + for (i = 0; i < lbl_1_data_1074[arg0] - 1; i++, temp_r31++, temp_r30++) { + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + VECSubtract(&temp_r31[1], &temp_r31[0], &sp24); + temp_f31 = VECMag2Point(&sp24); + if (temp_f31 == 0.0f) { + continue; + } + temp_f29 + = ((sp18.x * sp24.x) - (temp_r31->x * sp24.x) + (sp18.y * sp24.y) - (temp_r31->y * sp24.y) + (sp18.z * sp24.z) - (temp_r31->z * sp24.z)) + / temp_f31; + VECSubtract(&temp_r30[1], &temp_r30[0], &sp24); + temp_f31 = VECMag2Point(&sp24); + if (temp_f31 == 0.0f) { + continue; + } + temp_f28 + = ((sp18.x * sp24.x) - (temp_r30->x * sp24.x) + (sp18.y * sp24.y) - (temp_r30->y * sp24.y) + (sp18.z * sp24.z) - (temp_r30->z * sp24.z)) + / temp_f31; + temp_f30 = 0.5f * (temp_f29 + temp_f28); + if (temp_f30 < 0.0f || temp_f30 >= 1.0f) { + continue; + } + else { + return temp_r28[i] + (temp_f30 * (temp_r28[i + 1] - temp_r28[i])); + } + } + return -1; } void fn_1_1F3C(s32 arg0, Vec *arg1, float arg2, float arg3, Vec *arg4) { - float *temp_r30 = lbl_1_data_108C[arg0]; - s32 i; - for(i=0; ix+(temp_f31*sp8.x); - sp20.y = temp_r29->y+(temp_f31*sp8.y); - sp20.z = temp_r29->z+(temp_f31*sp8.z); - VECSubtract(&temp_r28[1], &temp_r28[0], &sp8); - sp14.x = temp_r28->x+(temp_f31*sp8.x); - sp14.y = temp_r28->y+(temp_f31*sp8.y); - sp14.z = temp_r28->z+(temp_f31*sp8.z); - arg4->x = (arg1->x+sp20.x)+(arg3*(sp14.x-sp20.x)); - arg4->y = (arg1->y+sp20.y)+(arg3*(sp14.y-sp20.y)); - arg4->z = (arg1->z+sp20.z)+(arg3*(sp14.z-sp20.z)); - } + float *temp_r30 = lbl_1_data_108C[arg0]; + s32 i; + for (i = 0; i < lbl_1_data_1074[arg0] - 1; i++) { + if (arg2 < temp_r30[i + 1]) { + break; + } + } + if (i < lbl_1_data_1074[arg0] - 1) { + float temp_f31 = (arg2 - temp_r30[i]) / (temp_r30[i + 1] - temp_r30[i]); + Vec *temp_r29 = &lbl_1_data_1014[arg0][0][i]; + Vec *temp_r28 = &lbl_1_data_1014[arg0][1][i]; + Vec sp20; + Vec sp14; + Vec sp8; + VECSubtract(&temp_r29[1], &temp_r29[0], &sp8); + sp20.x = temp_r29->x + (temp_f31 * sp8.x); + sp20.y = temp_r29->y + (temp_f31 * sp8.y); + sp20.z = temp_r29->z + (temp_f31 * sp8.z); + VECSubtract(&temp_r28[1], &temp_r28[0], &sp8); + sp14.x = temp_r28->x + (temp_f31 * sp8.x); + sp14.y = temp_r28->y + (temp_f31 * sp8.y); + sp14.z = temp_r28->z + (temp_f31 * sp8.z); + arg4->x = (arg1->x + sp20.x) + (arg3 * (sp14.x - sp20.x)); + arg4->y = (arg1->y + sp20.y) + (arg3 * (sp14.y - sp20.y)); + arg4->z = (arg1->z + sp20.z) + (arg3 * (sp14.z - sp20.z)); + } } float fn_1_2184(s32 arg0, float arg1) { - float *temp_r30 = lbl_1_data_108C[arg0]; - s32 i; - for(i=0; i= lbl_1_data_1074[arg0]-1) { - return -1; - } else { - return temp_r30[i+1]-temp_r30[i]; - } + float *temp_r30 = lbl_1_data_108C[arg0]; + s32 i; + for (i = 0; i < lbl_1_data_1074[arg0] - 1; i++) { + if (arg1 < temp_r30[i + 1]) { + break; + } + } + if (i >= lbl_1_data_1074[arg0] - 1) { + return -1; + } + else { + return temp_r30[i + 1] - temp_r30[i]; + } } -s16 lbl_1_data_7738[10][3] = { - 1, 0, 0, - 2, 1, 2, - 2, 3, 4, - 1, 5, 0, - 1, 6, 0, - 1, 7, 0, - 1, 8, 0, - 1, 9, 0, - 1, 10, 0, - 1, 11, 0 -}; +s16 lbl_1_data_7738[10][3] = { 1, 0, 0, 2, 1, 2, 2, 3, 4, 1, 5, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 1, 9, 0, 1, 10, 0, 1, 11, 0 }; s32 lbl_1_data_7774[8] = { - 0x005F0000, - 0x005F0001, - 0x005F0002, - 0x005F0003, - 0x005F0014, - 0x005F0050, - 0x005F0017, - 0x005F0018 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x01), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x14), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x50), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), }; typedef struct work_5cb0 { - s16 unk0; - Vec unk4; - StructData748C unk10; + s16 unk0; + Vec unk4; + StructData748C unk10; } Work5CB0; - void fn_1_223C(omObjData *object) { - float temp_f29; - WorkD0C *temp_r31; - Work5CB0 *temp_r18; - Vec sp58; - s32 sp18; - omObjData **sp14; - temp_r31 = object->data; - if(temp_r31->unk0_field4) { - temp_r31->unk0_field4 = 0; - sp14 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - temp_r18 = sp14[temp_r31->unk2]->data; - sp18 = temp_r18[temp_r31->unk44].unk0; - temp_r31->unk80 = lbl_1_data_7738[sp18][((lbl_1_data_7738[sp18][0]*frand8()) >> 8)+1]; - temp_r31->unk84 = temp_r18[temp_r31->unk44].unk4; - temp_r31->unk90 = fn_1_1C54(temp_r31->unk80, &temp_r31->unk84, &object->trans); - if(temp_r31->unk90 < 0.0f) { - temp_r31->unk90 = 105.0f; - } - temp_r31->unk90 += 20.0f; - } else { - if(temp_r31->unk0_field5) { - temp_r31->unk94 = temp_r31->unkA4 = 0.5f; - temp_r31->unk0_field5 = 0; - temp_r31->unk0_field6 = 1; - } else { - VECSubtract(&temp_r31->unk98, &object->trans, &sp58); - if(VECMag(&sp58) < 20.0f) { - temp_r31->unk90 += 20.0f; - temp_r31->unk0_field6 = 0; - } - } - } - if(object->trans.z < -500.0f && !temp_r31->unk0_field6 && frand8() == 0) { - temp_r31->unkA4 = (0.55f*((((s32)frand() & 0x1FF)-256.0f)/256.0f))+0.5f; - } - temp_r31->unk94 += 0.05f*(temp_r31->unkA4-temp_r31->unk94); - fn_1_1F3C(temp_r31->unk80, &temp_r31->unk84, temp_r31->unk90, temp_r31->unk94, &temp_r31->unk98); - if(temp_r31->unk98.z > temp_r31->unk40) { - temp_r31->unk98.z = temp_r31->unk40; - } - VECSubtract(&temp_r31->unk98, &object->trans, &sp58); - VECNormalize(&sp58, &sp58); - temp_f29 = 10.0+(((18.0+(6.0f*temp_r31->unkE))*fn_1_2184(temp_r31->unk80, temp_r31->unk90))/200.0); - if(temp_f29 > 72) { - temp_f29 = 72; - } - temp_r31->unk6 = sp58.x*temp_f29; - temp_r31->unk7 = -sp58.z*temp_f29; + float temp_f29; + WorkD0C *temp_r31; + Work5CB0 *temp_r18; + Vec sp58; + s32 sp18; + omObjData **sp14; + temp_r31 = object->data; + if (temp_r31->unk0_field4) { + temp_r31->unk0_field4 = 0; + sp14 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + temp_r18 = sp14[temp_r31->unk2]->data; + sp18 = temp_r18[temp_r31->unk44].unk0; + temp_r31->unk80 = lbl_1_data_7738[sp18][((lbl_1_data_7738[sp18][0] * frand8()) >> 8) + 1]; + temp_r31->unk84 = temp_r18[temp_r31->unk44].unk4; + temp_r31->unk90 = fn_1_1C54(temp_r31->unk80, &temp_r31->unk84, &object->trans); + if (temp_r31->unk90 < 0.0f) { + temp_r31->unk90 = 105.0f; + } + temp_r31->unk90 += 20.0f; + } + else { + if (temp_r31->unk0_field5) { + temp_r31->unk94 = temp_r31->unkA4 = 0.5f; + temp_r31->unk0_field5 = 0; + temp_r31->unk0_field6 = 1; + } + else { + VECSubtract(&temp_r31->unk98, &object->trans, &sp58); + if (VECMag(&sp58) < 20.0f) { + temp_r31->unk90 += 20.0f; + temp_r31->unk0_field6 = 0; + } + } + } + if (object->trans.z < -500.0f && !temp_r31->unk0_field6 && frand8() == 0) { + temp_r31->unkA4 = (0.55f * ((((s32)frand() & 0x1FF) - 256.0f) / 256.0f)) + 0.5f; + } + temp_r31->unk94 += 0.05f * (temp_r31->unkA4 - temp_r31->unk94); + fn_1_1F3C(temp_r31->unk80, &temp_r31->unk84, temp_r31->unk90, temp_r31->unk94, &temp_r31->unk98); + if (temp_r31->unk98.z > temp_r31->unk40) { + temp_r31->unk98.z = temp_r31->unk40; + } + VECSubtract(&temp_r31->unk98, &object->trans, &sp58); + VECNormalize(&sp58, &sp58); + temp_f29 = 10.0 + (((18.0 + (6.0f * temp_r31->unkE)) * fn_1_2184(temp_r31->unk80, temp_r31->unk90)) / 200.0); + if (temp_f29 > 72) { + temp_f29 = 72; + } + temp_r31->unk6 = sp58.x * temp_f29; + temp_r31->unk7 = -sp58.z * temp_f29; } void fn_1_2C84(omObjData *object); @@ -865,394 +773,405 @@ s32 fn_1_62E0(float arg0); void fn_1_2BB4(omObjData *object) { - WorkD0C *work = object->data; - Hu3DModelAttrReset(object->model[1], 1); - Hu3DModelPosSet(object->model[1], CenterM[work->unk2].x, CenterM[work->unk2].y, CenterM[work->unk2].z); - if(fn_1_374() == 3) { - Hu3DModelAttrSet(object->model[1], 1); - object->func = fn_1_2C84; - } + WorkD0C *work = object->data; + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelPosSet(object->model[1], CenterM[work->unk2].x, CenterM[work->unk2].y, CenterM[work->unk2].z); + if (fn_1_374() == 3) { + Hu3DModelAttrSet(object->model[1], 1); + object->func = fn_1_2C84; + } } typedef struct work_4aa8 { - u8 unk0 : 1; - s16 unk2; - s16 unk4; - float unk8[2]; - float unk10; - float unk14[4]; - s16 unk24; - s16 unk26; - Vec unk28; - Vec unk34; - Vec unk40; + u8 unk0 : 1; + s16 unk2; + s16 unk4; + float unk8[2]; + float unk10; + float unk14[4]; + s16 unk24; + s16 unk26; + Vec unk28; + Vec unk34; + Vec unk40; } Work4AA8; - void fn_1_3C1C(omObjData *object); s32 fn_1_6328(omObjData *object); s32 fn_1_67B4(Vec *arg0, s32 arg1, s32 arg2, Vec *arg3, Vec *arg4); void fn_1_2C84(omObjData *object) { - WorkD0C *temp_r31; - s32 temp_r29; - s32 temp_r28; - omObjData *temp_r27; - u32 temp_r26; - omObjData **temp_r25; - Work4AA8 *temp_r24; - ParticleData *temp_r23; - float temp_f31; - float temp_f30; - float temp_f28; - float temp_f26; - float temp_f25; - float temp_f23; - - Vec spC; - temp_r31 = object->data; - temp_r28 = temp_r31->unk2C; - temp_f25 = temp_r31->unk34; - temp_r26 = temp_r31->unk30; - if(fn_1_374() >= 6 && !temp_r31->unk0_field2) { - temp_r31->unk0_field7 = 1; - temp_r31->unk12 = 2; - temp_r31->unk3E = 120; - object->func = fn_1_3C1C; - return; - } - if(fn_1_374() < 5) { - return; - } - switch(temp_r31->unk12){ - case 0: - if(GWPlayerCfg[temp_r31->unk2].iscom == 0) { - temp_r31->unk6 = HuPadStkX[temp_r31->unk4]; - temp_r31->unk7 = HuPadStkY[temp_r31->unk4]; - temp_r31->unk8 = HuPadBtn[temp_r31->unk4]; - temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; - } else { - temp_r31->unk8 = temp_r31->unkA = 0; - temp_r31->unk6 = temp_r31->unk7 = 0; - fn_1_223C(object); - } - temp_f31 = temp_r31->unk6; - temp_f30 = -(float)temp_r31->unk7; - temp_f26 = VECMagPoint(temp_f31, temp_f30, 0); - if(temp_f26 > 0.0f) { - temp_f31 /= temp_f26; - temp_f30 /= temp_f26; - if(temp_f26 > 72) { - temp_f26 = 72; - } - temp_f23 = (10.0f*temp_f26)/72.0f; - temp_r31->unk20.x = temp_f31*temp_f23; - temp_r31->unk20.z = temp_f30*temp_f23; - temp_r31->unk14.y = temp_f23; - object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f); - if(temp_r31->unk14.y < 7.5f) { - temp_r28 = 1; - temp_f25 = temp_r31->unk14.y/7.5f; - } else { - temp_r28 = 2; - temp_f25 = temp_r31->unk14.y/10.0f; - } - } else { - temp_r31->unk20.x = temp_r31->unk20.z = 0; - temp_r28 = 0; - temp_f25 = 1; - } - VECAdd(&object->trans, &temp_r31->unk20, &object->trans); - fn_1_1128(&object->trans); - fn_1_16B0(&object->trans); - if(object->trans.z > temp_r31->unk40) { - object->trans.z = temp_r31->unk40; - } else { - if(object->trans.z < -7300) { - temp_r31->unk0_field0 = 1; - temp_r31->unk0_field7 = 1; - temp_r31->unk12 = 0; - if(lbl_1_bss_130 == 0) { - temp_r31->unk0_field8 = 1; - } - lbl_1_bss_132[lbl_1_bss_13A++] = temp_r31->unk2; - object->func = fn_1_3C1C; - return; - } - } - if(fn_1_67B4(&object->trans, temp_r31->unk2, temp_r31->unk44, &temp_r31->unk5C, &temp_r31->unk74) && !temp_r31->unk0_field6) { - temp_r31->unk0_field2 = 1; - temp_r31->unk0_field1 = 1; - temp_r31->unk0_field5 = 1; - temp_r31->unk0_field3 = 0; - temp_r31->unk50.x = object->trans.x; - temp_r31->unk50.y = object->trans.y; - temp_r31->unk50.z = object->trans.z; - temp_r31->unk68.y = -2000; - temp_r31->unk12 = 2; - temp_r31->unk3E = 12; - temp_r23 = Hu3DData[object->model[2]].unk_120; - temp_r23->unk_00 = 0; - VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelPosSet(object->model[2], object->trans.x, object->trans.y, object->trans.z); - temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); - temp_r25[temp_r31->unk2]->work[3] = 1; - } else { - spC.x = CenterM[temp_r31->unk2].x; - spC.z = CenterM[temp_r31->unk2].z; - spC.x += 0.1f*(object->trans.x-spC.x); - spC.z += 0.1f*(object->trans.z-spC.z); - temp_r29 = fn_1_62E0(spC.z-350.0f); - if(temp_r29 != temp_r31->unk46 && temp_r29 > 1 && temp_r29 < 6) { - spC.z = lbl_1_data_75CC[temp_r29-1]+350.0f; - } else { - temp_r29 = fn_1_62E0(spC.z+350.0f); - if(temp_r29 != temp_r31->unk46 && temp_r31->unk46 > 1 && temp_r31->unk46 < 6) { - spC.z = lbl_1_data_75CC[temp_r31->unk46-1]-350.0f; - } - } - CenterM[temp_r31->unk2].x = spC.x; - CenterM[temp_r31->unk2].z = spC.z; - temp_r29 = fn_1_62E0(object->trans.z); - if(temp_r29 != temp_r31->unk46) { - temp_r31->unk46 = temp_r29; - temp_r31->unk44 = fn_1_6328(object); - temp_r31->unk0_field4 = 01; - if(temp_r29 > 1 && temp_r29 < 6) { - temp_r31->unk12++; - temp_r31->unk3E = 30; - temp_r31->unk48 = CenterM[temp_r31->unk2].z; - temp_r31->unk4C = object->trans.z-350.0f; - temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46-1]; - } - } - } - break; - - case 1: - if(--temp_r31->unk3E == 0) { - temp_r31->unk12 = 0; - } - CenterM[temp_r31->unk2].z = temp_r31->unk48+((temp_r31->unk4C-temp_r31->unk48)*cosd((temp_r31->unk3E*90.0f)/30.0f)); - temp_r28 = 0; - temp_f25 = 1; - break; - - case 2: - temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); - temp_r27 = temp_r25[temp_r31->unk2]; - temp_r24 = temp_r27->data; - switch(temp_r24->unk4) { - case 1: - temp_f28 = 1.0f-(temp_r24->unk24/90.0f); - object->trans.x = temp_r31->unk50.x+(temp_f28*(temp_r31->unk5C.x-temp_r31->unk50.x)); - object->trans.y = 100+(-2000.0f*(temp_f28-0.1f))*(temp_f28-0.1f); - object->trans.z = temp_r31->unk50.z+(temp_f28*(temp_r31->unk5C.z-temp_r31->unk50.z)); - temp_r28 = 3; - temp_r26 = 0; - break; - - case 2: - case 3: - if(temp_r24->unk0) { - object->trans.x = temp_r27->trans.x; - object->trans.y = temp_r27->trans.y-150; - object->trans.z = temp_r27->trans.z; - temp_r28 = 4; - temp_r26 = 0; - } else { - if(temp_r31->unk3E) { - temp_r31->unk3E--; - } - temp_f28 = sind((temp_r31->unk3E/30.0f)*90.0f); - object->trans.x = temp_r31->unk74.x-(temp_f28*(temp_r31->unk74.x-temp_r31->unk68.x)); - object->trans.y = temp_r31->unk74.y-(temp_f28*(temp_r31->unk74.y-temp_r31->unk68.y)); - object->trans.z = temp_r31->unk74.z-(temp_f28*(temp_r31->unk74.z-temp_r31->unk68.z)); - temp_r28 = 0; - temp_r26 = 0x40000001; - } - break; - } - if(!temp_r31->unk0_field1) { - temp_r31->unk0_field2 = 0; - temp_r31->unk12 = 0; - temp_r31->unk20.y = 0; - } - break; - } - if((temp_r28 >= 0 && temp_r28 != temp_r31->unk2C) || temp_r26 != temp_r31->unk30) { - temp_r31->unk2C = temp_r28; - temp_r31->unk30 = temp_r26; - CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r26); - } - CharModelMotionSpeedSet(temp_r31->unkC, temp_f25); - temp_r31->unk34 = temp_f25; - if(temp_r31->unk2 == 0) { - Hu3DShadowData.unk_20.x = object->trans.x; - Hu3DShadowData.unk_20.y = object->trans.y; - Hu3DShadowData.unk_20.z = object->trans.z; - Hu3DShadowData.unk_14.x = 700+Hu3DShadowData.unk_20.x; - Hu3DShadowData.unk_14.y = 2500+Hu3DShadowData.unk_20.y; - Hu3DShadowData.unk_14.z = Hu3DShadowData.unk_20.z-700; - } else { - lbl_1_bss_D4[temp_r31->unk2-1].x = object->trans.x; - lbl_1_bss_D4[temp_r31->unk2-1].y = object->trans.y; - lbl_1_bss_D4[temp_r31->unk2-1].z = object->trans.z; - lbl_1_bss_F8[temp_r31->unk2-1].x = 700+lbl_1_bss_D4[temp_r31->unk2-1].x; - lbl_1_bss_F8[temp_r31->unk2-1].y = 2500+lbl_1_bss_D4[temp_r31->unk2-1].y; - lbl_1_bss_F8[temp_r31->unk2-1].z = lbl_1_bss_D4[temp_r31->unk2-1].z-700; - } + WorkD0C *temp_r31; + s32 temp_r29; + s32 temp_r28; + omObjData *temp_r27; + u32 temp_r26; + omObjData **temp_r25; + Work4AA8 *temp_r24; + ParticleData *temp_r23; + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f26; + float temp_f25; + float temp_f23; + + Vec spC; + temp_r31 = object->data; + temp_r28 = temp_r31->unk2C; + temp_f25 = temp_r31->unk34; + temp_r26 = temp_r31->unk30; + if (fn_1_374() >= 6 && !temp_r31->unk0_field2) { + temp_r31->unk0_field7 = 1; + temp_r31->unk12 = 2; + temp_r31->unk3E = 120; + object->func = fn_1_3C1C; + return; + } + if (fn_1_374() < 5) { + return; + } + switch (temp_r31->unk12) { + case 0: + if (GWPlayerCfg[temp_r31->unk2].iscom == 0) { + temp_r31->unk6 = HuPadStkX[temp_r31->unk4]; + temp_r31->unk7 = HuPadStkY[temp_r31->unk4]; + temp_r31->unk8 = HuPadBtn[temp_r31->unk4]; + temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; + } + else { + temp_r31->unk8 = temp_r31->unkA = 0; + temp_r31->unk6 = temp_r31->unk7 = 0; + fn_1_223C(object); + } + temp_f31 = temp_r31->unk6; + temp_f30 = -(float)temp_r31->unk7; + temp_f26 = VECMagPoint(temp_f31, temp_f30, 0); + if (temp_f26 > 0.0f) { + temp_f31 /= temp_f26; + temp_f30 /= temp_f26; + if (temp_f26 > 72) { + temp_f26 = 72; + } + temp_f23 = (10.0f * temp_f26) / 72.0f; + temp_r31->unk20.x = temp_f31 * temp_f23; + temp_r31->unk20.z = temp_f30 * temp_f23; + temp_r31->unk14.y = temp_f23; + object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f); + if (temp_r31->unk14.y < 7.5f) { + temp_r28 = 1; + temp_f25 = temp_r31->unk14.y / 7.5f; + } + else { + temp_r28 = 2; + temp_f25 = temp_r31->unk14.y / 10.0f; + } + } + else { + temp_r31->unk20.x = temp_r31->unk20.z = 0; + temp_r28 = 0; + temp_f25 = 1; + } + VECAdd(&object->trans, &temp_r31->unk20, &object->trans); + fn_1_1128(&object->trans); + fn_1_16B0(&object->trans); + if (object->trans.z > temp_r31->unk40) { + object->trans.z = temp_r31->unk40; + } + else { + if (object->trans.z < -7300) { + temp_r31->unk0_field0 = 1; + temp_r31->unk0_field7 = 1; + temp_r31->unk12 = 0; + if (lbl_1_bss_130 == 0) { + temp_r31->unk0_field8 = 1; + } + lbl_1_bss_132[lbl_1_bss_13A++] = temp_r31->unk2; + object->func = fn_1_3C1C; + return; + } + } + if (fn_1_67B4(&object->trans, temp_r31->unk2, temp_r31->unk44, &temp_r31->unk5C, &temp_r31->unk74) && !temp_r31->unk0_field6) { + temp_r31->unk0_field2 = 1; + temp_r31->unk0_field1 = 1; + temp_r31->unk0_field5 = 1; + temp_r31->unk0_field3 = 0; + temp_r31->unk50.x = object->trans.x; + temp_r31->unk50.y = object->trans.y; + temp_r31->unk50.z = object->trans.z; + temp_r31->unk68.y = -2000; + temp_r31->unk12 = 2; + temp_r31->unk3E = 12; + temp_r23 = Hu3DData[object->model[2]].unk_120; + temp_r23->unk_00 = 0; + VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelPosSet(object->model[2], object->trans.x, object->trans.y, object->trans.z); + temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + temp_r25[temp_r31->unk2]->work[3] = 1; + } + else { + spC.x = CenterM[temp_r31->unk2].x; + spC.z = CenterM[temp_r31->unk2].z; + spC.x += 0.1f * (object->trans.x - spC.x); + spC.z += 0.1f * (object->trans.z - spC.z); + temp_r29 = fn_1_62E0(spC.z - 350.0f); + if (temp_r29 != temp_r31->unk46 && temp_r29 > 1 && temp_r29 < 6) { + spC.z = lbl_1_data_75CC[temp_r29 - 1] + 350.0f; + } + else { + temp_r29 = fn_1_62E0(spC.z + 350.0f); + if (temp_r29 != temp_r31->unk46 && temp_r31->unk46 > 1 && temp_r31->unk46 < 6) { + spC.z = lbl_1_data_75CC[temp_r31->unk46 - 1] - 350.0f; + } + } + CenterM[temp_r31->unk2].x = spC.x; + CenterM[temp_r31->unk2].z = spC.z; + temp_r29 = fn_1_62E0(object->trans.z); + if (temp_r29 != temp_r31->unk46) { + temp_r31->unk46 = temp_r29; + temp_r31->unk44 = fn_1_6328(object); + temp_r31->unk0_field4 = 01; + if (temp_r29 > 1 && temp_r29 < 6) { + temp_r31->unk12++; + temp_r31->unk3E = 30; + temp_r31->unk48 = CenterM[temp_r31->unk2].z; + temp_r31->unk4C = object->trans.z - 350.0f; + temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46 - 1]; + } + } + } + break; + + case 1: + if (--temp_r31->unk3E == 0) { + temp_r31->unk12 = 0; + } + CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / 30.0f)); + temp_r28 = 0; + temp_f25 = 1; + break; + + case 2: + temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + temp_r27 = temp_r25[temp_r31->unk2]; + temp_r24 = temp_r27->data; + switch (temp_r24->unk4) { + case 1: + temp_f28 = 1.0f - (temp_r24->unk24 / 90.0f); + object->trans.x = temp_r31->unk50.x + (temp_f28 * (temp_r31->unk5C.x - temp_r31->unk50.x)); + object->trans.y = 100 + (-2000.0f * (temp_f28 - 0.1f)) * (temp_f28 - 0.1f); + object->trans.z = temp_r31->unk50.z + (temp_f28 * (temp_r31->unk5C.z - temp_r31->unk50.z)); + temp_r28 = 3; + temp_r26 = 0; + break; + + case 2: + case 3: + if (temp_r24->unk0) { + object->trans.x = temp_r27->trans.x; + object->trans.y = temp_r27->trans.y - 150; + object->trans.z = temp_r27->trans.z; + temp_r28 = 4; + temp_r26 = 0; + } + else { + if (temp_r31->unk3E) { + temp_r31->unk3E--; + } + temp_f28 = sind((temp_r31->unk3E / 30.0f) * 90.0f); + object->trans.x = temp_r31->unk74.x - (temp_f28 * (temp_r31->unk74.x - temp_r31->unk68.x)); + object->trans.y = temp_r31->unk74.y - (temp_f28 * (temp_r31->unk74.y - temp_r31->unk68.y)); + object->trans.z = temp_r31->unk74.z - (temp_f28 * (temp_r31->unk74.z - temp_r31->unk68.z)); + temp_r28 = 0; + temp_r26 = 0x40000001; + } + break; + } + if (!temp_r31->unk0_field1) { + temp_r31->unk0_field2 = 0; + temp_r31->unk12 = 0; + temp_r31->unk20.y = 0; + } + break; + } + if ((temp_r28 >= 0 && temp_r28 != temp_r31->unk2C) || temp_r26 != temp_r31->unk30) { + temp_r31->unk2C = temp_r28; + temp_r31->unk30 = temp_r26; + CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r26); + } + CharModelMotionSpeedSet(temp_r31->unkC, temp_f25); + temp_r31->unk34 = temp_f25; + if (temp_r31->unk2 == 0) { + Hu3DShadowData.unk_20.x = object->trans.x; + Hu3DShadowData.unk_20.y = object->trans.y; + Hu3DShadowData.unk_20.z = object->trans.z; + Hu3DShadowData.unk_14.x = 700 + Hu3DShadowData.unk_20.x; + Hu3DShadowData.unk_14.y = 2500 + Hu3DShadowData.unk_20.y; + Hu3DShadowData.unk_14.z = Hu3DShadowData.unk_20.z - 700; + } + else { + lbl_1_bss_D4[temp_r31->unk2 - 1].x = object->trans.x; + lbl_1_bss_D4[temp_r31->unk2 - 1].y = object->trans.y; + lbl_1_bss_D4[temp_r31->unk2 - 1].z = object->trans.z; + lbl_1_bss_F8[temp_r31->unk2 - 1].x = 700 + lbl_1_bss_D4[temp_r31->unk2 - 1].x; + lbl_1_bss_F8[temp_r31->unk2 - 1].y = 2500 + lbl_1_bss_D4[temp_r31->unk2 - 1].y; + lbl_1_bss_F8[temp_r31->unk2 - 1].z = lbl_1_bss_D4[temp_r31->unk2 - 1].z - 700; + } } void fn_1_3C1C(omObjData *object) { - WorkD0C *temp_r31; - s32 temp_r29; - u32 temp_r28; - float temp_f29; - temp_r31 = object->data; - temp_r29 = temp_r31->unk2C; - temp_f29 = temp_r31->unk34; - temp_r28 = temp_r31->unk30; - switch(temp_r31->unk12) { - case 0: - if(object->trans.z > -7600.0f) { - object->trans.z -= 3.75f; - } else { - temp_r31->unk12++; - } - object->rot.y = fn_1_1024(object->rot.y, 180.0f, 0.2f); - temp_r29 = 1; - temp_f29 = 1.0f; - temp_r28 = 0x40000001; - break; - - case 1: - if(fn_1_374() >= 9) { - temp_r29 = (temp_r31->unk0_field8) ? 5 : 6; - temp_f29 = 1.0f; - temp_r28 = 0; - } else { - object->rot.y = fn_1_1024(object->rot.y, 0.0f, 0.2f); - temp_r29 = 0; - temp_f29 = 1.0f; - temp_r28 = 0x40000001; - } - break; - - case 2: - if(--temp_r31->unk3E == 0 || fn_1_374() == 7) { - temp_r31->unk12 = 1; - } - temp_r29 = 0; - temp_f29 = 1.0f; - temp_r28 = 0x40000001; - break; - } - if(temp_r31->unk0_field0) { - CZoomM[temp_r31->unk2] += (lbl_1_data_741C[2].zoom-CZoomM[temp_r31->unk2])*0.1f; - CenterM[temp_r31->unk2].x += (object->trans.x-CenterM[temp_r31->unk2].x)*0.1f; - CenterM[temp_r31->unk2].y += ((object->trans.y+100)-CenterM[temp_r31->unk2].y)*0.1f; - CenterM[temp_r31->unk2].z += (object->trans.z-CenterM[temp_r31->unk2].z)*0.1f; - CRotM[temp_r31->unk2].x += (lbl_1_data_741C[2].rot.x-CRotM[temp_r31->unk2].x)*0.1f; - CRotM[temp_r31->unk2].y += (lbl_1_data_741C[2].rot.y-CRotM[temp_r31->unk2].y)*0.1f; - CRotM[temp_r31->unk2].z += (lbl_1_data_741C[2].rot.z-CRotM[temp_r31->unk2].z)*0.1f; - Hu3DModelAttrReset(object->model[1], 1); - Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y+200, object->trans.z); - } else { - CZoomM[temp_r31->unk2] += (lbl_1_data_741C[3].zoom-CZoomM[temp_r31->unk2])*0.1f; - CenterM[temp_r31->unk2].x += (object->trans.x-CenterM[temp_r31->unk2].x)*0.1f; - CenterM[temp_r31->unk2].y += ((object->trans.y+100)-CenterM[temp_r31->unk2].y)*0.1f; - CenterM[temp_r31->unk2].z += (object->trans.z-CenterM[temp_r31->unk2].z)*0.1f; - CRotM[temp_r31->unk2].x += (lbl_1_data_741C[3].rot.x-CRotM[temp_r31->unk2].x)*0.1f; - CRotM[temp_r31->unk2].y += (lbl_1_data_741C[3].rot.y-CRotM[temp_r31->unk2].y)*0.1f; - CRotM[temp_r31->unk2].z += (lbl_1_data_741C[3].rot.z-CRotM[temp_r31->unk2].z)*0.1f; - } - if((temp_r29 >= 0 && temp_r29 != temp_r31->unk2C) || temp_r28 != temp_r31->unk30) { - temp_r31->unk2C = temp_r29; - temp_r31->unk30 = temp_r28; - CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r28); - } - CharModelMotionSpeedSet(temp_r31->unkC, temp_f29); - temp_r31->unk34 = temp_f29; + WorkD0C *temp_r31; + s32 temp_r29; + u32 temp_r28; + float temp_f29; + temp_r31 = object->data; + temp_r29 = temp_r31->unk2C; + temp_f29 = temp_r31->unk34; + temp_r28 = temp_r31->unk30; + switch (temp_r31->unk12) { + case 0: + if (object->trans.z > -7600.0f) { + object->trans.z -= 3.75f; + } + else { + temp_r31->unk12++; + } + object->rot.y = fn_1_1024(object->rot.y, 180.0f, 0.2f); + temp_r29 = 1; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + break; + + case 1: + if (fn_1_374() >= 9) { + temp_r29 = (temp_r31->unk0_field8) ? 5 : 6; + temp_f29 = 1.0f; + temp_r28 = 0; + } + else { + object->rot.y = fn_1_1024(object->rot.y, 0.0f, 0.2f); + temp_r29 = 0; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + } + break; + + case 2: + if (--temp_r31->unk3E == 0 || fn_1_374() == 7) { + temp_r31->unk12 = 1; + } + temp_r29 = 0; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + break; + } + if (temp_r31->unk0_field0) { + CZoomM[temp_r31->unk2] += (lbl_1_data_741C[2].zoom - CZoomM[temp_r31->unk2]) * 0.1f; + CenterM[temp_r31->unk2].x += (object->trans.x - CenterM[temp_r31->unk2].x) * 0.1f; + CenterM[temp_r31->unk2].y += ((object->trans.y + 100) - CenterM[temp_r31->unk2].y) * 0.1f; + CenterM[temp_r31->unk2].z += (object->trans.z - CenterM[temp_r31->unk2].z) * 0.1f; + CRotM[temp_r31->unk2].x += (lbl_1_data_741C[2].rot.x - CRotM[temp_r31->unk2].x) * 0.1f; + CRotM[temp_r31->unk2].y += (lbl_1_data_741C[2].rot.y - CRotM[temp_r31->unk2].y) * 0.1f; + CRotM[temp_r31->unk2].z += (lbl_1_data_741C[2].rot.z - CRotM[temp_r31->unk2].z) * 0.1f; + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y + 200, object->trans.z); + } + else { + CZoomM[temp_r31->unk2] += (lbl_1_data_741C[3].zoom - CZoomM[temp_r31->unk2]) * 0.1f; + CenterM[temp_r31->unk2].x += (object->trans.x - CenterM[temp_r31->unk2].x) * 0.1f; + CenterM[temp_r31->unk2].y += ((object->trans.y + 100) - CenterM[temp_r31->unk2].y) * 0.1f; + CenterM[temp_r31->unk2].z += (object->trans.z - CenterM[temp_r31->unk2].z) * 0.1f; + CRotM[temp_r31->unk2].x += (lbl_1_data_741C[3].rot.x - CRotM[temp_r31->unk2].x) * 0.1f; + CRotM[temp_r31->unk2].y += (lbl_1_data_741C[3].rot.y - CRotM[temp_r31->unk2].y) * 0.1f; + CRotM[temp_r31->unk2].z += (lbl_1_data_741C[3].rot.z - CRotM[temp_r31->unk2].z) * 0.1f; + } + if ((temp_r29 >= 0 && temp_r29 != temp_r31->unk2C) || temp_r28 != temp_r31->unk30) { + temp_r31->unk2C = temp_r29; + temp_r31->unk30 = temp_r28; + CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r28); + } + CharModelMotionSpeedSet(temp_r31->unkC, temp_f29); + temp_r31->unk34 = temp_f29; } void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_00 == 0) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - temp_f29 = atan2d(particle->unk_04.x, particle->unk_04.z); - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk2C = ((20.0f*frand8())+50.0f)/256.0f; - temp_f31 = (frand8()*360.0f)/256.0f; - temp_r31->unk34.x = 100.0f*(0.2f*sind(temp_f31)); - temp_r31->unk34.y = 0; - temp_r31->unk34.z = 100.0f*(0.2f*cosd(temp_f31)); - temp_f30 = ((frand8()*2.5f)/256.0f)+(5.0f/3.0f); - temp_f31 = temp_f29+(30.0f*(((s32)frand() & 0x1FF)-256.0f)/256.0f); - temp_r31->unk08.x = temp_f30*sind(temp_f31); - temp_r31->unk08.z = temp_f30*cosd(temp_f31); - temp_r31->unk08.y = (frand8()*(50.0f/3.0f))/256.0f; - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; - } - } - temp_r28 = 0; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk34.y < -2000.0f) { - temp_r28++; - } else { - temp_r31->unk08.y += -0.50000006f; - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - } - } - if(temp_r28 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + float temp_f30; + float temp_f29; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_00 == 0) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + temp_f29 = atan2d(particle->unk_04.x, particle->unk_04.z); + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk2C = ((20.0f * frand8()) + 50.0f) / 256.0f; + temp_f31 = (frand8() * 360.0f) / 256.0f; + temp_r31->unk34.x = 100.0f * (0.2f * sind(temp_f31)); + temp_r31->unk34.y = 0; + temp_r31->unk34.z = 100.0f * (0.2f * cosd(temp_f31)); + temp_f30 = ((frand8() * 2.5f) / 256.0f) + (5.0f / 3.0f); + temp_f31 = temp_f29 + (30.0f * (((s32)frand() & 0x1FF) - 256.0f) / 256.0f); + temp_r31->unk08.x = temp_f30 * sind(temp_f31); + temp_r31->unk08.z = temp_f30 * cosd(temp_f31); + temp_r31->unk08.y = (frand8() * (50.0f / 3.0f)) / 256.0f; + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; + } + } + temp_r28 = 0; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk34.y < -2000.0f) { + temp_r28++; + } + else { + temp_r31->unk08.y += -0.50000006f; + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + } + } + if (temp_r28 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_4978(omObjData *object) { - WorkD0C *work = object->data; - if(object->data != NULL) { - HuMemDirectFree(object->data); - object->data = NULL; - } + WorkD0C *work = object->data; + if (object->data != NULL) { + HuMemDirectFree(object->data); + object->data = NULL; + } } void fn_1_4AA8(omObjData *object); void fn_1_49C8(Process *objman) { - s32 i; - lbl_1_bss_140 = 0; - omMakeGroupEx(objman, 2, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 6, 4, 50, 2, fn_1_4AA8); - } + s32 i; + lbl_1_bss_140 = 0; + omMakeGroupEx(objman, 2, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 6, 4, 50, 2, fn_1_4AA8); + } } void fn_1_5B9C(omObjData *object); void fn_1_4A4C(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); - s32 i; - for(i=0; i<4; i++) { - fn_1_5B9C(objList[i]); - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + s32 i; + for (i = 0; i < 4; i++) { + fn_1_5B9C(objList[i]); + } } s32 lbl_1_data_7794[1] = { 0x460014 }; @@ -1262,35 +1181,35 @@ void fn_1_4F54(omObjData *object); void fn_1_4AA8(omObjData *object) { - Work4AA8 *work; - u32 i; - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work4AA8), MEMORY_DEFAULT_NUM); - object->data = work; - memset(work, 0, sizeof(Work4AA8)); - work->unk2 = lbl_1_bss_140; - object->model[0] = Hu3DModelCreateFile(0x460013); - Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[lbl_1_bss_140]); - Hu3DModelAttrSet(object->model[0], 1); - for(i=0; i<1; i++) { - object->motion[i] = Hu3DJointMotionFile(object->model[0], lbl_1_data_7794[i]); - - } - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->trans.y = 500; - object->scale.x = object->scale.y = object->scale.z = 0.25f; - if(work->unk2 == 0) { - object->trans.x = -1800; - object->trans.y = 50; - object->trans.z = -8500; - object->rot.y = -90; - object->func = fn_1_4CC0; - Hu3DMotionSpeedSet(object->model[0], 2.0f); - work->unk24 = 60; - } else { - object->func = fn_1_4F54; - } - lbl_1_bss_140++; + Work4AA8 *work; + u32 i; + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work4AA8), MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Work4AA8)); + work->unk2 = lbl_1_bss_140; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M439, 0x13)); + Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[lbl_1_bss_140]); + Hu3DModelAttrSet(object->model[0], 1); + for (i = 0; i < 1; i++) { + object->motion[i] = Hu3DJointMotionFile(object->model[0], lbl_1_data_7794[i]); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->trans.y = 500; + object->scale.x = object->scale.y = object->scale.z = 0.25f; + if (work->unk2 == 0) { + object->trans.x = -1800; + object->trans.y = 50; + object->trans.z = -8500; + object->rot.y = -90; + object->func = fn_1_4CC0; + Hu3DMotionSpeedSet(object->model[0], 2.0f); + work->unk24 = 60; + } + else { + object->func = fn_1_4F54; + } + lbl_1_bss_140++; } s32 lbl_1_data_7798 = 2; @@ -1298,498 +1217,443 @@ s32 lbl_1_data_779C = -1; void fn_1_4CC0(omObjData *object) { - Work4AA8 *work = object->data; - float pan; - Vec pos2D; - if(42.0f == work->unk24) { - HuAudFXPlay(1795); - } - if(work->unk24 == 0) { - object->trans.x -= 25.0f; - } else { - if(--work->unk24 == 0) { - lbl_1_data_779C = HuAudFXPlay(1796); - lbl_1_data_7798--; - } - } - if(lbl_1_data_779C >= 0) { - if(HuAudFXStatusGet(lbl_1_data_779C) == 0) { - if(lbl_1_data_7798 > 0) { - lbl_1_data_779C = HuAudFXPlay(1796); - lbl_1_data_7798--; - } else { - lbl_1_data_779C = -1; - } - } - if(lbl_1_data_779C >= 0) { - Hu3D3Dto2D(&object->trans, 1, &pos2D); - pan = 64.0f+((32.0f*pos2D.x)/576.0f); - if(pan < 32.0f) { - pan = 32.0f; - } else if(pan > 96.0f) { - pan = 96.0f; - } - HuAudFXPanning(lbl_1_data_779C, pan); - } - } - Hu3DModelAttrReset(object->model[0], 1); - if(fn_1_374() == 3) { - Hu3DMotionSpeedSet(object->model[0], 1.0f); - Hu3DModelAttrSet(object->model[0], 1); - object->func = fn_1_4F54; - } + Work4AA8 *work = object->data; + float pan; + Vec pos2D; + if (42.0f == work->unk24) { + HuAudFXPlay(1795); + } + if (work->unk24 == 0) { + object->trans.x -= 25.0f; + } + else { + if (--work->unk24 == 0) { + lbl_1_data_779C = HuAudFXPlay(1796); + lbl_1_data_7798--; + } + } + if (lbl_1_data_779C >= 0) { + if (HuAudFXStatusGet(lbl_1_data_779C) == 0) { + if (lbl_1_data_7798 > 0) { + lbl_1_data_779C = HuAudFXPlay(1796); + lbl_1_data_7798--; + } + else { + lbl_1_data_779C = -1; + } + } + if (lbl_1_data_779C >= 0) { + Hu3D3Dto2D(&object->trans, 1, &pos2D); + pan = 64.0f + ((32.0f * pos2D.x) / 576.0f); + if (pan < 32.0f) { + pan = 32.0f; + } + else if (pan > 96.0f) { + pan = 96.0f; + } + HuAudFXPanning(lbl_1_data_779C, pan); + } + } + Hu3DModelAttrReset(object->model[0], 1); + if (fn_1_374() == 3) { + Hu3DMotionSpeedSet(object->model[0], 1.0f); + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_1_4F54; + } } void fn_1_71EC(Vec *arg0, Vec *arg1, float arg2); void fn_1_4F54(omObjData *object) { - Work4AA8 *work = object->data; - omObjData **temp_r29; - WorkD0C *temp_r28; - Vec sp4C; - Vec sp40; - switch(work->unk4) { - case 0: - if(object->work[3]) { - work->unk4++; - work->unk24 = work->unk26 = 90; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x; - object->trans.y = work->unk28.y = 2000; - object->trans.z = work->unk28.z = temp_r29[work->unk2]->trans.z-100; - object->rot.y = 180; - Hu3DModelAttrReset(object->model[0], 1); - } - break; - - case 1: - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - work->unk34.x = temp_r29[work->unk2]->trans.x; - work->unk34.y = 1500; - work->unk34.z = temp_r29[work->unk2]->trans.z; - work->unk40.x = temp_r29[work->unk2]->trans.x; - work->unk40.y = temp_r29[work->unk2]->trans.y; - work->unk40.z = temp_r29[work->unk2]->trans.z; - fn_1_71EC(&work->unk28, &sp40, 1.0f-((float)work->unk24/(float)work->unk26)); - VECSubtract(&sp40, &object->trans, &sp4C); - object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); - object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); - object->trans.x = sp40.x; - object->trans.y = sp40.y; - object->trans.z = sp40.z; - if(--work->unk24 == 0) { - work->unk0 = 1; - work->unk4++; - work->unk24 = 90; - work->unk10 = (200.0f-object->trans.y)/work->unk24; - object->rot.x = 0; - } - if(60.0f == work->unk24) { - HuAudFXPlay(1796); - } - break; - - case 2: - object->trans.y += work->unk10; - if(--work->unk24 == 0) { - work->unk4++; - work->unk24 = work->unk26 = 48; - work->unk28.x = object->trans.x; - work->unk28.y = object->trans.y; - work->unk28.z = object->trans.z; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - work->unk34.x = temp_r28->unk50.x; - work->unk34.y = 250; - work->unk34.z = temp_r28->unk50.z; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - temp_r28->unk0_field3 = 1; - VECSubtract(&work->unk34, &work->unk28, &sp4C); - VECNormalize(&sp4C, &sp4C); - VECScale(&sp4C, &work->unk40, 2000.0f); - work->unk40.y = 300; - VECAdd(&work->unk28, &work->unk40, &work->unk40); - - } - break; - - case 3: - fn_1_71EC(&work->unk28, &sp40, 1.0f-((float)work->unk24/(float)work->unk26)); - VECSubtract(&sp40, &object->trans, &sp4C); - object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); - object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); - object->trans.x = sp40.x; - object->trans.y = sp40.y; - object->trans.z = sp40.z; - if(--work->unk24 == 0) { - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - temp_r28->unk0_field1 = 0; - work->unk4 = 0; - object->work[3] = 0; - Hu3DModelAttrSet(object->model[0], 1); - } - if(work->unk24 == (int)(work->unk26-12.0f)) { - work->unk0 = 0; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - temp_r28->unk68.x = object->trans.x; - temp_r28->unk68.y = object->trans.y; - temp_r28->unk68.z = object->trans.z; - } - break; - } + Work4AA8 *work = object->data; + omObjData **temp_r29; + WorkD0C *temp_r28; + Vec sp4C; + Vec sp40; + switch (work->unk4) { + case 0: + if (object->work[3]) { + work->unk4++; + work->unk24 = work->unk26 = 90; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x; + object->trans.y = work->unk28.y = 2000; + object->trans.z = work->unk28.z = temp_r29[work->unk2]->trans.z - 100; + object->rot.y = 180; + Hu3DModelAttrReset(object->model[0], 1); + } + break; + + case 1: + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + work->unk34.x = temp_r29[work->unk2]->trans.x; + work->unk34.y = 1500; + work->unk34.z = temp_r29[work->unk2]->trans.z; + work->unk40.x = temp_r29[work->unk2]->trans.x; + work->unk40.y = temp_r29[work->unk2]->trans.y; + work->unk40.z = temp_r29[work->unk2]->trans.z; + fn_1_71EC(&work->unk28, &sp40, 1.0f - ((float)work->unk24 / (float)work->unk26)); + VECSubtract(&sp40, &object->trans, &sp4C); + object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); + object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); + object->trans.x = sp40.x; + object->trans.y = sp40.y; + object->trans.z = sp40.z; + if (--work->unk24 == 0) { + work->unk0 = 1; + work->unk4++; + work->unk24 = 90; + work->unk10 = (200.0f - object->trans.y) / work->unk24; + object->rot.x = 0; + } + if (60.0f == work->unk24) { + HuAudFXPlay(1796); + } + break; + + case 2: + object->trans.y += work->unk10; + if (--work->unk24 == 0) { + work->unk4++; + work->unk24 = work->unk26 = 48; + work->unk28.x = object->trans.x; + work->unk28.y = object->trans.y; + work->unk28.z = object->trans.z; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + work->unk34.x = temp_r28->unk50.x; + work->unk34.y = 250; + work->unk34.z = temp_r28->unk50.z; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk0_field3 = 1; + VECSubtract(&work->unk34, &work->unk28, &sp4C); + VECNormalize(&sp4C, &sp4C); + VECScale(&sp4C, &work->unk40, 2000.0f); + work->unk40.y = 300; + VECAdd(&work->unk28, &work->unk40, &work->unk40); + } + break; + + case 3: + fn_1_71EC(&work->unk28, &sp40, 1.0f - ((float)work->unk24 / (float)work->unk26)); + VECSubtract(&sp40, &object->trans, &sp4C); + object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); + object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); + object->trans.x = sp40.x; + object->trans.y = sp40.y; + object->trans.z = sp40.z; + if (--work->unk24 == 0) { + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk0_field1 = 0; + work->unk4 = 0; + object->work[3] = 0; + Hu3DModelAttrSet(object->model[0], 1); + } + if (work->unk24 == (int)(work->unk26 - 12.0f)) { + work->unk0 = 0; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk68.x = object->trans.x; + temp_r28->unk68.y = object->trans.y; + temp_r28->unk68.z = object->trans.z; + } + break; + } } -void fn_1_5B9C(omObjData *object) -{ - -} +void fn_1_5B9C(omObjData *object) { } -s32 lbl_1_data_77A0[10] = { - 0x00460000, - 0x00460001, - 0x00460002, - 0x00460003, - 0x00460004, - 0x00460005, - 0x00460006, - 0x00460007, - 0x00460008, - 0x00460009 -}; +s32 lbl_1_data_77A0[10] = { 0x00460000, 0x00460001, 0x00460002, 0x00460003, 0x00460004, 0x00460005, 0x00460006, 0x00460007, 0x00460008, 0x00460009 }; void fn_1_5CB0(omObjData *object); void fn_1_6520(omObjData *object); void fn_1_5BA0(Process *objman) { - s32 i; - lbl_1_bss_144 = 0; - omMakeGroupEx(objman, 1, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 10, 28, 0, 1, fn_1_5CB0); - } - for(i=0; i<10; i++) { - lbl_1_bss_10[i] = Hu3DModelCreateFile(lbl_1_data_77A0[i]); - Hu3DModelAttrSet(lbl_1_bss_10[i], 1); - } - omAddObjEx(objman, 10, 4, 0, 1, fn_1_6520); + s32 i; + lbl_1_bss_144 = 0; + omMakeGroupEx(objman, 1, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 10, 28, 0, 1, fn_1_5CB0); + } + for (i = 0; i < 10; i++) { + lbl_1_bss_10[i] = Hu3DModelCreateFile(lbl_1_data_77A0[i]); + Hu3DModelAttrSet(lbl_1_bss_10[i], 1); + } + omAddObjEx(objman, 10, 4, 0, 1, fn_1_6520); } -void fn_1_5CAC(void) -{ - -} +void fn_1_5CAC(void) { } -float lbl_1_data_77C8[][2] = { - 0, 0, - 0, -700, - -1400, -2200, - 1400, -2200, - -1400, -3600, - 1400, -3600, - -2800, -5200, - 0, -5200, - 0, -5200, - 2800, -5200, - -2800, -6600, - 0, -6600, - 0, -6600, - 2800, -6600 -}; +float lbl_1_data_77C8[][2] = { 0, 0, 0, -700, -1400, -2200, 1400, -2200, -1400, -3600, 1400, -3600, -2800, -5200, 0, -5200, 0, -5200, 2800, -5200, + -2800, -6600, 0, -6600, 0, -6600, 2800, -6600 }; -s16 lbl_1_data_7838[] = { - 0, 1, -1, -1, - 2, 2, -1, -1, - -1, -1, 3, 3, - 3, 3 -}; +s16 lbl_1_data_7838[] = { 0, 1, -1, -1, 2, 2, -1, -1, -1, -1, 3, 3, 3, 3 }; void fn_1_6068(omObjData *object); void fn_1_5CB0(omObjData *object) { - u16 sp8[6] = { - 4, 7, 5, 8, 6, 9 - }; - char *sp14[10][2] = { - "road0", NULL, - "road1", "bridge1", - "road2", "bridge2", - "road3", NULL, - "road4", NULL, - "road5", NULL, - "road6", NULL, - "road7", NULL, - "road8", NULL, - "road9", NULL - }; - Work5CB0 *work; - s32 i; - s32 temp; - s32 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - omSetStatBit(object, 0x100); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5CB0)*14, MEMORY_DEFAULT_NUM); - object->data = work; - memset(work, 0, sizeof(Work5CB0)*14); - for(i=0; i<100; i++) { - temp_r27 = ((frand8()*3) >> 8)*2; - temp_r25 = ((frand8()*3) >> 8)*2; - temp = sp8[temp_r27]; - sp8[temp_r27] = sp8[temp_r25]; - sp8[temp_r25] = temp; - temp_r27 = (((frand8()*3) >> 8)*2)+1; - temp_r25 = (((frand8()*3) >> 8)*2)+1; - temp = sp8[temp_r27]; - sp8[temp_r27] = sp8[temp_r25]; - sp8[temp_r25] = temp; - } - for(i=0; i<100; i++) { - temp_r27 = ((frand8()*3) >> 8)*2; - temp = sp8[temp_r27+1]; - sp8[temp_r27+1] = sp8[temp_r27]; - sp8[temp_r27] = temp; - } - temp_r24 = 0; - for(i=0; i<14; i++, work++) { - temp_r26 = lbl_1_data_7838[i]; - if(temp_r26 < 0) { - temp_r26 = sp8[temp_r24++]; - } - object->model[i] = Hu3DModelLink(lbl_1_bss_10[temp_r26]); - Hu3DModelPosSet(object->model[i], lbl_1_data_77C8[i][0], 0, lbl_1_data_77C8[i][1]); - Hu3DModelAttrReset(object->model[i], 1); - for(temp=0; temp<2; temp++) { - if(sp14[temp_r26][temp]) { - Hu3DModelShadowMapObjSet(object->model[i], sp14[temp_r26][temp]); - } - } - work->unk0 = temp_r26; - work->unk4.x = lbl_1_data_77C8[i][0]; - work->unk4.y = 0; - work->unk4.z = lbl_1_data_77C8[i][1]; - memcpy(&work->unk10, &lbl_1_data_748C[i], sizeof(StructData748C)); - - } - object->work[0] = lbl_1_bss_144; - lbl_1_bss_144++; - object->func = fn_1_6068; + u16 sp8[6] = { 4, 7, 5, 8, 6, 9 }; + char *sp14[10][2] = { "road0", NULL, "road1", "bridge1", "road2", "bridge2", "road3", NULL, "road4", NULL, "road5", NULL, "road6", NULL, "road7", + NULL, "road8", NULL, "road9", NULL }; + Work5CB0 *work; + s32 i; + s32 temp; + s32 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + omSetStatBit(object, 0x100); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5CB0) * 14, MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Work5CB0) * 14); + for (i = 0; i < 100; i++) { + temp_r27 = ((frand8() * 3) >> 8) * 2; + temp_r25 = ((frand8() * 3) >> 8) * 2; + temp = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r25]; + sp8[temp_r25] = temp; + temp_r27 = (((frand8() * 3) >> 8) * 2) + 1; + temp_r25 = (((frand8() * 3) >> 8) * 2) + 1; + temp = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r25]; + sp8[temp_r25] = temp; + } + for (i = 0; i < 100; i++) { + temp_r27 = ((frand8() * 3) >> 8) * 2; + temp = sp8[temp_r27 + 1]; + sp8[temp_r27 + 1] = sp8[temp_r27]; + sp8[temp_r27] = temp; + } + temp_r24 = 0; + for (i = 0; i < 14; i++, work++) { + temp_r26 = lbl_1_data_7838[i]; + if (temp_r26 < 0) { + temp_r26 = sp8[temp_r24++]; + } + object->model[i] = Hu3DModelLink(lbl_1_bss_10[temp_r26]); + Hu3DModelPosSet(object->model[i], lbl_1_data_77C8[i][0], 0, lbl_1_data_77C8[i][1]); + Hu3DModelAttrReset(object->model[i], 1); + for (temp = 0; temp < 2; temp++) { + if (sp14[temp_r26][temp]) { + Hu3DModelShadowMapObjSet(object->model[i], sp14[temp_r26][temp]); + } + } + work->unk0 = temp_r26; + work->unk4.x = lbl_1_data_77C8[i][0]; + work->unk4.y = 0; + work->unk4.z = lbl_1_data_77C8[i][1]; + memcpy(&work->unk10, &lbl_1_data_748C[i], sizeof(StructData748C)); + } + object->work[0] = lbl_1_bss_144; + lbl_1_bss_144++; + object->func = fn_1_6068; } void fn_1_6120(omObjData *object); void fn_1_6068(omObjData *object) { - s32 i; - for(i=0; i<14; i++) { - if(object->work[0] == 0 && i == 10) { - Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[0]); - } else { - Hu3DModelCameraSet(object->model[i], 0); - } - } - if(fn_1_374() == 3) { - object->func = fn_1_6120; - } + s32 i; + for (i = 0; i < 14; i++) { + if (object->work[0] == 0 && i == 10) { + Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[0]); + } + else { + Hu3DModelCameraSet(object->model[i], 0); + } + } + if (fn_1_374() == 3) { + object->func = fn_1_6120; + } } void fn_1_6120(omObjData *object) { - s32 i; - WorkD0C *temp_r29; - omObjData **temp_r28; - Work5CB0 *work = object->data; - s16 sp8[14]; - for(i=0; i<14; i++) { - sp8[i] = 0; - } - temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r29 = temp_r28[object->work[0]]->data; - lbl_1_bss_C = &work[temp_r29->unk44].unk10; - sp8[temp_r29->unk44] |= lbl_1_data_75E0[object->work[0]]; - if(lbl_1_bss_C->unk4 >= 0) { - sp8[lbl_1_bss_C->unk4] |= lbl_1_data_75E0[object->work[0]]; - } - for(i=0; iunk8; i++) { - sp8[lbl_1_bss_C->unkC[i]] |= lbl_1_data_75E0[object->work[0]]; - } - for(i=0; i<14; i++) { - Hu3DModelCameraSet(object->model[i], sp8[i]); - } + s32 i; + WorkD0C *temp_r29; + omObjData **temp_r28; + Work5CB0 *work = object->data; + s16 sp8[14]; + for (i = 0; i < 14; i++) { + sp8[i] = 0; + } + temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r29 = temp_r28[object->work[0]]->data; + lbl_1_bss_C = &work[temp_r29->unk44].unk10; + sp8[temp_r29->unk44] |= lbl_1_data_75E0[object->work[0]]; + if (lbl_1_bss_C->unk4 >= 0) { + sp8[lbl_1_bss_C->unk4] |= lbl_1_data_75E0[object->work[0]]; + } + for (i = 0; i < lbl_1_bss_C->unk8; i++) { + sp8[lbl_1_bss_C->unkC[i]] |= lbl_1_data_75E0[object->work[0]]; + } + for (i = 0; i < 14; i++) { + Hu3DModelCameraSet(object->model[i], sp8[i]); + } } s32 fn_1_62E0(float arg0) { - s32 i; - for(i=0; i<5; i++) { - if(arg0 > lbl_1_data_75CC[i]) { - break; - } - } - return i; + s32 i; + for (i = 0; i < 5; i++) { + if (arg0 > lbl_1_data_75CC[i]) { + break; + } + } + return i; } s32 fn_1_6328(omObjData *object) { - WorkD0C *work = object->data; - omObjData **temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - Work5CB0 *temp_r29 = temp_r28[work->unk2]->data; - s32 i; - ModelData *temp_r26; - s32 temp_r25; - float temp_f31; - float temp_f30; - lbl_1_bss_8 = &temp_r29[work->unk44].unk10; - if(lbl_1_bss_8->unk8 > 0 && work->unk46 == temp_r29[lbl_1_bss_8->unkC[0]].unk10.unk0) { - temp_r25 = -1; - temp_f30 = 9999; - for(i=0; iunk8; i++) { - temp_r26 = &Hu3DData[temp_r28[work->unk2]->model[lbl_1_bss_8->unkC[i]]]; - temp_f31 = fabs(object->trans.x-temp_r26->pos.x); - if(temp_f31 < temp_f30) { - temp_f30 = temp_f31; - temp_r25 = lbl_1_bss_8->unkC[i]; - } - } - (void)i; - return temp_r25; - } else { - if(work->unk46 == temp_r29[lbl_1_bss_8->unk4].unk10.unk0) { - return lbl_1_bss_8->unk4; - } else { - return -1; - } - } + WorkD0C *work = object->data; + omObjData **temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + Work5CB0 *temp_r29 = temp_r28[work->unk2]->data; + s32 i; + ModelData *temp_r26; + s32 temp_r25; + float temp_f31; + float temp_f30; + lbl_1_bss_8 = &temp_r29[work->unk44].unk10; + if (lbl_1_bss_8->unk8 > 0 && work->unk46 == temp_r29[lbl_1_bss_8->unkC[0]].unk10.unk0) { + temp_r25 = -1; + temp_f30 = 9999; + for (i = 0; i < lbl_1_bss_8->unk8; i++) { + temp_r26 = &Hu3DData[temp_r28[work->unk2]->model[lbl_1_bss_8->unkC[i]]]; + temp_f31 = fabs(object->trans.x - temp_r26->pos.x); + if (temp_f31 < temp_f30) { + temp_f30 = temp_f31; + temp_r25 = lbl_1_bss_8->unkC[i]; + } + } + (void)i; + return temp_r25; + } + else { + if (work->unk46 == temp_r29[lbl_1_bss_8->unk4].unk10.unk0) { + return lbl_1_bss_8->unk4; + } + else { + return -1; + } + } } -s32 lbl_1_data_78A0[8] = { - 0x0046000A, - 0x0046000B, - 0x0046000C, - 0x0046000D, - 0x0046000E, - 0x0046000F, - 0x00460010, - 0x00460011 -}; +s32 lbl_1_data_78A0[8] = { 0x0046000A, 0x0046000B, 0x0046000C, 0x0046000D, 0x0046000E, 0x0046000F, 0x00460010, 0x00460011 }; -Vec lbl_1_data_78C0[4] = { - { -2800, 0, -7700 }, - { 0, 0, -7700 }, - { 0, 0, -7700 }, - { 2800, 0, -7700 } -}; +Vec lbl_1_data_78C0[4] = { { -2800, 0, -7700 }, { 0, 0, -7700 }, { 0, 0, -7700 }, { 2800, 0, -7700 } }; void fn_1_661C(omObjData *object); void fn_1_6520(omObjData *object) { - s32 i; - omSetStatBit(object, 0x100); - for(i=0; imdlcnt; i++) { - object->model[i] = Hu3DModelCreateFile(lbl_1_data_78A0[GWPlayerCfg[i].character]); - Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[i]); - Hu3DModelClusterAttrSet(object->model[i], 0, 0xC0000001); - Hu3DModelAttrSet(object->model[i], 1); - } - object->func = fn_1_661C; + s32 i; + omSetStatBit(object, 0x100); + for (i = 0; i < object->mdlcnt; i++) { + object->model[i] = Hu3DModelCreateFile(lbl_1_data_78A0[GWPlayerCfg[i].character]); + Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[i]); + Hu3DModelClusterAttrSet(object->model[i], 0, 0xC0000001); + Hu3DModelAttrSet(object->model[i], 1); + } + object->func = fn_1_661C; } void fn_1_66BC(omObjData *object); void fn_1_661C(omObjData *object) { - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelPosSet(object->model[0], -2800, 0, -7700); - if(fn_1_374() == 3) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = fn_1_66BC; - } + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelPosSet(object->model[0], -2800, 0, -7700); + if (fn_1_374() == 3) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_1_66BC; + } } void fn_1_66BC(omObjData *object) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - for(i=0; i<4; i++) { - WorkD0C *work = objList[i]->data; - if(work->unk44 >= 10 && work->unk44 <= 13) { - s32 goalNo = work->unk44-10; - Hu3DModelPosSet(object->model[i], lbl_1_data_78C0[goalNo].x, lbl_1_data_78C0[goalNo].y, lbl_1_data_78C0[goalNo].z); - Hu3DModelAttrReset(object->model[i], 1); - } else { - Hu3DModelAttrSet(object->model[i], 1); - } - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for (i = 0; i < 4; i++) { + WorkD0C *work = objList[i]->data; + if (work->unk44 >= 10 && work->unk44 <= 13) { + s32 goalNo = work->unk44 - 10; + Hu3DModelPosSet(object->model[i], lbl_1_data_78C0[goalNo].x, lbl_1_data_78C0[goalNo].y, lbl_1_data_78C0[goalNo].z); + Hu3DModelAttrReset(object->model[i], 1); + } + else { + Hu3DModelAttrSet(object->model[i], 1); + } + } } s32 fn_1_67B4(Vec *arg0, s32 arg1, s32 arg2, Vec *arg3, Vec *arg4) { - omObjData **temp_r21 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - Work5CB0 *temp_r28 = temp_r21[arg1]->data; - s32 i; - s32 temp_r25; - - Vec sp34; - VECSubtract(arg0, &temp_r28[arg2].unk4, &sp34); - temp_r25 = temp_r28[arg2].unk0; - for(i=0; ix*sp28.x)+(sp34.y*sp28.y)-(temp_r29->y*sp28.y)+(sp34.z*sp28.z)-(temp_r29->z*sp28.z))/temp_f30; - arg3->x = (temp_r31[0].x+temp_r28[arg2].unk4.x)+(temp_f31*(temp_r31[1].x-temp_r31[0].x)); - arg3->y = (temp_r31[0].y+temp_r28[arg2].unk4.y)+(temp_f31*(temp_r31[1].y-temp_r31[0].y)); - arg3->z = (temp_r31[0].z+temp_r28[arg2].unk4.z)+(temp_f31*(temp_r31[1].z-temp_r31[0].z)); - arg4->x = (temp_r30[0].x+temp_r28[arg2].unk4.x)+(temp_f31*(temp_r30[1].x-temp_r30[0].x)); - arg4->y = (temp_r30[0].y+temp_r28[arg2].unk4.y)+(temp_f31*(temp_r30[1].y-temp_r30[0].y)); - arg4->z = (temp_r30[0].z+temp_r28[arg2].unk4.z)+(temp_f31*(temp_r30[1].z-temp_r30[0].z)); - return 1; - } - } - return 0; + omObjData **temp_r21 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + Work5CB0 *temp_r28 = temp_r21[arg1]->data; + s32 i; + s32 temp_r25; + + Vec sp34; + VECSubtract(arg0, &temp_r28[arg2].unk4, &sp34); + temp_r25 = temp_r28[arg2].unk0; + for (i = 0; i < lbl_1_data_73B8[temp_r25]; i++) { + Vec *temp_r29 = (lbl_1_data_73CC[temp_r25])[i * 3]; + Vec *temp_r31 = *((&lbl_1_data_73CC[temp_r25][i * 3]) + 1); + Vec *temp_r30 = *((&lbl_1_data_73CC[temp_r25][i * 3]) + 2); + s32 j; + for (j = 0; j < lbl_1_data_73F4[temp_r25][i] - 1; j++, temp_r29++, temp_r31++, temp_r30++) { + Vec sp28; + Vec sp1C; + Vec sp10; + float temp_f31; + float temp_f30; + VECSubtract(&temp_r29[1], &temp_r29[0], &sp28); + VECSubtract(&sp34, &temp_r29[1], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r31[1], &temp_r29[1], &sp28); + VECSubtract(&sp34, &temp_r31[1], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r31[0], &temp_r31[1], &sp28); + VECSubtract(&sp34, &temp_r31[0], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r29[0], &temp_r31[0], &sp28); + VECSubtract(&sp34, &temp_r29[0], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r29[1], &temp_r29[0], &sp28); + temp_f30 = VECMag2Point(&sp28); + if (0.0f == temp_f30) { + continue; + } + temp_f31 = ((sp34.x * sp28.x) - (temp_r29->x * sp28.x) + (sp34.y * sp28.y) - (temp_r29->y * sp28.y) + (sp34.z * sp28.z) + - (temp_r29->z * sp28.z)) + / temp_f30; + arg3->x = (temp_r31[0].x + temp_r28[arg2].unk4.x) + (temp_f31 * (temp_r31[1].x - temp_r31[0].x)); + arg3->y = (temp_r31[0].y + temp_r28[arg2].unk4.y) + (temp_f31 * (temp_r31[1].y - temp_r31[0].y)); + arg3->z = (temp_r31[0].z + temp_r28[arg2].unk4.z) + (temp_f31 * (temp_r31[1].z - temp_r31[0].z)); + arg4->x = (temp_r30[0].x + temp_r28[arg2].unk4.x) + (temp_f31 * (temp_r30[1].x - temp_r30[0].x)); + arg4->y = (temp_r30[0].y + temp_r28[arg2].unk4.y) + (temp_f31 * (temp_r30[1].y - temp_r30[0].y)); + arg4->z = (temp_r30[0].z + temp_r28[arg2].unk4.z) + (temp_f31 * (temp_r30[1].z - temp_r30[0].z)); + return 1; + } + } + return 0; } void fn_1_6CD0(s32 arg0, s32 arg1); @@ -1797,250 +1661,253 @@ void fn_1_6DEC(omObjData *object); void fn_1_6C08(omObjData *object) { - fn_1_6CD0(0, 0); - object->work[3] = espEntry(0x460015, 32768, 0); - espPosSet(object->work[3], 288, 240); - espDispOff(object->work[3]); - espScaleSet(object->work[3], 2.0f, 2.0f); - espColorSet(object->work[3], 0, 0, 0); - object->func = fn_1_6DEC; + fn_1_6CD0(0, 0); + object->work[3] = espEntry(0x460015, 32768, 0); + espPosSet(object->work[3], 288, 240); + espDispOff(object->work[3]); + espScaleSet(object->work[3], 2.0f, 2.0f); + espColorSet(object->work[3], 0, 0, 0); + object->func = fn_1_6DEC; } void fn_1_6CD0(s32 arg0, s32 arg1) { - CZoomM[arg0] = lbl_1_data_741C[arg1].zoom; - CenterM[arg0].x = lbl_1_data_741C[arg1].pos.x; - CenterM[arg0].y = lbl_1_data_741C[arg1].pos.y; - CenterM[arg0].z = lbl_1_data_741C[arg1].pos.z; - CRotM[arg0].x = lbl_1_data_741C[arg1].rot.x; - CRotM[arg0].y = lbl_1_data_741C[arg1].rot.y; - CRotM[arg0].z = lbl_1_data_741C[arg1].rot.z; + CZoomM[arg0] = lbl_1_data_741C[arg1].zoom; + CenterM[arg0].x = lbl_1_data_741C[arg1].pos.x; + CenterM[arg0].y = lbl_1_data_741C[arg1].pos.y; + CenterM[arg0].z = lbl_1_data_741C[arg1].pos.z; + CRotM[arg0].x = lbl_1_data_741C[arg1].rot.x; + CRotM[arg0].y = lbl_1_data_741C[arg1].rot.y; + CRotM[arg0].z = lbl_1_data_741C[arg1].rot.z; } void fn_1_6DEC(omObjData *object) { - CameraData *camera = &Hu3DCamera[0]; - s32 i; - switch(object->work[0]) { - case 0: - if(fn_1_374() <= 3) { - CRotM[0].y -= 10.0f/60.0f; - } - if(fn_1_374() == 3) { - Hu3DCameraCreate(15); - Hu3DCameraPerspectiveSet(15, 10, 20, 25000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); - Hu3DCameraViewportSet(2, 320, 0, 320, 240, 0, 1); - Hu3DCameraViewportSet(4, 0, 240, 320, 240, 0, 1); - Hu3DCameraViewportSet(8, 320, 240, 320, 240, 0, 1); - Hu3DCameraScissorSet(1, 0, 0, 320, 240); - Hu3DCameraScissorSet(2, 320, 0, 640, 240); - Hu3DCameraScissorSet(4, 0, 240, 320, 480); - Hu3DCameraScissorSet(8, 320, 240, 640, 480); - for(i=0; i<4; i++) { - fn_1_6CD0(i, 1); - } - lbl_1_bss_168->work[0] = 4; - object->work[0]++; - espDispOn(object->work[3]); - } - break; - } + CameraData *camera = &Hu3DCamera[0]; + s32 i; + switch (object->work[0]) { + case 0: + if (fn_1_374() <= 3) { + CRotM[0].y -= 10.0f / 60.0f; + } + if (fn_1_374() == 3) { + Hu3DCameraCreate(15); + Hu3DCameraPerspectiveSet(15, 10, 20, 25000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(2, 320, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(4, 0, 240, 320, 240, 0, 1); + Hu3DCameraViewportSet(8, 320, 240, 320, 240, 0, 1); + Hu3DCameraScissorSet(1, 0, 0, 320, 240); + Hu3DCameraScissorSet(2, 320, 0, 640, 240); + Hu3DCameraScissorSet(4, 0, 240, 320, 480); + Hu3DCameraScissorSet(8, 320, 240, 640, 480); + for (i = 0; i < 4; i++) { + fn_1_6CD0(i, 1); + } + lbl_1_bss_168->work[0] = 4; + object->work[0]++; + espDispOn(object->work[3]); + } + break; + } } float fn_1_7190(float arg0, float arg1, float arg2, float arg3) { - float temp_f31 = 1.0f-arg3; - return (arg0*(temp_f31*temp_f31))+((2.0f*temp_f31)*arg3*arg1)+(arg2*(arg3*arg3)); - + float temp_f31 = 1.0f - arg3; + return (arg0 * (temp_f31 * temp_f31)) + ((2.0f * temp_f31) * arg3 * arg1) + (arg2 * (arg3 * arg3)); } void fn_1_71EC(Vec *arg0, Vec *arg1, float arg2) { - arg1->x = fn_1_7190(arg0[0].x, arg0[1].x, arg0[2].x, arg2); - arg1->y = fn_1_7190(arg0[0].y, arg0[1].y, arg0[2].y, arg2); - arg1->z = fn_1_7190(arg0[0].z, arg0[1].z, arg0[2].z, arg2); + arg1->x = fn_1_7190(arg0[0].x, arg0[1].x, arg0[2].x, arg2); + arg1->y = fn_1_7190(arg0[0].y, arg0[1].y, arg0[2].y, arg2); + arg1->z = fn_1_7190(arg0[0].z, arg0[1].z, arg0[2].z, arg2); } void fn_1_7578(s16 layer); void fn_1_73F4(Process *objman) { - s32 i; - s32 dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; - lbl_1_bss_128 = objman; - for(i=0; i<3; i++) { - lbl_1_bss_11C[i] = HuMemDirectMallocNum(HEAP_SYSTEM, dataSize, MEMORY_DEFAULT_NUM); - memset(lbl_1_bss_11C[i], 0, dataSize); - lbl_1_bss_D4[i].x = Hu3DShadowData.unk_20.x; - lbl_1_bss_D4[i].y = Hu3DShadowData.unk_20.y; - lbl_1_bss_D4[i].z = Hu3DShadowData.unk_20.z; - lbl_1_bss_F8[i].x = Hu3DShadowData.unk_14.x; - lbl_1_bss_F8[i].y = Hu3DShadowData.unk_14.y; - lbl_1_bss_F8[i].z = Hu3DShadowData.unk_14.z; - } - Hu3DLayerHookSet(0, fn_1_7578); - + s32 i; + s32 dataSize = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + lbl_1_bss_128 = objman; + for (i = 0; i < 3; i++) { + lbl_1_bss_11C[i] = HuMemDirectMallocNum(HEAP_SYSTEM, dataSize, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_11C[i], 0, dataSize); + lbl_1_bss_D4[i].x = Hu3DShadowData.unk_20.x; + lbl_1_bss_D4[i].y = Hu3DShadowData.unk_20.y; + lbl_1_bss_D4[i].z = Hu3DShadowData.unk_20.z; + lbl_1_bss_F8[i].x = Hu3DShadowData.unk_14.x; + lbl_1_bss_F8[i].y = Hu3DShadowData.unk_14.y; + lbl_1_bss_F8[i].z = Hu3DShadowData.unk_14.z; + } + Hu3DLayerHookSet(0, fn_1_7578); } void fn_1_77E4(s32 shadowNo); void fn_1_7578(s16 layer) { - omObjData **playerList; - s32 i; - s32 dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; - if(fn_1_374() < 3) { - return; - } - if(Hu3DCameraNo == 0) { - WorkD0C *playerWork; - GXDrawDone(); - playerList = omGetGroupMemberListEx(lbl_1_bss_128, 0); - if(Hu3DData[playerList[0]->model[0]].attr & 0x4) { - Hu3DModelShadowReset(playerList[0]->model[0]); - } - for(i=0; i<3; i++) { - playerWork = playerList[i+1]->data; - if(playerWork->unk0_field3) { - Hu3DModelShadowSet(playerList[i+1]->model[0]); - } - fn_1_77E4(i); - GXDrawDone(); - DCFlushRangeNoSync(lbl_1_bss_11C[i], dataSize); - if(playerWork->unk0_field3) { - Hu3DModelShadowReset(playerList[i+1]->model[0]); - } - } - playerWork = playerList[0]->data; - if(playerWork->unk0_field3) { - Hu3DModelShadowSet(playerList[0]->model[0]); - } else { - memset(Hu3DShadowData.unk_04, 0, dataSize); - DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); - } - if(Hu3DShadowCamBit < 1) { - Hu3DShadowCamBit = 1; - } - } else { - MTXCopy(lbl_1_bss_44[Hu3DCameraNo-1], Hu3DShadowData.unk_38); - memcpy(Hu3DShadowData.unk_04, lbl_1_bss_11C[Hu3DCameraNo-1], dataSize); - DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); - } + omObjData **playerList; + s32 i; + s32 dataSize = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + if (fn_1_374() < 3) { + return; + } + if (Hu3DCameraNo == 0) { + WorkD0C *playerWork; + GXDrawDone(); + playerList = omGetGroupMemberListEx(lbl_1_bss_128, 0); + if (Hu3DData[playerList[0]->model[0]].attr & 0x4) { + Hu3DModelShadowReset(playerList[0]->model[0]); + } + for (i = 0; i < 3; i++) { + playerWork = playerList[i + 1]->data; + if (playerWork->unk0_field3) { + Hu3DModelShadowSet(playerList[i + 1]->model[0]); + } + fn_1_77E4(i); + GXDrawDone(); + DCFlushRangeNoSync(lbl_1_bss_11C[i], dataSize); + if (playerWork->unk0_field3) { + Hu3DModelShadowReset(playerList[i + 1]->model[0]); + } + } + playerWork = playerList[0]->data; + if (playerWork->unk0_field3) { + Hu3DModelShadowSet(playerList[0]->model[0]); + } + else { + memset(Hu3DShadowData.unk_04, 0, dataSize); + DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); + } + if (Hu3DShadowCamBit < 1) { + Hu3DShadowCamBit = 1; + } + } + else { + MTXCopy(lbl_1_bss_44[Hu3DCameraNo - 1], Hu3DShadowData.unk_38); + memcpy(Hu3DShadowData.unk_04, lbl_1_bss_11C[Hu3DCameraNo - 1], dataSize); + DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); + } } void fn_1_77E4(s32 shadowNo) { - ModelData *model; - s32 dataSize; - s16 i; - Mtx transform[3]; - Mtx44 proj; - GXColor clearColor = { 0, 0, 0, 0 }; - - Hu3DDrawPreInit(); - GXSetCopyClear(clearColor, 0xFFFFFF); - MTXPerspective(proj, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); - GXSetProjection(proj, GX_PERSPECTIVE); - if(Hu3DShadowData.unk_02 <= 240) { - GXSetScissor(2, 2, (Hu3DShadowData.unk_02*2)-4, (Hu3DShadowData.unk_02*2)-4); - GXSetViewport(0, 0, Hu3DShadowData.unk_02*2, Hu3DShadowData.unk_02*2, 0, 1); - dataSize = (Hu3DShadowData.unk_02/2)*(Hu3DShadowData.unk_02/2); - } else { - GXSetScissor(1, 1, Hu3DShadowData.unk_02-2, Hu3DShadowData.unk_02-2); - GXSetViewport(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0, 1); - dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; - } - MTXLookAt(Hu3DCameraMtx, &lbl_1_bss_F8[shadowNo], &Hu3DShadowData.unk_2C, &lbl_1_bss_D4[shadowNo]); - MTXCopy(Hu3DCameraMtx, lbl_1_bss_44[shadowNo]); - model = &Hu3DData[0]; - shadowModelDrawF = 1; - GXInvalidateTexAll(); - GXSetFog(0, 0, 0, 0, 0, BGColor); - for(i=0; i<512; i++, model++) { - s32 clusterF; - if(model->hsfData && (model->attr & 0x4) && (model->attr & 0x1) == 0 && (model->attr & 0x8000) == 0) { - if(model->attr & 0x8) { - clusterF = 0; - if(model->unk_08 != -1) { - Hu3DMotionExec(i, model->unk_08, model->unk_64, 0); - } - if(model->unk_0C != -1) { - Hu3DSubMotionExec(i); - } - if(model->unk_0A != -1) { - Hu3DMotionExec(i, model->unk_0A, model->unk_74, 1); - } - if(model->attr & 0x400) { - ClusterMotionExec(model); - clusterF = 1; - } - if(model->unk_0E != -1) { - if(model->unk_08 == -1) { - Hu3DMotionExec(i, model->unk_0E, model->unk_94, 0); - } else { - Hu3DMotionExec(i, model->unk_0E, model->unk_94, 1); - } - } - if((model->attr & 0x90) == 0 || (model->motion_attr & 0x40000002) == 0) { - clusterF = 1; - InitVtxParm(model->hsfData); - if(model->unk_0E != -1) { - ShapeProc(model->hsfData); - } - if(model->attr & 0x400) { - ClusterProc(model); - } - if(model->hsfData->cenvCnt) { - EnvelopeProc(model->hsfData); - } - PPCSync(); - } - model->attr |= 0x800; - } - mtxRot(transform[0], model->rot.x, model->rot.y, model->rot.z); - MTXScale(transform[2], model->scale.x, model->scale.y, model->scale.z); - MTXConcat(transform[0], transform[2], transform[2]); - mtxTransCat(transform[2], model->pos.x, model->pos.y, model->pos.z); - MTXConcat(Hu3DCameraMtx, transform[2], transform[1]); - MTXConcat(transform[1], model->unk_F0, transform[1]); - Hu3DDraw(model, transform[1], &model->scale); - } - } - Hu3DDrawPost(); - shadowModelDrawF = 0; - if(Hu3DShadowData.unk_02 <= 240) { - GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02*2, Hu3DShadowData.unk_02*2); - GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_TRUE); - } else { - GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); - GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_FALSE); - } - GXCopyTex(lbl_1_bss_11C[shadowNo], GX_TRUE); - GXSetViewport(0, 0, RenderMode->fbWidth, RenderMode->xfbHeight, 0, 1); - GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); - MTXOrtho(proj, 0, 1, 0, 1, 0, 1); - GXSetProjection(proj, GX_ORTHOGRAPHIC); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); - GXSetTevColor(GX_TEVREG0, BGColor); - GXSetNumTexGens(0); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumChans(0); - MTXIdentity(transform[1]); - GXLoadPosMtxImm(transform[1], GX_PNMTX0); - GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3u8(0, 0, 0); - GXPosition3u8(1, 0, 0); - GXPosition3u8(1, 1, 0); - GXPosition3u8(0, 1, 0); + ModelData *model; + s32 dataSize; + s16 i; + Mtx transform[3]; + Mtx44 proj; + GXColor clearColor = { 0, 0, 0, 0 }; + + Hu3DDrawPreInit(); + GXSetCopyClear(clearColor, 0xFFFFFF); + MTXPerspective(proj, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); + GXSetProjection(proj, GX_PERSPECTIVE); + if (Hu3DShadowData.unk_02 <= 240) { + GXSetScissor(2, 2, (Hu3DShadowData.unk_02 * 2) - 4, (Hu3DShadowData.unk_02 * 2) - 4); + GXSetViewport(0, 0, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2, 0, 1); + dataSize = (Hu3DShadowData.unk_02 / 2) * (Hu3DShadowData.unk_02 / 2); + } + else { + GXSetScissor(1, 1, Hu3DShadowData.unk_02 - 2, Hu3DShadowData.unk_02 - 2); + GXSetViewport(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0, 1); + dataSize = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + } + MTXLookAt(Hu3DCameraMtx, &lbl_1_bss_F8[shadowNo], &Hu3DShadowData.unk_2C, &lbl_1_bss_D4[shadowNo]); + MTXCopy(Hu3DCameraMtx, lbl_1_bss_44[shadowNo]); + model = &Hu3DData[0]; + shadowModelDrawF = 1; + GXInvalidateTexAll(); + GXSetFog(0, 0, 0, 0, 0, BGColor); + for (i = 0; i < 512; i++, model++) { + s32 clusterF; + if (model->hsfData && (model->attr & 0x4) && (model->attr & 0x1) == 0 && (model->attr & 0x8000) == 0) { + if (model->attr & 0x8) { + clusterF = 0; + if (model->unk_08 != -1) { + Hu3DMotionExec(i, model->unk_08, model->unk_64, 0); + } + if (model->unk_0C != -1) { + Hu3DSubMotionExec(i); + } + if (model->unk_0A != -1) { + Hu3DMotionExec(i, model->unk_0A, model->unk_74, 1); + } + if (model->attr & 0x400) { + ClusterMotionExec(model); + clusterF = 1; + } + if (model->unk_0E != -1) { + if (model->unk_08 == -1) { + Hu3DMotionExec(i, model->unk_0E, model->unk_94, 0); + } + else { + Hu3DMotionExec(i, model->unk_0E, model->unk_94, 1); + } + } + if ((model->attr & 0x90) == 0 || (model->motion_attr & 0x40000002) == 0) { + clusterF = 1; + InitVtxParm(model->hsfData); + if (model->unk_0E != -1) { + ShapeProc(model->hsfData); + } + if (model->attr & 0x400) { + ClusterProc(model); + } + if (model->hsfData->cenvCnt) { + EnvelopeProc(model->hsfData); + } + PPCSync(); + } + model->attr |= 0x800; + } + mtxRot(transform[0], model->rot.x, model->rot.y, model->rot.z); + MTXScale(transform[2], model->scale.x, model->scale.y, model->scale.z); + MTXConcat(transform[0], transform[2], transform[2]); + mtxTransCat(transform[2], model->pos.x, model->pos.y, model->pos.z); + MTXConcat(Hu3DCameraMtx, transform[2], transform[1]); + MTXConcat(transform[1], model->unk_F0, transform[1]); + Hu3DDraw(model, transform[1], &model->scale); + } + } + Hu3DDrawPost(); + shadowModelDrawF = 0; + if (Hu3DShadowData.unk_02 <= 240) { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_TRUE); + } + else { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_FALSE); + } + GXCopyTex(lbl_1_bss_11C[shadowNo], GX_TRUE); + GXSetViewport(0, 0, RenderMode->fbWidth, RenderMode->xfbHeight, 0, 1); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + MTXOrtho(proj, 0, 1, 0, 1, 0, 1); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + MTXIdentity(transform[1]); + GXLoadPosMtxImm(transform[1], GX_PNMTX0); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3u8(0, 0, 0); + GXPosition3u8(1, 0, 0); + GXPosition3u8(1, 1, 0); + GXPosition3u8(0, 1, 0); } diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index a8b56af9..0ac4613e 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -1,28 +1,28 @@ #include "REL/m440Dll.h" -#include "rel_sqrt_consts.h" -#include "math.h" #include "ext_math.h" -#include "string.h" +#include "game/audio.h" #include "game/frand.h" #include "game/hsfdraw.h" #include "game/hsfmotion.h" -#include "game/wipe.h" -#include "game/audio.h" -#include "game/objsub.h" #include "game/minigame_seq.h" -#include "game/sprite.h" -#include "game/printfunc.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" +#include "string.h" // bss -omObjData* lbl_1_bss_6C; -omObjData* lbl_1_bss_68; -unkStruct6* lbl_1_bss_64; +omObjData *lbl_1_bss_6C; +omObjData *lbl_1_bss_68; +unkStruct6 *lbl_1_bss_64; s16 lbl_1_bss_60; Mtx lbl_1_bss_30; s16 lbl_1_bss_2C; -void* lbl_1_bss_28; +void *lbl_1_bss_28; u32 lbl_1_bss_24; s16 lbl_1_bss_10[10]; s16 lbl_1_bss_E; @@ -42,10 +42,7 @@ s16 lbl_1_data_14[6] = { 1, 1, 1, 1, 1 }; Vec lbl_1_data_20 = { 0.0f, 0.0f, 0.0f }; Vec lbl_1_data_2C = { 800.0f, 1300.0f, 1000.0f }; Vec lbl_1_data_38 = { 0.0f, 0.0f, 0.0f }; -unkStruct7 lbl_1_data_44 = { - 0xFF, 0xFF, 0xFF, 0xFF, - 10.0f, 45.0f, 0.0f -}; +unkStruct7 lbl_1_data_44 = { 0xFF, 0xFF, 0xFF, 0xFF, 10.0f, 45.0f, 0.0f }; Vec lbl_1_data_54 = { 1300.0f, 2500.0f, 1300.0f }; Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_6C = { 0.0f, 0.0f, -500.0f }; @@ -55,10 +52,11 @@ unkStruct lbl_1_data_78[3] = { { 1040.0f, { 200.0f, 21.0f, 0.0f }, { -6.0f, 0.0f, 0.0f } }, }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ Vec sp8; - LightData* var_r30; - Process* var_r31; + LightData *var_r30; + Process *var_r31; Hu3DLightAllKill(); lbl_1_bss_E = Hu3DGLightCreateV(&lbl_1_data_2C, &lbl_1_data_38, &lbl_1_data_44.unk0); @@ -91,14 +89,16 @@ void ObjectSetup(void) { fn_1_AE08(var_r31); } -void fn_1_3C4(omObjData* object) { +void fn_1_3C4(omObjData *object) +{ if ((omSysExitReq != 0) || (lbl_1_bss_0 != 0)) { WipeCreate(2, 0, 0x3C); object->func = &fn_1_434; } } -void fn_1_434(omObjData* object) { +void fn_1_434(omObjData *object) +{ if ((WipeStatGet() == 0) && (MGSeqDoneCheck() != 0)) { HuMemDirectFree(lbl_1_bss_64); fn_1_9AB0(lbl_1_bss_10[0]); @@ -108,7 +108,8 @@ void fn_1_434(omObjData* object) { } } -s32 fn_1_4A4(void) { +s32 fn_1_4A4(void) +{ f32 var_f31; unkStruct *var_r31; s32 var_r30; @@ -122,7 +123,7 @@ s32 fn_1_4A4(void) { var_f31 = 1.0f; var_r30 = 1; } - + var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); @@ -134,7 +135,8 @@ s32 fn_1_4A4(void) { return var_r30; } -s32 fn_1_6C8(void) { +s32 fn_1_6C8(void) +{ f32 var_f31; unkStruct *var_r31; s32 var_r30; @@ -148,7 +150,7 @@ s32 fn_1_6C8(void) { var_f31 = 1.0f; var_r30 = 1; } - + var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); @@ -160,38 +162,40 @@ s32 fn_1_6C8(void) { return var_r30; } -void fn_1_8F0(omObjData* arg0) { +void fn_1_8F0(omObjData *arg0) +{ s16 var_r30; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; AnimData *anim; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, 0x10000000); - temp_r31 = (unkStruct2*)arg0->data; + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, MEMORY_DEFAULT_NUM); + temp_r31 = (unkStruct2 *)arg0->data; temp_r31->unk0 = 1; temp_r31->unk4 = -1; temp_r31->unk8 = -1; temp_r31->unk6 = 0x12C; temp_r31->unkA = 0; temp_r31->unkC = -1; - + for (var_r30 = 1; var_r30 < 4; var_r30++) { - lbl_1_bss_10[var_r30] = Hu3DModelCreate(HuDataSelHeapReadNum(0x47000A, 0x10000000, HEAP_DATA)); + lbl_1_bss_10[var_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x0A)); Hu3DModelAttrSet(lbl_1_bss_10[var_r30], 1); Hu3DModelAttrSet(lbl_1_bss_10[var_r30], 0x40000002); Hu3DModelLayerSet(lbl_1_bss_10[var_r30], 7); Hu3DModelScaleSet(lbl_1_bss_10[var_r30], 3.0f, 3.0f, 3.0f); } - - anim = HuSprAnimRead(HuDataReadNum(0x47000B, 0x10000000)); + + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M440, 0x0B), MEMORY_DEFAULT_NUM)); lbl_1_bss_10[0] = fn_1_956C(anim, 0x40, 50.0f, 0x40, 0x40); fn_1_9B94(lbl_1_bss_10[0], fn_1_2240); Hu3DModelLayerSet(lbl_1_bss_10[0], 7); arg0->func = &fn_1_AE0; } -void fn_1_AE0(omObjData* arg0) { +void fn_1_AE0(omObjData *arg0) +{ f32 temp_f31; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; temp_r31 = arg0->data; switch (fn_1_23E4(7)) { @@ -200,7 +204,8 @@ void fn_1_AE0(omObjData* arg0) { WipeCreate(1, 0, 0x3C); lbl_1_bss_A = 1; } - if (WipeStatGet() != 0) break; + if (WipeStatGet() != 0) + break; fn_1_2428(7, 2); break; case 2: @@ -225,7 +230,8 @@ void fn_1_AE0(omObjData* arg0) { temp_r31->unkA = 0; return; } - } else { + } + else { Center.x = lbl_1_data_78[1].center.x; Center.y = lbl_1_data_78[1].center.y; Center.z = lbl_1_data_78[1].center.z; @@ -245,9 +251,10 @@ void fn_1_AE0(omObjData* arg0) { } } -u8 fn_1_E14(omObjData* arg0) { +u8 fn_1_E14(omObjData *arg0) +{ f32 var_f31; - unkStruct* var_r31; + unkStruct *var_r31; u8 var_r30; switch (lbl_1_bss_6) { @@ -292,83 +299,86 @@ u8 fn_1_E14(omObjData* arg0) { return 0; } -u8 fn_1_1138(omObjData* object) { - unkStruct2* sp8; +u8 fn_1_1138(omObjData *object) +{ + unkStruct2 *sp8; f32 var_f31; f32 var_f30; s16 temp_r29; u8 var_r28; - unkStruct3* temp_r30; - unkStruct* var_r31; + unkStruct3 *temp_r30; + unkStruct *var_r31; - sp8 = (unkStruct2*)lbl_1_bss_6C->data; + sp8 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r29 = fn_1_F0FC(); - temp_r30 = (unkStruct3*)lbl_1_bss_C0[temp_r29]->data; + temp_r30 = (unkStruct3 *)lbl_1_bss_C0[temp_r29]->data; switch (lbl_1_bss_6) { - case 0: - if (lbl_1_bss_8 == 0) { - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[1], 0.0f, 7.0f, 0x40000001); - temp_r30->unk40 = temp_r30->unk34; - } - lbl_1_bss_8++; - var_f30 = lbl_1_bss_8 / 30.0f; - if (var_f30 >= 1.0f) { - var_f30 = 1.0f; - if (lbl_1_bss_B == 0) { - lbl_1_bss_B = 1; - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[0], 0.0f, 7.0f, 0x40000001); + case 0: + if (lbl_1_bss_8 == 0) { + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[1], 0.0f, 7.0f, 0x40000001); + temp_r30->unk40 = temp_r30->unk34; } - } - temp_r30->unk34 = (temp_r30->unk40 + (var_f30 * (360.0f - temp_r30->unk40))); - var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8 - var_r28 = 0; - lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; - if (var_f31 > 1.0f) { - lbl_1_bss_4 = 0; - var_f31 = 1.0f; - var_r28 = 1; - } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); - CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); - Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); - Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); - Center.z = fn_1_93C0(var_r31[0].center.z, var_r31[1].center.z, var_f31); - CRot.x = fn_1_93C0(var_r31[0].rot.x, var_r31[1].rot.x, var_f31); - CRot.y = fn_1_93C0(var_r31[0].rot.y, var_r31[1].rot.y, var_f31); - CRot.z = fn_1_93C0(var_r31[0].rot.z, var_r31[1].rot.z, var_f31); - if (var_r28 != 0) { - lbl_1_bss_8 = 0; + lbl_1_bss_8++; + var_f30 = lbl_1_bss_8 / 30.0f; + if (var_f30 >= 1.0f) { + var_f30 = 1.0f; + if (lbl_1_bss_B == 0) { + lbl_1_bss_B = 1; + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[0], 0.0f, 7.0f, 0x40000001); + } + } + temp_r30->unk34 = (temp_r30->unk40 + (var_f30 * (360.0f - temp_r30->unk40))); + var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8 + var_r28 = 0; + lbl_1_bss_4++; + var_f31 = lbl_1_bss_4 / 120.0f; + if (var_f31 > 1.0f) { + lbl_1_bss_4 = 0; + var_f31 = 1.0f; + var_r28 = 1; + } + var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); + Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); + Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); + Center.z = fn_1_93C0(var_r31[0].center.z, var_r31[1].center.z, var_f31); + CRot.x = fn_1_93C0(var_r31[0].rot.x, var_r31[1].rot.x, var_f31); + CRot.y = fn_1_93C0(var_r31[0].rot.y, var_r31[1].rot.y, var_f31); + CRot.z = fn_1_93C0(var_r31[0].rot.z, var_r31[1].rot.z, var_f31); + if (var_r28 != 0) { + lbl_1_bss_8 = 0; + lbl_1_bss_6++; + } + break; + case 1: + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[5], 0.0f, 7.0f, 0); + HuAudSStreamPlay(1); lbl_1_bss_6++; - } - break; - case 1: - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[5], 0.0f, 7.0f, 0); - HuAudSStreamPlay(1); - lbl_1_bss_6++; - lbl_1_bss_8 = 0; - break; - case 2: - if (++lbl_1_bss_8 > 210.0f) { - lbl_1_bss_6 = 0; - return 1; - } - break; + lbl_1_bss_8 = 0; + break; + case 2: + if (++lbl_1_bss_8 > 210.0f) { + lbl_1_bss_6 = 0; + return 1; + } + break; } return 0; } -void fn_1_16D8(void) { - unkStruct2* temp_r31; +void fn_1_16D8(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r31->unk6--; } -void fn_1_1708(void) { - unkStruct2* temp_r31; +void fn_1_1708(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk8 != -1) { MGSeqParamSet(temp_r31->unk8, 2, -1); temp_r31->unk8 = -1; @@ -376,72 +386,82 @@ void fn_1_1708(void) { } } -void fn_1_1768(void) { - unkStruct2* temp_r31; +void fn_1_1768(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk8 == -1) { temp_r31->unk6 = 0x12C; temp_r31->unk8 = MGSeqCreate(1, 5, -1, -1); } } -s16 fn_1_17CC(void) { - unkStruct2* var_r31; +s16 fn_1_17CC(void) +{ + unkStruct2 *var_r31; - var_r31 = (unkStruct2*)lbl_1_bss_6C->data; + var_r31 = (unkStruct2 *)lbl_1_bss_6C->data; return var_r31->unk6; } -s16 fn_1_17F4(void) { - unkStruct2* var_r31; +s16 fn_1_17F4(void) +{ + unkStruct2 *var_r31; - var_r31 = (unkStruct2*)lbl_1_bss_6C->data; + var_r31 = (unkStruct2 *)lbl_1_bss_6C->data; return var_r31->unk8; } -void fn_1_181C(void) { - unkStruct2* temp_r31; +void fn_1_181C(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk4 == -1) { temp_r31->unk4 = MGSeqCreate(3, 0); MGSeqPosSet(temp_r31->unk4, 320.0f, 240.0f); } } -u8 fn_1_1890(void) { - unkStruct2* temp_r31; +u8 fn_1_1890(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk4 != -1) { return MGSeqStatGet(temp_r31->unk4); - } else { + } + else { return 0; } } -void fn_1_18E0(void) { - unkStruct2* temp_r31; +void fn_1_18E0(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r31->unk4 = MGSeqCreate(3, 1); MGSeqPosSet(temp_r31->unk4, 320.0f, 240.0f); HuAudSeqFadeOut(temp_r31->unkC, 0x64); } -u8 fn_1_1954(void) { - unkStruct2* sp8; +u8 fn_1_1954(void) +{ + unkStruct2 *sp8; - sp8 = (unkStruct2*)lbl_1_bss_6C->data; + sp8 = (unkStruct2 *)lbl_1_bss_6C->data; if ((lbl_1_bss_2 != 0) || (lbl_1_bss_1 != 0)) { return 0; - } else { + } + else { return 1; } } -void fn_1_19B0(void) { +void fn_1_19B0(void) +{ f32 temp_f29; f32 var_f28; f32 var_f27; @@ -450,11 +470,11 @@ void fn_1_19B0(void) { s16 var_r31; var_f30 = (((rand8() << 8) | rand8()) % 361); - - for (var_r31 = 1; var_r31 < 4; var_r31++, var_f30+=120.0f) { + + for (var_r31 = 1; var_r31 < 4; var_r31++, var_f30 += 120.0f) { temp_f31 = 0.01f * ((((rand8() << 8) | rand8()) % 51) + 50); temp_f29 = (temp_f31 * (200.0 * sind(var_f30))); - var_f28 = (temp_f31 * (200.0 * cosd(var_f30))); + var_f28 = (temp_f31 * (200.0 * cosd(var_f30))); var_f27 = 0.0f; Hu3DModelPosSet(lbl_1_bss_10[var_r31], temp_f29, 300.0f + var_f28, var_f27); temp_f31 = 0.1f * ((((rand8() << 8) | rand8()) % 11) + 25); @@ -464,9 +484,10 @@ void fn_1_19B0(void) { } } -void fn_1_1CAC(void) { +void fn_1_1CAC(void) +{ s16 var_r31; - + for (var_r31 = 1; var_r31 < 4; var_r31++) { Hu3DMotionTimeSet(lbl_1_bss_10[var_r31], 0.0f); Hu3DModelAttrSet(lbl_1_bss_10[var_r31], 1); @@ -474,7 +495,8 @@ void fn_1_1CAC(void) { } } -void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { +void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) +{ Vec sp30; Vec sp24; GXColor sp1E; @@ -482,8 +504,8 @@ void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { f32 temp_f29; f32 temp_f31; s16 var_r30; - unkStruct4* var_r31; - + unkStruct4 *var_r31; + for (var_r30 = 0; var_r30 < arg0; var_r30++) { temp_f31 = argB + ((((rand8() << 8) | rand8()) % 11) - 5); temp_f30 = sind(temp_f31); @@ -495,8 +517,9 @@ void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { sp1E.r = sp1E.g = sp1E.b = 0xFF; sp1E.a = 0x80; var_r31 = fn_1_942C(arg1, &sp30, &sp24, 0.0f, &sp1E); - if (!var_r31) break; - + if (!var_r31) + break; + var_r31->unk34 = 0; var_r31->unk36 = ((rand8() << 8) | rand8()) % 2 + 2; var_r31->unk0.x = (temp_f30 * (0.1f * ((((rand8() << 8) | rand8()) % 41) + 0x28))); @@ -511,14 +534,15 @@ void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { } } -void fn_1_2240(ModelData* data, unkStruct5* arg1, Mtx arg2) { - unkStruct4* var_r31; - GXColor* var_r30; +void fn_1_2240(ModelData *data, unkStruct5 *arg1, Mtx arg2) +{ + unkStruct4 *var_r31; + GXColor *var_r30; s16 var_r29; var_r31 = arg1->unk18; var_r30 = arg1->unk24; - + for (var_r29 = 0; var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { if (var_r31->unk62 != 0) { var_r31->unk54.x += var_r31->unk0.x; @@ -544,52 +568,55 @@ void fn_1_2240(ModelData* data, unkStruct5* arg1, Mtx arg2) { } } -u16 fn_1_23E4(u16 arg0) { - unkStruct2* temp_r31; +u16 fn_1_23E4(u16 arg0) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (!temp_r31) { return 0; } return temp_r31->unk0 & arg0; } -void fn_1_2428(u16 arg0, u16 arg1) { - unkStruct2* temp_r31; +void fn_1_2428(u16 arg0, u16 arg1) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r31->unk0 = (temp_r31->unk0 & ~arg0); temp_r31->unk0 = (temp_r31->unk0 | arg1); } -void fn_1_2470(omObjData* arg0) { - ModelData* temp_r29; - HsfObject* temp_r28; +void fn_1_2470(omObjData *arg0) +{ + ModelData *temp_r29; + HsfObject *temp_r28; f32 temp_f31; f32 var_f30; f32 var_f29; s16 temp_r26; s16 var_r30; - unkStruct2* temp_r27; + unkStruct2 *temp_r27; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, 0x10000000); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM); temp_r27 = arg0->data; arg0->stat |= 0x100; - arg0->model[0] = Hu3DModelCreateFile(0x470008); - arg0->model[1] = Hu3DModelCreateFile(0x470009); - arg0->model[2] = Hu3DModelCreateFile(0x470000); - arg0->model[3] = Hu3DModelCreateFile(0x470002); - arg0->model[8] = Hu3DModelCreateFile(0x470003); - arg0->model[6] = Hu3DModelCreateFile(0x470004); - arg0->model[4] = Hu3DModelCreateFile(0x470005); - arg0->model[5] = Hu3DModelCreateFile(0x470006); - arg0->model[7] = Hu3DModelCreateFile(0x470007); - temp_r26 = Hu3DModelCreateFile(0x470001); + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x08)); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x09)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x00)); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x02)); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x03)); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x04)); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x05)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x06)); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x07)); + temp_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x01)); Hu3DModelAttrSet(arg0->model[0], 0x40000001); Hu3DModelAttrSet(arg0->model[2], 0x20000); Hu3DModelAttrSet(arg0->model[2], 0x40000002); Hu3DModelAttrSet(temp_r26, 1); - + for (var_r30 = 0; var_r30 < 8; var_r30++) { Hu3DModelLayerSet(arg0->model[var_r30], 1); } @@ -598,14 +625,14 @@ void fn_1_2470(omObjData* arg0) { Hu3DModelShadowSet(arg0->model[2]); Hu3DModelShadowSet(arg0->model[3]); Hu3DModelShadowMapSet(arg0->model[0]); - + for (var_r30 = 0; var_r30 < 5; var_r30++) { temp_f31 = (450.0 * cos(M_PI * lbl_1_data_0[var_r30] / 180.0)); var_f29 = (450.0 * sin(M_PI * lbl_1_data_0[var_r30] / 180.0)); - Hu3DModelPosSet(arg0->model[var_r30+4], temp_f31, 0.0f, var_f29); + Hu3DModelPosSet(arg0->model[var_r30 + 4], temp_f31, 0.0f, var_f29); var_f30 = 90.0f - lbl_1_data_0[var_r30]; - Hu3DModelRotSet(arg0->model[var_r30+4], 0.0f, var_f30, 0.0f); - Hu3DMotionSpeedSet(arg0->model[var_r30+4], 0.0f); + Hu3DModelRotSet(arg0->model[var_r30 + 4], 0.0f, var_f30, 0.0f); + Hu3DMotionSpeedSet(arg0->model[var_r30 + 4], 0.0f); } temp_r27->unk0 = 0; temp_r27->unk1C = 5; @@ -614,11 +641,11 @@ void fn_1_2470(omObjData* arg0) { lbl_1_bss_60 = temp_r28->data.childrenCount; lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * 64); OSReport("Koopa Object Count %d\n", temp_r29->hsfData->objectCnt); - + for (var_r30 = 0; var_r30 < lbl_1_bss_60; var_r30++) { lbl_1_bss_64[var_r30].unk20 = 0; } - + for (var_r30 = 0; var_r30 < lbl_1_bss_60; var_r30++) { lbl_1_bss_64[var_r30].unk4 = var_r30; fn_1_5C2C(temp_r26, temp_r28->data.children[var_r30], &lbl_1_bss_64[var_r30], 2); @@ -631,37 +658,40 @@ void fn_1_2470(omObjData* arg0) { arg0->func = &fn_1_2A74; } -void fn_1_2A74(omObjData* object) { +void fn_1_2A74(omObjData *object) +{ fn_1_2AB4(object); fn_1_2CA8(object); fn_1_4660(object); } -void fn_1_2AB4(omObjData* object) { - unkStruct2* sp8; +void fn_1_2AB4(omObjData *object) +{ + unkStruct2 *sp8; + + sp8 = (unkStruct2 *)object->data; - sp8 = (unkStruct2*)object->data; - switch (fn_1_4EA8(0x20)) { case 0x20: fn_1_2B04(object); } } -s16 lbl_1_data_E4[2] = {0, 0}; -s16 lbl_1_data_E8[2] = {0, 0}; -s16 lbl_1_data_EC[2] = {0, 0}; -s16 lbl_1_data_F0[2] = {0, 0}; +s16 lbl_1_data_E4[2] = { 0, 0 }; +s16 lbl_1_data_E8[2] = { 0, 0 }; +s16 lbl_1_data_EC[2] = { 0, 0 }; +s16 lbl_1_data_F0[2] = { 0, 0 }; s32 lbl_1_data_F4[4] = { 20, 60, 100, 140 }; -s16 lbl_1_data_104[2] = {0, 0}; -s16 lbl_1_data_108[2] = {0, 0}; +s16 lbl_1_data_104[2] = { 0, 0 }; +s16 lbl_1_data_108[2] = { 0, 0 }; s16 lbl_1_data_10C[9] = { 0, 3, 1, 0, 2, 3, 1, 3, 2 }; -void fn_1_2B04(omObjData* object) { +void fn_1_2B04(omObjData *object) +{ f32 temp_f31; - unkStruct* temp_r31; + unkStruct *temp_r31; - temp_r31 = (unkStruct*)object->data; + temp_r31 = (unkStruct *)object->data; switch (lbl_1_data_E4[0]) { case 0: lbl_1_data_E8[0]++; @@ -681,11 +711,12 @@ void fn_1_2B04(omObjData* object) { Hu3DModelRotSet(object->model[3], temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); } -void fn_1_2CA8(omObjData* arg0) { - unkStruct2* sp8; +void fn_1_2CA8(omObjData *arg0) +{ + unkStruct2 *sp8; + + sp8 = (unkStruct2 *)arg0->data; - sp8 = (unkStruct2*)arg0->data; - switch (fn_1_4EA8(7)) { case 1: fn_1_2D28(arg0); @@ -699,11 +730,12 @@ void fn_1_2CA8(omObjData* arg0) { } } -void fn_1_2D28(omObjData* object) { +void fn_1_2D28(omObjData *object) +{ f32 var_f31; - unkStruct* temp_r31; + unkStruct *temp_r31; - temp_r31 = (unkStruct*)object->data; + temp_r31 = (unkStruct *)object->data; switch (lbl_1_data_EC[0]) { case 0x0: temp_r31->center.x = temp_r31->center.z = 0.0f; @@ -713,13 +745,13 @@ void fn_1_2D28(omObjData* object) { Hu3DModelAttrReset(object->model[3], 1); Hu3DModelAttrSet(object->model[3], 0x40000002); Hu3DMotionTimeSet(object->model[3], 0.0f); - lbl_1_data_EC[0] ++; + lbl_1_data_EC[0]++; lbl_1_data_F0[0] = 0; HuAudFXPlay(0x709); HuAudFXPlay(0x711); break; case 0x1: - lbl_1_data_F0[0] ++; + lbl_1_data_F0[0]++; var_f31 = lbl_1_data_F0[0] / 120.0f; if (var_f31 > 1.0f) { var_f31 = 1.0f; @@ -738,7 +770,7 @@ void fn_1_2D28(omObjData* object) { if (lbl_1_data_F0[0] == 0) { HuAudFXPlay(0x713); } - lbl_1_data_F0[0] ++; + lbl_1_data_F0[0]++; var_f31 = lbl_1_data_F0[0] / 60.0f; if (var_f31 > 1.0f) { var_f31 = 1.0f; @@ -795,10 +827,11 @@ void fn_1_2D28(omObjData* object) { return; } -void fn_1_33D4(omObjData* object) { - unkStruct2* sp10; +void fn_1_33D4(omObjData *object) +{ + unkStruct2 *sp10; - sp10 = (unkStruct2*)object->data; + sp10 = (unkStruct2 *)object->data; switch (lbl_1_data_EC[0]) { case 0: fn_1_1D54(30.0f, 500.0f, 200.0f, 12, 135.0f, lbl_1_bss_10[0]); @@ -809,25 +842,26 @@ void fn_1_33D4(omObjData* object) { } } -void fn_1_3DD8(omObjData* object) { - unkStruct* sp8; +void fn_1_3DD8(omObjData *object) +{ + unkStruct *sp8; f32 var_f29; f32 var_f28; f32 var_f27; f32 var_f26; f32 var_f30; f32 var_f31; - unkStruct2* var_r25; - omObjData** var_r24; + unkStruct2 *var_r25; + omObjData **var_r24; s16 var_r29; s16 var_r31; s32 var_r23; - s32* var_r26; - unkStruct2* var_r28; + s32 *var_r26; + unkStruct2 *var_r28; s16 var_r27; - var_r25 = (unkStruct2*)lbl_1_bss_6C->data; - sp8 = (unkStruct*)object->data; + var_r25 = (unkStruct2 *)lbl_1_bss_6C->data; + sp8 = (unkStruct *)object->data; switch (lbl_1_data_EC[0]) { case 0: Hu3DModelAttrReset(object->model[2], 0x40000002); @@ -836,7 +870,8 @@ void fn_1_3DD8(omObjData* object) { case 1: if (++lbl_1_data_F0[0] == 0x1E) { fn_1_4EEC(0x100, 0x100); - } else if (lbl_1_data_F0[0] == 0x32) { + } + else if (lbl_1_data_F0[0] == 0x32) { fn_1_EE78(); } var_f26 = Hu3DMotionMaxTimeGet(object->model[2]); @@ -850,7 +885,7 @@ void fn_1_3DD8(omObjData* object) { lbl_1_data_EC[0]++; HuAudFXPlay(0x70C); } - + for (var_r31 = 0; var_r31 < 4U; var_r31++) { if (lbl_1_data_F0[0] == lbl_1_data_F4[var_r31] * 2) { HuAudFXPlay(0x70D); @@ -859,7 +894,7 @@ void fn_1_3DD8(omObjData* object) { return; case 2: var_f30 = (((rand8() << 8) | rand8()) % 361); - + for (var_r29 = 1; var_r29 < 4; var_r29++, var_f30 += 120.0f) { var_f31 = 0.01f * ((((rand8() << 8) | rand8()) % 51) + 0x32); var_f27 = (var_f31 * (200.0 * sind(var_f30))); @@ -878,7 +913,7 @@ void fn_1_3DD8(omObjData* object) { var_r24 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); for (var_r31 = 0; var_r31 < 4; var_r31++) { if (fn_1_F4FC(var_r31) >= 0) { - var_r28 = (unkStruct2*)var_r24[fn_1_F4FC(var_r31)]->data; + var_r28 = (unkStruct2 *)var_r24[fn_1_F4FC(var_r31)]->data; switch (var_r28->unk0 & 0xF) { case 6: omVibrate(var_r28->unk4, 0x30, 0xC, 0); @@ -909,7 +944,8 @@ void fn_1_3DD8(omObjData* object) { fn_1_4EEC(0x40, 0x40); fn_1_4EEC(7, 1); HuAudFXPlay(0x70E); - } else { + } + else { fn_1_4EEC(7, 2); var_r26 = lbl_1_bss_6C->data; var_r26[0] &= 0xFFFFFFF8; @@ -920,7 +956,8 @@ void fn_1_3DD8(omObjData* object) { } } -void fn_1_4558(omObjData* object) { +void fn_1_4558(omObjData *object) +{ s16 var_r31; for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) { @@ -928,21 +965,23 @@ void fn_1_4558(omObjData* object) { } } -void fn_1_45BC(omObjData* object) { +void fn_1_45BC(omObjData *object) +{ Vec sp8; s16 var_r31; sp8.x = 0.0f; sp8.y = 250.0f; sp8.z = 0.0f; - + for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) { fn_1_5010(&lbl_1_bss_64[var_r31], &sp8, 1500.0f); } } -void fn_1_4660(omObjData* object) { - void* sp8; +void fn_1_4660(omObjData *object) +{ + void *sp8; s16 temp_r3; sp8 = object->data; @@ -958,18 +997,19 @@ void fn_1_4660(omObjData* object) { } } -void fn_1_46E0(omObjData* object) { +void fn_1_46E0(omObjData *object) +{ f32 var_f31; s16 temp_r0; s16 var_r30; s32 temp_r28; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)object->data; + temp_r31 = (unkStruct2 *)object->data; switch (lbl_1_data_104[0]) { case 0x0: fn_1_4E00(-1, 0.0f); - + for (var_r30 = 0; var_r30 < 5; var_r30++) { Hu3DMotionTimeSet(object->model[var_r30 + 4], 0.0f); lbl_1_data_14[var_r30] = 0; @@ -999,7 +1039,7 @@ void fn_1_46E0(omObjData* object) { } break; } - + for (var_r30 = 0; var_r30 < temp_r31->unk1C; var_r30++) { Hu3DData[object->model[var_r30 + 4]].pos.y = temp_r31->unk24; lbl_1_data_14[var_r30] = 1; @@ -1007,13 +1047,14 @@ void fn_1_46E0(omObjData* object) { Hu3DData[object->model[1]].pos.y = temp_r31->unk24; } -void fn_1_4A20(omObjData* object) { - ModelData* temp_r31; +void fn_1_4A20(omObjData *object) +{ + ModelData *temp_r31; s16 temp_r28; - unkStruct2* temp_r30; + unkStruct2 *temp_r30; f32 var_f31; - temp_r30 = (unkStruct2*)object->data; + temp_r30 = (unkStruct2 *)object->data; temp_r28 = temp_r30->unk2E; if (temp_r28 != -1) { temp_r31 = &Hu3DData[object->model[temp_r28 + 4]]; @@ -1024,19 +1065,21 @@ void fn_1_4A20(omObjData* object) { temp_r31->unk_64 = 0.0f; } } - } else { + } + else { var_f31 = Hu3DMotionMaxTimeGet(object->model[temp_r28 + 4]); temp_r31->unk_64 = var_f31 * temp_r30->unk30; } } } -void fn_1_4B44(omObjData* object) { +void fn_1_4B44(omObjData *object) +{ f32 var_f31; s16 var_r30; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)object->data; + temp_r31 = (unkStruct2 *)object->data; switch (lbl_1_data_104[0]) { case 0: lbl_1_data_108[0]++; @@ -1062,7 +1105,7 @@ void fn_1_4B44(omObjData* object) { } break; } - + for (var_r30 = 0; var_r30 < temp_r31->unk1C; var_r30++) { Hu3DData[object->model[var_r30 + 4]].pos.y = temp_r31->unk24; lbl_1_data_14[var_r30] = 1; @@ -1070,25 +1113,28 @@ void fn_1_4B44(omObjData* object) { Hu3DData[object->model[1]].pos.y = temp_r31->unk24; } -void fn_1_4E00(s16 arg0, f32 arg8) { - unkStruct2* temp_r31; +void fn_1_4E00(s16 arg0, f32 arg8) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; temp_r31->unk2E = arg0; temp_r31->unk30 = arg8; } -s16 fn_1_4E2C(void) { - unkStruct2* var_r31; +s16 fn_1_4E2C(void) +{ + unkStruct2 *var_r31; - var_r31 = (unkStruct2*)lbl_1_bss_68->data; + var_r31 = (unkStruct2 *)lbl_1_bss_68->data; return var_r31->unk1C; } -s16 fn_1_4E54(s16 arg0) { - unkStruct2* temp_r31; +s16 fn_1_4E54(s16 arg0) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; if (arg0 == -1) { return temp_r31->unk2C; } @@ -1098,27 +1144,30 @@ s16 fn_1_4E54(s16 arg0) { return 0; } -u16 fn_1_4EA8(u16 arg0) { - unkStruct2* temp_r31; +u16 fn_1_4EA8(u16 arg0) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; if (!temp_r31) { return 0; } return temp_r31->unk0 & arg0; } -void fn_1_4EEC(u16 arg0, u16 arg1) { - unkStruct2* temp_r31; +void fn_1_4EEC(u16 arg0, u16 arg1) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; temp_r31->unk0 &= ~arg0; temp_r31->unk0 |= arg1; } -void fn_1_4F34(unkStruct6* arg0) { +void fn_1_4F34(unkStruct6 *arg0) +{ s16 var_r30; - unkStruct8* var_r31; + unkStruct8 *var_r31; var_r31 = arg0->unk24; if (arg0->unk20 != 0) { @@ -1135,21 +1184,22 @@ void fn_1_4F34(unkStruct6* arg0) { } } -void fn_1_5010(unkStruct6* arg0, Vec* arg1, f32 arg8) { +void fn_1_5010(unkStruct6 *arg0, Vec *arg1, f32 arg8) +{ Vec sp14; - ModelData* temp_r29; + ModelData *temp_r29; f32 var_f25; f32 var_f28; f32 var_f27; f32 var_f26; s32 var_r27; - unkStruct8* var_r31; - + unkStruct8 *var_r31; + var_r31 = arg0->unk24; if (arg0->unk20 != 0) { temp_r29 = &Hu3DData[arg0->unk0]; arg0->unk2 |= 4; - + for (var_r27 = 0; var_r27 < arg0->unk20; var_r27++, var_r31++) { sp14.x = (var_r31->unk7C.x + temp_r29->pos.x) - arg1->x; sp14.y = (var_r31->unk7C.y + temp_r29->pos.y) - arg1->y; @@ -1158,7 +1208,7 @@ void fn_1_5010(unkStruct6* arg0, Vec* arg1, f32 arg8) { sp14.x /= var_f25; sp14.y /= var_f25; sp14.z /= var_f25; - + var_f25 = (1.0f - (var_f25 / arg8)); if (var_f25 < 0.0f) { var_f25 = 0.0f; @@ -1179,18 +1229,19 @@ void fn_1_5010(unkStruct6* arg0, Vec* arg1, f32 arg8) { } } -void fn_1_57B4(unkStruct6* arg0) { +void fn_1_57B4(unkStruct6 *arg0) +{ Mtx sp14; Vec sp8; s16 var_r29; - Vec* temp_r26; + Vec *temp_r26; s32 var_r27; s32 var_r28; - unkStruct8* var_r31; + unkStruct8 *var_r31; var_r31 = arg0->unk24; temp_r26 = arg0->unk10; - + for (var_r27 = 0; var_r27 < arg0->unk20; var_r27++, var_r31++) { var_r31->unkAC.y = (var_r31->unkAC.y - var_r31->unkC4.y); var_r31->unk94.x = (var_r31->unk94.x + var_r31->unkAC.x); @@ -1215,7 +1266,8 @@ void fn_1_57B4(unkStruct6* arg0) { var_r31->unkAC.z = 0.0f; var_r31->unkB8.x = 0.0f; var_r31->unkB8.z = 0.0f; - } else { + } + else { var_r31->unkAC.x *= 0.5f; var_r31->unkAC.y = -(0.3f * var_r31->unkAC.y); var_r31->unkAC.z *= 0.5f; @@ -1227,11 +1279,12 @@ void fn_1_57B4(unkStruct6* arg0) { mtxTransCat(sp14, -var_r31->unk7C.x, -var_r31->unk7C.y, -var_r31->unk7C.z); mtxRotCat(sp14, var_r31->unkA0.x, var_r31->unkA0.y, var_r31->unkA0.z); mtxTransCat(sp14, var_r31->unk94.x + var_r31->unk7C.x, var_r31->unk94.y + var_r31->unk7C.y, var_r31->unk94.z + var_r31->unk7C.z); - + for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg0->unk2 & 1) != 0) { var_r29 = var_r31->unk0[var_r28].unk0; - } else { + } + else { var_r29 = var_r31->unk18[var_r28]; } PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); @@ -1255,22 +1308,23 @@ void fn_1_57B4(unkStruct6* arg0) { DCFlushRangeNoSync(arg0->unkC, arg0->unk8 * 0xC); } -void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { +void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) +{ Mtx sp68; Vec sp44[3]; Vec sp38; Vec sp2C; - ModelData* sp1C; + ModelData *sp1C; GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF }; - Vec* var_r21; - Vec* var_r19; + Vec *var_r21; + Vec *var_r19; s16 var_r20; - HsfVector2f* var_r22; + HsfVector2f *var_r22; s16 var_r24; s16 var_r23; - HsfTransform* var_r25; + HsfTransform *var_r25; s16 var_r27; - ModelData* var_r29; + ModelData *var_r29; s16 var_r28; s16 var_r30; @@ -1281,10 +1335,10 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { arg2->unk0 = var_r30; Hu3DModelLayerSet(var_r30, 1); var_r29 = &Hu3DData[var_r30]; - var_r29->unk_120 = (ParticleData* ) arg2; + var_r29->unk_120 = (ParticleData *)arg2; var_r29->unk_58.x = var_r29->unk_58.z = var_r29->unk_58.y = 1.0f; arg2->unk2 = arg3; - arg2->unk28 = &arg1->data.material[((s16*)(arg1->data.face->data))[1] & 0xFFF]; + arg2->unk28 = &arg1->data.material[((s16 *)(arg1->data.face->data))[1] & 0xFFF]; arg2->unk2C = arg1->data.attribute; arg2->unk38 = NULL; arg2->unk3C = 0xFF; @@ -1298,7 +1352,8 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { if (arg2->unk28->numAttrs != 0) { arg2->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg1->data.st->count * 8, var_r29->unk_48); var_r22 = arg1->data.st->data; - } else { + } + else { arg2->unk1C = NULL; var_r22 = NULL; } @@ -1309,16 +1364,17 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { for (var_r30 = 0; var_r30 < arg2->unk20; var_r30++) { sp2C.x = sp2C.y = sp2C.z = 0.0f; - + for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg2->unk2 & 1) != 0) { var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; var_r27 = var_r23; - } else { + } + else { var_r27 = arg2->unk24[var_r30].unk18[var_r28]; var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; } - PSMTXMultVec(sp68, &((Vec*)(arg1->data.vertex->data))[var_r23], &sp38); + PSMTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); arg2->unkC[var_r27] = sp38; sp44[var_r28] = arg2->unkC[var_r27]; arg2->unk14[var_r27] = arg2->unk18[var_r23]; @@ -1353,13 +1409,14 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { GXBeginDisplayList(var_r19, 0x20000); if ((arg2->unk2 & 2) != 0) { GXBegin(GX_TRIANGLES, GX_VTXFMT0, (arg2->unk20 * 0xC)); - + for (var_r30 = 0; var_r30 < arg2->unk20; var_r30++) { - + for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg2->unk2 & 1) != 0) { var_r27 = arg2->unk24[var_r30].unk0[var_r28].unk0; - } else { + } + else { var_r27 = arg2->unk24[var_r30].unk18[var_r28]; } GXPosition1x16(var_r27); @@ -1368,7 +1425,7 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { GXTexCoord1x16(arg2->unk24[var_r30].unk0[var_r28].unk6); } } - + for (var_r24 = 0; var_r24 < 9; var_r24++) { if (var_r20 < arg2->unk24[var_r30].unk20[var_r24].unk0) { var_r20 = arg2->unk24[var_r30].unk20[var_r24].unk0; @@ -1380,13 +1437,15 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { } } } - } else { + } + else { GXBegin(GX_TRIANGLES, GX_VTXFMT0, (arg2->unk20 * 3)); for (var_r30 = 0; var_r30 < arg2->unk20; var_r30++) { for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg2->unk2 & 1) != 0) { var_r27 = arg2->unk24[var_r30].unk0[var_r28].unk0; - } else { + } + else { var_r27 = arg2->unk24[var_r30].unk18[var_r28]; } GXPosition1x16(var_r27); @@ -1406,28 +1465,29 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { } } -void fn_1_6554(unkStruct6* arg0, HsfObject* arg1) { +void fn_1_6554(unkStruct6 *arg0, HsfObject *arg1) +{ Vec sp20[3]; f32 spC[5]; f32 var_f28; - HsfBuffer* temp_r26; + HsfBuffer *temp_r26; s16 var_r28; s16 var_r29; - unkStruct10* var_r30; + unkStruct10 *var_r30; temp_r26 = arg1->data.face; - + for (var_r28 = 0; var_r28 < arg1->data.vertex->count; var_r28++) { arg0->unk18[var_r28].x = 0.0f; arg0->unk18[var_r28].y = 0.0f; arg0->unk18[var_r28].z = 0.0f; } - var_r30 = (unkStruct10*)temp_r26->data; - + var_r30 = (unkStruct10 *)temp_r26->data; + for (var_r28 = 0; var_r28 < temp_r26->count; var_r28++, var_r30++) { - sp20[0] = ((Vec*)(arg1->data.vertex->data))[var_r30->unk4[0].unk0]; - sp20[1] = ((Vec*)(arg1->data.vertex->data))[var_r30->unk4[1].unk0]; - sp20[2] = ((Vec*)(arg1->data.vertex->data))[var_r30->unk4[2].unk0]; + sp20[0] = ((Vec *)(arg1->data.vertex->data))[var_r30->unk4[0].unk0]; + sp20[1] = ((Vec *)(arg1->data.vertex->data))[var_r30->unk4[1].unk0]; + sp20[2] = ((Vec *)(arg1->data.vertex->data))[var_r30->unk4[2].unk0]; fn_1_91A4(&sp20[0], &sp20[1], &sp20[2], spC); spC[0] = -spC[0]; spC[1] = -spC[1]; @@ -1461,7 +1521,7 @@ void fn_1_6554(unkStruct6* arg0, HsfObject* arg1) { break; } } - + for (var_r28 = 0; var_r28 < arg1->data.vertex->count; var_r28++) { sp20[0].x = arg0->unk18[var_r28].x; sp20[0].y = arg0->unk18[var_r28].y; @@ -1473,24 +1533,25 @@ void fn_1_6554(unkStruct6* arg0, HsfObject* arg1) { } } -void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { - HsfBuffer* temp_r25; +void fn_1_6B58(unkStruct6 *arg0, HsfObject *arg1) +{ + HsfBuffer *temp_r25; s32 var_r28; s32 var_r30; u8 var_r24; - ModelData* var_r22; - unkStruct8* var_r31; + ModelData *var_r22; + unkStruct8 *var_r31; unkStruct11 *temp_r26; - unkStruct10* var_r29; + unkStruct10 *var_r29; var_r22 = &Hu3DData[arg0->unk0]; temp_r25 = arg1->data.face; var_r24 = ((arg0->unk2 & 1) != 0) ? 1 : 0; arg0->unk20 = 0; - + var_r28 = 0; - var_r29 = (unkStruct10*)temp_r25->data; - for (;var_r28 < temp_r25->count;var_r28++, var_r29++) { + var_r29 = (unkStruct10 *)temp_r25->data; + for (; var_r28 < temp_r25->count; var_r28++, var_r29++) { switch (var_r29->unk0 & 7) { case 2: arg0->unk20 += 1; @@ -1507,13 +1568,14 @@ void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { var_r31 = arg0->unk24; if (var_r24 != 0) { var_r30 = arg1->data.vertex->count; - } else { + } + else { var_r30 = 0; } - + var_r28 = 0; - var_r29 = (unkStruct10*)temp_r25->data;\ - for (;var_r28 < temp_r25->count; var_r28++, var_r29++) { + var_r29 = (unkStruct10 *)temp_r25->data; + for (; var_r28 < temp_r25->count; var_r28++, var_r29++) { switch (var_r29->unk0 & 7) { case 2: var_r31->unk0[0] = var_r29->unk4[0]; @@ -1562,21 +1624,24 @@ void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { var_r31++; var_r28 = 0; temp_r26 = var_r29->unk20; - for (;var_r28 < var_r29->unk1C; var_r28++) { + for (; var_r28 < var_r29->unk1C; var_r28++) { if (var_r28 == 0) { var_r31->unk0[0] = var_r31->unk0[1]; var_r31->unk0[1] = var_r31->unk0[2]; var_r31->unk0[2] = temp_r26[0]; - } else if (var_r28 == 1) { + } + else if (var_r28 == 1) { var_r31->unk0[0] = var_r31->unk0[2]; var_r31->unk0[1] = temp_r26[1]; var_r31->unk0[2] = temp_r26[0]; - } else { + } + else { if ((var_r28 % 2) != 0) { var_r31->unk0[0] = temp_r26[var_r28 - 2]; var_r31->unk0[1] = temp_r26[var_r28 - 0]; var_r31->unk0[2] = temp_r26[var_r28 - 1]; - } else { + } + else { var_r31->unk0[0] = temp_r26[var_r28 - 2]; var_r31->unk0[1] = temp_r26[var_r28 - 1]; var_r31->unk0[2] = temp_r26[var_r28 - 0]; @@ -1596,24 +1661,26 @@ void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { arg0->unk8 = var_r30; } -void fn_1_71FC(unkStruct6* arg0, Vec* arg1, s16 arg2, Vec arg3) { +void fn_1_71FC(unkStruct6 *arg0, Vec *arg1, s16 arg2, Vec arg3) +{ Vec sp40; Vec sp34; Vec sp28[3]; Vec sp1C; - unkStruct8* temp_r30 = &arg0->unk24[arg2]; + unkStruct8 *temp_r30 = &arg0->unk24[arg2]; s16 sp10[3][2] = { { 0, 1 }, { 0, 2 }, { 1, 2 } }; f32 var_f31; f32 var_f30; f32 var_f29; f32 var_f27; s16 var_r31; - + if ((arg0->unk2 & 1) != 0) { sp28[0] = arg0->unkC[temp_r30->unk0[0].unk0]; sp28[1] = arg0->unkC[temp_r30->unk0[1].unk0]; sp28[2] = arg0->unkC[temp_r30->unk0[2].unk0]; - } else { + } + else { sp28[0] = arg0->unkC[temp_r30->unk18[0]]; sp28[1] = arg0->unkC[temp_r30->unk18[1]]; sp28[2] = arg0->unkC[temp_r30->unk18[2]]; @@ -1623,20 +1690,16 @@ void fn_1_71FC(unkStruct6* arg0, Vec* arg1, s16 arg2, Vec arg3) { sp1C.z = temp_r30->unk68[2]; PSVECNormalize(&sp1C, &sp1C); var_f31 = var_f30 = var_f29 = 0.0f; - - for (var_r31 = 0; var_r31 < 3; var_r31++) { - var_f31 += (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x < 0.0f) - ? -(sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x) - : (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x); - - - var_f30 += (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y < 0.0f) - ? -(sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y) - : (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y); - var_f29 += (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z < 0.0f) - ? -(sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z) - : (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 += (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x < 0.0f) ? -(sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x) + : (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x); + + var_f30 += (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y < 0.0f) ? -(sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y) + : (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y); + + var_f29 += (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z < 0.0f) ? -(sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z) + : (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z); } var_f31 *= 0.3333f; var_f30 *= 0.3333f; @@ -1650,16 +1713,17 @@ void fn_1_71FC(unkStruct6* arg0, Vec* arg1, s16 arg2, Vec arg3) { arg1->z = (sp28[0].z - (sp1C.z * var_f27)); } -void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { +void fn_1_7934(unkStruct6 *arg0, unkStruct8 *arg1, Vec *arg2) +{ Vec sp2C[3]; f32 sp18[5]; s16 sp10[4]; s16 sp8[4]; s16 var_r28; - Vec* temp_r30; - Vec* temp_r4; - Vec* temp_r4_2; - Vec* temp_r4_3; + Vec *temp_r30; + Vec *temp_r4; + Vec *temp_r4_2; + Vec *temp_r4_3; arg1->unk88.x = arg1->unk88.y = arg1->unk88.z = 1.0f; arg1->unk94.x = arg1->unk94.y = arg1->unk94.z = 0.0f; @@ -1667,12 +1731,13 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { arg1->unkAC.x = arg1->unkAC.y = arg1->unkAC.z = 0.0f; arg1->unkB8.x = arg1->unkB8.y = arg1->unkB8.z = 0.0f; arg1->unkC4.x = arg1->unkC4.y = arg1->unkC4.z = 0.0f; - + if ((arg0->unk2 & 2) != 0) { arg2->x *= 0.25f; arg2->y *= 0.25f; arg2->z *= 0.25f; - } else { + } + else { arg2->x /= 3.0f; arg2->y /= 3.0f; arg2->z /= 3.0f; @@ -1685,7 +1750,8 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { sp10[0] = arg1->unk0[0].unk0; sp10[1] = arg1->unk0[1].unk0; sp10[2] = arg1->unk0[2].unk0; - } else { + } + else { sp10[0] = arg1->unk18[0]; sp10[1] = arg1->unk18[1]; sp10[2] = arg1->unk18[2]; @@ -1695,14 +1761,14 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { sp8[1] = arg1->unk0[1].unk6; sp8[2] = arg1->unk0[2].unk6; sp8[3] = arg1->unk0[0].unk6; - + for (var_r28 = 0; var_r28 < 9; var_r28++) { arg1->unk20[var_r28].unk0 = sp10[lbl_1_data_10C[var_r28]]; arg1->unk20[var_r28].unk6 = sp8[lbl_1_data_10C[var_r28]]; } temp_r30 = &arg0->unk14[arg1->unk1E]; temp_r30->x = temp_r30->y = temp_r30->z = 0.0f; - + for (var_r28 = 0; var_r28 < 3; var_r28++) { sp2C[0] = arg0->unkC[sp10[lbl_1_data_10C[var_r28]]]; sp2C[1] = arg0->unkC[sp10[lbl_1_data_10C[var_r28 + 1]]]; @@ -1718,7 +1784,8 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { } } -void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { +void fn_1_7D60(unkStruct15 *arg0, unkStruct13 *arg1, s16 arg2) +{ GXTexObj sp1C; GXTlutObj sp10; s32 sp8; @@ -1750,7 +1817,8 @@ void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB565, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C4, var_r27, var_r26, GX_FALSE, arg2); - } else { + } + else { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB565, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C8, var_r27, var_r26, GX_FALSE, arg2); @@ -1761,7 +1829,8 @@ void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB5A3, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C4, var_r27, var_r26, GX_FALSE, arg2); - } else { + } + else { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB5A3, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C8, var_r27, var_r26, GX_FALSE, arg2); @@ -1776,14 +1845,15 @@ void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { return; } -void fn_1_806C(ModelData* arg0, Mtx arg1) { +void fn_1_806C(ModelData *arg0, Mtx arg1) +{ Mtx sp14; GXColor sp10; - unkStruct13* temp_r29; - unkStruct14* temp_r31; + unkStruct13 *temp_r29; + unkStruct14 *temp_r31; m440Func14 temp_r27; - temp_r31 = (unkStruct14*)arg0->unk_120; + temp_r31 = (unkStruct14 *)arg0->unk_120; if (((u8)omPauseChk() == 0) && (temp_r31->unk38)) { temp_r27 = temp_r31->unk38; temp_r27(temp_r31); @@ -1819,7 +1889,8 @@ void fn_1_806C(ModelData* arg0, Mtx arg1) { GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetNumTexGens(0); GXSetNumChans(0); - } else { + } + else { GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); GXSetArray(GX_VA_TEX0, temp_r31->unk1C, 8); @@ -1836,7 +1907,8 @@ void fn_1_806C(ModelData* arg0, Mtx arg1) { GXCallDisplayList(temp_r31->unk30, temp_r31->unk34); } -void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { +void fn_1_8470(unkStruct12 *arg0, unkStruct13 *arg1) +{ ModelData sp40; Mtx sp10; GXColor spC; @@ -1854,11 +1926,13 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { temp_r24 = arg0->unk30; if ((arg0->unkA == 2) || (arg0->unkA == 3)) { var_r27 = 1; - } else { + } + else { var_r27 = 0; if ((arg0->unkA == 0) || (arg0->unkA == 5)) { var_r25 = 0; - } else { + } + else { var_r25 = 1; } } @@ -1873,14 +1947,16 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; - } else { + } + else { GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); } - } else { + } + else { GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); } if (var_r27 != 0) { @@ -1904,11 +1980,13 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { var_r28++; var_r27 = 0; var_r25 = 1; - } else { + } + else { if (1.0f == arg1->unk20) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevOrder(var_r31, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_CPREV); } @@ -1917,7 +1995,8 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; } - } else if (0.0f != arg0->unk1C) { + } + else if (0.0f != arg0->unk1C) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); GXSetTevColorOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -1929,7 +2008,8 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetNumTevStages(var_r31); if (var_r27 != 0) { var_f30 = arg0->unk14; - } else { + } + else { var_f30 = 0.0f; } temp_r29 = Hu3DLightSet(&sp40, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, var_f30); @@ -1952,23 +2032,24 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetChanCtrl(GX_COLOR0A0, var_r25, GX_SRC_REG, GX_SRC_REG, temp_r29, GX_DF_CLAMP, GX_AF_SPOT); } -void fn_1_8AC4(Mtx arg0) { +void fn_1_8AC4(Mtx arg0) +{ Mtx spA0; Mtx sp70; Mtx sp40; Vec sp34; Vec sp28; Vec sp1C; - Vec sp10 = {0, 0, -1}; + Vec sp10 = { 0, 0, -1 }; f32 var_f29; f32 var_f30; - LightData* var_r29; + LightData *var_r29; s16 temp_r31; var_r29 = &Hu3DGlobalLight[0]; sp34 = var_r29->unk_28; if ((var_r29->unk_00 & 0x8000) != 0) { - PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); + PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); } var_f30 = PSVECDotProduct(&sp34, &sp10); var_f30 *= 10000.0f; @@ -1977,15 +2058,16 @@ void fn_1_8AC4(Mtx arg0) { PSMTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); return; } - C_VECHalfAngle( &sp34, &sp10, &sp28); + C_VECHalfAngle(&sp34, &sp10, &sp28); sp28.x = -sp28.x; sp28.y = -sp28.y; sp28.z = -sp28.z; PSMTXInvXpose(arg0, sp70); if (temp_r31 == 0x2710) { PSMTXIdentity(sp40); - } else { - PSVECCrossProduct(&sp28, &sp10, &sp1C); + } + else { + PSVECCrossProduct(&sp28, &sp10, &sp1C); var_f29 = acosf(PSVECDotProduct(&sp10, &sp28)); PSMTXRotAxisRad(sp40, &sp1C, var_f29); } @@ -1994,21 +2076,23 @@ void fn_1_8AC4(Mtx arg0) { PSMTXConcat(sp40, spA0, lbl_1_bss_30); } -void fn_1_8D1C(void) { +void fn_1_8D1C(void) +{ Mtx44 sp60; Mtx sp30; GXTexObj sp10; GXColor spC; u16 var_r30; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; if (!temp_r31) { var_r30 = 0; - } else { + } + else { var_r30 = temp_r31->unk0 & 7; } - + if (var_r30 == 5) { C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f); GXSetProjection(sp60, GX_ORTHOGRAPHIC); @@ -2049,7 +2133,8 @@ void fn_1_8D1C(void) { DCFlushRange(lbl_1_bss_28, lbl_1_bss_24); } -void fn_1_91A4(Vec* arg0, Vec* arg1, Vec* arg2, f32 arg3[5]) { +void fn_1_91A4(Vec *arg0, Vec *arg1, Vec *arg2, f32 arg3[5]) +{ Vec sp14; Vec sp8; @@ -2064,25 +2149,29 @@ void fn_1_91A4(Vec* arg0, Vec* arg1, Vec* arg2, f32 arg3[5]) { arg3[2] = -((sp14.x * sp8.y) - (sp14.y * sp8.x)); } -f32 fn_1_927C(f32 arg8, f32 arg9, f32 argA) { +f32 fn_1_927C(f32 arg8, f32 arg9, f32 argA) +{ f32 var_f31; var_f31 = arg9 - arg8; if (var_f31 > 180.0f) { var_f31 -= 360.0f; - } else if (var_f31 < -180.0f) { + } + else if (var_f31 < -180.0f) { var_f31 += 360.0f; } var_f31 = arg8 + (var_f31 * argA); if (var_f31 >= 360.0f) { var_f31 -= 360.0f; - } else if (var_f31 < 0.0f) { + } + else if (var_f31 < 0.0f) { var_f31 += 360.0f; } return var_f31; } -void fn_1_9344(Mtx arg0, Mtx arg1) { +void fn_1_9344(Mtx arg0, Mtx arg1) +{ arg1[0][0] = arg0[0][0]; arg1[1][0] = arg0[0][1]; arg1[2][0] = arg0[0][2]; @@ -2097,29 +2186,33 @@ void fn_1_9344(Mtx arg0, Mtx arg1) { arg1[2][3] = 0.0f; } -f32 fn_1_93C0(f32 arg0, f32 arg1, f32 arg2) { +f32 fn_1_93C0(f32 arg0, f32 arg1, f32 arg2) +{ return arg0 + (arg2 * (arg1 - arg0)); } -f32 fn_1_93D0(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_93D0(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 temp_f31; temp_f31 = 1.0f - argB; return (argA * (argB * argB)) + ((arg8 * (temp_f31 * temp_f31)) + (arg9 * (2.0f * temp_f31 * argB))); } -unkStruct4* fn_1_942C(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { - ModelData* var_r28; +unkStruct4 *fn_1_942C(s16 arg0, Vec *arg1, Vec *arg2, f32 arg3, GXColor *arg4) +{ + ModelData *var_r28; s16 var_r29; - unkStruct4* var_r31; - unkStruct14* temp_r30; + unkStruct4 *var_r31; + unkStruct14 *temp_r30; var_r28 = &Hu3DData[arg0]; temp_r30 = var_r28->unk_120; var_r29 = 0; var_r31 = temp_r30->unk18; - for (;var_r29 < temp_r30->unk0; var_r29++, var_r31++) { - if (var_r31->unk62 == 0) break; + for (; var_r29 < temp_r30->unk0; var_r29++, var_r31++) { + if (var_r31->unk62 == 0) + break; } if (var_r29 == temp_r30->unk0) { return NULL; @@ -2138,20 +2231,21 @@ unkStruct4* fn_1_942C(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { return var_r31; } -s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { - ModelData* temp_r28; +s16 fn_1_956C(AnimData *arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) +{ + ModelData *temp_r28; s16 var_r20; s16 var_r22; s16 var_r19; - HsfVector2f* var_r29; + HsfVector2f *var_r29; s16 var_r30; - unkStruct5* var_r31; - void* var_r21; - void* var_r18; - unkStruct4* var_r24; - Vec* var_r25; - GXColor* var_r27; - + unkStruct5 *var_r31; + void *var_r21; + void *var_r18; + unkStruct4 *var_r24; + Vec *var_r25; + GXColor *var_r27; + var_r20 = Hu3DHookFuncCreate(fn_1_9C04); temp_r28 = &Hu3DData[var_r20]; var_r31 = HuMemDirectMallocNum(HEAP_DATA, 0x68, temp_r28->unk_48); @@ -2163,26 +2257,26 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { var_r31->unkC = NULL; var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0x64, temp_r28->unk_48); var_r31->unk18 = var_r24; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { var_r24->unk60 = -1; var_r24->unk62 = 0; } var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0xC * 4, temp_r28->unk_48); var_r31->unk1C = var_r25; - + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) { var_r25->x = var_r25->y = var_r25->z = 0.0f; } var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 4, temp_r28->unk_48); var_r31->unk24 = var_r27; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) { var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF; } var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 8 * 4, temp_r28->unk_48); var_r31->unk20 = var_r29; - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { var_r29->x = 0.0f; var_r29->y = 0.0f; @@ -2203,7 +2297,8 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { var_r31->unk14 = (var_r22 * var_r19); var_r31->unk60 = (1.0f / var_r22); var_r31->unk64 = (1.0f / var_r19); - } else { + } + else { var_r22 = 1; var_r31->unk14 = 1; var_r31->unk60 = 1.0f; @@ -2218,7 +2313,7 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { var_r18 = var_r21; GXBeginDisplayList(var_r18, 0x20000); GXBegin(GX_QUADS, GX_VTXFMT0, (arg1 * 4)); - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { GXPosition1x16(var_r30 * 4); GXColor1x16(var_r30); @@ -2242,30 +2337,33 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { return var_r20; } -void fn_1_9AB0(s16 arg0) { - ModelData* data; - unkStruct5* temp2; +void fn_1_9AB0(s16 arg0) +{ + ModelData *data; + unkStruct5 *temp2; data = &Hu3DData[arg0]; - temp2 = (unkStruct5*)data->unk_120; + temp2 = (unkStruct5 *)data->unk_120; HuSprAnimKill(temp2->unk10); Hu3DModelKill(arg0); } -unkStruct5* fn_1_9B10(s16 arg0) { - ModelData* data; +unkStruct5 *fn_1_9B10(s16 arg0) +{ + ModelData *data; data = &Hu3DData[arg0]; - return (unkStruct5*)data->unk_120; + return (unkStruct5 *)data->unk_120; } -unkStruct4* fn_1_9B3C(s16 arg0, s16 arg1) { - ModelData* data; - unkStruct5* temp; +unkStruct4 *fn_1_9B3C(s16 arg0, s16 arg1) +{ + ModelData *data; + unkStruct5 *temp; data = &Hu3DData[arg0]; - temp = (unkStruct5*)data->unk_120; - + temp = (unkStruct5 *)data->unk_120; + if (arg1 == -1) { return 0; } @@ -2273,25 +2371,28 @@ unkStruct4* fn_1_9B3C(s16 arg0, s16 arg1) { return &temp->unk18[arg1]; } -void fn_1_9B94(s16 arg0, m440Func5 arg1) { - ModelData* data; - unkStruct5* temp; +void fn_1_9B94(s16 arg0, m440Func5 arg1) +{ + ModelData *data; + unkStruct5 *temp; data = &Hu3DData[arg0]; - temp = (unkStruct5*)data->unk_120; + temp = (unkStruct5 *)data->unk_120; temp->unkC = arg1; } -void fn_1_9BCC(s16 arg0, u8 arg1) { - ModelData* data; - unkStruct5* temp; +void fn_1_9BCC(s16 arg0, u8 arg1) +{ + ModelData *data; + unkStruct5 *temp; data = &Hu3DData[arg0]; - temp = (unkStruct5*)data->unk_120; + temp = (unkStruct5 *)data->unk_120; temp->unk8 = arg1; } -void fn_1_9C04(ModelData* arg0, Mtx arg1) { +void fn_1_9C04(ModelData *arg0, Mtx arg1) +{ Mtx sp128; ROMtx spF8; Mtx spC8; @@ -2305,16 +2406,16 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { Vec sp20; Vec sp14; Vec sp8; - Vec* var_r31; + Vec *var_r31; s16 temp_r0; u8 temp_r0_2; - unkStruct5* temp_r30; - HsfVector2f* var_r27; + unkStruct5 *temp_r30; + HsfVector2f *var_r27; s16 var_r26; - unkStruct4* var_r29; + unkStruct4 *var_r29; m440Func5 var_r23; - temp_r30 = (unkStruct5*)arg0->unk_120; + temp_r30 = (unkStruct5 *)arg0->unk_120; GXLoadPosMtxImm(arg1, 0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -2323,7 +2424,8 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { temp_r0 = temp_r30->unk10->bmp->dataFmt & 0xF; if ((temp_r0 == 7) || (temp_r0 == 8)) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXA, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -2365,9 +2467,9 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { var_r29 = temp_r30->unk18; var_r31 = temp_r30->unk1C; var_r27 = temp_r30->unk20; - PSMTXROMultVecArray(spF8, &temp_r30->unk2C, (Vec*)&sp68[0], 4); - - for (var_r26 = 0; var_r26 < temp_r30->unk0; var_r26++, var_r29++, var_r27+=4) { + PSMTXROMultVecArray(spF8, &temp_r30->unk2C, (Vec *)&sp68[0], 4); + + for (var_r26 = 0; var_r26 < temp_r30->unk0; var_r26++, var_r29++, var_r27 += 4) { if (var_r29->unk62 == 0) { var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; @@ -2377,14 +2479,16 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { var_r31++; var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; - } else { + } + else { if (0.0f == var_r29->unk44) { - fn_1_A328((Vec*)&sp68[0], &sp38, &var_r29->unk48, 4); + fn_1_A328((Vec *)&sp68[0], &sp38, &var_r29->unk48, 4); PSVECAdd(&sp38, &var_r29->unk54, var_r31++); PSVECAdd(&sp44, &var_r29->unk54, var_r31++); PSVECAdd(&sp50, &var_r29->unk54, var_r31++); PSVECAdd(&sp5C, &var_r29->unk54, var_r31++); - } else { + } + else { fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4); PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); PSMTXConcat(sp128, spC8, sp98); @@ -2404,11 +2508,12 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } -void fn_1_A1B8(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg8, f32 arg9) { +void fn_1_A1B8(HsfVector2f *arg0, s16 arg1, s16 arg2, f32 arg8, f32 arg9) +{ s16 var_r31; s16 var_r30; s16 var_r29; - + for (var_r31 = 0; var_r31 < arg1; var_r31++, arg0++) { var_r30 = (var_r31 % arg2); var_r29 = (var_r31 / arg2); @@ -2417,7 +2522,8 @@ void fn_1_A1B8(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg8, f32 arg9) { } } -void fn_1_A284(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg4) { +void fn_1_A284(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, f32 arg3, f32 arg4) +{ arg0[0].x = arg1[arg2].x; arg0[0].y = arg1[arg2].y; arg0[1].x = (arg3 + arg1[arg2].x); @@ -2428,9 +2534,10 @@ void fn_1_A284(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg arg0[3].y = (arg4 + arg1[arg2].y); } -void fn_1_A328(Vec* arg0, Vec* arg1, Vec* arg2, s16 arg3) { +void fn_1_A328(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ s16 var_r31; - + for (var_r31 = 0; var_r31 < arg3; var_r31++, arg0++, arg1++) { arg1->x = (arg0->x * arg2->x); arg1->y = (arg0->y * arg2->y); @@ -2440,13 +2547,15 @@ void fn_1_A328(Vec* arg0, Vec* arg1, Vec* arg2, s16 arg3) { static s8 lbl_1_data_148 = 0xFF; -void fn_1_A390(ModelData* arg0, Mtx arg1) { +void fn_1_A390(ModelData *arg0, Mtx arg1) +{ if (lbl_1_bss_2 == 0) { if ((HuPadBtnDown[0] & 0x10) != 0) { lbl_1_bss_1 ^= 1; } - if (lbl_1_bss_1 == 0) return; - + if (lbl_1_bss_1 == 0) + return; + if ((HuPadBtn[0] & 1) != 0) { lbl_1_data_20.x -= 4.0f; } @@ -2462,7 +2571,8 @@ void fn_1_A390(ModelData* arg0, Mtx arg1) { lbl_1_data_20.y += 4.0f; } lbl_1_data_2C.y += HuPadSubStkY[0]; - } else { + } + else { if ((HuPadBtn[0] & 8) != 0) { lbl_1_data_20.z -= 4.0f; } @@ -2481,7 +2591,7 @@ void fn_1_A390(ModelData* arg0, Mtx arg1) { Hu3DGLightPosAimSetV(lbl_1_bss_E, &lbl_1_data_2C, &lbl_1_data_20); Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); } - + print8(8, 0x64, 1.5f, "InterXYZ: %.2f %.2f %.2f", lbl_1_data_20.x, lbl_1_data_20.y, lbl_1_data_20.z); print8(8, 0x70, 1.5f, "PositionXYZ: %.2f %.2f %.2f", lbl_1_data_2C.x, lbl_1_data_2C.y, lbl_1_data_2C.z); GXLoadPosMtxImm(arg1, 0); @@ -2506,7 +2616,8 @@ void fn_1_A390(ModelData* arg0, Mtx arg1) { GXColor4u8(0xFF, 0x00, 0x00, 0xFF); } -void fn_1_AA94(void) { +void fn_1_AA94(void) +{ if ((HuPadBtnDown[0] & 0x40) != 0) { lbl_1_bss_2 ^= 1; } @@ -2526,7 +2637,8 @@ void fn_1_AA94(void) { Center.x += HuPadSubStkX[0]; if ((HuPadBtn[0] & 0x20) != 0) { Center.y += HuPadSubStkY[0]; - } else { + } + else { Center.z += HuPadSubStkY[0]; } if ((HuPadBtn[0] & 0x400) != 0) { diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index d26d048a..afeb8fe7 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -23,14 +23,14 @@ s16 lbl_1_bss_70; s16 lbl_1_data_1D8 = 2; s16 lbl_1_data_1DA = -1; u32 lbl_1_data_1DC[8][2] = { - { 0x5F0000, 0 }, - { 0x5F0002, 0 }, - { 0x5F0003, 0 }, - { 0x5F0038, 0 }, - { 0x5F0048, 0 }, - { 0x5F0017, 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x38), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0 }, { 0x47000C, 1 }, - { 0x5F0036, 0 } + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), 0 } }; f32 lbl_1_data_21C[4] = { 210.0f, 190.0f, 170.0f, 0.0f @@ -58,7 +58,7 @@ void fn_1_AEE4(omObjData* arg0) { s16 var_r29; unkObjStruct* temp_r31; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, 0x10000000); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, MEMORY_DEFAULT_NUM); temp_r31 = (unkObjStruct*)arg0->data; memset(temp_r31, 0, 0x78); arg0->stat |= 0x100; @@ -1145,4 +1145,4 @@ void fn_1_F4D4(unkObjStruct* arg0, u16 arg1, u16 arg2) { s32 fn_1_F4FC(s32 arg0) { return lbl_1_bss_B8[arg0]; -} \ No newline at end of file +} diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index b5545366..6d3414e5 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -1,21 +1,21 @@ #include "REL/executor.h" #include "game/chrman.h" +#include "game/frand.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/frand.h" #include "game/wipe.h" -#include "game/minigame_seq.h" #include "game/gamework_data.h" +#include "game/mapspace.h" #include "game/pad.h" #include "game/printfunc.h" -#include "game/mapspace.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/esprite.h" #include "game/sprite.h" @@ -23,7 +23,6 @@ #include "ext_math.h" #include "rel_sqrt_consts.h" - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -66,12 +65,14 @@ float lbl_1_bss_190; s32 lbl_1_bss_150[16]; UnkBss1B0Struct lbl_1_bss_50[32]; -void fn_1_0(void) { +void fn_1_0(void) +{ lbl_1_bss_1F8.unk04 = NULL; lbl_1_bss_1F8.unk08 = NULL; } -void fn_1_24(u16 arg0, s16 arg1) { +void fn_1_24(u16 arg0, s16 arg1) +{ UnkBss1F8Struct *temp_r31; UnkBss1F8Struct *temp_r30; UnkBss1F8Struct *temp_r29; @@ -89,7 +90,8 @@ void fn_1_24(u16 arg0, s16 arg1) { temp_r31->unk08 = temp_r29; } -s16 fn_1_AC(s16 arg0) { +s16 fn_1_AC(s16 arg0) +{ UnkBss1F8Struct *var_r31; UnkBss1F8Struct *temp_r29; UnkBss1F8Struct *temp_r30; @@ -113,12 +115,14 @@ s16 fn_1_AC(s16 arg0) { return -1; } -void fn_1_150(void) { +void fn_1_150(void) +{ lbl_1_bss_1E0.unk10 = NULL; lbl_1_bss_1E0.unk14 = NULL; } -void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) { +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ UnkBss1E0Struct *temp_r27; UnkBss1E0Struct *var_r31; UnkBss1E0Struct *temp_r28; @@ -148,7 +152,8 @@ void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec var_r31->unk14 = temp_r27; } -void fn_1_2D8(void) { +void fn_1_2D8(void) +{ UnkBss1E0Struct *var_r31; UnkBss1E0Struct *temp_r28; UnkBss1E0Struct *temp_r29; @@ -183,7 +188,8 @@ void fn_1_2D8(void) { } } -void fn_1_414(void) { +void fn_1_414(void) +{ s32 i; for (i = 0; i < 32; i++) { @@ -192,7 +198,8 @@ void fn_1_414(void) { } } -s16 fn_1_46C(s32 arg0) { +s16 fn_1_46C(s32 arg0) +{ s32 i; for (i = 0; i < 32; i++) { @@ -210,7 +217,8 @@ s16 fn_1_46C(s32 arg0) { return Hu3DModelCreateFile(arg0); } -void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ s32 var_r30; espBankSet(arg0[arg1 + 1], 10); @@ -233,14 +241,16 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { espBankSet(arg0[arg1 + 6], var_r30 % 10); } -void fn_1_798(s32 arg0) { +void fn_1_798(s32 arg0) +{ lbl_1_bss_190 = 0.0f; lbl_1_bss_1A0 = lbl_1_bss_1A4; GWMGRecordSet(arg0, lbl_1_bss_1A0); fn_1_580(lbl_1_bss_150, 7, lbl_1_bss_1A4); } -void fn_1_9EC(void) { +void fn_1_9EC(void) +{ s32 i; for (i = 0; i < 16; i++) { @@ -248,7 +258,8 @@ void fn_1_9EC(void) { } } -void fn_1_A40(void) { +void fn_1_A40(void) +{ float temp_f31; s32 i; @@ -261,7 +272,8 @@ void fn_1_A40(void) { } } -void fn_1_B4C(float arg0, s32 arg1) { +void fn_1_B4C(float arg0, s32 arg1) +{ float temp_f30; float temp_f31; s32 i; @@ -298,7 +310,8 @@ void fn_1_B4C(float arg0, s32 arg1) { } } -void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ float temp_f31; if (1.0f < arg0) { @@ -310,13 +323,15 @@ void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); } -void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) { +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ Hu3DCameraPosSetV(1, arg0, arg1, arg2); lbl_1_bss_1D0 = *arg0; lbl_1_bss_1B8 = *arg2; } -s32 fn_1_13DC(float arg0, Vec *arg1) { +s32 fn_1_13DC(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -325,13 +340,15 @@ s32 fn_1_13DC(float arg0, Vec *arg1) { Hu3DCameraPosSetV(1, &sp18, arg1, &spC); if (1.0f <= arg0) { return 1; - } else { + } + else { lbl_1_bss_194 = 1; return 0; } } -void fn_1_1710(float arg0, Vec *arg1) { +void fn_1_1710(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -341,7 +358,8 @@ void fn_1_1710(float arg0, Vec *arg1) { lbl_1_bss_194 = 1; } -void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ Mtx sp1C; Vec sp10; float temp_f30; @@ -368,7 +386,8 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { arg2->z = 0.0f; } -void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ Mtx sp10; Hu3DModelObjMtxGet(arg0, arg1, sp10); @@ -377,7 +396,8 @@ void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { arg2->z = sp10[2][3]; } -void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ Mtx spC; ModelData *var_r30; @@ -392,7 +412,8 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { arg2->z = spC[2][3]; } -float fn_1_1E20(float arg0, float arg1, float arg2) { +float fn_1_1E20(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -410,11 +431,13 @@ float fn_1_1E20(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_1F24(s32 arg0) { +void fn_1_1F24(s32 arg0) +{ lbl_1_bss_198 = HuAudSeqPlay((s32)arg0); } -void fn_1_1F58(s32 arg0) { +void fn_1_1F58(s32 arg0) +{ if (lbl_1_bss_198 >= 0) { if (arg0 < 0) { arg0 = 1000; @@ -424,7 +447,8 @@ void fn_1_1F58(s32 arg0) { lbl_1_bss_198 = -1; } -void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ Vec sp18; float var_f28; s32 var_r30; @@ -433,7 +457,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { sp18.y = 0.0f; sp18.z = 0.0f; sp18.x = arg2 / 4.0f; - sp18.z = -(float) arg3 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; var_r30 = 0; var_f28 = VECMagXZ(&sp18); if (0.5f <= var_f28) { @@ -447,11 +471,12 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); if (8.0f <= var_f28) { var_r30 = 2; - } else { + } + else { var_r30 = 1; } } - PSVECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + PSVECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } omObjData *lbl_1_bss_4C; @@ -475,10 +500,7 @@ float lbl_1_bss_8; float lbl_1_bss_4; float lbl_1_bss_0; -s16 lbl_1_data_0[8] = { - 0, 1, 2, 3, - 4, 5, 6, 7 -}; +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; Vec lbl_1_data_10 = { 0, 100, 400 }; Vec lbl_1_data_1C = { 0, 1, 0 }; @@ -496,572 +518,498 @@ Vec lbl_1_data_98 = { 0, 3000, 1000 }; Vec lbl_1_data_A4 = { 0, 0, 0 }; s32 lbl_1_data_B0[8][16] = { - { - 0x005F0000, - 0x00480000, - 0x00480008, - 0x00480010, - 0x00480018, - 0x00480020, - 0x005F0000, - 0x00480030, - 0x00480028, - 0x005F0017, - 0x005F0018 - }, - { - 0x001A0000, - 0x00480001, - 0x00480009, - 0x00480011, - 0x00480019, - 0x00480021, - 0x001A0000, - 0x00480031, - 0x00480029, - 0x001A0017, - 0x001A0018 - }, - { - 0x006D0000, - 0x00480002, - 0x0048000A, - 0x00480012, - 0x0048001A, - 0x00480022, - 0x006D0000, - 0x00480032, - 0x0048002A, - 0x006D0017, - 0x006D0018 - }, - { - 0x008A0000, - 0x00480003, - 0x0048000B, - 0x00480013, - 0x0048001B, - 0x00480023, - 0x008A0000, - 0x00480033, - 0x0048002B, - 0x008A0017, - 0x008A0018 - }, - { - 0x00850000, - 0x00480004, - 0x0048000C, - 0x00480014, - 0x0048001C, - 0x00480024, - 0x00850000, - 0x00480034, - 0x0048002C, - 0x00850017, - 0x00850018 - }, - { - 0x00110000, - 0x00480005, - 0x0048000D, - 0x00480015, - 0x0048001D, - 0x00480025, - 0x00110000, - 0x00480035, - 0x0048002D, - 0x00110017, - 0x00110018 - }, - { - 0x000D0000, - 0x00480006, - 0x0048000E, - 0x00480016, - 0x0048001E, - 0x00480026, - 0x000D0000, - 0x00480036, - 0x0048002E, - 0x000D0017, - 0x000D0018 - }, - { - 0x00810000, - 0x00480007, - 0x0048000F, - 0x00480017, - 0x0048001F, - 0x00480027, - 0x00810000, - 0x00480037, - 0x0048002F, - 0x00810017, - 0x00810018 - } + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x08), + DATA_MAKE_NUM(DATADIR_M441, 0x10), + DATA_MAKE_NUM(DATADIR_M441, 0x18), + DATA_MAKE_NUM(DATADIR_M441, 0x20), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x30), + DATA_MAKE_NUM(DATADIR_M441, 0x28), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x01), + DATA_MAKE_NUM(DATADIR_M441, 0x09), + DATA_MAKE_NUM(DATADIR_M441, 0x11), + DATA_MAKE_NUM(DATADIR_M441, 0x19), + DATA_MAKE_NUM(DATADIR_M441, 0x21), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x31), + DATA_MAKE_NUM(DATADIR_M441, 0x29), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x02), + DATA_MAKE_NUM(DATADIR_M441, 0x0A), + DATA_MAKE_NUM(DATADIR_M441, 0x12), + DATA_MAKE_NUM(DATADIR_M441, 0x1A), + DATA_MAKE_NUM(DATADIR_M441, 0x22), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x32), + DATA_MAKE_NUM(DATADIR_M441, 0x2A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x03), + DATA_MAKE_NUM(DATADIR_M441, 0x0B), + DATA_MAKE_NUM(DATADIR_M441, 0x13), + DATA_MAKE_NUM(DATADIR_M441, 0x1B), + DATA_MAKE_NUM(DATADIR_M441, 0x23), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x33), + DATA_MAKE_NUM(DATADIR_M441, 0x2B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x04), + DATA_MAKE_NUM(DATADIR_M441, 0x0C), + DATA_MAKE_NUM(DATADIR_M441, 0x14), + DATA_MAKE_NUM(DATADIR_M441, 0x1C), + DATA_MAKE_NUM(DATADIR_M441, 0x24), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x34), + DATA_MAKE_NUM(DATADIR_M441, 0x2C), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x05), + DATA_MAKE_NUM(DATADIR_M441, 0x0D), + DATA_MAKE_NUM(DATADIR_M441, 0x15), + DATA_MAKE_NUM(DATADIR_M441, 0x1D), + DATA_MAKE_NUM(DATADIR_M441, 0x25), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x35), + DATA_MAKE_NUM(DATADIR_M441, 0x2D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x06), + DATA_MAKE_NUM(DATADIR_M441, 0x0E), + DATA_MAKE_NUM(DATADIR_M441, 0x16), + DATA_MAKE_NUM(DATADIR_M441, 0x1E), + DATA_MAKE_NUM(DATADIR_M441, 0x26), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x36), + DATA_MAKE_NUM(DATADIR_M441, 0x2E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x07), + DATA_MAKE_NUM(DATADIR_M441, 0x0F), + DATA_MAKE_NUM(DATADIR_M441, 0x17), + DATA_MAKE_NUM(DATADIR_M441, 0x1F), + DATA_MAKE_NUM(DATADIR_M441, 0x27), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x37), + DATA_MAKE_NUM(DATADIR_M441, 0x2F), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x18), + }, }; -s32 lbl_1_data_2B0[2] = { - 0x00480040, - 0x00480041 -}; +s32 lbl_1_data_2B0[2] = { DATA_MAKE_NUM(DATADIR_M441, 0x40), DATA_MAKE_NUM(DATADIR_M441, 0x41) }; s32 lbl_1_data_2B8[3] = { - 0x00480043, - 0x00480044, - 0x00480045 + DATA_MAKE_NUM(DATADIR_M441, 0x43), + DATA_MAKE_NUM(DATADIR_M441, 0x44), + DATA_MAKE_NUM(DATADIR_M441, 0x45), }; s32 lbl_1_data_2C4[4] = { - 0x00610022, - 0x00610021, - 0x0061002F, - 0x0061002F + DATA_MAKE_NUM(DATADIR_MGCONST, 0x22), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x21), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x2F), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x2F), }; -float lbl_1_data_2D4[4][4] = { - -350, 0, 350, 135, - 350, 0, 350, 225, - 350, 0, -350, 315, - -350, 0, -350, 45 -}; +float lbl_1_data_2D4[4][4] = { -350, 0, 350, 135, 350, 0, 350, 225, 350, 0, -350, 315, -350, 0, -350, 45 }; s32 lbl_1_data_314[3] = { - 0x0048003D, - 0x0048003C, - 0x0048003B + DATA_MAKE_NUM(DATADIR_M441, 0x3D), + DATA_MAKE_NUM(DATADIR_M441, 0x3C), + DATA_MAKE_NUM(DATADIR_M441, 0x3B), }; s16 lbl_1_data_320[3] = { 10, 5, 2 }; s16 lbl_1_data_326[3] = { 1, 2, 3 }; -Vec lbl_1_data_32C[3] = { - { 0.5f, 0.5f, 0.5f }, - { 0.7f, 0.7f, 0.7f }, - { 0.9f, 0.9f, 0.9f } -}; +Vec lbl_1_data_32C[3] = { { 0.5f, 0.5f, 0.5f }, { 0.7f, 0.7f, 0.7f }, { 0.9f, 0.9f, 0.9f } }; -float lbl_1_data_350[3][2] = { - 0.5f, 4.0f, - 0.5f, 4.0f, - 2.0f, 6.0f -}; +float lbl_1_data_350[3][2] = { 0.5f, 4.0f, 0.5f, 4.0f, 2.0f, 6.0f }; -s32 lbl_1_data_368[1] = { 0x0048003E }; +s32 lbl_1_data_368[1] = { DATA_MAKE_NUM(DATADIR_M441, 0x3E) }; float lbl_1_data_36C[3] = { 0.7f, 85.0f, 22.0f }; float lbl_1_data_378[3] = { 0.8f, 70.0f, 27.0f }; float lbl_1_data_384[3] = { 0.9f, 55.0f, 32.0f }; float lbl_1_data_390[3] = { 1.0f, 40.0f, 37.0f }; -HsfanimStruct00 lbl_1_data_39C = { - 20, - { 0, 0 }, - 1, - 30, - 0, - { 0, -0.05f, 0 }, - 1.0f, - 0.99f, - 20.0f, - 0.98f, - 4, - { - { 128, 128, 128, 255 }, - { 255, 0, 255, 255 }, - { 0, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 128, 128, 128, 0 }, - { 255, 0, 255, 0 }, - { 0, 255, 255, 0 }, - { 255, 255, 255, 0 } - } -}; +HsfanimStruct00 lbl_1_data_39C = { 20, { 0, 0 }, 1, 30, 0, { 0, -0.05f, 0 }, 1.0f, 0.99f, 20.0f, 0.98f, 4, + { { 128, 128, 128, 255 }, { 255, 0, 255, 255 }, { 0, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 128, 128, 128, 0 }, { 255, 0, 255, 0 }, { 0, 255, 255, 0 }, { 255, 255, 255, 0 } } }; -HsfanimStruct00 lbl_1_data_3EC = { - 30, - { 0, 0 }, - 1, - 0, - 360, - { 0, -0.05f, 0 }, - 10.0f, - 0.98f, - 20.0f, - 1.05f, - 4, - { - { 128, 128, 128, 255 }, - { 255, 0, 255, 255 }, - { 0, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 128, 128, 128, 0 }, - { 255, 0, 255, 0 }, - { 0, 255, 255, 0 }, - { 255, 255, 255, 0 } - } -}; +HsfanimStruct00 lbl_1_data_3EC = { 30, { 0, 0 }, 1, 0, 360, { 0, -0.05f, 0 }, 10.0f, 0.98f, 20.0f, 1.05f, 4, + { { 128, 128, 128, 255 }, { 255, 0, 255, 255 }, { 0, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 128, 128, 128, 0 }, { 255, 0, 255, 0 }, { 0, 255, 255, 0 }, { 255, 255, 255, 0 } } }; HsfanimStruct00 lbl_1_data_43C = { - 60, - { 0, 0 }, - 1, - 0, - 360, - { 0, -0.05f, 0 }, - 10.0f, - 0.99f, - 30.0f, - 0.98f, - 1, - { - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 } - }, + 60, + { 0, 0 }, + 1, + 0, + 360, + { 0, -0.05f, 0 }, + 10.0f, + 0.99f, + 30.0f, + 0.98f, + 1, + { { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 } }, }; HsfanimStruct00 lbl_1_data_48C = { - 30, - { 0, 0 }, - 1, - 10, - 360, - { 0, 0.1f, 0 }, - 1.0f, - 1.0f, - 30.0f, - 1.05f, - 1, - { - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 } - }, + 30, + { 0, 0 }, + 1, + 10, + 360, + { 0, 0.1f, 0 }, + 1.0f, + 1.0f, + 30.0f, + 1.05f, + 1, + { { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 } }, }; #include "src/REL/executor.c" void fn_1_2454(omObjData *object) { - HuSysVWaitSet(1); - if(HuPadBtn[0] & PAD_BUTTON_X) { - lbl_1_bss_1A4 = -1; - } - print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_1A8, lbl_1_bss_4C->work[0], lbl_1_bss_19E); - print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_0, lbl_1_bss_8, lbl_1_bss_4); - print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM)-HuMemUsedMallocSizeGet(HEAP_SYSTEM), HuMemHeapSizeGet(HEAP_DATA)-HuMemUsedMallocSizeGet(HEAP_DATA)); - lbl_1_bss_4 -= HuPadSubStkX[0]/59.0f; - lbl_1_bss_8 -= 4.0f*(HuPadSubStkY[0]/59.0f); - lbl_1_bss_0 -= (HuPadTrigL[0]/150.0f)*4.0f; - lbl_1_bss_0 += (HuPadTrigR[0]/150.0f)*4.0f; + HuSysVWaitSet(1); + if (HuPadBtn[0] & PAD_BUTTON_X) { + lbl_1_bss_1A4 = -1; + } + print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_1A8, lbl_1_bss_4C->work[0], lbl_1_bss_19E); + print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_0, lbl_1_bss_8, lbl_1_bss_4); + print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), + HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); + lbl_1_bss_4 -= HuPadSubStkX[0] / 59.0f; + lbl_1_bss_8 -= 4.0f * (HuPadSubStkY[0] / 59.0f); + lbl_1_bss_0 -= (HuPadTrigL[0] / 150.0f) * 4.0f; + lbl_1_bss_0 += (HuPadTrigR[0] / 150.0f) * 4.0f; } typedef struct work_53E8 { - float *unk0; - Vec unk4; - Vec unk10; - Vec unk1C; - Vec unk28; - Vec unk34; - Vec unk40; - Vec unk4C; - float unk58; - float unk5C; - float unk60; - Vec unk64; - Vec unk70; - Vec unk7C; - float unk88; - float unk8C; - s32 unk90; - s32 unk94; - s32 unk98; - s32 unk9C; - s32 unkA0; - s32 unkA4; - s32 unkA8; - s32 unkAC; - s32 unkB0; - s32 unkB4; - s32 unkB8; - s32 unkBC; - s32 unkC0; - s32 unkC4[3]; - s32 unkD0[4]; - s16 unkE0; - float unkE4; + float *unk0; + Vec unk4; + Vec unk10; + Vec unk1C; + Vec unk28; + Vec unk34; + Vec unk40; + Vec unk4C; + float unk58; + float unk5C; + float unk60; + Vec unk64; + Vec unk70; + Vec unk7C; + float unk88; + float unk8C; + s32 unk90; + s32 unk94; + s32 unk98; + s32 unk9C; + s32 unkA0; + s32 unkA4; + s32 unkA8; + s32 unkAC; + s32 unkB0; + s32 unkB4; + s32 unkB8; + s32 unkBC; + s32 unkC0; + s32 unkC4[3]; + s32 unkD0[4]; + s16 unkE0; + float unkE4; } Work53E8; - void fn_1_273C(Work53E8 *arg0) { - float temp_f31 = arg0->unk4.x; - float temp_f30 = arg0->unk4.z; - float temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(600.0f-arg0->unk60 < temp_f28) { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - arg0->unk4.x = temp_f31*(600.0f-arg0->unk60); - arg0->unk4.z = temp_f30*(600.0f-arg0->unk60); - } + float temp_f31 = arg0->unk4.x; + float temp_f30 = arg0->unk4.z; + float temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (600.0f - arg0->unk60 < temp_f28) { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + arg0->unk4.x = temp_f31 * (600.0f - arg0->unk60); + arg0->unk4.z = temp_f30 * (600.0f - arg0->unk60); + } } void fn_1_2904(Work53E8 *arg0, s32 arg1) { - s32 i; - for(i=0; i<4; i++) { - Work53E8 *temp_r31 = lbl_1_bss_48[i]->data; - if(arg0->unkB0 != temp_r31->unkB0) { - float temp_f31 = arg0->unk4.x-temp_r31->unk4.x; - float temp_f30 = arg0->unk4.z-temp_r31->unk4.z; - float temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 < arg0->unk60+temp_r31->unk60) { - if(arg1 && arg0->unk1C.z == temp_r31->unk1C.z) { - arg0->unk1C.z += 55.0f*((0 > arg0->unk4.z) ? -1 : 1); - } - if(0.0f == temp_f28) { - temp_f31 = 0.0f; - temp_f30 = -1.0f; - } else { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - } - arg0->unk4.x = temp_r31->unk4.x+(temp_f31*(arg0->unk60+temp_r31->unk60)); - arg0->unk4.z = temp_r31->unk4.z+(temp_f30*(arg0->unk60+temp_r31->unk60)); - } - } - - } + s32 i; + for (i = 0; i < 4; i++) { + Work53E8 *temp_r31 = lbl_1_bss_48[i]->data; + if (arg0->unkB0 != temp_r31->unkB0) { + float temp_f31 = arg0->unk4.x - temp_r31->unk4.x; + float temp_f30 = arg0->unk4.z - temp_r31->unk4.z; + float temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 < arg0->unk60 + temp_r31->unk60) { + if (arg1 && arg0->unk1C.z == temp_r31->unk1C.z) { + arg0->unk1C.z += 55.0f * ((0 > arg0->unk4.z) ? -1 : 1); + } + if (0.0f == temp_f28) { + temp_f31 = 0.0f; + temp_f30 = -1.0f; + } + else { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + } + arg0->unk4.x = temp_r31->unk4.x + (temp_f31 * (arg0->unk60 + temp_r31->unk60)); + arg0->unk4.z = temp_r31->unk4.z + (temp_f30 * (arg0->unk60 + temp_r31->unk60)); + } + } + } } void fn_1_2BD4(Work53E8 *arg0, omObjData *arg1, s32 arg2) { - s32 temp_r29; - if(!arg2) { - arg0->unk10.x = 0; - arg0->unk10.y = 0; - arg0->unk10.z = 0; - arg0->unk10.x = arg0->unkA4/4.0f; - arg0->unk10.z = -((float)arg0->unkA8)/4.0f; - } - temp_r29 = 1; - arg0->unk5C = VECMagXZ(&arg0->unk10); - if(0.5f <= arg0->unk5C) { - if(10.0f <= arg0->unk5C) { - arg0->unk10.x /= arg0->unk5C; - arg0->unk10.z /= arg0->unk5C; - arg0->unk5C = 10.0f; - arg0->unk10.x = 10.0f*arg0->unk10.x; - arg0->unk10.z = 10.0f*arg0->unk10.z; - } - arg0->unk58 = fn_1_1E20(arg0->unk58, atan2d(arg0->unk10.x, arg0->unk10.z), 0.4f); - if(8.0f <= arg0->unk5C) { - temp_r29 = 3; - } else { - temp_r29 = 2; - } - } - VECAdd(&arg0->unk4, &arg0->unk10, &arg0->unk4); - fn_1_273C(arg0); - fn_1_2904(arg0, arg2); - if(arg2) { - temp_r29 += 6; - if(temp_r29 > 6) { - temp_r29 = 7; - } - } - if(temp_r29 >= 0 && arg0->unk9C != temp_r29) { - arg0->unk9C = temp_r29; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unk9C], 0, 8, 0x40000001); - } + s32 temp_r29; + if (!arg2) { + arg0->unk10.x = 0; + arg0->unk10.y = 0; + arg0->unk10.z = 0; + arg0->unk10.x = arg0->unkA4 / 4.0f; + arg0->unk10.z = -((float)arg0->unkA8) / 4.0f; + } + temp_r29 = 1; + arg0->unk5C = VECMagXZ(&arg0->unk10); + if (0.5f <= arg0->unk5C) { + if (10.0f <= arg0->unk5C) { + arg0->unk10.x /= arg0->unk5C; + arg0->unk10.z /= arg0->unk5C; + arg0->unk5C = 10.0f; + arg0->unk10.x = 10.0f * arg0->unk10.x; + arg0->unk10.z = 10.0f * arg0->unk10.z; + } + arg0->unk58 = fn_1_1E20(arg0->unk58, atan2d(arg0->unk10.x, arg0->unk10.z), 0.4f); + if (8.0f <= arg0->unk5C) { + temp_r29 = 3; + } + else { + temp_r29 = 2; + } + } + VECAdd(&arg0->unk4, &arg0->unk10, &arg0->unk4); + fn_1_273C(arg0); + fn_1_2904(arg0, arg2); + if (arg2) { + temp_r29 += 6; + if (temp_r29 > 6) { + temp_r29 = 7; + } + } + if (temp_r29 >= 0 && arg0->unk9C != temp_r29) { + arg0->unk9C = temp_r29; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unk9C], 0, 8, 0x40000001); + } } void fn_1_3404(Work53E8 *arg0) { - float temp_f31; - float temp_f30; - float temp_f27; - float temp_f26; - float temp_f25; - - if(NULL == arg0->unk0) { - return; - } - temp_f31 = 0; - temp_f30 = 0; - if(arg0->unk94 == 0) { - temp_f31 = arg0->unk7C.x-arg0->unk4.x; - temp_f30 = arg0->unk7C.z-arg0->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(10.0f <= temp_f27) { - temp_f31 /= temp_f27; - temp_f30 /= temp_f27; - } else { - temp_f31 = 0; - temp_f30 = 0; - } - if(170.0f < temp_f27 && 224.0f > temp_f27) { - if(200.0f > arg0->unk7C.y) { - arg0->unkAC |= PAD_BUTTON_B; - } else { - arg0->unkAC |= PAD_BUTTON_A; - } - arg0->unk94 = 1; - arg0->unk8C = arg0->unk0[1]+((frandf()*arg0->unk0[1])/2); - temp_f25 = 1.0f-(lbl_1_bss_1A4/3600.0f); - if(0.25f < temp_f25) { - arg0->unk8C *= arg0->unk90/(arg0->unk0[2]*temp_f25); - } - if(arg0->unk8C < frandmod(100)) { - arg0->unk94 = 0; - } - } - } else { - if(arg0->unk94 == 1) { - arg0->unk94 = 2; - temp_f26 = 360.0f*frandf(); - temp_f27 = (600.0f-arg0->unk60)*frandf(); - arg0->unk70.x = temp_f27*sind(temp_f26); - arg0->unk70.y = 0; - arg0->unk70.z = temp_f27*cosd(temp_f26); - } - temp_f31 = arg0->unk70.x-arg0->unk4.x; - temp_f30 = arg0->unk70.z-arg0->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(10.0f <= temp_f27) { - temp_f31 /= temp_f27; - temp_f30 /= temp_f27; - } else { - temp_f31 = 0; - temp_f30 = 0; - arg0->unk94 = 1; - } - arg0->unk8C--; - if(0.0f > arg0->unk8C) { - arg0->unk94 = 0; - } - } - arg0->unkA4 = (72.0f*temp_f31)*arg0->unk0[0]; - arg0->unkA8 = (72.0f*-temp_f30)*arg0->unk0[0]; - if(ABS(arg0->unkA4) > 72) { - arg0->unkA4 = ((arg0->unkA4 < 0) ? -1 : 1)*72; - } - if(ABS(arg0->unkA8) > 72) { - arg0->unkA8 = ((arg0->unkA8 < 0) ? -1 : 1)*72; - } + float temp_f31; + float temp_f30; + float temp_f27; + float temp_f26; + float temp_f25; + + if (NULL == arg0->unk0) { + return; + } + temp_f31 = 0; + temp_f30 = 0; + if (arg0->unk94 == 0) { + temp_f31 = arg0->unk7C.x - arg0->unk4.x; + temp_f30 = arg0->unk7C.z - arg0->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (10.0f <= temp_f27) { + temp_f31 /= temp_f27; + temp_f30 /= temp_f27; + } + else { + temp_f31 = 0; + temp_f30 = 0; + } + if (170.0f < temp_f27 && 224.0f > temp_f27) { + if (200.0f > arg0->unk7C.y) { + arg0->unkAC |= PAD_BUTTON_B; + } + else { + arg0->unkAC |= PAD_BUTTON_A; + } + arg0->unk94 = 1; + arg0->unk8C = arg0->unk0[1] + ((frandf() * arg0->unk0[1]) / 2); + temp_f25 = 1.0f - (lbl_1_bss_1A4 / 3600.0f); + if (0.25f < temp_f25) { + arg0->unk8C *= arg0->unk90 / (arg0->unk0[2] * temp_f25); + } + if (arg0->unk8C < frandmod(100)) { + arg0->unk94 = 0; + } + } + } + else { + if (arg0->unk94 == 1) { + arg0->unk94 = 2; + temp_f26 = 360.0f * frandf(); + temp_f27 = (600.0f - arg0->unk60) * frandf(); + arg0->unk70.x = temp_f27 * sind(temp_f26); + arg0->unk70.y = 0; + arg0->unk70.z = temp_f27 * cosd(temp_f26); + } + temp_f31 = arg0->unk70.x - arg0->unk4.x; + temp_f30 = arg0->unk70.z - arg0->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (10.0f <= temp_f27) { + temp_f31 /= temp_f27; + temp_f30 /= temp_f27; + } + else { + temp_f31 = 0; + temp_f30 = 0; + arg0->unk94 = 1; + } + arg0->unk8C--; + if (0.0f > arg0->unk8C) { + arg0->unk94 = 0; + } + } + arg0->unkA4 = (72.0f * temp_f31) * arg0->unk0[0]; + arg0->unkA8 = (72.0f * -temp_f30) * arg0->unk0[0]; + if (ABS(arg0->unkA4) > 72) { + arg0->unkA4 = ((arg0->unkA4 < 0) ? -1 : 1) * 72; + } + if (ABS(arg0->unkA8) > 72) { + arg0->unkA8 = ((arg0->unkA8 < 0) ? -1 : 1) * 72; + } } void fn_1_3B04(Work53E8 *arg0, omObjData *arg1) { - arg0->unk64.z++; - if(10.0f >= arg0->unk64.z) { - float temp_f31 = (0.3f*sind(180.0f*(arg0->unk64.z/10.0f)))+1.5f; - Hu3DModelScaleSet(arg1->model[2], temp_f31, temp_f31, temp_f31); - } + arg0->unk64.z++; + if (10.0f >= arg0->unk64.z) { + float temp_f31 = (0.3f * sind(180.0f * (arg0->unk64.z / 10.0f))) + 1.5f; + Hu3DModelScaleSet(arg1->model[2], temp_f31, temp_f31, temp_f31); + } } void fn_1_40A8(omObjData *object); void fn_1_3C00(omObjData *object) { - Work53E8 *work = object->data; - Mtx hookMtx; - Vec netOfs; - if(work->unk98 == 2004 && lbl_1_bss_4C->work[0] >= 1005) { - work->unk98 = 2007; - work->unk64.x = 20; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 20, 0x40000001); - object->func = fn_1_40A8; - return; - } - work->unk88 = 10000; - if(GWPlayerCfg[work->unkB0].iscom) { - work->unkA4 = 0; - work->unkA8 = 0; - work->unkAC = 0; - fn_1_3404(work); - } else { - work->unkA4 = HuPadStkX[work->unkB8]; - work->unkA8 = HuPadStkY[work->unkB8]; - work->unkAC = HuPadBtnDown[work->unkB8]; - } - switch(work->unk98) { - case 2004: - fn_1_2BD4(work, object, 0); - if(work->unkAC & PAD_BUTTON_A) { - work->unk98 = 2005; - work->unk64.x = 10; - work->unkE4 = 0; - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - if(work->unkAC & PAD_BUTTON_B) { - work->unk98 = 2005; - work->unk64.x = 10; - work->unkE4 = 0; - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 8, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - break; - - case 2005: - work->unk64.x--; - if(0.0f > work->unk64.x && 20.0f < Hu3DMotionTimeGet(object->model[0])) { - work->unk98++; - } - work->unkE4++; - if(240.0f < work->unkE4) { - work->unk98 = 2006; - } - break; - - case 2006: - work->unkE4++; - if(240.0f < work->unkE4 || Hu3DMotionEndCheck(object->model[0])) { - work->unk98 = 2004; - work->unk9C = 1; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 8, 0x40000001); - } - break; - - default: - OSReport("*** player mode error(%d)!!\n", work->unk98); - break; - } - omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); - omSetRot(object, 0, work->unk58, 0); - netOfs.x = 0; - netOfs.y = 0; - netOfs.z = 170; - Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); - MTXMultVec(hookMtx, &netOfs, &work->unk28); - + Work53E8 *work = object->data; + Mtx hookMtx; + Vec netOfs; + if (work->unk98 == 2004 && lbl_1_bss_4C->work[0] >= 1005) { + work->unk98 = 2007; + work->unk64.x = 20; + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 20, 0x40000001); + object->func = fn_1_40A8; + return; + } + work->unk88 = 10000; + if (GWPlayerCfg[work->unkB0].iscom) { + work->unkA4 = 0; + work->unkA8 = 0; + work->unkAC = 0; + fn_1_3404(work); + } + else { + work->unkA4 = HuPadStkX[work->unkB8]; + work->unkA8 = HuPadStkY[work->unkB8]; + work->unkAC = HuPadBtnDown[work->unkB8]; + } + switch (work->unk98) { + case 2004: + fn_1_2BD4(work, object, 0); + if (work->unkAC & PAD_BUTTON_A) { + work->unk98 = 2005; + work->unk64.x = 10; + work->unkE4 = 0; + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + if (work->unkAC & PAD_BUTTON_B) { + work->unk98 = 2005; + work->unk64.x = 10; + work->unkE4 = 0; + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 8, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + break; + + case 2005: + work->unk64.x--; + if (0.0f > work->unk64.x && 20.0f < Hu3DMotionTimeGet(object->model[0])) { + work->unk98++; + } + work->unkE4++; + if (240.0f < work->unkE4) { + work->unk98 = 2006; + } + break; + + case 2006: + work->unkE4++; + if (240.0f < work->unkE4 || Hu3DMotionEndCheck(object->model[0])) { + work->unk98 = 2004; + work->unk9C = 1; + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 8, 0x40000001); + } + break; + + default: + OSReport("*** player mode error(%d)!!\n", work->unk98); + break; + } + omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); + omSetRot(object, 0, work->unk58, 0); + netOfs.x = 0; + netOfs.y = 0; + netOfs.z = 170; + Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); + MTXMultVec(hookMtx, &netOfs, &work->unk28); } -static inline void fn_1_40A8InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) { +static inline void fn_1_40A8InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) +{ arg0->x = arg1; arg0->y = arg2; arg0->z = arg3; @@ -1071,1089 +1019,1103 @@ void fn_1_892C(s16 arg0, s16 arg1, Vec *arg2); void fn_1_40A8(omObjData *object) { - float angle; - Mtx hookMtx; - Vec pos3D; - Vec pos2D; - Work53E8 *work = object->data; - s32 i; - - switch(work->unk98) { - case 2000: - if(lbl_1_bss_4C->work[0] == 1002 && 90.0f < lbl_1_bss_28) { - work->unk98++; - work->unk64.x = 10.0f; - Hu3DModelAttrReset(object->model[0], 0x40000003); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 10, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - break; - - case 2001: - work->unk64.x--; - if(0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { - work->unk98++; - work->unk64.x = 10.0f; - Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 10, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - break; - - case 2002: - work->unk64.x--; - if(0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { - work->unk98++; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 10, 0x40000001); - } - break; - - case 2003: - if(lbl_1_bss_4C->work[0] >= 1004) { - work->unk98++; - object->func = fn_1_3C00; - } - break; - - case 2007: - work->unk64.x--; - if(0.0f > work->unk64.x && lbl_1_bss_4C->work[0] == 1006) { - work->unk98++; - work->unk64.x = 40; - Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); - Hu3DMtxTransGet(hookMtx, &work->unk28); - Hu3DMtxRotGet(hookMtx, &work->unk34); - Hu3DMtxScaleGet(hookMtx, &work->unk40); - Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); - Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); - Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); - } - break; - - case 2008: - work->unk28.y += 4; - work->unk34.x += 24.0f; - work->unk40.x *= 0.95f; - work->unk40.y *= 0.95f; - work->unk40.z *= 0.95f; - Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); - Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); - Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); - work->unk64.x--; - if(0.0f > work->unk64.x) { - float temp_f24; - work->unk98++; - work->unk64.x = 0; - temp_f24 = (work->unkB0*160.0f)-240.0f; - work->unk1C.x = temp_f24; - work->unk1C.y = 0; - work->unk1C.z = 0; - Hu3DModelAttrSet(object->model[1], 1); - work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); - Hu3DParManPosSet(work->unkE0, work->unk28.x, work->unk28.y, work->unk28.z); - Hu3DParManAttrReset(work->unkE0, 1); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); - HuAudFXPlay(1815); - - } - break; - - case 2009: - work->unk64.x++; - if(10.0f == work->unk64.x) { - Hu3DParManAttrSet(work->unkE0, 1); - } - work->unk10.x = 0; - work->unk10.y = 0; - work->unk10.z = 0; - work->unk10.x = work->unk1C.x-work->unk4.x; - work->unk10.z = work->unk1C.z-work->unk4.z; - if(10.0f < work->unk64.x && 0.0f == work->unk10.x && 0.0f == work->unk10.z && 0.0f == work->unk1C.z) { - work->unk98++; - work->unkA0 = 1; - } else { - fn_1_2BD4(work, object, 1); - if(0.0f != work->unk1C.z) { - work->unk1C.z -= ((0.0f > work->unk1C.z) ? -1 : 1)*5.0f; - } - } - break; - - case 2010: - work->unk58 = fn_1_1E20(work->unk58, 0.0f, 0.5f); - angle = fmod(-work->unk58, 360.0f); - if(-180.0f > angle) { - angle += 360.0f; - } - if(work->unkA0) { - if(8.0f > ABS(angle)) { - work->unkA0 = 0; - Hu3DModelPosSet(object->model[2], 0, 0, -10); - Hu3DMotionShiftSet(object->model[0], object->motion[6], 0, 4, 0x40000001); - } - } - if(lbl_1_bss_4C->work[0] == 1007) { - work->unk98++; - work->unk64.x = 10.0f; - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[8], 0, 8, 0); - work->unk64.y = -90; - fn_1_40A8InlineFunc(&pos3D, work->unk4.x, 250, work->unk4.z); - Hu3D3Dto2D(&pos3D, 1, &pos2D); - espTPLvlSet(work->unkD0[0], 0.5f); - espPosSet(work->unkD0[0], pos2D.x, pos2D.y); - espPosSet(work->unkD0[1], pos2D.x, pos2D.y); - espPosSet(work->unkD0[2], pos2D.x-14, 10+pos2D.y); - espPosSet(work->unkD0[3], (pos2D.x-14)+28, 10+pos2D.y); - for(i=0; i<4; i++) { - espScaleSet(work->unkD0[i], 0.1f, 0.1f); - espBankSet(work->unkD0[i], 0); - espDispOn(work->unkD0[i]); - } - work->unkE0 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_43C); - Hu3DParManPosSet(work->unkE0, pos3D.x, pos3D.y, pos3D.z); - } - break; - - case 2011: - work->unk64.y += 18.0f; - if(180.0f >= work->unk64.y) { - for(i=0; i<4; i++) { - espScaleSet(work->unkD0[i], sind(work->unk64.y)+1, sind(work->unk64.y)+1); - } - } - work->unk64.x--; - if(0.0f > work->unk64.x) { - float motTime = Hu3DMotionTimeGet(object->model[0]); - if(18.0f == motTime) { - Hu3DParManAttrSet(work->unkE0, 1); - Hu3DModelPosSet(object->model[2], 0, 0, 0); - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4)); - Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[2]); - } - if(40.0f == motTime) { - work->unk64.z = 0; - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); - fn_1_1D18(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), &work->unk4C); - work->unk4C.z += 20.0f; - Hu3DModelPosSet(object->model[2], work->unk4C.x, work->unk4C.y, work->unk4C.z); - } - if(40.0f <= motTime) { - work->unk64.z++; - if(12.0f >= work->unk64.z) { - float scale = sind(150.0f*(work->unk64.z/12.0f))+1.0; - Hu3DModelScaleSet(object->model[2], scale, scale, scale); - } - } - if(Hu3DMotionEndCheck(object->model[0])) { - work->unk98++; - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DMotionSet(object->model[2], object->motion[14]); - for(i=0; i<4; i++) { - espScaleSet(work->unkD0[i], 1.0f, 1.0f); - } - } - } - break; - - case 2012: - if(Hu3DMotionEndCheck(object->model[2])) { - work->unk98++; - work->unk64.x = 0; - } - break; - - case 2013: - work->unk64.x--; - if(0.0f > work->unk64.x) { - s32 choType; - work->unk64.x = (20.0f*frandf())+20.0f; - choType = -1; - for(i=0; i<3; i++) { - if(choType < 0 && work->unkC4[i] > 0) { - choType = i; - } - } - if(choType < 0) { - work->unk98++; - work->unk64.x = 0; - } else { - lbl_1_bss_20++; - work->unkBC += lbl_1_data_326[choType]; - if(work->unkBC > 99) { - work->unkBC = 99; - } - work->unkC4[choType]--; - fn_1_892C(work->unkB0, choType, &work->unk4C); - HuAudFXPlay(1816); - espBankSet(work->unkD0[2], work->unkBC/10); - espBankSet(work->unkD0[3], work->unkBC%10); - work->unk64.z = 0; - } - } - break; - - case 2014: - work->unk64.x++; - if(30.0f == work->unk64.x) { - Hu3DModelAttrSet(object->model[2], 1); - work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); - Hu3DParManPosSet(work->unkE0, work->unk4C.x, work->unk4C.y+20, work->unk4C.z); - Hu3DParManAttrReset(work->unkE0, 1); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); - HuAudFXPlay(1815); - } - if(40.0f == work->unk64.x) { - Hu3DParManAttrSet(work->unkE0, 1); - } - if(60.0f < work->unk64.x && work->unkC0 >= 0) { - work->unk98++; - if(work->unkC0 == 1) { - Hu3DMotionShiftSet(object->model[0], object->motion[9], 0, 20, 0); - } else { - Hu3DMotionShiftSet(object->model[0], object->motion[10], 0, 20, 0); - } - } - break; - - default: - OSReport("*** player mode error(%d)!!\n", work->unk98); - break; + float angle; + Mtx hookMtx; + Vec pos3D; + Vec pos2D; + Work53E8 *work = object->data; + s32 i; - case 2015: - break; - } - omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); - omSetRot(object, 0, work->unk58, 0); + switch (work->unk98) { + case 2000: + if (lbl_1_bss_4C->work[0] == 1002 && 90.0f < lbl_1_bss_28) { + work->unk98++; + work->unk64.x = 10.0f; + Hu3DModelAttrReset(object->model[0], 0x40000003); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 10, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + break; + + case 2001: + work->unk64.x--; + if (0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { + work->unk98++; + work->unk64.x = 10.0f; + Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 10, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + break; + + case 2002: + work->unk64.x--; + if (0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { + work->unk98++; + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 10, 0x40000001); + } + break; + + case 2003: + if (lbl_1_bss_4C->work[0] >= 1004) { + work->unk98++; + object->func = fn_1_3C00; + } + break; + + case 2007: + work->unk64.x--; + if (0.0f > work->unk64.x && lbl_1_bss_4C->work[0] == 1006) { + work->unk98++; + work->unk64.x = 40; + Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); + Hu3DMtxTransGet(hookMtx, &work->unk28); + Hu3DMtxRotGet(hookMtx, &work->unk34); + Hu3DMtxScaleGet(hookMtx, &work->unk40); + Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); + Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); + Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); + } + break; + + case 2008: + work->unk28.y += 4; + work->unk34.x += 24.0f; + work->unk40.x *= 0.95f; + work->unk40.y *= 0.95f; + work->unk40.z *= 0.95f; + Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); + Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); + Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); + work->unk64.x--; + if (0.0f > work->unk64.x) { + float temp_f24; + work->unk98++; + work->unk64.x = 0; + temp_f24 = (work->unkB0 * 160.0f) - 240.0f; + work->unk1C.x = temp_f24; + work->unk1C.y = 0; + work->unk1C.z = 0; + Hu3DModelAttrSet(object->model[1], 1); + work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); + Hu3DParManPosSet(work->unkE0, work->unk28.x, work->unk28.y, work->unk28.z); + Hu3DParManAttrReset(work->unkE0, 1); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); + HuAudFXPlay(1815); + } + break; + + case 2009: + work->unk64.x++; + if (10.0f == work->unk64.x) { + Hu3DParManAttrSet(work->unkE0, 1); + } + work->unk10.x = 0; + work->unk10.y = 0; + work->unk10.z = 0; + work->unk10.x = work->unk1C.x - work->unk4.x; + work->unk10.z = work->unk1C.z - work->unk4.z; + if (10.0f < work->unk64.x && 0.0f == work->unk10.x && 0.0f == work->unk10.z && 0.0f == work->unk1C.z) { + work->unk98++; + work->unkA0 = 1; + } + else { + fn_1_2BD4(work, object, 1); + if (0.0f != work->unk1C.z) { + work->unk1C.z -= ((0.0f > work->unk1C.z) ? -1 : 1) * 5.0f; + } + } + break; + + case 2010: + work->unk58 = fn_1_1E20(work->unk58, 0.0f, 0.5f); + angle = fmod(-work->unk58, 360.0f); + if (-180.0f > angle) { + angle += 360.0f; + } + if (work->unkA0) { + if (8.0f > ABS(angle)) { + work->unkA0 = 0; + Hu3DModelPosSet(object->model[2], 0, 0, -10); + Hu3DMotionShiftSet(object->model[0], object->motion[6], 0, 4, 0x40000001); + } + } + if (lbl_1_bss_4C->work[0] == 1007) { + work->unk98++; + work->unk64.x = 10.0f; + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[8], 0, 8, 0); + work->unk64.y = -90; + fn_1_40A8InlineFunc(&pos3D, work->unk4.x, 250, work->unk4.z); + Hu3D3Dto2D(&pos3D, 1, &pos2D); + espTPLvlSet(work->unkD0[0], 0.5f); + espPosSet(work->unkD0[0], pos2D.x, pos2D.y); + espPosSet(work->unkD0[1], pos2D.x, pos2D.y); + espPosSet(work->unkD0[2], pos2D.x - 14, 10 + pos2D.y); + espPosSet(work->unkD0[3], (pos2D.x - 14) + 28, 10 + pos2D.y); + for (i = 0; i < 4; i++) { + espScaleSet(work->unkD0[i], 0.1f, 0.1f); + espBankSet(work->unkD0[i], 0); + espDispOn(work->unkD0[i]); + } + work->unkE0 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_43C); + Hu3DParManPosSet(work->unkE0, pos3D.x, pos3D.y, pos3D.z); + } + break; + + case 2011: + work->unk64.y += 18.0f; + if (180.0f >= work->unk64.y) { + for (i = 0; i < 4; i++) { + espScaleSet(work->unkD0[i], sind(work->unk64.y) + 1, sind(work->unk64.y) + 1); + } + } + work->unk64.x--; + if (0.0f > work->unk64.x) { + float motTime = Hu3DMotionTimeGet(object->model[0]); + if (18.0f == motTime) { + Hu3DParManAttrSet(work->unkE0, 1); + Hu3DModelPosSet(object->model[2], 0, 0, 0); + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4)); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[2]); + } + if (40.0f == motTime) { + work->unk64.z = 0; + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); + fn_1_1D18(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), &work->unk4C); + work->unk4C.z += 20.0f; + Hu3DModelPosSet(object->model[2], work->unk4C.x, work->unk4C.y, work->unk4C.z); + } + if (40.0f <= motTime) { + work->unk64.z++; + if (12.0f >= work->unk64.z) { + float scale = sind(150.0f * (work->unk64.z / 12.0f)) + 1.0; + Hu3DModelScaleSet(object->model[2], scale, scale, scale); + } + } + if (Hu3DMotionEndCheck(object->model[0])) { + work->unk98++; + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DMotionSet(object->model[2], object->motion[14]); + for (i = 0; i < 4; i++) { + espScaleSet(work->unkD0[i], 1.0f, 1.0f); + } + } + } + break; + + case 2012: + if (Hu3DMotionEndCheck(object->model[2])) { + work->unk98++; + work->unk64.x = 0; + } + break; + + case 2013: + work->unk64.x--; + if (0.0f > work->unk64.x) { + s32 choType; + work->unk64.x = (20.0f * frandf()) + 20.0f; + choType = -1; + for (i = 0; i < 3; i++) { + if (choType < 0 && work->unkC4[i] > 0) { + choType = i; + } + } + if (choType < 0) { + work->unk98++; + work->unk64.x = 0; + } + else { + lbl_1_bss_20++; + work->unkBC += lbl_1_data_326[choType]; + if (work->unkBC > 99) { + work->unkBC = 99; + } + work->unkC4[choType]--; + fn_1_892C(work->unkB0, choType, &work->unk4C); + HuAudFXPlay(1816); + espBankSet(work->unkD0[2], work->unkBC / 10); + espBankSet(work->unkD0[3], work->unkBC % 10); + work->unk64.z = 0; + } + } + break; + + case 2014: + work->unk64.x++; + if (30.0f == work->unk64.x) { + Hu3DModelAttrSet(object->model[2], 1); + work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); + Hu3DParManPosSet(work->unkE0, work->unk4C.x, work->unk4C.y + 20, work->unk4C.z); + Hu3DParManAttrReset(work->unkE0, 1); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); + HuAudFXPlay(1815); + } + if (40.0f == work->unk64.x) { + Hu3DParManAttrSet(work->unkE0, 1); + } + if (60.0f < work->unk64.x && work->unkC0 >= 0) { + work->unk98++; + if (work->unkC0 == 1) { + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0, 20, 0); + } + else { + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0, 20, 0); + } + } + break; + + default: + OSReport("*** player mode error(%d)!!\n", work->unk98); + break; + + case 2015: + break; + } + omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); + omSetRot(object, 0, work->unk58, 0); } void fn_1_53E8(omObjData *object) { - Work53E8 *work = object->data; - s32 i; - - work->unk0 = NULL; - work->unk88 = 10000; - work->unk8C = 0; - work->unk90 = 0; - work->unk94 = 0; - work->unk7C.x = 0; - work->unk7C.y = 0; - work->unk7C.z = 0; - work->unkB0 = object->work[0]; - work->unkB4 = GWPlayerCfg[work->unkB0].character; - work->unkB8 = GWPlayerCfg[work->unkB0].pad_idx; - work->unk98 = 2000; - work->unkBC = 0; - work->unkC0 = -1; - for(i=0; i<3; i++) { - work->unkC4[i] = 0; - } - work->unk9C = 1; - work->unk60 = 50; - work->unk4.x = lbl_1_data_2D4[work->unkB0][0]; - work->unk4.y = lbl_1_data_2D4[work->unkB0][1]; - work->unk4.z = lbl_1_data_2D4[work->unkB0][2]; - work->unk58 = lbl_1_data_2D4[work->unkB0][3]; - work->unk4C.x = 0; - work->unk4C.y = 0; - work->unk4C.z = 0; - object->model[0] = CharModelCreate(lbl_1_data_0[work->unkB4], 2); - CharModelStepTypeSet(lbl_1_data_0[work->unkB4], 0); - for(i=0; i<16; i++) { - object->motion[i] = CharModelMotionCreate(lbl_1_data_0[work->unkB4], lbl_1_data_B0[work->unkB4][i]); - CharModelMotionSet(lbl_1_data_0[work->unkB4], object->motion[i]); - } - CharModelMotionIndexSet(work->unkB4, object->motion[2], 0x5F0002); - CharModelMotionIndexSet(work->unkB4, object->motion[7], 0x5F0002); - CharModelMotionIndexSet(work->unkB4, object->motion[3], 0x5F0003); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelLayerSet(object->model[0], 2); - Hu3DMotionSet(object->model[0], object->motion[1]); - object->model[1] = Hu3DModelCreateFile(0x48003F); - for(i=11; i<=12; i++) { - object->motion[i] = Hu3DJointMotionFile(object->model[1], lbl_1_data_2B0[i-11]); - } - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelAttrReset(object->model[1], 0x40000001); - Hu3DModelLayerSet(object->model[1], 2); - Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[1]); - object->model[2] = Hu3DModelCreateFile(0x480042); - for(i=13; i<=15; i++) { - object->motion[i] = Hu3DJointMotionFile(object->model[2], lbl_1_data_2B8[i-13]); - } - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrReset(object->model[2], 0x40000001); - Hu3DModelLayerSet(object->model[2], 2); - Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4), object->model[2]); - for(i=0; i<4; i++) { - work->unkD0[i] = espEntry(lbl_1_data_2C4[i], 0, 0); - espDrawNoSet(work->unkD0[i], 0x40); - espDispOff(work->unkD0[i]); - espAttrSet(work->unkD0[i], HUSPR_ATTR_NOANIM); - espBankSet(work->unkD0[i], 0); - espPriSet(work->unkD0[i], 128-i); - espPosSet(work->unkD0[i], 0, 0); - if(i == 0) { - espColorSet(work->unkD0[i], 0, 0, 0); - } - } - omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); - omSetRot(object, 0, work->unk58, 0); - for(i=0; i<3; i++) { - Hu3DModelShadowSet(object->model[i]); - } - for(i=0; i<3; i++) { - Hu3DModelAttrReset(object->model[i], 1); - } - if(GWPlayerCfg[work->unkB0].iscom) { - switch(GWPlayerCfg[work->unkB0].diff) { - case 0: - work->unk0 = lbl_1_data_36C; - break; - - case 1: - work->unk0 = lbl_1_data_378; - break; - - case 2: - work->unk0 = lbl_1_data_384; - break; - - case 3: - default: - work->unk0 = lbl_1_data_390; - break; - } - } - CharModelLayerSetAll2(6); - CharModelMotionDataClose(lbl_1_data_0[work->unkB4]); - object->func = fn_1_40A8; + Work53E8 *work = object->data; + s32 i; + + work->unk0 = NULL; + work->unk88 = 10000; + work->unk8C = 0; + work->unk90 = 0; + work->unk94 = 0; + work->unk7C.x = 0; + work->unk7C.y = 0; + work->unk7C.z = 0; + work->unkB0 = object->work[0]; + work->unkB4 = GWPlayerCfg[work->unkB0].character; + work->unkB8 = GWPlayerCfg[work->unkB0].pad_idx; + work->unk98 = 2000; + work->unkBC = 0; + work->unkC0 = -1; + for (i = 0; i < 3; i++) { + work->unkC4[i] = 0; + } + work->unk9C = 1; + work->unk60 = 50; + work->unk4.x = lbl_1_data_2D4[work->unkB0][0]; + work->unk4.y = lbl_1_data_2D4[work->unkB0][1]; + work->unk4.z = lbl_1_data_2D4[work->unkB0][2]; + work->unk58 = lbl_1_data_2D4[work->unkB0][3]; + work->unk4C.x = 0; + work->unk4C.y = 0; + work->unk4C.z = 0; + object->model[0] = CharModelCreate(lbl_1_data_0[work->unkB4], 2); + CharModelStepTypeSet(lbl_1_data_0[work->unkB4], 0); + for (i = 0; i < 16; i++) { + object->motion[i] = CharModelMotionCreate(lbl_1_data_0[work->unkB4], lbl_1_data_B0[work->unkB4][i]); + CharModelMotionSet(lbl_1_data_0[work->unkB4], object->motion[i]); + } + CharModelMotionIndexSet(work->unkB4, object->motion[2], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionIndexSet(work->unkB4, object->motion[7], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionIndexSet(work->unkB4, object->motion[3], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DMotionSet(object->model[0], object->motion[1]); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x3F)); + for (i = 11; i <= 12; i++) { + object->motion[i] = Hu3DJointMotionFile(object->model[1], lbl_1_data_2B0[i - 11]); + } + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], 0x40000001); + Hu3DModelLayerSet(object->model[1], 2); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[1]); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x42)); + for (i = 13; i <= 15; i++) { + object->motion[i] = Hu3DJointMotionFile(object->model[2], lbl_1_data_2B8[i - 13]); + } + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], 0x40000001); + Hu3DModelLayerSet(object->model[2], 2); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4), object->model[2]); + for (i = 0; i < 4; i++) { + work->unkD0[i] = espEntry(lbl_1_data_2C4[i], 0, 0); + espDrawNoSet(work->unkD0[i], 0x40); + espDispOff(work->unkD0[i]); + espAttrSet(work->unkD0[i], HUSPR_ATTR_NOANIM); + espBankSet(work->unkD0[i], 0); + espPriSet(work->unkD0[i], 128 - i); + espPosSet(work->unkD0[i], 0, 0); + if (i == 0) { + espColorSet(work->unkD0[i], 0, 0, 0); + } + } + omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); + omSetRot(object, 0, work->unk58, 0); + for (i = 0; i < 3; i++) { + Hu3DModelShadowSet(object->model[i]); + } + for (i = 0; i < 3; i++) { + Hu3DModelAttrReset(object->model[i], 1); + } + if (GWPlayerCfg[work->unkB0].iscom) { + switch (GWPlayerCfg[work->unkB0].diff) { + case 0: + work->unk0 = lbl_1_data_36C; + break; + + case 1: + work->unk0 = lbl_1_data_378; + break; + + case 2: + work->unk0 = lbl_1_data_384; + break; + + case 3: + default: + work->unk0 = lbl_1_data_390; + break; + } + } + CharModelLayerSetAll2(6); + CharModelMotionDataClose(lbl_1_data_0[work->unkB4]); + object->func = fn_1_40A8; } typedef struct work_713C { - Vec unk0; - Vec unkC; - Vec unk18; - Vec unk24; - s16 unk30; - s32 unk34; - s32 unk38; + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; + s16 unk30; + s32 unk34; + s32 unk38; } Work713C; void fn_1_5B2C(omObjData *object) { - Hu3DModelAttrSet(object->model[0], 1); - fn_1_24(object->work[0]+4096, object->model[0]); - lbl_1_bss_18[object->work[0]]--; - Hu3DParManKill(((Work713C *)object->data)->unk30); - omDelObjEx(lbl_1_bss_1DC, object); + Hu3DModelAttrSet(object->model[0], 1); + fn_1_24(object->work[0] + 4096, object->model[0]); + lbl_1_bss_18[object->work[0]]--; + Hu3DParManKill(((Work713C *)object->data)->unk30); + omDelObjEx(lbl_1_bss_1DC, object); } void fn_1_74F4(s32 arg0); void fn_1_5C04(omObjData *object) { - Work713C *temp_r31; - Work53E8 *temp_r29; - omObjData *temp_r28; - float *temp_r24; - - s32 temp_r23; - s32 temp_r22; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f23; - float sp78; - temp_r31 = object->data; - if(lbl_1_bss_4C->work[0] < 1002) { - return; - } - if(temp_r31->unk38) { - if(lbl_1_bss_4C->work[0] >= 1006) { - fn_1_5B2C(object); - } else { - temp_r31->unk24.z--; - if(20.0f == temp_r31->unk24.z) { - Hu3DParManAttrSet(temp_r31->unk30, 1); - } - if(0.0f > temp_r31->unk24.z) { - fn_1_5B2C(object); - fn_1_74F4(1); - } - } - return; - } else { - if(lbl_1_bss_4C->work[0] >= 1006) { - temp_r31->unk18.y += 0.1f; - temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, (180.0f > temp_r31->unk18.x) ? 90.0f : 270.0f, 0.05f); - temp_r31->unk0.x += temp_r31->unk18.y*sind(temp_r31->unk18.x); - temp_r31->unk0.z += temp_r31->unk18.y*cosd(temp_r31->unk18.x); - if(1200.0f < ABS(temp_r31->unk0.x)) { - fn_1_5B2C(object); - return; - } - } else { - if(temp_r31->unk34) { - temp_f31 = -temp_r31->unk0.x; - temp_f30 = -temp_r31->unk0.z; - temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); - temp_r31->unk0.x += temp_r31->unk18.y*sind(temp_r31->unk18.x); - temp_r31->unk0.z += temp_r31->unk18.y*cosd(temp_r31->unk18.x); - temp_f31 = -temp_r31->unk0.x; - temp_f30 = -temp_r31->unk0.z; - temp_f23 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(600.0f >= temp_f23) { - temp_r31->unk34 = 0; - } - } else { - temp_r31->unk18.x += ((frandf()*2.0f)-1.0f)*3.0f; - temp_r31->unk18.y += ((frandf()*2.0f)-1.0f)*0.1f; - temp_r24 = &lbl_1_data_350[object->work[0]][0]; - if(temp_r24[0] > temp_r31->unk18.y) { - temp_r31->unk18.y = temp_r24[0]; - } - if(temp_r24[1] < temp_r31->unk18.y) { - temp_r31->unk18.y = temp_r24[1]; - } - temp_r31->unk0.x += temp_r31->unk18.y*sind(temp_r31->unk18.x); - temp_r31->unk0.z += temp_r31->unk18.y*cosd(temp_r31->unk18.x); - temp_f31 = -temp_r31->unk0.x; - temp_f30 = -temp_r31->unk0.z; - temp_f23 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(600.0f < temp_f23) { - temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); - } - } - } - temp_f23 = ABS(temp_r31->unk24.y-temp_r31->unk0.y); - if(2.0f > temp_f23) { - temp_r31->unk24.x--; - if(0.0f > temp_r31->unk24.x) { - temp_r31->unk24.x = 60.0f; - if(frandmod(100) > 50) { - temp_r31->unk24.y = (frandf()*220.0f)+80.0f; - } - } - } else { - temp_r31->unk0.y += (temp_r31->unk24.y > temp_r31->unk0.y) ? 1.0f : -1.0f; - } - temp_r31->unk18.z += (frandf()*4.0f)+4.0f; - omSetTra(object, temp_r31->unk0.x, (sind(temp_r31->unk18.z)*10.0)+temp_r31->unk0.y, temp_r31->unk0.z); - omSetRot(object, 0, temp_r31->unk18.x+180.0f, 0); - if(temp_r31->unk30 >= 0) { - temp_f31 = sind(temp_r31->unk18.x+180.0f)*30; - temp_f30 = cosd(temp_r31->unk18.x+180.0f)*30; - Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x+temp_f31, temp_r31->unk0.y, temp_r31->unk0.z+temp_f30); - Hu3DParManVecSet(temp_r31->unk30, temp_r31->unk18.y*sind(temp_r31->unk18.x+180.0f), 0, temp_r31->unk18.y*cosd(temp_r31->unk18.x+180.0f)); - } - temp_r22 = -1; - for(temp_r23=0; temp_r23<4; temp_r23++) { - temp_r29 = lbl_1_bss_48[temp_r23]->data; - if(600.0f > VECMagXZ(&temp_r31->unk0)) { - temp_f31 = temp_r29->unk4.x-temp_r31->unk0.x; - temp_f30 = temp_r29->unk4.z-temp_r31->unk0.z; - temp_f23 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30))-170; - if(0.0f < temp_f23 && temp_r29->unk88 > temp_f23) { - temp_r29->unk88 = temp_f23; - temp_r29->unk7C = temp_r31->unk0; - } - } - if(temp_r29->unk98 == 2005) { - temp_f31 = temp_r29->unk28.x-temp_r31->unk0.x; - temp_f29 = temp_r29->unk28.y-temp_r31->unk0.y; - temp_f30 = temp_r29->unk28.z-temp_r31->unk0.z; - temp_f23 = VECMagPoint(temp_f31, temp_f29, temp_f30); - if(60.0f > temp_f23) { - if(temp_r22 < 0) { - temp_r22 = temp_r23; - } else if(frandmod(100) > 50) { - temp_r22 = temp_r23; - } - } - } - } - if(temp_r22 >= 0) { - temp_r31->unk38 = 1; - temp_r31->unk24.z = 30; - Hu3DParManKill(temp_r31->unk30); - temp_r31->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_3EC); - Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); - Hu3DParManColorSet(temp_r31->unk30, object->work[0]); - Hu3DModelAttrSet(object->model[0], 1); - temp_r28 = lbl_1_bss_48[temp_r22]; - temp_r29 = temp_r28->data; - temp_r29->unkC4[object->work[0]]++; - temp_r29->unk90 += lbl_1_data_326[object->work[0]]; - sp78 = Hu3DMotionTimeGet(temp_r28->model[1]); - Hu3DMotionSet(temp_r28->model[1], temp_r28->motion[12]); - Hu3DMotionTimeSet(temp_r28->model[1], sp78); - Hu3DMotionSet(temp_r28->model[2], temp_r28->motion[13]); - omVibrate(temp_r29->unkB0, 12, 6, 6); - HuAudFXEmiterPlay(1813, &temp_r31->unk0); - } - } + Work713C *temp_r31; + Work53E8 *temp_r29; + omObjData *temp_r28; + float *temp_r24; + + s32 temp_r23; + s32 temp_r22; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f23; + float sp78; + temp_r31 = object->data; + if (lbl_1_bss_4C->work[0] < 1002) { + return; + } + if (temp_r31->unk38) { + if (lbl_1_bss_4C->work[0] >= 1006) { + fn_1_5B2C(object); + } + else { + temp_r31->unk24.z--; + if (20.0f == temp_r31->unk24.z) { + Hu3DParManAttrSet(temp_r31->unk30, 1); + } + if (0.0f > temp_r31->unk24.z) { + fn_1_5B2C(object); + fn_1_74F4(1); + } + } + return; + } + else { + if (lbl_1_bss_4C->work[0] >= 1006) { + temp_r31->unk18.y += 0.1f; + temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, (180.0f > temp_r31->unk18.x) ? 90.0f : 270.0f, 0.05f); + temp_r31->unk0.x += temp_r31->unk18.y * sind(temp_r31->unk18.x); + temp_r31->unk0.z += temp_r31->unk18.y * cosd(temp_r31->unk18.x); + if (1200.0f < ABS(temp_r31->unk0.x)) { + fn_1_5B2C(object); + return; + } + } + else { + if (temp_r31->unk34) { + temp_f31 = -temp_r31->unk0.x; + temp_f30 = -temp_r31->unk0.z; + temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); + temp_r31->unk0.x += temp_r31->unk18.y * sind(temp_r31->unk18.x); + temp_r31->unk0.z += temp_r31->unk18.y * cosd(temp_r31->unk18.x); + temp_f31 = -temp_r31->unk0.x; + temp_f30 = -temp_r31->unk0.z; + temp_f23 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (600.0f >= temp_f23) { + temp_r31->unk34 = 0; + } + } + else { + temp_r31->unk18.x += ((frandf() * 2.0f) - 1.0f) * 3.0f; + temp_r31->unk18.y += ((frandf() * 2.0f) - 1.0f) * 0.1f; + temp_r24 = &lbl_1_data_350[object->work[0]][0]; + if (temp_r24[0] > temp_r31->unk18.y) { + temp_r31->unk18.y = temp_r24[0]; + } + if (temp_r24[1] < temp_r31->unk18.y) { + temp_r31->unk18.y = temp_r24[1]; + } + temp_r31->unk0.x += temp_r31->unk18.y * sind(temp_r31->unk18.x); + temp_r31->unk0.z += temp_r31->unk18.y * cosd(temp_r31->unk18.x); + temp_f31 = -temp_r31->unk0.x; + temp_f30 = -temp_r31->unk0.z; + temp_f23 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (600.0f < temp_f23) { + temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); + } + } + } + temp_f23 = ABS(temp_r31->unk24.y - temp_r31->unk0.y); + if (2.0f > temp_f23) { + temp_r31->unk24.x--; + if (0.0f > temp_r31->unk24.x) { + temp_r31->unk24.x = 60.0f; + if (frandmod(100) > 50) { + temp_r31->unk24.y = (frandf() * 220.0f) + 80.0f; + } + } + } + else { + temp_r31->unk0.y += (temp_r31->unk24.y > temp_r31->unk0.y) ? 1.0f : -1.0f; + } + temp_r31->unk18.z += (frandf() * 4.0f) + 4.0f; + omSetTra(object, temp_r31->unk0.x, (sind(temp_r31->unk18.z) * 10.0) + temp_r31->unk0.y, temp_r31->unk0.z); + omSetRot(object, 0, temp_r31->unk18.x + 180.0f, 0); + if (temp_r31->unk30 >= 0) { + temp_f31 = sind(temp_r31->unk18.x + 180.0f) * 30; + temp_f30 = cosd(temp_r31->unk18.x + 180.0f) * 30; + Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x + temp_f31, temp_r31->unk0.y, temp_r31->unk0.z + temp_f30); + Hu3DParManVecSet( + temp_r31->unk30, temp_r31->unk18.y * sind(temp_r31->unk18.x + 180.0f), 0, temp_r31->unk18.y * cosd(temp_r31->unk18.x + 180.0f)); + } + temp_r22 = -1; + for (temp_r23 = 0; temp_r23 < 4; temp_r23++) { + temp_r29 = lbl_1_bss_48[temp_r23]->data; + if (600.0f > VECMagXZ(&temp_r31->unk0)) { + temp_f31 = temp_r29->unk4.x - temp_r31->unk0.x; + temp_f30 = temp_r29->unk4.z - temp_r31->unk0.z; + temp_f23 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)) - 170; + if (0.0f < temp_f23 && temp_r29->unk88 > temp_f23) { + temp_r29->unk88 = temp_f23; + temp_r29->unk7C = temp_r31->unk0; + } + } + if (temp_r29->unk98 == 2005) { + temp_f31 = temp_r29->unk28.x - temp_r31->unk0.x; + temp_f29 = temp_r29->unk28.y - temp_r31->unk0.y; + temp_f30 = temp_r29->unk28.z - temp_r31->unk0.z; + temp_f23 = VECMagPoint(temp_f31, temp_f29, temp_f30); + if (60.0f > temp_f23) { + if (temp_r22 < 0) { + temp_r22 = temp_r23; + } + else if (frandmod(100) > 50) { + temp_r22 = temp_r23; + } + } + } + } + if (temp_r22 >= 0) { + temp_r31->unk38 = 1; + temp_r31->unk24.z = 30; + Hu3DParManKill(temp_r31->unk30); + temp_r31->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_3EC); + Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); + Hu3DParManColorSet(temp_r31->unk30, object->work[0]); + Hu3DModelAttrSet(object->model[0], 1); + temp_r28 = lbl_1_bss_48[temp_r22]; + temp_r29 = temp_r28->data; + temp_r29->unkC4[object->work[0]]++; + temp_r29->unk90 += lbl_1_data_326[object->work[0]]; + sp78 = Hu3DMotionTimeGet(temp_r28->model[1]); + Hu3DMotionSet(temp_r28->model[1], temp_r28->motion[12]); + Hu3DMotionTimeSet(temp_r28->model[1], sp78); + Hu3DMotionSet(temp_r28->model[2], temp_r28->motion[13]); + omVibrate(temp_r29->unkB0, 12, 6, 6); + HuAudFXEmiterPlay(1813, &temp_r31->unk0); + } + } } void fn_1_713C(omObjData *object) { - Work713C *work = object->data; - s16 mdlId = fn_1_AC(object->work[0]+4096); - Vec *scale; - if(mdlId < 0) { - object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); - } else { - object->model[0] = mdlId; - } - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000003); - Hu3DModelLayerSet(object->model[0], 3); - Hu3DModelShadowSet(object->model[0]); - scale = &lbl_1_data_32C[object->work[0]]; - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 0, work->unk18.x+180, 0); - omSetSca(object, scale->x, scale->y, scale->z); - work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); - if(work->unk30 >= 0) { - float x = sind(work->unk18.x+180)*30.0; - float y = cosd(work->unk18.x+180)*30.0; - Hu3DParManPosSet(work->unk30, work->unk0.x+x, work->unk0.y, work->unk0.z+y); - Hu3DParManVecSet(work->unk30, work->unk18.y*sind(work->unk18.x+180.0f), 0, work->unk18.y*cosd(work->unk18.x+180.0f)); - Hu3DParManAttrSet(work->unk30, 0x804); - Hu3DParManAttrReset(work->unk30, 1); - Hu3DParManColorSet(work->unk30, object->work[0]); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); - - } - Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_5C04; + Work713C *work = object->data; + s16 mdlId = fn_1_AC(object->work[0] + 4096); + Vec *scale; + if (mdlId < 0) { + object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); + } + else { + object->model[0] = mdlId; + } + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000003); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelShadowSet(object->model[0]); + scale = &lbl_1_data_32C[object->work[0]]; + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 0, work->unk18.x + 180, 0); + omSetSca(object, scale->x, scale->y, scale->z); + work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); + if (work->unk30 >= 0) { + float x = sind(work->unk18.x + 180) * 30.0; + float y = cosd(work->unk18.x + 180) * 30.0; + Hu3DParManPosSet(work->unk30, work->unk0.x + x, work->unk0.y, work->unk0.z + y); + Hu3DParManVecSet(work->unk30, work->unk18.y * sind(work->unk18.x + 180.0f), 0, work->unk18.y * cosd(work->unk18.x + 180.0f)); + Hu3DParManAttrSet(work->unk30, 0x804); + Hu3DParManAttrReset(work->unk30, 1); + Hu3DParManColorSet(work->unk30, object->work[0]); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); + } + Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_5C04; } void fn_1_74F4(s32 arg0) { - s16 no = -1; - s16 i; - omObjData *object; - Work713C *work; - float radius; - for(i=0; i<3; i++) { - if(lbl_1_data_320[i] > lbl_1_bss_18[i]) { - no = i; - } - } - if(no < 0) { - return; - } - lbl_1_bss_18[no]++; - object = omAddObjEx(lbl_1_bss_1DC, 101, 1, 0, 1, fn_1_713C); - object->work[0] = no; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); - work = object->data; - work->unk34 = arg0; - work->unk18.z = 0; - work->unk38 = 0; - work->unk18.y = 2; - work->unk24.x = (frandf()*180.0f)+180.0f; - if(arg0) { - work->unk18.y = 3; - work->unk18.x = 180.0f-(frandf()*120.0f); - if(frandmod(100) > 50) { - work->unk18.x = 360.0f-work->unk18.x; - } - radius = 1200; - work->unk0.x = radius*sind(work->unk18.x+180.0f); - work->unk0.y = (frandf()*220.0f)+80.0f; - work->unk0.z = radius*cosd(work->unk18.x+180.0f); - } else { - if(lbl_1_bss_C) { - lbl_1_bss_C = 0; - work->unk18.x = 45.0f+(frandf()*90.0f); - if(frandmod(100) > 50) { - work->unk18.x += 180.0f; - } - work->unk0.x = 0; - work->unk0.y = 80; - work->unk0.z = 0; - } else { - repeat: - radius = 300; - radius += radius*frandf(); - work->unk18.x = 360.0f*frandf(); - work->unk0.x = radius*sind(work->unk18.x); - work->unk0.y = (frandf()*220.0f)+80.0f; - work->unk0.z = radius*cosd(work->unk18.x); - if(0.0f < work->unk0.y) { - if(150.0f > ABS(work->unk0.x)) { - goto repeat; - } - } - } - } - work->unk24.y = work->unk0.y; + s16 no = -1; + s16 i; + omObjData *object; + Work713C *work; + float radius; + for (i = 0; i < 3; i++) { + if (lbl_1_data_320[i] > lbl_1_bss_18[i]) { + no = i; + } + } + if (no < 0) { + return; + } + lbl_1_bss_18[no]++; + object = omAddObjEx(lbl_1_bss_1DC, 101, 1, 0, 1, fn_1_713C); + object->work[0] = no; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); + work = object->data; + work->unk34 = arg0; + work->unk18.z = 0; + work->unk38 = 0; + work->unk18.y = 2; + work->unk24.x = (frandf() * 180.0f) + 180.0f; + if (arg0) { + work->unk18.y = 3; + work->unk18.x = 180.0f - (frandf() * 120.0f); + if (frandmod(100) > 50) { + work->unk18.x = 360.0f - work->unk18.x; + } + radius = 1200; + work->unk0.x = radius * sind(work->unk18.x + 180.0f); + work->unk0.y = (frandf() * 220.0f) + 80.0f; + work->unk0.z = radius * cosd(work->unk18.x + 180.0f); + } + else { + if (lbl_1_bss_C) { + lbl_1_bss_C = 0; + work->unk18.x = 45.0f + (frandf() * 90.0f); + if (frandmod(100) > 50) { + work->unk18.x += 180.0f; + } + work->unk0.x = 0; + work->unk0.y = 80; + work->unk0.z = 0; + } + else { + repeat: + radius = 300; + radius += radius * frandf(); + work->unk18.x = 360.0f * frandf(); + work->unk0.x = radius * sind(work->unk18.x); + work->unk0.y = (frandf() * 220.0f) + 80.0f; + work->unk0.z = radius * cosd(work->unk18.x); + if (0.0f < work->unk0.y) { + if (150.0f > ABS(work->unk0.x)) { + goto repeat; + } + } + } + } + work->unk24.y = work->unk0.y; } void fn_1_7958(omObjData *object) { - Hu3DModelAttrSet(object->model[0], 1); - fn_1_24(object->work[0]+4096, object->model[0]); - Hu3DParManKill(((Work713C *)object->data)->unk30); - omDelObjEx(lbl_1_bss_1DC, object); - lbl_1_bss_1E--; + Hu3DModelAttrSet(object->model[0], 1); + fn_1_24(object->work[0] + 4096, object->model[0]); + Hu3DParManKill(((Work713C *)object->data)->unk30); + omDelObjEx(lbl_1_bss_1DC, object); + lbl_1_bss_1E--; } void fn_1_7A2C(omObjData *object) { - Work713C *work = object->data; - float x = work->unkC.x-work->unk0.x; - float y = work->unkC.y-work->unk0.y; - float len = sqrtf((x*x)+(y*y)); - if(10.0f > len) { - work->unk18.y--; - if(0.0f > work->unk18.y) { - work->unk18.y = 0; - } - work->unk18.x = fn_1_1E20(work->unk18.x, 0.0f, 0.05f); - } else { - work->unk18.y += 0.1f; - if(3.0f < work->unk18.y) { - work->unk18.y = 3.0f; - } - work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); - } - work->unk0.x -= work->unk18.y*sind(work->unk18.x); - work->unk0.y += work->unk18.y*cosd(work->unk18.x); - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 90, 0, work->unk18.x); - if(work->unk30 >= 0) { - Hu3DParManPosSet(work->unk30, work->unk0.x, work->unk0.y, work->unk0.z); - Hu3DParManVecSet(work->unk30, -2*sind(work->unk18.x+180.0f), 2*cosd(work->unk18.x+180.0f), 0); - } + Work713C *work = object->data; + float x = work->unkC.x - work->unk0.x; + float y = work->unkC.y - work->unk0.y; + float len = sqrtf((x * x) + (y * y)); + if (10.0f > len) { + work->unk18.y--; + if (0.0f > work->unk18.y) { + work->unk18.y = 0; + } + work->unk18.x = fn_1_1E20(work->unk18.x, 0.0f, 0.05f); + } + else { + work->unk18.y += 0.1f; + if (3.0f < work->unk18.y) { + work->unk18.y = 3.0f; + } + work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); + } + work->unk0.x -= work->unk18.y * sind(work->unk18.x); + work->unk0.y += work->unk18.y * cosd(work->unk18.x); + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 90, 0, work->unk18.x); + if (work->unk30 >= 0) { + Hu3DParManPosSet(work->unk30, work->unk0.x, work->unk0.y, work->unk0.z); + Hu3DParManVecSet(work->unk30, -2 * sind(work->unk18.x + 180.0f), 2 * cosd(work->unk18.x + 180.0f), 0); + } } void fn_1_803C(omObjData *object) { - Work713C *work = object->data; - float x; - float y; - work->unk18.y -= 0.1f; - if(2.0f > work->unk18.y) { - work->unk18.y = 2.0f; - if(work->unkC.y > work->unk0.y) { - x = work->unkC.x-work->unk0.x; - y = work->unkC.y-work->unk0.y; - work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); - } - } - - work->unk0.x -= work->unk18.y*sind(work->unk18.x); - work->unk0.y += work->unk18.y*cosd(work->unk18.x); - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 90, 0, work->unk18.x); - if(work->unk30 >= 0) { - x = sind(work->unk18.x+180)*-20.0; - y = cosd(work->unk18.x+180)*20.0; - Hu3DParManPosSet(work->unk30, work->unk0.x+x, work->unk0.y+y, work->unk0.z); - Hu3DParManVecSet(work->unk30, -work->unk18.y*sind(work->unk18.x+180.0f), work->unk18.y*cosd(work->unk18.x+180.0f), 0); - } - if(450.0f < work->unk0.y) { - fn_1_7958(object); - } + Work713C *work = object->data; + float x; + float y; + work->unk18.y -= 0.1f; + if (2.0f > work->unk18.y) { + work->unk18.y = 2.0f; + if (work->unkC.y > work->unk0.y) { + x = work->unkC.x - work->unk0.x; + y = work->unkC.y - work->unk0.y; + work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); + } + } + + work->unk0.x -= work->unk18.y * sind(work->unk18.x); + work->unk0.y += work->unk18.y * cosd(work->unk18.x); + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 90, 0, work->unk18.x); + if (work->unk30 >= 0) { + x = sind(work->unk18.x + 180) * -20.0; + y = cosd(work->unk18.x + 180) * 20.0; + Hu3DParManPosSet(work->unk30, work->unk0.x + x, work->unk0.y + y, work->unk0.z); + Hu3DParManVecSet(work->unk30, -work->unk18.y * sind(work->unk18.x + 180.0f), work->unk18.y * cosd(work->unk18.x + 180.0f), 0); + } + if (450.0f < work->unk0.y) { + fn_1_7958(object); + } } void fn_1_8518(omObjData *object) { - Work713C *work; - s16 mdlId = fn_1_AC(object->work[0]+4096); - Vec *scale; - if(mdlId < 0) { - object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); - } else { - object->model[0] = mdlId; - } - work = object->data; - work->unk18.y = 6.0f; - work->unk18.x = (frandf()*60.0f)-30.0f; - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000003); - Hu3DModelLayerSet(object->model[0], 3); - Hu3DModelShadowSet(object->model[0]); - scale = &lbl_1_data_32C[object->work[0]]; - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 90, 0, work->unk18.x); - omSetSca(object, scale->x*0.5f, scale->y*0.5f, scale->z*0.5f); - work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); - if(work->unk30 >= 0) { - float x = sind(work->unk18.x+180)*-20.0; - float y = cosd(work->unk18.x+180)*20.0; - Hu3DParManPosSet(work->unk30, work->unk0.x+x, work->unk0.y+y, work->unk0.z); - Hu3DParManVecSet(work->unk30, -work->unk18.y*sind(work->unk18.x+180.0f), work->unk18.y*cosd(work->unk18.x+180.0f), 0); - Hu3DParManAttrSet(work->unk30, 0x804); - Hu3DParManAttrReset(work->unk30, 1); - Hu3DParManColorSet(work->unk30, object->work[0]); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); - - } - Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_803C; + Work713C *work; + s16 mdlId = fn_1_AC(object->work[0] + 4096); + Vec *scale; + if (mdlId < 0) { + object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); + } + else { + object->model[0] = mdlId; + } + work = object->data; + work->unk18.y = 6.0f; + work->unk18.x = (frandf() * 60.0f) - 30.0f; + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000003); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelShadowSet(object->model[0]); + scale = &lbl_1_data_32C[object->work[0]]; + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 90, 0, work->unk18.x); + omSetSca(object, scale->x * 0.5f, scale->y * 0.5f, scale->z * 0.5f); + work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); + if (work->unk30 >= 0) { + float x = sind(work->unk18.x + 180) * -20.0; + float y = cosd(work->unk18.x + 180) * 20.0; + Hu3DParManPosSet(work->unk30, work->unk0.x + x, work->unk0.y + y, work->unk0.z); + Hu3DParManVecSet(work->unk30, -work->unk18.y * sind(work->unk18.x + 180.0f), work->unk18.y * cosd(work->unk18.x + 180.0f), 0); + Hu3DParManAttrSet(work->unk30, 0x804); + Hu3DParManAttrReset(work->unk30, 1); + Hu3DParManColorSet(work->unk30, object->work[0]); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); + } + Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_803C; } void fn_1_892C(s16 arg0, s16 arg1, Vec *arg2) { - omObjData *object; - Work713C *work; - float x; - float y; - float z; - if(lbl_1_bss_1E >= 400) { - OSReport("over!!\n"); - return; - } - lbl_1_bss_1E++; - object = omAddObjEx(lbl_1_bss_1DC, 102, 1, 0, 2, fn_1_8518); - object->work[0] = arg1; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); - work = object->data; - fn_1_40A8InlineFunc(&work->unk0, arg2->x, arg2->y+10, arg2->z+8); - fn_1_40A8InlineFunc(&work->unkC, arg2->x, 250, arg2->z); + omObjData *object; + Work713C *work; + float x; + float y; + float z; + if (lbl_1_bss_1E >= 400) { + OSReport("over!!\n"); + return; + } + lbl_1_bss_1E++; + object = omAddObjEx(lbl_1_bss_1DC, 102, 1, 0, 2, fn_1_8518); + object->work[0] = arg1; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); + work = object->data; + fn_1_40A8InlineFunc(&work->unk0, arg2->x, arg2->y + 10, arg2->z + 8); + fn_1_40A8InlineFunc(&work->unkC, arg2->x, 250, arg2->z); } s32 fn_1_8AA0(s32 arg0) { - float angle = 12.0f*(arg0%30); - float radius = 730.0f+(60.0f*(arg0/30)); - if(arg0/30 >= 2 && (100.0f > angle || 260.0f < angle)) { - return 0; - } else { - s16 model = Hu3DModelLink(lbl_1_bss_10[0]); - Hu3DModelAttrSet(model, 0x4001); - Hu3DModelAttrSet(model, 0x40000003); - Hu3DModelLayerSet(model, 1); - Hu3DMotionTimeSet(model, Hu3DMotionMaxTimeGet(model)*frandf()); - Hu3DModelPosSet(model, ((radius*sind(angle))+(frandf()*20.0f))-10, -60.0f, radius*cosd(angle)); - Hu3DModelScaleSet(model, 2, 2, 2); - Hu3DModelAttrReset(model, 0x40000002); - Hu3DModelAttrReset(model, 1); - return 1; - } + float angle = 12.0f * (arg0 % 30); + float radius = 730.0f + (60.0f * (arg0 / 30)); + if (arg0 / 30 >= 2 && (100.0f > angle || 260.0f < angle)) { + return 0; + } + else { + s16 model = Hu3DModelLink(lbl_1_bss_10[0]); + Hu3DModelAttrSet(model, 0x4001); + Hu3DModelAttrSet(model, 0x40000003); + Hu3DModelLayerSet(model, 1); + Hu3DMotionTimeSet(model, Hu3DMotionMaxTimeGet(model) * frandf()); + Hu3DModelPosSet(model, ((radius * sind(angle)) + (frandf() * 20.0f)) - 10, -60.0f, radius * cosd(angle)); + Hu3DModelScaleSet(model, 2, 2, 2); + Hu3DModelAttrReset(model, 0x40000002); + Hu3DModelAttrReset(model, 1); + return 1; + } } void fn_1_AA4C(omObjData *object); void fn_1_8D58(omObjData *object) { - Vec sp38; - s32 i; - - if(omSysExitReq) { - fn_1_1F58(-1); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_AA4C; - } - lbl_1_bss_24 += (1.0f/60.0f); - if(360.0f <= lbl_1_bss_24) { - lbl_1_bss_24 -= 360.0f; - } - Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_24, 0); - lbl_1_bss_1A8++; - switch(object->work[0]) { - case 1000: - if(!WipeStatGet()) { - object->work[0]++; - lbl_1_bss_28 = 0; - } - break; - - case 1001: - lbl_1_bss_28++; - if(60.0f < lbl_1_bss_28) { - object->work[0]++; - lbl_1_bss_28 = 0; - lbl_1_bss_1C4 = lbl_1_data_34; - lbl_1_bss_1AC = lbl_1_data_4C; - VECSubtract(&lbl_1_bss_1AC, &lbl_1_bss_1C4, &sp38); - VECNormalize(&sp38, &sp38); - HuAudFXListnerSetEX(&lbl_1_bss_1C4, &sp38, 10000.0, 36000.0, 0.0, 300.0, 300.0); - } - break; - - case 1002: - lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28/180.0f, &lbl_1_data_40); - if(180.0f <= lbl_1_bss_28) { - object->work[0]++; - fn_1_1350(&lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); - } - - break; - - case 1003: - if(lbl_1_bss_19E < 0) { - lbl_1_bss_19E = MGSeqStartCreate(); - Hu3DModelAttrSet(lbl_1_bss_4C->model[2], 1); - } else { - if(lbl_1_bss_198 < 0 && (MGSeqStatGet(lbl_1_bss_19E) & 0x10)) { - fn_1_1F24(69); - } - if(!MGSeqStatGet(lbl_1_bss_19E)) { - object->work[0]++; - lbl_1_bss_1A4 = 3600; - lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4/60); - lbl_1_bss_19E = -1; - } - } - break; - - case 1004: - MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4+59)/60); - lbl_1_bss_1A4--; - if(lbl_1_bss_1A4 < 0) { - object->work[0] = 1005; - lbl_1_bss_1A4 = 3600; - lbl_1_bss_28 = 0; - } - break; - - case 1005: - if(lbl_1_bss_19E < 0) { - MGSeqParamSet(lbl_1_bss_19C, 2, -1); - lbl_1_bss_19C = -1; - lbl_1_bss_19E = MGSeqFinishCreate(); - fn_1_1F58(100); - Hu3DModelAttrReset(lbl_1_bss_4C->model[2], 1); - } else { - for(i=0; i<4; i++) { - if(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2007) { - break; - } - } - if(i == 4 && !MGSeqStatGet(lbl_1_bss_19E)) { - object->work[0]++; - lbl_1_bss_19E = -1; - lbl_1_bss_20 = 0; - lbl_1_bss_28 = 0; - lbl_1_bss_1C4 = lbl_1_data_58; - lbl_1_bss_1AC = lbl_1_data_70; - } - } - break; - - case 1006: - lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28/120.0f, &lbl_1_data_64); - if(120.0f <= lbl_1_bss_28) { - lbl_1_bss_28 = 120.0f; - for(i=0; i<4; i++) { - float temp; - if(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2010) { - break; - } - temp = OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk58; - if(2.0f < temp && 358.0f > temp) { - break; - } - } - if(i == 4) { - object->work[0]++; - lbl_1_bss_28 = 60; - } - } - break; - - case 1007: - for(i=0; i<4; i++) { - if(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2014) { - break; - } - } - if(i == 4) { - if(0.0f > lbl_1_bss_28--) { - object->work[0]++; - lbl_1_bss_28 = 0; - if(lbl_1_bss_20 == 0) { - HuAudSStreamPlay(4); - for(i=0; i<4; i++) { - OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0 = 4; - } - } else { - s32 temp_r27; - HuAudSStreamPlay(1); - temp_r27 = -1; - for(i=0; i<4; i++) { - s32 temp_r22 = -1; - s32 temp_r26 = -1; - Work53E8 *temp_r29; - s32 j; - for(j=0; j<4; j++) { - temp_r29 = lbl_1_bss_48[j]->data; - if(temp_r29->unkC0 < 0 && temp_r22 < temp_r29->unkBC) { - temp_r22 = temp_r29->unkBC; - temp_r26 = j; - } - } - temp_r29 = lbl_1_bss_48[temp_r26]->data; - temp_r29->unkC0 = i+1; - if(temp_r27 >= 0 && temp_r29->unkBC == OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkBC) { - temp_r29->unkC0 = OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkC0; - } - temp_r27 = temp_r26; - } - } - for(i=0; i<4; i++) { - GWPlayerCoinWinSet(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkB0, OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0-1); - } - } - - } - break; - - case 1008: - lbl_1_bss_28++; - if(210.0f < lbl_1_bss_28) { - fn_1_1F58(-1); - lbl_1_bss_19E = -1; - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_AA4C; - } - - break; - - default: - OSReport("*** main mode error(%d)!!\n", object->work[0]); - break; - } + Vec sp38; + s32 i; + + if (omSysExitReq) { + fn_1_1F58(-1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_AA4C; + } + lbl_1_bss_24 += (1.0f / 60.0f); + if (360.0f <= lbl_1_bss_24) { + lbl_1_bss_24 -= 360.0f; + } + Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_24, 0); + lbl_1_bss_1A8++; + switch (object->work[0]) { + case 1000: + if (!WipeStatGet()) { + object->work[0]++; + lbl_1_bss_28 = 0; + } + break; + + case 1001: + lbl_1_bss_28++; + if (60.0f < lbl_1_bss_28) { + object->work[0]++; + lbl_1_bss_28 = 0; + lbl_1_bss_1C4 = lbl_1_data_34; + lbl_1_bss_1AC = lbl_1_data_4C; + VECSubtract(&lbl_1_bss_1AC, &lbl_1_bss_1C4, &sp38); + VECNormalize(&sp38, &sp38); + HuAudFXListnerSetEX(&lbl_1_bss_1C4, &sp38, 10000.0, 36000.0, 0.0, 300.0, 300.0); + } + break; + + case 1002: + lbl_1_bss_28++; + fn_1_13DC(lbl_1_bss_28 / 180.0f, &lbl_1_data_40); + if (180.0f <= lbl_1_bss_28) { + object->work[0]++; + fn_1_1350(&lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); + } + + break; + + case 1003: + if (lbl_1_bss_19E < 0) { + lbl_1_bss_19E = MGSeqStartCreate(); + Hu3DModelAttrSet(lbl_1_bss_4C->model[2], 1); + } + else { + if (lbl_1_bss_198 < 0 && (MGSeqStatGet(lbl_1_bss_19E) & 0x10)) { + fn_1_1F24(69); + } + if (!MGSeqStatGet(lbl_1_bss_19E)) { + object->work[0]++; + lbl_1_bss_1A4 = 3600; + lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / 60); + lbl_1_bss_19E = -1; + } + } + break; + + case 1004: + MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + 59) / 60); + lbl_1_bss_1A4--; + if (lbl_1_bss_1A4 < 0) { + object->work[0] = 1005; + lbl_1_bss_1A4 = 3600; + lbl_1_bss_28 = 0; + } + break; + + case 1005: + if (lbl_1_bss_19E < 0) { + MGSeqParamSet(lbl_1_bss_19C, 2, -1); + lbl_1_bss_19C = -1; + lbl_1_bss_19E = MGSeqFinishCreate(); + fn_1_1F58(100); + Hu3DModelAttrReset(lbl_1_bss_4C->model[2], 1); + } + else { + for (i = 0; i < 4; i++) { + if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2007) { + break; + } + } + if (i == 4 && !MGSeqStatGet(lbl_1_bss_19E)) { + object->work[0]++; + lbl_1_bss_19E = -1; + lbl_1_bss_20 = 0; + lbl_1_bss_28 = 0; + lbl_1_bss_1C4 = lbl_1_data_58; + lbl_1_bss_1AC = lbl_1_data_70; + } + } + break; + + case 1006: + lbl_1_bss_28++; + fn_1_13DC(lbl_1_bss_28 / 120.0f, &lbl_1_data_64); + if (120.0f <= lbl_1_bss_28) { + lbl_1_bss_28 = 120.0f; + for (i = 0; i < 4; i++) { + float temp; + if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2010) { + break; + } + temp = OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk58; + if (2.0f < temp && 358.0f > temp) { + break; + } + } + if (i == 4) { + object->work[0]++; + lbl_1_bss_28 = 60; + } + } + break; + + case 1007: + for (i = 0; i < 4; i++) { + if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2014) { + break; + } + } + if (i == 4) { + if (0.0f > lbl_1_bss_28--) { + object->work[0]++; + lbl_1_bss_28 = 0; + if (lbl_1_bss_20 == 0) { + HuAudSStreamPlay(4); + for (i = 0; i < 4; i++) { + OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0 = 4; + } + } + else { + s32 temp_r27; + HuAudSStreamPlay(1); + temp_r27 = -1; + for (i = 0; i < 4; i++) { + s32 temp_r22 = -1; + s32 temp_r26 = -1; + Work53E8 *temp_r29; + s32 j; + for (j = 0; j < 4; j++) { + temp_r29 = lbl_1_bss_48[j]->data; + if (temp_r29->unkC0 < 0 && temp_r22 < temp_r29->unkBC) { + temp_r22 = temp_r29->unkBC; + temp_r26 = j; + } + } + temp_r29 = lbl_1_bss_48[temp_r26]->data; + temp_r29->unkC0 = i + 1; + if (temp_r27 >= 0 && temp_r29->unkBC == OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkBC) { + temp_r29->unkC0 = OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkC0; + } + temp_r27 = temp_r26; + } + } + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkB0, OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0 - 1); + } + } + } + break; + + case 1008: + lbl_1_bss_28++; + if (210.0f < lbl_1_bss_28) { + fn_1_1F58(-1); + lbl_1_bss_19E = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_AA4C; + } + + break; + + default: + OSReport("*** main mode error(%d)!!\n", object->work[0]); + break; + } } void fn_1_9F40(omObjData *object) { - s32 singleNo; - s32 i; - s32 angleNo; - lbl_1_bss_24 = 0; - object->work[0] = 1000; - object->model[0] = Hu3DModelCreateFile(0x480038); - Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); - Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelShadowMapSet(object->model[0]); - omSetTra(object, 0, -31, 0); - object->model[1] = Hu3DModelCreateFile(0x480039); - Hu3DModelAttrSet(object->model[1], 0x4001); - Hu3DModelAttrSet(object->model[1], 0x40000002); - Hu3DModelLayerSet(object->model[1], 0); - Hu3DModelPosSet(object->model[1], 0, -31, 0); - Hu3DModelAttrReset(object->model[1], 1); - object->model[2] = Hu3DModelCreateFile(0x48003A); - Hu3DModelAttrSet(object->model[2], 0x4001); - Hu3DModelAttrSet(object->model[2], 0x40000002); - Hu3DModelLayerSet(object->model[2], 0); - Hu3DModelPosSet(object->model[2], 0, -31, 0); - Hu3DModelAttrReset(object->model[2], 1); - for(singleNo=0; singleNo<1; singleNo++) { - lbl_1_bss_10[singleNo] = Hu3DModelCreateFile(lbl_1_data_368[singleNo]); - Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x4001); - Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x40000003); - } - for(i=0, angleNo=0; i<30;) { - if(fn_1_8AA0(angleNo++) != 0) { - i++; - } - } - HuAudFXPlay(1818); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_8D58; + s32 singleNo; + s32 i; + s32 angleNo; + lbl_1_bss_24 = 0; + object->work[0] = 1000; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x38)); + Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelShadowMapSet(object->model[0]); + omSetTra(object, 0, -31, 0); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x39)); + Hu3DModelAttrSet(object->model[1], 0x4001); + Hu3DModelAttrSet(object->model[1], 0x40000002); + Hu3DModelLayerSet(object->model[1], 0); + Hu3DModelPosSet(object->model[1], 0, -31, 0); + Hu3DModelAttrReset(object->model[1], 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x3A)); + Hu3DModelAttrSet(object->model[2], 0x4001); + Hu3DModelAttrSet(object->model[2], 0x40000002); + Hu3DModelLayerSet(object->model[2], 0); + Hu3DModelPosSet(object->model[2], 0, -31, 0); + Hu3DModelAttrReset(object->model[2], 1); + for (singleNo = 0; singleNo < 1; singleNo++) { + lbl_1_bss_10[singleNo] = Hu3DModelCreateFile(lbl_1_data_368[singleNo]); + Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x4001); + Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x40000003); + } + for (i = 0, angleNo = 0; i < 30;) { + if (fn_1_8AA0(angleNo++) != 0) { + i++; + } + } + HuAudFXPlay(1818); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_8D58; } void ObjectSetup(void) { - Vec shadowDir; - s32 i; - omObjData *object; - s32 glight; - OSReport("******* M441 ObjectSetup *********\n"); - lbl_1_bss_1DC = omInitObjMan(600, 8192); - omGameSysInit(lbl_1_bss_1DC); - lbl_1_bss_1A8 = 0; - lbl_1_bss_19E = -1; - lbl_1_bss_19C = -1; - lbl_1_bss_1E = 0; - lbl_1_bss_198 = -1; - lbl_1_bss_4 = 0; - lbl_1_bss_8 = 2100; - lbl_1_bss_0 = 1200; - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - Hu3DCameraPerspectiveSet(1, 30, 20, 20000, 1.2); - fn_1_1350(&lbl_1_data_10, &lbl_1_data_1C, &lbl_1_data_28); + Vec shadowDir; + s32 i; + omObjData *object; + s32 glight; + OSReport("******* M441 ObjectSetup *********\n"); + lbl_1_bss_1DC = omInitObjMan(600, 8192); + omGameSysInit(lbl_1_bss_1DC); + lbl_1_bss_1A8 = 0; + lbl_1_bss_19E = -1; + lbl_1_bss_19C = -1; + lbl_1_bss_1E = 0; + lbl_1_bss_198 = -1; + lbl_1_bss_4 = 0; + lbl_1_bss_8 = 2100; + lbl_1_bss_0 = 1200; + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + Hu3DCameraPerspectiveSet(1, 30, 20, 20000, 1.2); + fn_1_1350(&lbl_1_data_10, &lbl_1_data_1C, &lbl_1_data_28); - glight = Hu3DGLightCreateV(&lbl_1_data_7C, &lbl_1_data_88, &lbl_1_data_94); - Hu3DGLightStaticSet(glight, 1); - Hu3DGLightInfinitytSet(glight); - Hu3DShadowCreate(30, 20, 20000); - Hu3DShadowTPLvlSet(0.8); - VECNormalize(&lbl_1_data_98, &shadowDir); - Hu3DShadowPosSet(&lbl_1_data_98, &shadowDir, &lbl_1_data_A4); - HuSprExecLayerSet(64, 5); - omMakeGroupEx(lbl_1_bss_1DC, 0, 4); - lbl_1_bss_48 = omGetGroupMemberListEx(lbl_1_bss_1DC, 0); - for(i=0; i<4; i++) { - object = omAddObjEx(lbl_1_bss_1DC, 100, 3, 16, 0, fn_1_53E8); - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work53E8), MEMORY_DEFAULT_NUM); - object->work[0] = i; - } - fn_1_0(); - lbl_1_bss_C = 1; - omMakeGroupEx(lbl_1_bss_1DC, 1, 20); - lbl_1_bss_44 = omGetGroupMemberListEx(lbl_1_bss_1DC, 1); - for(i=0; i<3; i++) { - lbl_1_bss_18[i] = 0; - lbl_1_bss_12[i] = Hu3DModelCreateFile(lbl_1_data_314[i]); - Hu3DModelAttrSet(lbl_1_bss_12[i], 1); - Hu3DModelAttrSet(lbl_1_bss_12[i], 0x40000003); - } - for(i=0; i<20; i++) { - fn_1_74F4(0); - } - omMakeGroupEx(lbl_1_bss_1DC, 2, 400); - lbl_1_bss_40 = omGetGroupMemberListEx(lbl_1_bss_1DC, 2); - lbl_1_bss_38 = HuSprAnimReadFile(0x480046); - HuSprAnimLock(lbl_1_bss_38); - lbl_1_bss_34 = Hu3DParManCreate(lbl_1_bss_38, 500, &lbl_1_data_39C); - Hu3DParManAttrSet(lbl_1_bss_34, 1); - lbl_1_bss_30 = HuSprAnimReadFile(0x480047); - HuSprAnimLock(lbl_1_bss_30); - lbl_1_bss_2C = Hu3DParManCreate(lbl_1_bss_30, 20, &lbl_1_data_48C); - Hu3DParManAttrSet(lbl_1_bss_2C, 1); - lbl_1_bss_4C = omAddObjEx(lbl_1_bss_1DC, 103, 3, 0, -1, fn_1_9F40); + glight = Hu3DGLightCreateV(&lbl_1_data_7C, &lbl_1_data_88, &lbl_1_data_94); + Hu3DGLightStaticSet(glight, 1); + Hu3DGLightInfinitytSet(glight); + Hu3DShadowCreate(30, 20, 20000); + Hu3DShadowTPLvlSet(0.8); + VECNormalize(&lbl_1_data_98, &shadowDir); + Hu3DShadowPosSet(&lbl_1_data_98, &shadowDir, &lbl_1_data_A4); + HuSprExecLayerSet(64, 5); + omMakeGroupEx(lbl_1_bss_1DC, 0, 4); + lbl_1_bss_48 = omGetGroupMemberListEx(lbl_1_bss_1DC, 0); + for (i = 0; i < 4; i++) { + object = omAddObjEx(lbl_1_bss_1DC, 100, 3, 16, 0, fn_1_53E8); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work53E8), MEMORY_DEFAULT_NUM); + object->work[0] = i; + } + fn_1_0(); + lbl_1_bss_C = 1; + omMakeGroupEx(lbl_1_bss_1DC, 1, 20); + lbl_1_bss_44 = omGetGroupMemberListEx(lbl_1_bss_1DC, 1); + for (i = 0; i < 3; i++) { + lbl_1_bss_18[i] = 0; + lbl_1_bss_12[i] = Hu3DModelCreateFile(lbl_1_data_314[i]); + Hu3DModelAttrSet(lbl_1_bss_12[i], 1); + Hu3DModelAttrSet(lbl_1_bss_12[i], 0x40000003); + } + for (i = 0; i < 20; i++) { + fn_1_74F4(0); + } + omMakeGroupEx(lbl_1_bss_1DC, 2, 400); + lbl_1_bss_40 = omGetGroupMemberListEx(lbl_1_bss_1DC, 2); + lbl_1_bss_38 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M441, 0x46)); + HuSprAnimLock(lbl_1_bss_38); + lbl_1_bss_34 = Hu3DParManCreate(lbl_1_bss_38, 500, &lbl_1_data_39C); + Hu3DParManAttrSet(lbl_1_bss_34, 1); + lbl_1_bss_30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M441, 0x47)); + HuSprAnimLock(lbl_1_bss_30); + lbl_1_bss_2C = Hu3DParManCreate(lbl_1_bss_30, 20, &lbl_1_data_48C); + Hu3DParManAttrSet(lbl_1_bss_2C, 1); + lbl_1_bss_4C = omAddObjEx(lbl_1_bss_1DC, 103, 3, 0, -1, fn_1_9F40); } void fn_1_AA4C(omObjData *object) { - s32 i; - if(WipeStatGet()) { - return; - } - if(lbl_1_bss_19E >= 0) { - MGSeqKill(lbl_1_bss_19E); - } - if(lbl_1_bss_19C >= 0) { - MGSeqKill(lbl_1_bss_19C); - } - MGSeqKillAll(); - HuAudAllStop(); - for(i=0; i<4; i++) { - CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); - } - omOvlReturnEx(1, 1); - + s32 i; + if (WipeStatGet()) { + return; + } + if (lbl_1_bss_19E >= 0) { + MGSeqKill(lbl_1_bss_19E); + } + if (lbl_1_bss_19C >= 0) { + MGSeqKill(lbl_1_bss_19C); + } + MGSeqKillAll(); + HuAudAllStop(); + for (i = 0; i < 4; i++) { + CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); + } + omOvlReturnEx(1, 1); } diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index dd8dfc2d..4f3de7a0 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -422,7 +422,7 @@ void fn_1_A90(Process *arg0) for (var_r31 = 0; var_r31 < 1; var_r31++) { omAddObjEx(arg0, 5, 0xA, 0x32, 0, fn_1_E88); } - lbl_1_bss_11F00 = HuSprAnimRead(HuDataReadNum(0x49000A, MEMORY_DEFAULT_NUM)); + lbl_1_bss_11F00 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M442, 0x0A), MEMORY_DEFAULT_NUM)); for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_11EEC[var_r31] = HuSprAnimRead(HuDataReadNum(sp8[var_r31], MEMORY_DEFAULT_NUM)); } @@ -466,13 +466,13 @@ s32 fn_1_E04(void) } s32 lbl_1_data_FC[7] = { - 0x5F0000, - 0x5F0002, - 0x5F0003, - 0x5F0005, - 0x5F002B, - 0x5F0048, - 0x5F0018, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), }; s32 lbl_1_data_118[2] = { 0x490010, 0x490018 }; @@ -505,7 +505,7 @@ void fn_1_E88(omObjData *object) object->model[0] = CharModelCreate(var_r26, 8); Hu3DModelLayerSet(object->model[0], 1); Hu3DModelShadowSet(object->model[0]); - object->model[1] = Hu3DModelCreateFile(0x490001); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M442, 0x01)); Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); var_r30->unk_30 = 0; for (var_r29 = 0; var_r29 < 7; var_r29++) { @@ -1386,7 +1386,7 @@ void fn_1_3EC0(omObjData *object) fn_1_4444(var_r31); } object->model[3] = Hu3DHookFuncCreate(fn_1_485C); - lbl_1_bss_11F10 = HuSprAnimRead(HuDataSelHeapReadNum(0x49000B, MEMORY_DEFAULT_NUM, HEAP_DATA)); + lbl_1_bss_11F10 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M442, 0x0B)); object->model[4] = Hu3DHookFuncCreate(fn_1_54C8); Hu3DModelLayerSet(object->model[4], 6); for (var_r31 = 0; var_r31 < 15; var_r31++) { @@ -1394,7 +1394,7 @@ void fn_1_3EC0(omObjData *object) } memset(lbl_1_bss_119FC, 0, 0x271); for (var_r31 = 0; var_r31 < 3; var_r31++) { - lbl_1_bss_11F04[var_r31] = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_1A0[var_r31], MEMORY_DEFAULT_NUM, HEAP_DATA)); + lbl_1_bss_11F04[var_r31] = HuSprAnimReadFile(lbl_1_data_1A0[var_r31]); } object->model[5] = Hu3DHookFuncCreate(fn_1_5A48); Hu3DModelLayerSet(object->model[5], 2); @@ -1913,7 +1913,7 @@ void fn_1_6D24(omObjData *object) memset(var_r29, 0, sizeof(M442MainWork2)); var_r29->unk_16 = lbl_1_bss_11EE0++; var_r29->unk_18 = 1.0f; - object->model[0] = Hu3DModelCreateFile(0x490002); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M442, 0x02)); Hu3DModelLayerSet(object->model[0], 7); Hu3DModelAttrSet(object->model[0], 0x40000001); Hu3DModelAttrSet(object->model[0], 1); diff --git a/src/REL/m442Dll/score.c b/src/REL/m442Dll/score.c index 08e37259..6fd5b7c8 100644 --- a/src/REL/m442Dll/score.c +++ b/src/REL/m442Dll/score.c @@ -39,25 +39,25 @@ s32 fn_1_91AC(Process *arg0, s16 arg1) var_r31 = lbl_1_bss_11F48->data; var_r31->unk_08 = arg1; var_r31->unk_0A = 0; - var_r31->unk_18 = espEntry(0x610023, 2, 0); + var_r31->unk_18 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x23), 2, 0); espTPLvlSet(var_r31->unk_18, 0.5f); espPosSet(var_r31->unk_18, 508.0f, 64.0f); espColorSet(var_r31->unk_18, 0, 0, 0); - var_r31->unk_1A = espEntry(0x610037, 1, 0); + var_r31->unk_1A = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x37), 1, 0); espPosSet(var_r31->unk_1A, 480.0f, 56.0f); for (var_r30 = 0; var_r30 < 3; var_r30++) { - var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0); + var_r31->unk_0C[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x30), 0, 0); espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x10) + 0x1F4, 56.0f); espDispOff(var_r31->unk_0C[var_r30]); } for (var_r30 = 0; var_r30 < 3; var_r30++) { - var_r31->unk_0C[var_r30 + 3] = espEntry(0x610031, 1, 0); + var_r31->unk_0C[var_r30 + 3] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x31), 1, 0); espPosSet(var_r31->unk_0C[var_r30 + 3], (var_r30 * 0x10) + 0x1F4, 74.0f); } for (var_r30 = 0; var_r30 < 8; var_r30++) { espDispOff(var_r31->unk_0C[var_r30]); } - HuDataDirClose(0x610000); + HuDataDirClose(DATADIR_MGCONST); return fn_1_9520(0); } diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 60a338ec..653a5cc1 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -1,19 +1,19 @@ -#include "game/object.h" -#include "game/objsub.h" #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/audio.h" -#include "game/esprite.h" -#include "game/chrman.h" #include "game/board/ui.h" -#include "game/gamework_data.h" #include "game/gamework.h" +#include "game/gamework_data.h" #include "REL/m444dll.h" #include "ext_math.h" @@ -22,55 +22,42 @@ #include "rel_sqrt_consts.h" typedef struct camera_view_params { - Vec rot; - Vec pos; - float zoom; + 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 }, + { { -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[] = { - { 0x4B0022, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } } -}; +DataListSprite lbl_1_data_118[] + = { { DATA_MAKE_NUM(DATADIR_M443, 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 -}; +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 }, + { -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 -}; +s16 lbl_1_data_188[] = { 1, 1, 2, 2, 2 }; -s32 lbl_1_data_194[] = { - 0x4B0024, - 0x4B0025, - 0x4B0026, - 0x4B0027, - 0x4B0028, - 0x4B0029, - 0x4B002A, - 0x4B002B -}; +s32 lbl_1_data_194[] = { DATA_MAKE_NUM(DATADIR_M443, 0x24), DATA_MAKE_NUM(DATADIR_M443, 0x25), DATA_MAKE_NUM(DATADIR_M443, 0x26), + DATA_MAKE_NUM(DATADIR_M443, 0x27), DATA_MAKE_NUM(DATADIR_M443, 0x28), DATA_MAKE_NUM(DATADIR_M443, 0x29), DATA_MAKE_NUM(DATADIR_M443, 0x2A), + DATA_MAKE_NUM(DATADIR_M443, 0x2B) }; omObjData *lbl_1_bss_30C; Process *lbl_1_bss_308; @@ -102,39 +89,39 @@ 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(); + 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); @@ -150,796 +137,808 @@ 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, 0x1C0000); - 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, 0x1C0000); - 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, 0x1C0001); - 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, 0x1C0001); - 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, 0x1C0002); - 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, 0x1C0002); - 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, 0x1C0003); - 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, 0x1C0003); - 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 = 0x1C0016; - temp_r25 = 0; - - } else { - temp_r28 = 0x1C0006; - } - temp_r24 = 0x1C0009; - 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 = 0x1C0017; - } else { - temp_r28 = 0x1C0006; - } - temp_r24 = 0x1C000D; - break; - - case 2: - if(GWPlayer[lbl_1_bss_2D6].stars > 0) { - temp_r28 = 0x1C0004; - } else { - temp_r28 = 0x1C0008; - temp_r25 = 0; - } - temp_r24 = 0x1C000A; - break; - - case 3: - if(GWPlayer[lbl_1_bss_2D6].stars <= 0 && GWPlayer[lbl_1_bss_2D4].stars <= 0) { - temp_r25 = 0; - temp_r28 = 0x1C0015; - } else { - temp_r28 = 0x1C0006; - } - temp_r24 = 0x1C000E; - break; - - case 4: - if(GWPlayer[lbl_1_bss_2D6].stars > 0) { - temp_r28 = 0x1C0004; - } else { - temp_r28 = 0x1C0008; - temp_r25 = 0; - } - temp_r24 = 0x1C000C; - break; - - case 5: - case 6: - if(GWPlayer[lbl_1_bss_2D6].coins > 0) { - temp_r28 = 0x1C0004; - } else { - temp_r28 = 0x1C0007; - temp_r25 = 0; - } - temp_r24 = 0x1C000B; - 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(); - } + 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, 0x1C0005); - 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, 0x1C0005); - 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); + 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(); - } + 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; + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6[20]; + s16 unk2E[20]; + float unk58; + s32 unk5C; } Work5774; void fn_1_5774(void); @@ -947,552 +946,558 @@ 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; + 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(); - } + 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(); - } + 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(0x4B0023, 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, 0x5F0000); - lbl_1_bss_2C0[1] = CharModelMotionCreate(lbl_1_bss_2DA, 0x5F0002); - lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA+0x4B0045); - lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA+0x4B004D); - 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(0x4B0013); - } 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(0x4B0012); - } 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(); + 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_M443, 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_M443, 0x45)); + lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M443, 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_M443, 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_M443, 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()); - } - } + 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(); + 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 -}; - +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); - } + 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 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)); + 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))); + 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)); - 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); - } + 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; - } + 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; + 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; + 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); + float zoom = lbl_1_bss_2E0 - lbl_1_bss_288[0]; + return sqrtf(zoom * zoom); } diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index e4f9b3d7..b5d0c75c 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -268,11 +268,11 @@ void fn_1_9418(s16 arg0) Hu3DModelRotSet(lbl_1_bss_2D0, 0, 180, 0); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 4, 0x40000020); HuPrcSleep(12); - HuWinMesMaxSizeGet(1, sp8, 0x1C000F); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x0F)); temp_r29 = HuWinCreate(-10000, 340, sp8[0], sp8[1], 1); HuWinMesSpeedSet(temp_r29, 0); HuWinBGTPLvlSet(temp_r29, 0); - HuWinMesSet(temp_r29, 0x1C000F); + HuWinMesSet(temp_r29, MAKE_MESSID(0x1C, 0x0F)); CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[2]); Hu3DModelAttrSet(lbl_1_bss_2D0, 0x40000002); temp_f29 = Hu3DMotionTimeGet(lbl_1_bss_2D0); @@ -1198,4 +1198,4 @@ void fn_1_D1E0(s16 model) } } lbl_1_bss_1884 = temp_r31; -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 8f4c5f72..724bb2eb 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -14,11 +14,11 @@ unkStruct3* lbl_1_bss_18; unkStruct2* fn_1_1C64(s32 arg0) { unkStruct2* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000U); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } - temp_r3->unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 4, 0x10000000U); + temp_r3->unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 4, MEMORY_DEFAULT_NUM); if (!temp_r3->unk0) { HuMemDirectFree(temp_r3); return NULL; @@ -75,7 +75,7 @@ s32 fn_1_1DEC(unkStruct2* arg0) { unkStruct3* fn_1_1DF4(void* arg0) { unkStruct3* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -250,7 +250,7 @@ unkStruct4* m446CardCreate(s32 arg0) { unkStruct4* temp_r31; unkStruct3* temp_r30; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, 0x10000000U); + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, MEMORY_DEFAULT_NUM); if (!temp_r31) { OSReport("[!] m446CardCreate ERROR...\n"); return NULL; @@ -521,4 +521,4 @@ void fn_1_2F64(unkStruct4* arg0) { Hu3DModelScaleSet(arg0->unkA[0], arg0->unk58, arg0->unk58, arg0->unk58); Hu3DModelScaleSet(arg0->unkA[1], arg0->unk58, arg0->unk58, arg0->unk58); Hu3DModelRotSet(arg0->unkA[0], arg0->unk34.x, arg0->unk34.y, arg0->unk34.z); -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index 6c67c262..0c08a160 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -1,27 +1,25 @@ #include "REL/m446Dll.h" -#include "math.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "math.h" // bss -unkStruct3* lbl_1_bss_98; +unkStruct3 *lbl_1_bss_98; // data -s32 lbl_1_data_3C8[9] = { - 0x4D0012, 0x4D0013, 0x4D0014, - 0x4D0015, 0x4D0016, 0x4D0017, - 0x4D0018, 0x4D0019, 0x4D001A -}; +s32 lbl_1_data_3C8[9] = { 0x4D0012, 0x4D0013, 0x4D0014, 0x4D0015, 0x4D0016, 0x4D0017, 0x4D0018, 0x4D0019, 0x4D001A }; -s32 fn_1_72E0(void) { +s32 fn_1_72E0(void) +{ lbl_1_bss_98 = NULL; return 1; } -void fn_1_72F8(void) { - unkStruct3* var_r31; - unkStruct7* var_r30; +void fn_1_72F8(void) +{ + unkStruct3 *var_r31; + unkStruct7 *var_r30; var_r31 = lbl_1_bss_98; if (var_r31) { @@ -33,10 +31,11 @@ void fn_1_72F8(void) { } } -void fn_1_7350(void) { +void fn_1_7350(void) +{ f32 temp_f31; - unkStruct3* var_r30; - unkStruct7* temp_r31; + unkStruct3 *var_r30; + unkStruct7 *temp_r31; var_r30 = lbl_1_bss_98; if (var_r30) { @@ -65,12 +64,13 @@ void fn_1_7350(void) { } } -unkStruct7* m446CursorCreate(s32 arg0) { +unkStruct7 *m446CursorCreate(s32 arg0) +{ s32 var_r30; - unkStruct7* var_r31; - unkStruct3* var_r29; + unkStruct7 *var_r31; + unkStruct3 *var_r29; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } @@ -84,7 +84,7 @@ unkStruct7* m446CursorCreate(s32 arg0) { var_r31->field00_bit3 = 0; var_r31->unk8 = arg0; var_r31->unk48 = 0; - var_r31->unkC[0] = Hu3DModelCreateFile(0x4D0009); + var_r31->unkC[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x09)); Hu3DModelLayerSet(var_r31->unkC[0], 6); if (var_r31->unk8 == 0) { for (var_r30 = 0; var_r30 < 9; var_r30++) { @@ -101,15 +101,17 @@ unkStruct7* m446CursorCreate(s32 arg0) { } if (lbl_1_bss_98) { fn_1_1EC8(lbl_1_bss_98, var_r29); - } else { + } + else { lbl_1_bss_98 = var_r29; } return var_r31; } -void fn_1_76E8(unkStruct7* arg0) { +void fn_1_76E8(unkStruct7 *arg0) +{ s32 var_r29; - unkStruct3* var_r31; + unkStruct3 *var_r31; var_r31 = lbl_1_bss_98; if (var_r31) { @@ -134,7 +136,8 @@ void fn_1_76E8(unkStruct7* arg0) { } } -void fn_1_77C8(unkStruct7* arg0, u8 arg1) { +void fn_1_77C8(unkStruct7 *arg0, u8 arg1) +{ s32 var_r30; arg0->field00_bit0 = 1; @@ -144,14 +147,16 @@ void fn_1_77C8(unkStruct7* arg0, u8 arg1) { for (var_r30 = 0; var_r30 < 9; var_r30++) { if (var_r30 == arg1) { Hu3DModelAttrReset(arg0->unkC[var_r30 + 1], 1); - } else { + } + else { Hu3DModelAttrSet(arg0->unkC[var_r30 + 1], 1); } } } } -void fn_1_7884(unkStruct7* arg0) { +void fn_1_7884(unkStruct7 *arg0) +{ s32 var_r30; arg0->field00_bit0 = 0; @@ -163,7 +168,8 @@ void fn_1_7884(unkStruct7* arg0) { } } -void fn_1_7908(unkStruct7* arg0, Vec* arg1, s32 arg2) { +void fn_1_7908(unkStruct7 *arg0, Vec *arg1, s32 arg2) +{ arg0->unk38 = *arg1; arg0->unk2C = arg0->unk20; arg0->unk4C = 0.0f; @@ -171,7 +177,8 @@ void fn_1_7908(unkStruct7* arg0, Vec* arg1, s32 arg2) { arg0->field00_bit1 = 1; } -void fn_1_799C(unkStruct7* arg0) { +void fn_1_799C(unkStruct7 *arg0) +{ s32 var_r30; if (arg0->unk8 == 0) { @@ -183,7 +190,8 @@ void fn_1_799C(unkStruct7* arg0) { arg0->field00_bit3 = 1; } -void fn_1_7A38(unkStruct7* arg0) { +void fn_1_7A38(unkStruct7 *arg0) +{ s32 var_r31; if (arg0->unk8 == 0) { @@ -194,7 +202,8 @@ void fn_1_7A38(unkStruct7* arg0) { arg0->field00_bit3 = 0; } -void fn_1_7AB4(unkStruct7* arg0) { +void fn_1_7AB4(unkStruct7 *arg0) +{ f32 var_f31; s32 temp_r29; s32 var_r30; @@ -208,10 +217,11 @@ void fn_1_7AB4(unkStruct7* arg0) { Hu3DModelScaleSet(arg0->unkC[temp_r29], arg0->unk44, arg0->unk44, arg0->unk44); if (arg0->field00_bit2 != 0) { var_f31 = 180.0f; - } else { + } + else { var_f31 = 0.0f; } Hu3DModelRotSet(arg0->unkC[temp_r29], 0.0f, var_f31, 0.0f); } } -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/deck.c b/src/REL/m446Dll/deck.c index dfa9d846..83e541ee 100644 --- a/src/REL/m446Dll/deck.c +++ b/src/REL/m446Dll/deck.c @@ -18,7 +18,7 @@ unkStruct5* fn_1_3064(void) { s32 var_r30; unkStruct5* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, 0x10000000); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -184,4 +184,4 @@ void fn_1_38E0(u32 arg0) { s32 fn_1_38F0(void) { return ((lbl_1_bss_20 = (lbl_1_bss_20 * 0x41C64E6D) + 0x3039) >> 16) % 32768; -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/main.c b/src/REL/m446Dll/main.c index c81335ae..c762dbf4 100644 --- a/src/REL/m446Dll/main.c +++ b/src/REL/m446Dll/main.c @@ -96,7 +96,7 @@ unkStruct* m446FlowCreate(void) { s32 var_r30; unkStruct* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, 0x10000000); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, MEMORY_DEFAULT_NUM); if (temp_r3 == 0) { OSReport("[!] m446FlowCreate() ERROR...\n"); return NULL; @@ -635,9 +635,9 @@ s32 fn_1_1970(s16 arg0, s32 arg1, s32 arg2, s32 arg3) { } static const s32 lbl_1_rodata_18[12] = { - 0x180003, 0x180004, 0x180005, 0x180006, - 0x180007, 0x180008, 0x180009, 0x18000A, - 0x18000B, 0x18000C, 0x18000D, 0 + MAKE_MESSID(0x18, 0x03), MAKE_MESSID(0x18, 0x04), MAKE_MESSID(0x18, 0x05), MAKE_MESSID(0x18, 0x06), + MAKE_MESSID(0x18, 0x07), MAKE_MESSID(0x18, 0x08), MAKE_MESSID(0x18, 0x09), MAKE_MESSID(0x18, 0x0A), + MAKE_MESSID(0x18, 0x0B), MAKE_MESSID(0x18, 0x0C), MAKE_MESSID(0x18, 0x0D), 0 }; void fn_1_19D4(void) { @@ -652,11 +652,11 @@ void fn_1_19D4(void) { HuWinBGTPLvlSet(temp_r3, 0.8f); HuWinMesSpeedSet(temp_r3, 1); HuWinMesColSet(temp_r3, 0); - HuWinMesSet(temp_r3, 0x180001); + HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x01)); fn_1_18EC(temp_r3, 0x3C); if (lbl_1_bss_10 < 2) { HuWinMesColSet(temp_r3, 0); - HuWinMesSet(temp_r3, 0x180002); + HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x02)); var_r30 = fn_1_1970(temp_r3, 0, 1, 0x3C); } else { var_r30 = 1; @@ -670,7 +670,7 @@ void fn_1_19D4(void) { } } else { HuWinMesColSet(temp_r3, 0); - HuWinMesSet(temp_r3, 0x18000D); + HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x0D)); fn_1_18EC(temp_r3, 0x3C); } HuWinExAnimOut(temp_r3); diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index 6055f092..df2b9e3c 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -1,48 +1,102 @@ #include "REL/m446Dll.h" -#include "math.h" +#include "game/chrman.h" #include "game/gamework_data.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/chrman.h" -#include "game/pad.h" #include "game/objsub.h" +#include "game/pad.h" +#include "math.h" // cursor.c extern unkStruct7 *m446CursorCreate(s32); -extern void fn_1_76E8(unkStruct7*); -extern void fn_1_77C8(unkStruct7*, u8); +extern void fn_1_76E8(unkStruct7 *); +extern void fn_1_77C8(unkStruct7 *, u8); // bss unkStruct3 *lbl_1_bss_30; // data s32 lbl_1_data_228[9] = { - 0x4D000A, 0x4D000B, 0x4D000C, - 0x4D000D, 0x4D000E, 0x4D000F, - 0x4D0010, 0x4D0011, 0x4D0021 + DATA_MAKE_NUM(DATADIR_M446, 10), + DATA_MAKE_NUM(DATADIR_M446, 11), + DATA_MAKE_NUM(DATADIR_M446, 12), + DATA_MAKE_NUM(DATADIR_M446, 13), + DATA_MAKE_NUM(DATADIR_M446, 14), + DATA_MAKE_NUM(DATADIR_M446, 15), + DATA_MAKE_NUM(DATADIR_M446, 16), + DATA_MAKE_NUM(DATADIR_M446, 17), + DATA_MAKE_NUM(DATADIR_M446, 33), }; -s32 lbl_1_data_24C[9][4] = { - { 0x5F0000, 0x5F0036, 0x5F0017, 0x5F0072 }, - { 0x1A0000, 0x1A0036, 0x1A0017, 0x1A0072 }, - { 0x6D0000, 0x6D0036, 0x6D0017, 0x6D0072 }, - { 0x8A0000, 0x8A0036, 0x8A0017, 0x8A0072 }, - { 0x850000, 0x850036, 0x850017, 0x850072 }, - { 0x110000, 0x110036, 0x110017, 0x110072 }, - { 0x0D0000, 0x0D0036, 0x0D0017, 0x0D0072 }, - { 0x810000, 0x810036, 0x810017, 0x810072 }, - { 0x4D0022, 0x4D0023, 0x4D0025, 0x4D0024 } -}; -m446Func8 lbl_1_data_2DC[5] = {NULL, fn_1_5B48, fn_1_5C24, fn_1_5D00, fn_1_6074}; -s32 fn_1_480C(void) { +s32 lbl_1_data_24C[9][4] = { + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 54), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 54), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 54), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 54), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 54), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 54), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 54), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 54), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_M446, 0x22), + DATA_MAKE_NUM(DATADIR_M446, 0x23), + DATA_MAKE_NUM(DATADIR_M446, 0x25), + DATA_MAKE_NUM(DATADIR_M446, 0x24), + }, +}; +m446Func8 lbl_1_data_2DC[5] = { NULL, fn_1_5B48, fn_1_5C24, fn_1_5D00, fn_1_6074 }; + +s32 fn_1_480C(void) +{ lbl_1_bss_30 = 0; return 1; } -void fn_1_4824(void) { - unkStruct3* var_r31; - void* var_r30; +void fn_1_4824(void) +{ + unkStruct3 *var_r31; + void *var_r30; var_r31 = lbl_1_bss_30; if (var_r31) { @@ -54,10 +108,11 @@ void fn_1_4824(void) { } } -void fn_1_487C(void) { +void fn_1_487C(void) +{ f32 temp_f31; - unkStruct8* temp_r31; - unkStruct3* var_r30; + unkStruct8 *temp_r31; + unkStruct3 *var_r30; var_r30 = lbl_1_bss_30; if (var_r30) { @@ -100,43 +155,48 @@ void fn_1_487C(void) { } } -unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { +unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1) +{ f32 var_f31; s32 var_r27; s32 var_r26; s16 var_r25; s16 var_r24; - unkStruct3* var_r28; + unkStruct3 *var_r28; s32 var_r30; - unkStruct8* var_r31; + unkStruct8 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } var_r31->unk0 = arg0; if (GWPlayerCfg[arg0].iscom != 0) { var_r27 = 1; - } else { + } + else { var_r27 = 0; } var_r31->unk68 = var_r27; var_r31->unk4 = arg1; if (GWPlayerCfg[arg0].character == 0xB) { var_r26 = 1; - } else { + } + else { var_r26 = 0; } var_r31->unk70 = var_r26; if (var_r31->unk70 != 0) { var_r25 = 8; - } else { + } + else { var_r25 = GWPlayerCfg[arg0].character; } var_r31->unk64 = var_r25; if (var_r31->unk68 != 0) { var_r24 = 4; - } else { + } + else { var_r24 = GWPlayerCfg[arg0].pad_idx; } var_r31->unk66 = var_r24; @@ -147,7 +207,8 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { var_r31->unk48.x = 0.0f; if (var_r31->unk70 != 0) { var_f31 = 70.0f; - } else { + } + else { var_f31 = 0.0f; } var_r31->unk48.y = var_f31; @@ -163,7 +224,7 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { var_r31->unk1C = 0; var_r31->unk98 = 0; var_r31->unkB4 = 0; - + for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r31->unk2C[var_r30] = NULL; } @@ -174,19 +235,20 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { } fn_1_7884(var_r31->unk8); switch (var_r31->unk0) { - case 0: - var_r31->unk48.z = 150.0f; - var_r31->unk54.y = 180.0f; - break; - case 1: - var_r31->unk48.z = -150.0f; - var_r31->unk54.y = 0.0f; - break; + case 0: + var_r31->unk48.z = 150.0f; + var_r31->unk54.y = 180.0f; + break; + case 1: + var_r31->unk48.z = -150.0f; + var_r31->unk54.y = 0.0f; + break; } if (var_r31->unk70 != 0) { - var_r31->unk3C[0] = Hu3DModelCreateFile(0x4D0020); - var_r31->unk3C[1] = Hu3DModelCreateFile(0x4D0021); - } else { + var_r31->unk3C[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x20)); + var_r31->unk3C[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x21)); + } + else { var_r31->unk3C[0] = CharModelCreate(var_r31->unk64, 2); var_r31->unk3C[1] = Hu3DModelCreateFile(lbl_1_data_228[var_r31->unk64]); } @@ -199,11 +261,12 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { Hu3DModelAttrSet(var_r31->unk3C[1], 1); Hu3DModelPosSet(var_r31->unk3C[1], 2000.0f, 2000.0f, 2000.0f); fn_1_637C(var_r31, 0); - + for (var_r30 = 0; var_r30 < 4; var_r30++) { if (var_r31->unk70 != 0) { var_r31->unk40[var_r30] = Hu3DJointMotionFile(var_r31->unk3C[0], lbl_1_data_24C[var_r31->unk64][var_r30]); - } else { + } + else { var_r31->unk40[var_r30] = CharModelMotionCreate(var_r31->unk64, lbl_1_data_24C[var_r31->unk64][var_r30]); } } @@ -212,7 +275,8 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { } if (var_r31->unk70 != 0) { Hu3DMotionSet(var_r31->unk3C[0], var_r31->unk40[0]); - } else { + } + else { CharModelMotionSet(var_r31->unk64, var_r31->unk40[0]); } Hu3DModelAttrSet(var_r31->unk3C[0], 0x40000001); @@ -224,18 +288,20 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { } if (lbl_1_bss_30) { fn_1_1EC8(lbl_1_bss_30, var_r28); - } else { + } + else { lbl_1_bss_30 = var_r28; } return var_r31; } -void fn_1_509C(unkStruct8* arg0) { +void fn_1_509C(unkStruct8 *arg0) +{ s32 var_r29; - unkStruct3* var_r30; + unkStruct3 *var_r30; var_r30 = lbl_1_bss_30; - + do { if (arg0 == var_r30->unk0) { if (var_r30 == lbl_1_bss_30) { @@ -243,18 +309,20 @@ void fn_1_509C(unkStruct8* arg0) { } fn_1_1F04(var_r30); fn_1_1E5C(var_r30); - + for (var_r29 = 0; var_r29 < 4; var_r29++) { if (arg0->unk70 != 0) { Hu3DMotionKill(arg0->unk40[var_r29]); - } else { + } + else { CharModelMotionKill(arg0->unk64, arg0->unk40[var_r29]); } } if (arg0->unk70 != 0) { Hu3DModelKill(arg0->unk3C[0]); Hu3DModelKill(arg0->unk3C[1]); - } else { + } + else { CharModelKill(arg0->unk64); Hu3DModelKill(arg0->unk3C[1]); } @@ -266,7 +334,8 @@ void fn_1_509C(unkStruct8* arg0) { } while (var_r30); } -s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { +s32 m446PlayerAppendCard(unkStruct8 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec sp18; Vec spC; s32 temp_r0_2; @@ -278,13 +347,13 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { OSReport("m446PlayerAppendCard ERROR...\n"); return 0; } - + for (var_r29 = 0; var_r29 < 3; var_r29++) { if (!arg0->unk2C[var_r29]) { break; } } - + if (var_r29 == 3) { OSReport("m446PlayerAppendCard ERROR...\n"); return 0; @@ -302,15 +371,15 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { sp18.z = -45.0f; break; } - + spC = arg1->unk34; switch (arg0->unk0) { - case 0: - spC.y = 0.0f; - break; - case 1: - spC.y = 180.0f; - break; + case 0: + spC.y = 0.0f; + break; + case 1: + spC.y = 180.0f; + break; } switch (arg2) { case 0: @@ -336,14 +405,16 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { if ((arg0->unk24 != 0) && (temp_r28 == 0)) { HuAudFXPlay(0x76B); fn_1_64BC(arg0, 1, 0x3C); - } else if ((arg0->unk20 != 0) && (temp_r27 == 0)) { + } + else if ((arg0->unk20 != 0) && (temp_r27 == 0)) { HuAudFXPlay(0x76B); fn_1_64BC(arg0, 0, 0x3C); } return 1; } -s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { +s32 m446PlayerRemoveCard(unkStruct8 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec spC; s32 var_r30; @@ -351,7 +422,7 @@ s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { OSReport("m446PlayerRemoveCard ERROR...\n"); return 0; } - + for (var_r30 = 0; var_r30 < 3; var_r30++) { if (arg0->unk2C[var_r30] == arg1) { break; @@ -377,7 +448,8 @@ s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { return 1; } -s32 fn_1_5648(unkStruct8* arg0, s32 arg1, unkStruct4** arg2) { +s32 fn_1_5648(unkStruct8 *arg0, s32 arg1, unkStruct4 **arg2) +{ if ((arg1 < 0) || (arg1 >= 3)) { return 0; } @@ -385,7 +457,8 @@ s32 fn_1_5648(unkStruct8* arg0, s32 arg1, unkStruct4** arg2) { return 1; } -s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { +s32 fn_1_5678(unkStruct8 *arg0, unkStruct4 **arg1, s32 arg2) +{ s32 sp14[3]; Vec sp8; s32 var_r28; @@ -394,7 +467,7 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { s32 var_r24; s32 var_r27; s32 var_r26; - unkStruct4* var_r29; + unkStruct4 *var_r29; var_r27 = 0; var_r26 = 0; @@ -412,14 +485,15 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { break; } } - } else { + } + else { for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r29 = arg0->unk2C[var_r30]; if (var_r29->unk0 != arg0->unk28) { break; } } - + var_r24 = fn_1_4720(arg0->unk4, var_r29->unk0); if (var_r24 >= 2) { for (var_r30 = 0; var_r30 < 3; var_r30++) { @@ -429,11 +503,13 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { break; } } - } else { + } + else { arg0->unk74 = (fn_1_38F0() % 3); } } - } else { + } + else { for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r29 = arg0->unk2C[var_r30]; sp14[var_r30] = fn_1_4720(arg0->unk4, var_r29->unk0); @@ -450,7 +526,8 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { } if (var_r28 == 5) { arg0->unk74 = (fn_1_38F0() % 3); - } else { + } + else { arg0->unk74 = var_r30; } } @@ -459,22 +536,24 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { } if (arg0->unk7C > 0) { arg0->unk7C--; - } else { + } + else { var_r27 = arg0->unk74 < arg0->unk10; var_r26 = arg0->unk74 > arg0->unk10; var_r25 = arg0->unk74 == arg0->unk10; arg0->unk7C = 0x12; } - } else { + } + else { switch (arg0->unk0) { - case 0: - var_r27 = (HuPadDStkRep[arg0->unk66] & 1) != 0; - var_r26 = (HuPadDStkRep[arg0->unk66] & 2) != 0; - break; - case 1: - var_r27 = (HuPadDStkRep[arg0->unk66] & 2) != 0; - var_r26 = (HuPadDStkRep[arg0->unk66] & 1) != 0; - break; + case 0: + var_r27 = (HuPadDStkRep[arg0->unk66] & 1) != 0; + var_r26 = (HuPadDStkRep[arg0->unk66] & 2) != 0; + break; + case 1: + var_r27 = (HuPadDStkRep[arg0->unk66] & 2) != 0; + var_r26 = (HuPadDStkRep[arg0->unk66] & 1) != 0; + break; } var_r25 = (HuPadBtnDown[arg0->unk66] & 0x100) != 0; } @@ -513,19 +592,22 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { return 0; } -void fn_1_5B34(unkStruct8* arg0) { +void fn_1_5B34(unkStruct8 *arg0) +{ arg0->unk18 = 1; arg0->unk1C = 0; } -static const s32 lbl_1_rodata_1C8[4] = {0, 1, 2, 3}; +static const s32 lbl_1_rodata_1C8[4] = { 0, 1, 2, 3 }; -void fn_1_5B48(unkStruct8* arg0) { +void fn_1_5B48(unkStruct8 *arg0) +{ switch (arg0->unk1C) { case 0: if (arg0->unk70 != 0) { Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[2], 0.0f, 10.0f, 0); - } else { + } + else { CharModelMotionShiftSet(arg0->unk64, arg0->unk40[2], 0.0f, 10.0f, 0); } arg0->unk1C = 1; @@ -537,17 +619,20 @@ void fn_1_5B48(unkStruct8* arg0) { } } -void fn_1_5C10(unkStruct8* arg0) { +void fn_1_5C10(unkStruct8 *arg0) +{ arg0->unk18 = 2; arg0->unk1C = 0; } -void fn_1_5C24(unkStruct8* arg0) { +void fn_1_5C24(unkStruct8 *arg0) +{ switch (arg0->unk1C) { case 0: if (arg0->unk70 != 0) { Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[3], 0.0f, 10.0f, 0); - } else { + } + else { CharModelMotionShiftSet(arg0->unk64, arg0->unk40[3], 0.0f, 10.0f, 0); } arg0->unk1C = 1; @@ -559,12 +644,14 @@ void fn_1_5C24(unkStruct8* arg0) { } } -void fn_1_5CEC(unkStruct8* arg0) { +void fn_1_5CEC(unkStruct8 *arg0) +{ arg0->unk18 = 3; arg0->unk1C = 0; } -void fn_1_5D00(unkStruct8* arg0) { +void fn_1_5D00(unkStruct8 *arg0) +{ Vec sp8; sp8 = arg0->unk54; @@ -573,7 +660,8 @@ void fn_1_5D00(unkStruct8* arg0) { Hu3DModelAmbSet(arg0->unk3C[0], 0.8f, 0.8f, 0.8f); if (arg0->unk70 != 0) { Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[1], 0.0f, 10.0f, 0U); - } else { + } + else { CharModelMotionShiftSet(arg0->unk64, arg0->unk40[1], 0.0f, 10.0f, 0x40000001U); Hu3DMotionStartEndSet(arg0->unk3C[0], 0.0f, 59.0f); } @@ -589,7 +677,8 @@ void fn_1_5D00(unkStruct8* arg0) { } } -void fn_1_5E54(unkStruct8* arg0, s32 arg1) { +void fn_1_5E54(unkStruct8 *arg0, s32 arg1) +{ Vec sp14; Vec sp8; f32 var_f31; @@ -598,11 +687,12 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) { if (arg0->unk70 != 0) { var_f31 = 95.0f; - } else { + } + else { var_f31 = 80.0f; } sp14.y = var_f31; - + switch (arg0->unk0) { case 0: sp14.x = -30.0f + (30.0f * arg1); @@ -615,14 +705,16 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) { sp14.x = 30.0f - (30.0f * arg1); if (arg0->unk70 != 0) { var_f30 = 30.0f; - } else { + } + else { var_f30 = 55.0f; } sp14.z = -50.0f - var_f30; sp8.x = 0.0f; if (arg0->unk70 != 0) { var_f29 = 180.0f; - } else { + } + else { var_f29 = -90.0f; } sp8.y = var_f29; @@ -635,11 +727,12 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) { arg0->unk1C = 0; } -void fn_1_6074(unkStruct8* arg0) { +void fn_1_6074(unkStruct8 *arg0) +{ Vec sp8; f32 var_f31; f32 var_f30; - + switch (arg0->unk1C) { case 0: arg0->unk1C = 1; @@ -648,7 +741,8 @@ void fn_1_6074(unkStruct8* arg0) { sp8 = arg0->unk48; if (arg0->unk0 == 0) { var_f31 = -25.0f; - } else { + } + else { var_f31 = 25.0f; } sp8.z += var_f31; @@ -658,7 +752,8 @@ void fn_1_6074(unkStruct8* arg0) { arg0->unk14 = 0; break; case 2: - if (arg0->unk14++ < 0x1E) break; + if (arg0->unk14++ < 0x1E) + break; arg0->unk1C = 3; case 3: Hu3DModelAttrSet(arg0->unk3C[1], 0x40000001); @@ -669,13 +764,15 @@ void fn_1_6074(unkStruct8* arg0) { if (arg0->unk14 == 1) { Hu3DModelAttrReset(arg0->unk3C[1], 0x40000001); } - if (arg0->unk14++ < 0x1E) break; + if (arg0->unk14++ < 0x1E) + break; arg0->unk1C = 5; case 5: sp8 = arg0->unk48; if (arg0->unk0 == 0) { var_f30 = -50.0f; - } else { + } + else { var_f30 = 50.0f; } sp8.z -= var_f30; @@ -691,7 +788,8 @@ void fn_1_6074(unkStruct8* arg0) { } } -void fn_1_6264(unkStruct8* arg0, Vec* arg1, s32 arg2) { +void fn_1_6264(unkStruct8 *arg0, Vec *arg1, s32 arg2) +{ arg0->unk8C = *arg1; arg0->unk80 = arg0->unk54; arg0->unkB8 = 0.0f; @@ -699,7 +797,8 @@ void fn_1_6264(unkStruct8* arg0, Vec* arg1, s32 arg2) { arg0->unk98 = 1; } -void fn_1_62F0(unkStruct8* arg0, Vec* arg1, s32 arg2) { +void fn_1_62F0(unkStruct8 *arg0, Vec *arg1, s32 arg2) +{ arg0->unkA8 = *arg1; arg0->unk9C = arg0->unk48; arg0->unkC0 = 0.0f; @@ -707,7 +806,8 @@ void fn_1_62F0(unkStruct8* arg0, Vec* arg1, s32 arg2) { arg0->unkB4 = 1; } -void fn_1_637C(unkStruct8* arg0, s32 arg1) { +void fn_1_637C(unkStruct8 *arg0, s32 arg1) +{ f32 var_f31; arg0->unkC8 = arg1; @@ -719,7 +819,8 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) { arg0->unk48.x = 0.0f; if (arg0->unk70 != 0) { var_f31 = 70.0f; - } else { + } + else { var_f31 = 0.0f; } arg0->unk48.y = var_f31; @@ -732,8 +833,8 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) { arg0->unk48.z = -150.0f; arg0->unk54.y = 0.0f; return; - } - break; + } + break; case 1: Hu3DModelAttrReset(arg0->unk3C[1], 1); Hu3DModelAttrSet(arg0->unk3C[0], 1); @@ -741,31 +842,35 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) { } } -void fn_1_64BC(unkStruct8* arg0, s32 arg1, s32 arg2) { +void fn_1_64BC(unkStruct8 *arg0, s32 arg1, s32 arg2) +{ if (arg0->unk70 == 0) { switch (arg1) { - case 0: - omVibrate(arg0->unk0, arg2, 6, 6); - return; - case 1: - omVibrate(arg0->unk0, arg2, 4, 2); - return; - case 2: - omVibrate(arg0->unk0, arg2, 12, 0); - break; + case 0: + omVibrate(arg0->unk0, arg2, 6, 6); + return; + case 1: + omVibrate(arg0->unk0, arg2, 4, 2); + return; + case 2: + omVibrate(arg0->unk0, arg2, 12, 0); + break; } } } -static inline unkStruct8UnkC8(unkStruct8* arg0) { +static inline unkStruct8UnkC8(unkStruct8 *arg0) +{ if (arg0->unkC8 == 0) { return 0; - } else { + } + else { return 1; } } -void fn_1_6578(unkStruct8* arg0) { +void fn_1_6578(unkStruct8 *arg0) +{ s32 var_r30; var_r30 = unkStruct8UnkC8(arg0); @@ -774,16 +879,17 @@ void fn_1_6578(unkStruct8* arg0) { Hu3DModelScaleSet(arg0->unk3C[var_r30], arg0->unk60, arg0->unk60, arg0->unk60); } -void fn_1_6620(unkStruct8* arg0) { +void fn_1_6620(unkStruct8 *arg0) +{ s32 var_r26; - unkStruct4* temp_r27; - unkStruct4* temp_r30; + unkStruct4 *temp_r27; + unkStruct4 *temp_r30; s32 var_r29; s32 var_r28; arg0->unk20 = 0; arg0->unk24 = 0; - + for (var_r29 = 0; var_r29 < 3; var_r29++) { temp_r30 = arg0->unk2C[var_r29]; if (temp_r30) { @@ -794,7 +900,7 @@ void fn_1_6620(unkStruct8* arg0) { var_r26 = 0; temp_r30 = arg0->unk2C[var_r29]; if (temp_r30) { - + for (var_r28 = 0; var_r28 < 3; var_r28++) { temp_r27 = arg0->unk2C[var_r28]; if ((var_r29 != var_r28) && (temp_r27) && (temp_r30->unk0 == temp_r27->unk0)) { @@ -805,10 +911,11 @@ void fn_1_6620(unkStruct8* arg0) { arg0->unk28 = temp_r30->unk0; if (var_r26 == 1) { arg0->unk20 = 1; - } else if (var_r26 == 2) { + } + else if (var_r26 == 2) { arg0->unk24 = 1; } - + for (var_r28 = 0; var_r28 < 3; var_r28++) { temp_r27 = arg0->unk2C[var_r28]; if ((temp_r27) && (temp_r30->unk0 == temp_r27->unk0)) { @@ -819,4 +926,4 @@ void fn_1_6620(unkStruct8* arg0) { } } } -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/stage.c b/src/REL/m446Dll/stage.c index 11fbfee3..ad0a83b7 100644 --- a/src/REL/m446Dll/stage.c +++ b/src/REL/m446Dll/stage.c @@ -108,7 +108,7 @@ unkStruct9* m446StageCreate(void) { unkStruct3* temp_ret; unkStruct9* var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } @@ -208,4 +208,4 @@ void fn_1_852C(unkStruct9* arg0) { void fn_1_860C(unkStruct9* arg0) { arg0->unk28 = 1; -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/table.c b/src/REL/m446Dll/table.c index 56d45462..f1de1c13 100644 --- a/src/REL/m446Dll/table.c +++ b/src/REL/m446Dll/table.c @@ -3,16 +3,18 @@ #include "game/pad.h" // bss -unkStruct3* lbl_1_bss_28; +unkStruct3 *lbl_1_bss_28; -s32 fn_1_3924(void) { +s32 fn_1_3924(void) +{ lbl_1_bss_28 = NULL; return 1; } -void fn_1_393C(void) { - unkStruct3* var_r31; - unkStruct6* var_r30; +void fn_1_393C(void) +{ + unkStruct3 *var_r31; + unkStruct6 *var_r30; var_r31 = lbl_1_bss_28; if (var_r31) { @@ -24,9 +26,10 @@ void fn_1_393C(void) { } } -void fn_1_3994(void) { - unkStruct4* sp8; - unkStruct3* var_r31; +void fn_1_3994(void) +{ + unkStruct4 *sp8; + unkStruct3 *var_r31; var_r31 = lbl_1_bss_28; if (var_r31) { @@ -37,16 +40,17 @@ void fn_1_3994(void) { } } -unkStruct6* fn_1_39D0(void) { +unkStruct6 *fn_1_39D0(void) +{ s32 var_r30; - unkStruct3* var_r29; - unkStruct6* var_r31; + unkStruct3 *var_r29; + unkStruct6 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } - var_r31->unk4 = Hu3DModelCreateFile(0x4D0005); + var_r31->unk4 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x05)); Hu3DModelAmbSet(var_r31->unk4, 0.0f, 0.0f, 0.0f); Hu3DModelShadowMapSet(var_r31->unk4); Hu3DModelLayerSet(var_r31->unk4, 0); @@ -55,7 +59,7 @@ unkStruct6* fn_1_39D0(void) { var_r31->unk60 = 10; var_r31->unk5C = 0; var_r31->unk6C = 0; - + for (var_r30 = 0; var_r30 < 21; var_r30++) { var_r31->unk8[var_r30] = NULL; } @@ -68,14 +72,16 @@ unkStruct6* fn_1_39D0(void) { } if (lbl_1_bss_28) { fn_1_1EC8(lbl_1_bss_28, var_r29); - } else { + } + else { lbl_1_bss_28 = var_r29; } return var_r31; } -void fn_1_3B4C(unkStruct6* arg0) { - unkStruct3* var_r31; +void fn_1_3B4C(unkStruct6 *arg0) +{ + unkStruct3 *var_r31; var_r31 = lbl_1_bss_28; do { @@ -94,11 +100,12 @@ void fn_1_3B4C(unkStruct6* arg0) { } while (var_r31); } -s32 fn_1_3BF0(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { +s32 fn_1_3BF0(unkStruct6 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec sp18; Vec spC; s32 temp_r29; - + if (arg0->unk5C >= 21) { return 0; } @@ -138,10 +145,11 @@ s32 fn_1_3BF0(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { return 1; } -s32 fn_1_3EB4(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { +s32 fn_1_3EB4(unkStruct6 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec spC; s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x15; var_r31++) { if (arg0->unk8[var_r31] == arg1) { arg0->unk8[var_r31] = NULL; @@ -165,7 +173,8 @@ s32 fn_1_3EB4(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { return 1; } -s32 fn_1_3FD0(unkStruct6* arg0, s32 arg1, unkStruct4** arg2) { +s32 fn_1_3FD0(unkStruct6 *arg0, s32 arg1, unkStruct4 **arg2) +{ if ((arg1 < 0) || (arg1 >= 0x15)) { return 0; } @@ -173,21 +182,24 @@ s32 fn_1_3FD0(unkStruct6* arg0, s32 arg1, unkStruct4** arg2) { return 1; } -void fn_1_4000(unkStruct6* arg0, s32 arg1) { +void fn_1_4000(unkStruct6 *arg0, s32 arg1) +{ s32 var_r31; - unkStruct4* var_r30; + unkStruct4 *var_r30; for (var_r31 = 0; var_r31 < 21; var_r31++) { if (arg1 != 0) { var_r30 = arg0->unk8[20 - var_r31]; - } else { + } + else { var_r30 = arg0->unk8[var_r31]; } if ((var_r30) && (var_r30->unk64 == 0)) { if (arg1 != 0) { arg0->unk60 = (0x14 - var_r31); return; - } else { + } + else { arg0->unk60 = var_r31; return; } @@ -195,11 +207,12 @@ void fn_1_4000(unkStruct6* arg0, s32 arg1) { } } -s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s32 arg5) { +s32 fn_1_4088(unkStruct6 *arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4 **arg4, s32 arg5) +{ Vec sp10; s32 var_r28; s32 var_r27; - unkStruct4* temp_r26; + unkStruct4 *temp_r26; s32 var_r25; s32 var_r24; s32 var_r23; @@ -214,11 +227,13 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s *arg4 = NULL; if (arg2 >= 4) { if (arg0->unk6C == 0) { - arg0->unk64 = (s32) (fn_1_38F0() % 21); + arg0->unk64 = (s32)(fn_1_38F0() % 21); do { if (!(temp_r26 = arg0->unk8[arg0->unk64]) || temp_r26->unk64 != 0) { arg0->unk64 = ++arg0->unk64 % 21; - } else break; + } + else + break; (void)temp_r26; } while (TRUE); arg0->unk6C = 1; @@ -226,7 +241,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s } if ((arg0->unk68 > 0) && (arg5 == 0)) { arg0->unk68 = (arg0->unk68 - 1); - } else { + } + else { var_r28 = (arg0->unk64 / 7) < (arg0->unk60 / 7); var_r27 = (arg0->unk64 / 7) > (arg0->unk60 / 7); if ((var_r28 == 0) && (var_r27 == 0)) { @@ -236,7 +252,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s var_r23 = arg0->unk64 == arg0->unk60; arg0->unk68 = 0x12; } - } else if (arg5 == 0) { + } + else if (arg5 == 0) { var_r25 = (HuPadDStkRep[arg2] & 1) != 0; var_r24 = (HuPadDStkRep[arg2] & 2) != 0; var_r28 = (HuPadDStkRep[arg2] & 8) != 0; @@ -246,7 +263,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r25 != 0) { if ((arg0->unk60 % 7) == 0) { arg0->unk60 = (arg0->unk60 + 6); - } else { + } + else { arg0->unk60 = (arg0->unk60 - 1); } HuAudFXPlay(0); @@ -254,7 +272,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r24 != 0) { if ((arg0->unk60 % 7) == 6) { arg0->unk60 = (arg0->unk60 - 6); - } else { + } + else { arg0->unk60 = (arg0->unk60 + 1); } HuAudFXPlay(0); @@ -262,7 +281,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r28 != 0) { if ((arg0->unk60 / 7) == 0) { arg0->unk60 = (arg0->unk60 + 0xE); - } else { + } + else { arg0->unk60 = (arg0->unk60 - 7); } HuAudFXPlay(0); @@ -270,7 +290,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r27 != 0) { if ((arg0->unk60 / 7) == 2) { arg0->unk60 = (arg0->unk60 - 0xE); - } else { + } + else { arg0->unk60 = (arg0->unk60 + 7); } HuAudFXPlay(0); @@ -295,36 +316,39 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s return 1; } HuAudFXPlay(4); - } else { - HuAudFXPlay(4); + } + else { + HuAudFXPlay(4); } } return 0; } -void fn_1_46AC(unkStruct6* arg0) { - arg0->unk8[0] = (unkStruct4*)-1; - arg0->unk8[6] = (unkStruct4*)-1; - arg0->unk8[14] = (unkStruct4*)-1; - arg0->unk8[20] = (unkStruct4*)-1; +void fn_1_46AC(unkStruct6 *arg0) +{ + arg0->unk8[0] = (unkStruct4 *)-1; + arg0->unk8[6] = (unkStruct4 *)-1; + arg0->unk8[14] = (unkStruct4 *)-1; + arg0->unk8[20] = (unkStruct4 *)-1; } -void fn_1_46D0(unkStruct6* arg0) { +void fn_1_46D0(unkStruct6 *arg0) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 21; var_r31++) { - if (arg0->unk8[var_r31] == (unkStruct4*)-1) { + if (arg0->unk8[var_r31] == (unkStruct4 *)-1) { arg0->unk8[var_r31] = 0; } } } -s32 fn_1_4720(unkStruct6* arg0, s32 arg1) { +s32 fn_1_4720(unkStruct6 *arg0, s32 arg1) +{ s32 var_r29; s32 var_r30; - unkStruct4* temp_r31; + unkStruct4 *temp_r31; - for (var_r29 = 0, var_r30 = 0; var_r30 < 21; var_r30++) { temp_r31 = arg0->unk8[var_r30]; if ((temp_r31) && (temp_r31->unk64 == 0) && ((temp_r31->unk0 == arg1) || (arg1 == 5))) { @@ -334,15 +358,15 @@ s32 fn_1_4720(unkStruct6* arg0, s32 arg1) { return var_r29; } -void fn_1_4798(unkStruct6* arg0) { - unkStruct4* temp_r31; +void fn_1_4798(unkStruct6 *arg0) +{ + unkStruct4 *temp_r31; s32 var_r30; - for (var_r30 = 0; var_r30 < 0x15; var_r30++) { temp_r31 = arg0->unk8[var_r30]; if (temp_r31 && (temp_r31->unk64 != 0)) { fn_1_2794(temp_r31); } } -} \ No newline at end of file +} diff --git a/src/REL/m451Dll/m451.c b/src/REL/m451Dll/m451.c index 423baf5e..a9e56657 100644 --- a/src/REL/m451Dll/m451.c +++ b/src/REL/m451Dll/m451.c @@ -1,53 +1,53 @@ -#include "game/frand.h" -#include "game/object.h" -#include "game/hsfman.h" -#include "game/wipe.h" -#include "game/sprite.h" #include "game/audio.h" +#include "game/frand.h" #include "game/hsfanim.h" +#include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/object.h" #include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "math.h" #include "ext_math.h" +#include "math.h" -#include "game/objsub.h" #include "game/gamework.h" +#include "game/objsub.h" #include "game/gamework_data.h" #include "rel_sqrt_consts.h" typedef struct bss_348_data { - s16 unk0[5]; - s16 unkA; - s16 unkC[20]; - s32 unk34; - s32 unk38; - s32 unk3C; - s32 unk40; - s32 unk44; - float unk48[9]; - HsfObject *unk6C[40]; - HsfObject *unk10C[40]; - HsfObject *unk1AC[40]; - HsfTransform unk24C[40]; - u32 unk7EC[2]; - s8 unk7F4; - s8 unk7F5; - s8 unk7F6; - s8 unk7F7; - u16 unk7F8; - s16 unk7FA[5]; - s32 unk804; - s32 unk808; + s16 unk0[5]; + s16 unkA; + s16 unkC[20]; + s32 unk34; + s32 unk38; + s32 unk3C; + s32 unk40; + s32 unk44; + float unk48[9]; + HsfObject *unk6C[40]; + HsfObject *unk10C[40]; + HsfObject *unk1AC[40]; + HsfTransform unk24C[40]; + u32 unk7EC[2]; + s8 unk7F4; + s8 unk7F5; + s8 unk7F6; + s8 unk7F7; + u16 unk7F8; + s16 unk7FA[5]; + s32 unk804; + s32 unk808; } Bss348Data; typedef struct camera_view_params { - Vec rot; - Vec pos; - float zoom; + Vec rot; + Vec pos; + float zoom; } CameraViewParams; s16 lbl_1_bss_CB4; @@ -68,177 +68,157 @@ omObjData *lbl_1_bss_8; Process *lbl_1_bss_4[1]; s32 lbl_1_bss_0; +CameraViewParams lbl_1_data_0[3] + = { { { -64, 0, 0 }, { 0, 0, 0 }, 5000 }, { { -9.5, 0, 0 }, { 0, 0, -510 }, 1860 }, { { -5, 0, 0 }, { 0, 0, -2870 }, 5060 } }; -CameraViewParams lbl_1_data_0[3] = { - { { -64, 0, 0 }, { 0, 0, 0 }, 5000 }, - { { -9.5, 0, 0 }, { 0, 0, -510 }, 1860 }, - { { -5, 0, 0 }, { 0, 0, -2870 }, 5060 } -}; +s32 lbl_1_data_54[3] = { DATA_MAKE_NUM(DATADIR_M451, 0x01), DATA_MAKE_NUM(DATADIR_M451, 0x02), DATA_MAKE_NUM(DATADIR_M451, 0x03) }; -s32 lbl_1_data_54[3] = { - 0x520001, - 0x520002, - 0x520003 -}; +s32 lbl_1_data_60[3] = { DATA_MAKE_NUM(DATADIR_M451, 0x05), DATA_MAKE_NUM(DATADIR_M451, 0x06), DATA_MAKE_NUM(DATADIR_M451, 0x07) }; -s32 lbl_1_data_60[3] = { - 0x520005, - 0x520006, - 0x520007 -}; - -char *lbl_1_data_78[3] = { - "puzzle00", - "puzzle00", - "puzzle00" -}; +char *lbl_1_data_78[3] = { "puzzle00", "puzzle00", "puzzle00" }; char *lbl_1_data_464[3][40] = { - { - "puzzle2001", - "puzzle2002", - "puzzle2003", - "puzzle2004", - "puzzle2005", - "puzzle2006", - "puzzle2007", - "puzzle2008", - "puzzle2009", - "puzzle2010", - "puzzle2011", - "puzzle2012", - "puzzle2013", - "puzzle2014", - "puzzle2015", - "puzzle2016", - "puzzle2017", - "puzzle2018", - "puzzle2019", - "puzzle2020", - }, - { - "puzzle3001", - "puzzle3002", - "puzzle3003", - "puzzle3004", - "puzzle3005", - "puzzle3006", - "puzzle3007", - "puzzle3008", - "puzzle3009", - "puzzle3010", - "puzzle3011", - "puzzle3012", - "puzzle3013", - "puzzle3014", - "puzzle3015", - "puzzle3016", - "puzzle3017", - "puzzle3018", - "puzzle3019", - "puzzle3020", - "puzzle3021", - "puzzle3022", - "puzzle3023", - "puzzle3024", - "puzzle3025", - "puzzle3026", - "puzzle3027", - "puzzle3028", - "puzzle3029", - "puzzle3030", - }, - { - "puzzle4001", - "puzzle4002", - "puzzle4003", - "puzzle4004", - "puzzle4005", - "puzzle4006", - "puzzle4007", - "puzzle4008", - "puzzle4009", - "puzzle4010", - "puzzle4011", - "puzzle4012", - "puzzle4013", - "puzzle4014", - "puzzle4015", - "puzzle4016", - "puzzle4017", - "puzzle4018", - "puzzle4019", - "puzzle4020", - "puzzle4021", - "puzzle4022", - "puzzle4023", - "puzzle4024", - "puzzle4025", - "puzzle4026", - "puzzle4027", - "puzzle4028", - "puzzle4029", - "puzzle4030", - "puzzle4031", - "puzzle4032", - "puzzle4033", - "puzzle4034", - "puzzle4035", - "puzzle4036", - "puzzle4037", - "puzzle4038", - "puzzle4039", - "puzzle4040", - }, + { + "puzzle2001", + "puzzle2002", + "puzzle2003", + "puzzle2004", + "puzzle2005", + "puzzle2006", + "puzzle2007", + "puzzle2008", + "puzzle2009", + "puzzle2010", + "puzzle2011", + "puzzle2012", + "puzzle2013", + "puzzle2014", + "puzzle2015", + "puzzle2016", + "puzzle2017", + "puzzle2018", + "puzzle2019", + "puzzle2020", + }, + { + "puzzle3001", + "puzzle3002", + "puzzle3003", + "puzzle3004", + "puzzle3005", + "puzzle3006", + "puzzle3007", + "puzzle3008", + "puzzle3009", + "puzzle3010", + "puzzle3011", + "puzzle3012", + "puzzle3013", + "puzzle3014", + "puzzle3015", + "puzzle3016", + "puzzle3017", + "puzzle3018", + "puzzle3019", + "puzzle3020", + "puzzle3021", + "puzzle3022", + "puzzle3023", + "puzzle3024", + "puzzle3025", + "puzzle3026", + "puzzle3027", + "puzzle3028", + "puzzle3029", + "puzzle3030", + }, + { + "puzzle4001", + "puzzle4002", + "puzzle4003", + "puzzle4004", + "puzzle4005", + "puzzle4006", + "puzzle4007", + "puzzle4008", + "puzzle4009", + "puzzle4010", + "puzzle4011", + "puzzle4012", + "puzzle4013", + "puzzle4014", + "puzzle4015", + "puzzle4016", + "puzzle4017", + "puzzle4018", + "puzzle4019", + "puzzle4020", + "puzzle4021", + "puzzle4022", + "puzzle4023", + "puzzle4024", + "puzzle4025", + "puzzle4026", + "puzzle4027", + "puzzle4028", + "puzzle4029", + "puzzle4030", + "puzzle4031", + "puzzle4032", + "puzzle4033", + "puzzle4034", + "puzzle4035", + "puzzle4036", + "puzzle4037", + "puzzle4038", + "puzzle4039", + "puzzle4040", + }, }; s32 lbl_1_data_644[] = { - 0, 1, 2, 3, - 4, 5, 6, 7, - 0x5E0000, 0x190000, 0x6C0000, 0x890000, - 0x840000, 0x100000, 0x0C0000, 0x800000, - 0x5F0000, 0x5F0001, 0x5F0002, 0x5F0005, - 0x5F0006, 0x5F001B, 0x5F0020, 0x5F0021, - 0x5F0017, 0x5F0000, 0x1A0000, 0x6D0000, - 0x8A0000, 0x850000, 0x110000, 0x0D0000, - 0x810000, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x01), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x20), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x21), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), }; -s32 lbl_1_data_6C8[] = { - 6, - 7, - 8 -}; +s32 lbl_1_data_6C8[] = { 6, 7, 8 }; -float lbl_1_data_6D4[][2] = { - -52, -9, - 53, -8, - 35, -8, - 23, -8, - 9, -8, - -9, -8, - -17, -8, - -31, -8, - 53, 8, - 35, 8, - 23, 8, - 9, 8, - -9, 8, - -17, 8, - -31, 8 -}; +float lbl_1_data_6D4[][2] = { -52, -9, 53, -8, 35, -8, 23, -8, 9, -8, -9, -8, -17, -8, -31, -8, 53, 8, 35, 8, 23, 8, 9, 8, -9, 8, -17, 8, -31, 8 }; -s32 lbl_1_data_74C[] = { - 3600, - 7200, - 10800 -}; +s32 lbl_1_data_74C[] = { 3600, 7200, 10800 }; -s32 lbl_1_data_758[] = { - 58, - 54, - 48 -}; +s32 lbl_1_data_758[] = { 58, 54, 48 }; void fn_1_7BC(void); void fn_1_B2C(void); @@ -246,141 +226,143 @@ void fn_1_48C4(void); void ObjectSetup(void) { - Vec pos; - Vec up; - Vec target; - s32 i; - Process *objman; - s32 type; - type = GWSystem.mg_type; - lbl_1_bss_B60 = type; - if(type == -1) { - lbl_1_bss_B60 = frandmod(3); - } - lbl_1_bss_B5C = lbl_1_bss_B60; - switch(lbl_1_bss_B5C) { - case 0: - lbl_1_bss_B58 = 20; - break; - - case 1: - lbl_1_bss_B58 = 30; - break; - - default: - lbl_1_bss_B58 = 40; - break; - } - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - Hu3DCameraCreate(3); - Hu3DCameraPerspectiveSet(1, 15, 20, 25000, 1.2); - Hu3DCameraPerspectiveSet(2, 15, 20, 25000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); - Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); - Hu3DCameraScissorSet(1, 0, 0, 320, 240); - Hu3DCameraScissorSet(2, 0, 0, 640, 480); - lbl_1_bss_8 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - lbl_1_bss_8->work[0] = 2; - for(i=0; i<1; i++) { - CRotM[i].x = lbl_1_data_0[lbl_1_bss_B60].rot.x; - CRotM[i].y = lbl_1_data_0[lbl_1_bss_B60].rot.y; - CRotM[i].z = lbl_1_data_0[lbl_1_bss_B60].rot.z; - CenterM[i].x = lbl_1_data_0[lbl_1_bss_B60].pos.x; - CenterM[i].y = lbl_1_data_0[lbl_1_bss_B60].pos.y; - CenterM[i].z = lbl_1_data_0[lbl_1_bss_B60].pos.z; - CZoomM[i] = lbl_1_data_0[lbl_1_bss_B60].zoom; - } - for(i=1; iwork[0]; i++) { - CRotM[i].x = 0; - CRotM[i].y = 0; - CRotM[i].z = 0; - CenterM[i].x = 0; - CenterM[i].y = 10; - CenterM[i].z = 0; - CZoomM[i] = 1900; - } - Hu3DLighInit(); - lbl_1_bss_CB4 = Hu3DGLightCreate(10000, 0, 10000, -1, 0, -1, 255, 255, 255); - Hu3DGLightPosAimSet(lbl_1_bss_CB4, 0, 6796.88f, 9706.95f, 0, 0, 0); - Hu3DGLightInfinitytSet(lbl_1_bss_CB4); - pos.x = -1800; - pos.y = 3600; - pos.z = 0; - up.x = up.z = 0; - up.y = 1; - target.x = -100; - target.y = 0; - target.z = 0; - Hu3DShadowCreate(30, 20, 10000); - Hu3DShadowTPLvlSet(0.4f); - Hu3DShadowPosSet(&pos, &up, &target); - Hu3DBGColorSet(0, 0, 0); - fn_1_B2C(); - HuPrcSetStat(HuPrcChildCreate(fn_1_7BC, 4096, 4096, 0, HuPrcCurrentGet()), 12); - HuPrcChildCreate(fn_1_48C4, 4096, 8192, 0, HuPrcCurrentGet()); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + Vec pos; + Vec up; + Vec target; + s32 i; + Process *objman; + s32 type; + type = GWSystem.mg_type; + lbl_1_bss_B60 = type; + if (type == -1) { + lbl_1_bss_B60 = frandmod(3); + } + lbl_1_bss_B5C = lbl_1_bss_B60; + switch (lbl_1_bss_B5C) { + case 0: + lbl_1_bss_B58 = 20; + break; + + case 1: + lbl_1_bss_B58 = 30; + break; + + default: + lbl_1_bss_B58 = 40; + break; + } + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, 15, 20, 25000, 1.2); + Hu3DCameraPerspectiveSet(2, 15, 20, 25000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); + Hu3DCameraScissorSet(1, 0, 0, 320, 240); + Hu3DCameraScissorSet(2, 0, 0, 640, 480); + lbl_1_bss_8 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_8->work[0] = 2; + for (i = 0; i < 1; i++) { + CRotM[i].x = lbl_1_data_0[lbl_1_bss_B60].rot.x; + CRotM[i].y = lbl_1_data_0[lbl_1_bss_B60].rot.y; + CRotM[i].z = lbl_1_data_0[lbl_1_bss_B60].rot.z; + CenterM[i].x = lbl_1_data_0[lbl_1_bss_B60].pos.x; + CenterM[i].y = lbl_1_data_0[lbl_1_bss_B60].pos.y; + CenterM[i].z = lbl_1_data_0[lbl_1_bss_B60].pos.z; + CZoomM[i] = lbl_1_data_0[lbl_1_bss_B60].zoom; + } + for (i = 1; i < lbl_1_bss_8->work[0]; i++) { + CRotM[i].x = 0; + CRotM[i].y = 0; + CRotM[i].z = 0; + CenterM[i].x = 0; + CenterM[i].y = 10; + CenterM[i].z = 0; + CZoomM[i] = 1900; + } + Hu3DLighInit(); + lbl_1_bss_CB4 = Hu3DGLightCreate(10000, 0, 10000, -1, 0, -1, 255, 255, 255); + Hu3DGLightPosAimSet(lbl_1_bss_CB4, 0, 6796.88f, 9706.95f, 0, 0, 0); + Hu3DGLightInfinitytSet(lbl_1_bss_CB4); + pos.x = -1800; + pos.y = 3600; + pos.z = 0; + up.x = up.z = 0; + up.y = 1; + target.x = -100; + target.y = 0; + target.z = 0; + Hu3DShadowCreate(30, 20, 10000); + Hu3DShadowTPLvlSet(0.4f); + Hu3DShadowPosSet(&pos, &up, &target); + Hu3DBGColorSet(0, 0, 0); + fn_1_B2C(); + HuPrcSetStat(HuPrcChildCreate(fn_1_7BC, 4096, 4096, 0, HuPrcCurrentGet()), 12); + HuPrcChildCreate(fn_1_48C4, 4096, 8192, 0, HuPrcCurrentGet()); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } void fn_1_7BC(void) { - Bss348Data *data = &lbl_1_bss_348[0]; - while(1) { - if(omPauseChk()) { - Hu3DModelAttrSet(data->unk0[0], 1); - Hu3DModelAttrSet(data->unk0[1], 1); - Hu3DModelAttrSet(data->unk0[2], 1); - HuSprAttrSet(data->unkA, 0, HUSPR_ATTR_DISPOFF); - } else { - Hu3DModelAttrReset(data->unk0[0], 1); - Hu3DModelAttrReset(data->unk0[1], 1); - Hu3DModelAttrReset(data->unk0[2], 1); - HuSprAttrReset(data->unkA, 0, HUSPR_ATTR_DISPOFF); - } - HuPrcVSleep(); - } + Bss348Data *data = &lbl_1_bss_348[0]; + while (1) { + if (omPauseChk()) { + Hu3DModelAttrSet(data->unk0[0], 1); + Hu3DModelAttrSet(data->unk0[1], 1); + Hu3DModelAttrSet(data->unk0[2], 1); + HuSprAttrSet(data->unkA, 0, HUSPR_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(data->unk0[0], 1); + Hu3DModelAttrReset(data->unk0[1], 1); + Hu3DModelAttrReset(data->unk0[2], 1); + HuSprAttrReset(data->unkA, 0, HUSPR_ATTR_DISPOFF); + } + HuPrcVSleep(); + } } void fn_1_858(void) { - s32 i; - float angle = 0; - while(1) { - float scale; - angle += 16.0f; - scale = (0.2f*sind(angle))+1.0; - for(i=0; i<8; i++) { - HuSprScaleSet(lbl_1_bss_CAE, i+1, scale, scale); - } - HuPrcVSleep(); - } + s32 i; + float angle = 0; + while (1) { + float scale; + angle += 16.0f; + scale = (0.2f * sind(angle)) + 1.0; + for (i = 0; i < 8; i++) { + HuSprScaleSet(lbl_1_bss_CAE, i + 1, scale, scale); + } + HuPrcVSleep(); + } } void fn_1_918(s16 group, s16 base_member, u32 value, s32 state) { - s32 member; - u32 time[3]; - if(state != 2) { - time[0] = (value % 60); - value = (value-time[0])/60; - time[0] = 100.0f*(time[0]/60.0f); - time[1] = value%60; - value = (value-time[1])/60; - time[2] = value; - } else { - time[0] = 99; - time[1] = 59; - time[2] = 9; - } - member = base_member; - if(state != 0) { - member += 7; - } - HuSprBankSet(group, member, time[0]%10); - HuSprBankSet(group, member+1, time[0]/10); - HuSprBankSet(group, member+3, time[1]%10); - HuSprBankSet(group, member+4, time[1]/10); - HuSprBankSet(group, member+6, time[2]%10); + s32 member; + u32 time[3]; + if (state != 2) { + time[0] = (value % 60); + value = (value - time[0]) / 60; + time[0] = 100.0f * (time[0] / 60.0f); + time[1] = value % 60; + value = (value - time[1]) / 60; + time[2] = value; + } + else { + time[0] = 99; + time[1] = 59; + time[2] = 9; + } + member = base_member; + if (state != 0) { + member += 7; + } + HuSprBankSet(group, member, time[0] % 10); + HuSprBankSet(group, member + 1, time[0] / 10); + HuSprBankSet(group, member + 3, time[1] % 10); + HuSprBankSet(group, member + 4, time[1] / 10); + HuSprBankSet(group, member + 6, time[2] % 10); } void fn_1_1B64(ModelData *model, ParticleData *particle, Mtx matrix); @@ -389,1030 +371,1054 @@ void fn_1_4864(void); void fn_1_B2C(void) { - Bss348Data *temp_r31; - s32 temp_r30; - void *temp_r29; - s32 temp_r28; - HsfTransform *temp_r27; - s16 temp_r26; - HsfTransform *temp_r25; - Process *temp_r18; - s32 temp_r17; - AnimData *sp2C[4]; - s32 sp10; - AnimData *spC; - AnimData *sp8; - HuAudSndGrpSet(36); - for(temp_r30=0; temp_r30<1; temp_r30++) { - temp_r31 = &lbl_1_bss_348[temp_r30]; - temp_r31->unk34 = temp_r30; - temp_r31->unk3C = GWPlayerCfg[temp_r30].pad_idx; - temp_r31->unk38 = temp_r30+1; - temp_r31->unk44 = 0; - temp_r31->unk804 = -1; - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[0] = Hu3DModelCreate(temp_r29); - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_60[lbl_1_bss_B60], MEMORY_DEFAULT_NUM, HEAP_DATA); - Hu3DAnimCreate(temp_r29, temp_r31->unk0[0], lbl_1_data_78[lbl_1_bss_B5C]); - Hu3DModelCameraSet(temp_r31->unk0[0], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[0], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[0], 0, 0, 0); - Hu3DModelAttrSet(temp_r31->unk0[0], 0x4000); - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[1] = Hu3DModelCreate(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x52000D, MEMORY_DEFAULT_NUM, HEAP_DATA); - Hu3DAnimCreate(temp_r29, temp_r31->unk0[1], lbl_1_data_78[lbl_1_bss_B5C]); - Hu3DModelCameraSet(temp_r31->unk0[1], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[1], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[1], 0, 0, 0); - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[2] = Hu3DModelCreate(temp_r29); - Hu3DModelCameraSet(temp_r31->unk0[2], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[2], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[2], 0, 0, 0); - Hu3DModelTPLvlSet(temp_r31->unk0[2], 128); - Hu3DModelAttrSet(temp_r31->unk0[2], 0x4000); - for(temp_r28=0; temp_r28unk6C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[0], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - if(!temp_r31->unk6C[temp_r28]) { - OSReport("PeaceNo %d\n", lbl_1_bss_B5C); - OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - OSPanic("m451.c", 543, "ObjPtr1"); - } - temp_r25 = &temp_r31->unk24C[temp_r28]; - temp_r27 = &temp_r31->unk6C[temp_r28]->data.base; - temp_r27->pos.z += -10; - temp_r25->pos.x = temp_r27->pos.x; - temp_r25->pos.y = temp_r27->pos.y; - temp_r25->pos.z = temp_r27->pos.z; - temp_r25->rot.x = temp_r27->rot.x; - temp_r25->rot.y = temp_r27->rot.y; - temp_r25->rot.z = temp_r27->rot.z; - temp_r25->scale.x = temp_r27->scale.x; - temp_r25->scale.y = temp_r27->scale.y; - temp_r25->scale.z = temp_r27->scale.z; - temp_r31->unk10C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[2], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - if(!temp_r31->unk10C[temp_r28]) { - OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - OSPanic("m451.c", 555, "ObjPtr2"); - } - temp_r31->unk1AC[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[1], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - if(!temp_r31->unk1AC[temp_r28]) { - OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - OSPanic("m451.c", 561, "ObjPtr3"); - } - } - temp_r29 = HuDataSelHeapReadNum(0x520000, MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r26 = Hu3DModelCreate(temp_r29); - Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r26, 0, 0, 0); - Hu3DModelRotSet(temp_r26, 0, 0, 0); - temp_r29 = HuDataSelHeapReadNum(0x520004, MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[4] = Hu3DModelCreate(temp_r29); - Hu3DModelCameraSet(temp_r31->unk0[4], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[4], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[4], 0, 0, 0); - temp_r29 = HuDataSelHeapReadNum(0x520008+lbl_1_bss_B5C, MEMORY_DEFAULT_NUM, HEAP_DATA); - Hu3DAnimCreate(temp_r29, temp_r31->unk0[4], "s3puzzle00"); - temp_r29 = HuDataSelHeapReadNum(0x610038+GWPlayerCfg[temp_r30].character, MEMORY_DEFAULT_NUM, HEAP_DATA); - spC = HuSprAnimRead(temp_r29); - temp_r26 = HuSprCreate(spC, 16384, 0); - temp_r31->unkA = HuSprGrpCreate(1); - HuSprGrpMemberSet(temp_r31->unkA, 0, temp_r26); - HuSprAttrSet(temp_r31->unkA, 0, 7); - sp8 = HuSprAnimRead(HuDataReadNum(0x52000C, MEMORY_DEFAULT_NUM)); - temp_r26 = Hu3DParticleCreate(sp8, 100); - Hu3DModelPosSet(temp_r26, 0, 0, 0); - Hu3DModelScaleSet(temp_r26, 1, 1, 1); - Hu3DModelLayerSet(temp_r26, 1); - Hu3DParticleHookSet(temp_r26, fn_1_1B64); - Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); - temp_r18 = HuPrcChildCreate(fn_1_37C4, 8192, 12288, 0, HuPrcCurrentGet()); - temp_r18->user_data = temp_r31; - lbl_1_bss_4[temp_r30] = temp_r18; - } - temp_r29 = HuDataSelHeapReadNum(0x610030, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[0] = HuSprAnimRead(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x610031, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[1] = HuSprAnimRead(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x610037, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[2] = HuSprAnimRead(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x52000B, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[3] = HuSprAnimRead(temp_r29); - lbl_1_bss_CAE = HuSprGrpCreate(16); - temp_r26 = HuSprCreate(sp2C[3], 16385, 0); - HuSprGrpMemberSet(lbl_1_bss_CAE, 0, temp_r26); - HuSprPosSet(lbl_1_bss_CAE, 0, 0, 0); - HuSprTPLvlSet(lbl_1_bss_CAE, 0, 0.5f); - HuSprColorSet(lbl_1_bss_CAE, 0, 0, 0, 0); - for(temp_r30=0; temp_r30<14; temp_r30++) { - if(temp_r30 >= 7) { - temp_r26 = HuSprCreate(sp2C[1], 16384, 0); - } else { - temp_r26 = HuSprCreate(sp2C[0], 16384, 0); - } - HuSprGrpMemberSet(lbl_1_bss_CAE, temp_r30+2, temp_r26); - HuSprPosSet(lbl_1_bss_CAE, temp_r30+2, lbl_1_data_6D4[temp_r30+1][0], lbl_1_data_6D4[temp_r30+1][1]); - temp_r28 = 0; - if(temp_r30 == 2 || temp_r30 == 9) { - temp_r28 = 11; - } - if(temp_r30 == 5 || temp_r30 == 12) { - temp_r28 = 10; - } - HuSprBankSet(lbl_1_bss_CAE, temp_r30+2, temp_r28); - } - temp_r26 = HuSprCreate(sp2C[2], 16384, 0); - HuSprGrpMemberSet(lbl_1_bss_CAE, 1, temp_r26); - HuSprPosSet(lbl_1_bss_CAE, 1, lbl_1_data_6D4[0][0], lbl_1_data_6D4[0][1]); - HuSprGrpPosSet(lbl_1_bss_CAE, 280, 61); - fn_1_918(lbl_1_bss_CAE, 2, GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C]), 0); - fn_1_918(lbl_1_bss_CAE, 2, 0, 1); - for(temp_r30=0; temp_r30unk34 = temp_r30; + temp_r31->unk3C = GWPlayerCfg[temp_r30].pad_idx; + temp_r31->unk38 = temp_r30 + 1; + temp_r31->unk44 = 0; + temp_r31->unk804 = -1; + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[0] = Hu3DModelCreate(temp_r29); + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_60[lbl_1_bss_B60], MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DAnimCreate(temp_r29, temp_r31->unk0[0], lbl_1_data_78[lbl_1_bss_B5C]); + Hu3DModelCameraSet(temp_r31->unk0[0], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[0], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[0], 0, 0, 0); + Hu3DModelAttrSet(temp_r31->unk0[0], 0x4000); + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[1] = Hu3DModelCreate(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x0D), MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DAnimCreate(temp_r29, temp_r31->unk0[1], lbl_1_data_78[lbl_1_bss_B5C]); + Hu3DModelCameraSet(temp_r31->unk0[1], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[1], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[1], 0, 0, 0); + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[2] = Hu3DModelCreate(temp_r29); + Hu3DModelCameraSet(temp_r31->unk0[2], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[2], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[2], 0, 0, 0); + Hu3DModelTPLvlSet(temp_r31->unk0[2], 128); + Hu3DModelAttrSet(temp_r31->unk0[2], 0x4000); + for (temp_r28 = 0; temp_r28 < lbl_1_bss_B58; temp_r28++) { + temp_r31->unk6C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[0], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + if (!temp_r31->unk6C[temp_r28]) { + OSReport("PeaceNo %d\n", lbl_1_bss_B5C); + OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + OSPanic("m451.c", 543, "ObjPtr1"); + } + temp_r25 = &temp_r31->unk24C[temp_r28]; + temp_r27 = &temp_r31->unk6C[temp_r28]->data.base; + temp_r27->pos.z += -10; + temp_r25->pos.x = temp_r27->pos.x; + temp_r25->pos.y = temp_r27->pos.y; + temp_r25->pos.z = temp_r27->pos.z; + temp_r25->rot.x = temp_r27->rot.x; + temp_r25->rot.y = temp_r27->rot.y; + temp_r25->rot.z = temp_r27->rot.z; + temp_r25->scale.x = temp_r27->scale.x; + temp_r25->scale.y = temp_r27->scale.y; + temp_r25->scale.z = temp_r27->scale.z; + temp_r31->unk10C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[2], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + if (!temp_r31->unk10C[temp_r28]) { + OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + OSPanic("m451.c", 555, "ObjPtr2"); + } + temp_r31->unk1AC[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[1], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + if (!temp_r31->unk1AC[temp_r28]) { + OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + OSPanic("m451.c", 561, "ObjPtr3"); + } + } + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x00), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26 = Hu3DModelCreate(temp_r29); + Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r26, 0, 0, 0); + Hu3DModelRotSet(temp_r26, 0, 0, 0); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x04), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[4] = Hu3DModelCreate(temp_r29); + Hu3DModelCameraSet(temp_r31->unk0[4], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[4], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[4], 0, 0, 0); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x08) + lbl_1_bss_B5C, MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DAnimCreate(temp_r29, temp_r31->unk0[4], "s3puzzle00"); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x38) + GWPlayerCfg[temp_r30].character, MEMORY_DEFAULT_NUM, HEAP_DATA); + spC = HuSprAnimRead(temp_r29); + temp_r26 = HuSprCreate(spC, 16384, 0); + temp_r31->unkA = HuSprGrpCreate(1); + HuSprGrpMemberSet(temp_r31->unkA, 0, temp_r26); + HuSprAttrSet(temp_r31->unkA, 0, 7); + sp8 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x0C), MEMORY_DEFAULT_NUM)); + temp_r26 = Hu3DParticleCreate(sp8, 100); + Hu3DModelPosSet(temp_r26, 0, 0, 0); + Hu3DModelScaleSet(temp_r26, 1, 1, 1); + Hu3DModelLayerSet(temp_r26, 1); + Hu3DParticleHookSet(temp_r26, fn_1_1B64); + Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); + temp_r18 = HuPrcChildCreate(fn_1_37C4, 8192, 12288, 0, HuPrcCurrentGet()); + temp_r18->user_data = temp_r31; + lbl_1_bss_4[temp_r30] = temp_r18; + } + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x30), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[0] = HuSprAnimRead(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x31), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[1] = HuSprAnimRead(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x37), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[2] = HuSprAnimRead(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x0B), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[3] = HuSprAnimRead(temp_r29); + lbl_1_bss_CAE = HuSprGrpCreate(16); + temp_r26 = HuSprCreate(sp2C[3], 16385, 0); + HuSprGrpMemberSet(lbl_1_bss_CAE, 0, temp_r26); + HuSprPosSet(lbl_1_bss_CAE, 0, 0, 0); + HuSprTPLvlSet(lbl_1_bss_CAE, 0, 0.5f); + HuSprColorSet(lbl_1_bss_CAE, 0, 0, 0, 0); + for (temp_r30 = 0; temp_r30 < 14; temp_r30++) { + if (temp_r30 >= 7) { + temp_r26 = HuSprCreate(sp2C[1], 16384, 0); + } + else { + temp_r26 = HuSprCreate(sp2C[0], 16384, 0); + } + HuSprGrpMemberSet(lbl_1_bss_CAE, temp_r30 + 2, temp_r26); + HuSprPosSet(lbl_1_bss_CAE, temp_r30 + 2, lbl_1_data_6D4[temp_r30 + 1][0], lbl_1_data_6D4[temp_r30 + 1][1]); + temp_r28 = 0; + if (temp_r30 == 2 || temp_r30 == 9) { + temp_r28 = 11; + } + if (temp_r30 == 5 || temp_r30 == 12) { + temp_r28 = 10; + } + HuSprBankSet(lbl_1_bss_CAE, temp_r30 + 2, temp_r28); + } + temp_r26 = HuSprCreate(sp2C[2], 16384, 0); + HuSprGrpMemberSet(lbl_1_bss_CAE, 1, temp_r26); + HuSprPosSet(lbl_1_bss_CAE, 1, lbl_1_data_6D4[0][0], lbl_1_data_6D4[0][1]); + HuSprGrpPosSet(lbl_1_bss_CAE, 280, 61); + fn_1_918(lbl_1_bss_CAE, 2, GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C]), 0); + fn_1_918(lbl_1_bss_CAE, 2, 0, 1); + for (temp_r30 = 0; temp_r30 < lbl_1_bss_B58; temp_r30++) { + lbl_1_bss_C04[temp_r30] = temp_r30; + lbl_1_bss_B64[temp_r30] = frandmod(4); + } + for (temp_r30 = 0; temp_r30 < 50; temp_r30++) { + temp_r28 = frandmod(lbl_1_bss_B58); + temp_r17 = frandmod(lbl_1_bss_B58); + sp10 = lbl_1_bss_C04[temp_r28]; + lbl_1_bss_C04[temp_r28] = lbl_1_bss_C04[temp_r17]; + lbl_1_bss_C04[temp_r17] = sp10; + } + HuPrcChildCreate(fn_1_4864, 4096, 4096, 0, HuPrcCurrentGet()); } void fn_1_1B64(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - HsfanimStruct01 *temp_r31; - s16 temp_r29; - Bss348Data *temp_r28; - s16 temp_r27; - s16 temp_r26; - s32 temp_r25; - - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk14.x = temp_r31->unk2C = 0; - temp_r31->unk40.r = 255; - temp_r31->unk40.g = 255; - temp_r31->unk40.b = 0; - } - } - temp_r31 = particle->unk_48; - temp_r28 = &lbl_1_bss_348[0]; - if(temp_r28->unk44 == 1) { - for(temp_r27=0; temp_r27<4; temp_r27++) { - temp_f28 = 1.0f; - for(temp_r26=0, temp_f30=0; temp_r26<24; temp_r26++, temp_f30 += 15.0f) { - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(0.0f == temp_r31->unk14.x) { - break; - } - } - if(temp_r29 == particle->unk_30) { - break; - } - temp_f31 = temp_f30; - temp_f29 = temp_f28+(5.0f*frandf()); - temp_r31->unk34.x = temp_r28->unk48[7]+((temp_r27*10.0f)*sind(temp_f31)); - temp_r31->unk34.y = temp_r28->unk48[8]+((temp_r27*10.0f)*cosd(temp_f31)); - temp_r31->unk34.z = 50; - temp_r31->unk08.x = temp_f29*sind(temp_f31); - temp_r31->unk08.y = temp_f29*cosd(temp_f31); - temp_r31->unk08.z = 0; - temp_r31->unk14.x = 30.0f; - temp_r31->unk14.y = 360.0f*frandf(); - temp_r31->unk14.z = 225; - temp_r31->unk2C = (5.0f*frandf())+25.0f; - temp_r31->unk40.r = 255; - temp_r31->unk40.g = 255; - temp_r31->unk40.b = 0; - temp_r31->unk40.a = 255; - - } - } - temp_r28->unk44++; - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(0.0f == temp_r31->unk14.x) { - continue; - } - VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); - temp_r31->unk08.x *= 0.95f; - temp_r31->unk08.y *= 0.95f; - temp_r31->unk14.y += 20.0f; - if(temp_r31->unk14.y >= 180.0f && temp_r31->unk14.y < 200.0f) { - temp_r31->unk14.z *= 0.4f; - } - if(temp_r31->unk14.y >= 360.0f && temp_r31->unk14.y < 380.0f) { - temp_r31->unk14.z *= 0.4f; - } - if(temp_r31->unk14.y >= 360.0f) { - temp_r31->unk14.y -= 360.0f; - } - temp_r25 = (30.0*sind(temp_r31->unk14.y))+temp_r31->unk14.z; - if(temp_r25 < 0) { - temp_r25 = 0; - temp_r31->unk14.x = 0; - } - temp_r31->unk40.a = temp_r25; - if(0.0f == temp_r31->unk14.x) { - temp_r31->unk2C = 0; - } - } - PPCSync(); + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + HsfanimStruct01 *temp_r31; + s16 temp_r29; + Bss348Data *temp_r28; + s16 temp_r27; + s16 temp_r26; + s32 temp_r25; + + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk14.x = temp_r31->unk2C = 0; + temp_r31->unk40.r = 255; + temp_r31->unk40.g = 255; + temp_r31->unk40.b = 0; + } + } + temp_r31 = particle->unk_48; + temp_r28 = &lbl_1_bss_348[0]; + if (temp_r28->unk44 == 1) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + temp_f28 = 1.0f; + for (temp_r26 = 0, temp_f30 = 0; temp_r26 < 24; temp_r26++, temp_f30 += 15.0f) { + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (0.0f == temp_r31->unk14.x) { + break; + } + } + if (temp_r29 == particle->unk_30) { + break; + } + temp_f31 = temp_f30; + temp_f29 = temp_f28 + (5.0f * frandf()); + temp_r31->unk34.x = temp_r28->unk48[7] + ((temp_r27 * 10.0f) * sind(temp_f31)); + temp_r31->unk34.y = temp_r28->unk48[8] + ((temp_r27 * 10.0f) * cosd(temp_f31)); + temp_r31->unk34.z = 50; + temp_r31->unk08.x = temp_f29 * sind(temp_f31); + temp_r31->unk08.y = temp_f29 * cosd(temp_f31); + temp_r31->unk08.z = 0; + temp_r31->unk14.x = 30.0f; + temp_r31->unk14.y = 360.0f * frandf(); + temp_r31->unk14.z = 225; + temp_r31->unk2C = (5.0f * frandf()) + 25.0f; + temp_r31->unk40.r = 255; + temp_r31->unk40.g = 255; + temp_r31->unk40.b = 0; + temp_r31->unk40.a = 255; + } + } + temp_r28->unk44++; + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (0.0f == temp_r31->unk14.x) { + continue; + } + VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); + temp_r31->unk08.x *= 0.95f; + temp_r31->unk08.y *= 0.95f; + temp_r31->unk14.y += 20.0f; + if (temp_r31->unk14.y >= 180.0f && temp_r31->unk14.y < 200.0f) { + temp_r31->unk14.z *= 0.4f; + } + if (temp_r31->unk14.y >= 360.0f && temp_r31->unk14.y < 380.0f) { + temp_r31->unk14.z *= 0.4f; + } + if (temp_r31->unk14.y >= 360.0f) { + temp_r31->unk14.y -= 360.0f; + } + temp_r25 = (30.0 * sind(temp_r31->unk14.y)) + temp_r31->unk14.z; + if (temp_r25 < 0) { + temp_r25 = 0; + temp_r31->unk14.x = 0; + } + temp_r31->unk40.a = temp_r25; + if (0.0f == temp_r31->unk14.x) { + temp_r31->unk2C = 0; + } + } + PPCSync(); } s8 fn_1_20FC(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - s8 temp_r29; - s8 temp_r28; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r29 = temp_r30 = HuPadStkY[temp_r31->unk3C]; - } else { - temp_r29 = temp_r30 = HuPadStkX[temp_r31->unk3C]; - } - (void)temp_r29; - } else { - if(arg1) { - temp_r28 = temp_r30 = temp_r31->unk7F5; - } else { - temp_r28 = temp_r30 = temp_r31->unk7F4; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + s8 temp_r29; + s8 temp_r28; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r29 = temp_r30 = HuPadStkY[temp_r31->unk3C]; + } + else { + temp_r29 = temp_r30 = HuPadStkX[temp_r31->unk3C]; + } + (void)temp_r29; + } + else { + if (arg1) { + temp_r28 = temp_r30 = temp_r31->unk7F5; + } + else { + temp_r28 = temp_r30 = temp_r31->unk7F4; + } + } + return temp_r30; } u8 fn_1_21B4(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - s8 temp_r29; - s8 temp_r28; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r29 = temp_r30 = HuPadTrigR[temp_r31->unk3C]; - } else { - temp_r29 = temp_r30 = HuPadTrigL[temp_r31->unk3C]; - } - (void)temp_r29; - } else { - if(arg1) { - temp_r28 = temp_r30 = temp_r31->unk7F6; - } else { - temp_r28 = temp_r30 = temp_r31->unk7F7; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + s8 temp_r29; + s8 temp_r28; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r29 = temp_r30 = HuPadTrigR[temp_r31->unk3C]; + } + else { + temp_r29 = temp_r30 = HuPadTrigL[temp_r31->unk3C]; + } + (void)temp_r29; + } + else { + if (arg1) { + temp_r28 = temp_r30 = temp_r31->unk7F6; + } + else { + temp_r28 = temp_r30 = temp_r31->unk7F7; + } + } + return temp_r30; } static inline s8 fn_1_20FC_inline(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r30 = HuPadStkY[temp_r31->unk3C]; - } else { - temp_r30 = HuPadStkX[temp_r31->unk3C]; - } - } else { - if(arg1) { - temp_r30 = temp_r31->unk7F5; - } else { - temp_r30 = temp_r31->unk7F4; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r30 = HuPadStkY[temp_r31->unk3C]; + } + else { + temp_r30 = HuPadStkX[temp_r31->unk3C]; + } + } + else { + if (arg1) { + temp_r30 = temp_r31->unk7F5; + } + else { + temp_r30 = temp_r31->unk7F4; + } + } + return temp_r30; } static inline u8 fn_1_21B4_inline(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r30 = HuPadTrigR[temp_r31->unk3C]; - } else { - temp_r30 = HuPadTrigL[temp_r31->unk3C]; - } - } else { - if(arg1) { - temp_r30 = temp_r31->unk7F6; - } else { - temp_r30 = temp_r31->unk7F7; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r30 = HuPadTrigR[temp_r31->unk3C]; + } + else { + temp_r30 = HuPadTrigL[temp_r31->unk3C]; + } + } + else { + if (arg1) { + temp_r30 = temp_r31->unk7F6; + } + else { + temp_r30 = temp_r31->unk7F7; + } + } + return temp_r30; } - u16 fn_1_2274(s32 arg0) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - u16 temp_r30; - - //Hacks to stop spilling in fn_1_37C4 - (void)temp_r31; - (void)temp_r31; - (void)temp_r31; - (void)temp_r31; - - if(!GWPlayerCfg[arg0].iscom) { - temp_r30 = HuPadBtnDown[temp_r31->unk3C]; - } else { - temp_r30 = temp_r31->unk7F8; - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + u16 temp_r30; + + // Hacks to stop spilling in fn_1_37C4 + (void)temp_r31; + (void)temp_r31; + (void)temp_r31; + (void)temp_r31; + + if (!GWPlayerCfg[arg0].iscom) { + temp_r30 = HuPadBtnDown[temp_r31->unk3C]; + } + else { + temp_r30 = temp_r31->unk7F8; + } + return temp_r30; } void fn_1_22E0(Bss348Data *arg0, s32 arg1) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - - Vec *temp_r31; - Vec *temp_r29; - Vec *temp_r28; - s32 temp_r27; - Vec *temp_r26; - s32 temp_r25; - - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - temp_r31 = &arg0->unk6C[arg1]->data.base.pos; - temp_r26 = &arg0->unk10C[arg1]->data.base.pos; - temp_r28 = &arg0->unk1AC[arg1]->data.base.pos; - temp_r29 = &arg0->unk24C[arg1].pos; - temp_f29 = (temp_r29->x-temp_r31->x)/15.0f; - temp_f27 = (temp_r29->z-temp_r31->z)/30.0f; - temp_f28 = (temp_r29->y-temp_r31->y)/15.0f; - temp_f31 = 20; - temp_f30 = -20; - HuSprAttrSet(arg0->unkA, 0, 64); - omVibrate(arg0->unk34, 12, 6, 6); - temp_r25 =0; - for(temp_r27=0; temp_r27<30; temp_r27++) { - temp_r31->z += temp_f27; - temp_r28->z = temp_r26->z = temp_r31->z-5.0f; - if(temp_r27 < 15) { - temp_r31->x += temp_f29; - temp_r31->y += temp_f28; - temp_r28->x = temp_r31->x; - temp_r28->y = temp_r31->y; - sp2C.x = 30.0f+temp_r31->x; - sp2C.z = 50.0f; - sp2C.y = -30.0f+temp_r31->y; - Hu3D3Dto2D(&sp2C, (1 << arg0->unk38), &sp20); - HuSprGrpPosSet(arg0->unkA, sp20.x, sp20.y); - } - temp_r26->x = temp_r31->x+temp_f31; - temp_r26->y = temp_r31->y+temp_f30; - temp_f31 -= (4.0f/7.0f); - temp_f30 -= (-4.0f/7.0f); - temp_r28->z += 10.0f; - if(temp_r27 < 14) { - temp_r25 += 17; - } else if(temp_r27 < 28) { - temp_r25 -= 17; - } - Hu3DModelTPLvlSet(arg0->unk0[1], 255-temp_r25); - HuPrcVSleep(); - } - temp_r31->x = temp_r29->x; - temp_r31->y = temp_r29->y; - temp_r31->z = temp_r29->z; - sp14.x = 30.0f+temp_r31->x; - sp14.z = 50; - sp14.y = -30.0f+temp_r31->y; - Hu3D3Dto2D(&sp14, (1 << arg0->unk38), &sp8); - HuSprGrpPosSet(arg0->unkA, sp8.x, sp8.y); - temp_r28->x = 5000; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + + Vec *temp_r31; + Vec *temp_r29; + Vec *temp_r28; + s32 temp_r27; + Vec *temp_r26; + s32 temp_r25; + + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + temp_r31 = &arg0->unk6C[arg1]->data.base.pos; + temp_r26 = &arg0->unk10C[arg1]->data.base.pos; + temp_r28 = &arg0->unk1AC[arg1]->data.base.pos; + temp_r29 = &arg0->unk24C[arg1].pos; + temp_f29 = (temp_r29->x - temp_r31->x) / 15.0f; + temp_f27 = (temp_r29->z - temp_r31->z) / 30.0f; + temp_f28 = (temp_r29->y - temp_r31->y) / 15.0f; + temp_f31 = 20; + temp_f30 = -20; + HuSprAttrSet(arg0->unkA, 0, 64); + omVibrate(arg0->unk34, 12, 6, 6); + temp_r25 = 0; + for (temp_r27 = 0; temp_r27 < 30; temp_r27++) { + temp_r31->z += temp_f27; + temp_r28->z = temp_r26->z = temp_r31->z - 5.0f; + if (temp_r27 < 15) { + temp_r31->x += temp_f29; + temp_r31->y += temp_f28; + temp_r28->x = temp_r31->x; + temp_r28->y = temp_r31->y; + sp2C.x = 30.0f + temp_r31->x; + sp2C.z = 50.0f; + sp2C.y = -30.0f + temp_r31->y; + Hu3D3Dto2D(&sp2C, (1 << arg0->unk38), &sp20); + HuSprGrpPosSet(arg0->unkA, sp20.x, sp20.y); + } + temp_r26->x = temp_r31->x + temp_f31; + temp_r26->y = temp_r31->y + temp_f30; + temp_f31 -= (4.0f / 7.0f); + temp_f30 -= (-4.0f / 7.0f); + temp_r28->z += 10.0f; + if (temp_r27 < 14) { + temp_r25 += 17; + } + else if (temp_r27 < 28) { + temp_r25 -= 17; + } + Hu3DModelTPLvlSet(arg0->unk0[1], 255 - temp_r25); + HuPrcVSleep(); + } + temp_r31->x = temp_r29->x; + temp_r31->y = temp_r29->y; + temp_r31->z = temp_r29->z; + sp14.x = 30.0f + temp_r31->x; + sp14.z = 50; + sp14.y = -30.0f + temp_r31->y; + Hu3D3Dto2D(&sp14, (1 << arg0->unk38), &sp8); + HuSprGrpPosSet(arg0->unkA, sp8.x, sp8.y); + temp_r28->x = 5000; } void fn_1_263C(Bss348Data *arg0, s32 arg1) { - HsfTransform *temp_r31; - HsfTransform *temp_r30; - HsfTransform *temp_r29; - float temp_f31; - temp_r31 = &arg0->unk6C[arg1]->data.base; - temp_r29 = &arg0->unk10C[arg1]->data.base; - temp_r30 = &arg0->unk24C[arg1]; - for(temp_f31 = 0; temp_f31<180; temp_f31 += 10) { - temp_r31->scale.x = (temp_r30->scale.x*0.8f)+(0.2f*(temp_r30->scale.x*(1.0-sind(temp_f31)))); - temp_r31->scale.y = (temp_r30->scale.y*0.8f)+(0.2f*(temp_r30->scale.y*(1.0-sind(temp_f31)))); - temp_r31->scale.z = (temp_r30->scale.z*0.8f)+(0.2f*(temp_r30->scale.z*(1.0-sind(temp_f31)))); - temp_r29->scale.x = temp_r31->scale.x; - temp_r29->scale.y = temp_r31->scale.y; - temp_r29->scale.z = 0.8f*temp_r31->scale.z; - HuPrcVSleep(); - } - for(temp_f31 = 180; temp_f31<360; temp_f31 += 20) { - temp_r31->scale.x = (temp_r30->scale.x*0.9f)+(0.1f*(temp_r30->scale.x*(1.0-sind(temp_f31)))); - temp_r31->scale.y = (temp_r30->scale.y*0.9f)+(0.1f*(temp_r30->scale.y*(1.0-sind(temp_f31)))); - temp_r31->scale.z = (temp_r30->scale.z*0.9f)+(0.1f*(temp_r30->scale.z*(1.0-sind(temp_f31)))); - temp_r29->scale.x = temp_r31->scale.x; - temp_r29->scale.y = temp_r31->scale.y; - temp_r29->scale.z = 0.8f*temp_r31->scale.z; - HuPrcVSleep(); - } - temp_r31->scale.x = temp_r30->scale.x; - temp_r31->scale.y = temp_r30->scale.y; - temp_r31->scale.z = temp_r30->scale.z; - temp_r29->scale.x = temp_r31->scale.x; - temp_r29->scale.y = temp_r31->scale.y; - temp_r29->scale.z = 0.8f*temp_r31->scale.z; + HsfTransform *temp_r31; + HsfTransform *temp_r30; + HsfTransform *temp_r29; + float temp_f31; + temp_r31 = &arg0->unk6C[arg1]->data.base; + temp_r29 = &arg0->unk10C[arg1]->data.base; + temp_r30 = &arg0->unk24C[arg1]; + for (temp_f31 = 0; temp_f31 < 180; temp_f31 += 10) { + temp_r31->scale.x = (temp_r30->scale.x * 0.8f) + (0.2f * (temp_r30->scale.x * (1.0 - sind(temp_f31)))); + temp_r31->scale.y = (temp_r30->scale.y * 0.8f) + (0.2f * (temp_r30->scale.y * (1.0 - sind(temp_f31)))); + temp_r31->scale.z = (temp_r30->scale.z * 0.8f) + (0.2f * (temp_r30->scale.z * (1.0 - sind(temp_f31)))); + temp_r29->scale.x = temp_r31->scale.x; + temp_r29->scale.y = temp_r31->scale.y; + temp_r29->scale.z = 0.8f * temp_r31->scale.z; + HuPrcVSleep(); + } + for (temp_f31 = 180; temp_f31 < 360; temp_f31 += 20) { + temp_r31->scale.x = (temp_r30->scale.x * 0.9f) + (0.1f * (temp_r30->scale.x * (1.0 - sind(temp_f31)))); + temp_r31->scale.y = (temp_r30->scale.y * 0.9f) + (0.1f * (temp_r30->scale.y * (1.0 - sind(temp_f31)))); + temp_r31->scale.z = (temp_r30->scale.z * 0.9f) + (0.1f * (temp_r30->scale.z * (1.0 - sind(temp_f31)))); + temp_r29->scale.x = temp_r31->scale.x; + temp_r29->scale.y = temp_r31->scale.y; + temp_r29->scale.z = 0.8f * temp_r31->scale.z; + HuPrcVSleep(); + } + temp_r31->scale.x = temp_r30->scale.x; + temp_r31->scale.y = temp_r30->scale.y; + temp_r31->scale.z = temp_r30->scale.z; + temp_r29->scale.x = temp_r31->scale.x; + temp_r29->scale.y = temp_r31->scale.y; + temp_r29->scale.z = 0.8f * temp_r31->scale.z; } void fn_1_2A34(Bss348Data *arg0, s32 arg1, s32 arg2) { - HsfTransform *temp_r31; - HsfTransform *temp_r30; - s32 temp_r28; - - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - temp_r31 = &arg0->unk6C[arg1]->data.base; - temp_r30 = &arg0->unk10C[arg1]->data.base; - temp_f30 = temp_r31->scale.x; - temp_f29 = temp_r31->scale.y; - temp_f28 = temp_r31->scale.z; - temp_r31->scale.x = temp_r31->scale.y = temp_r31->scale.z = 0; - temp_r30->scale.x = temp_r30->scale.y = temp_r30->scale.z = 0; - for(temp_r28=0, temp_f31=0; temp_r28<30; temp_r28++, temp_f31 += (1.0f/30.0f)) { - temp_r31->scale.x += temp_f30/30.0f; - temp_r31->scale.y += temp_f29/30.0f; - temp_r31->scale.z += temp_f28/30.0f; - temp_r30->scale.x = temp_r31->scale.x; - temp_r30->scale.y = temp_r31->scale.y; - temp_r30->scale.z = 0.8f*temp_r31->scale.z; - if(arg2 == 0) { - HuSprGrpScaleSet(arg0->unkA, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - temp_r31->scale.x = temp_f30; - temp_r31->scale.y = temp_f29; - temp_r31->scale.z = temp_f28; - temp_r30->scale.x = temp_r31->scale.x; - temp_r30->scale.y = temp_r31->scale.y; - temp_r30->scale.z = 0.8f*temp_r31->scale.z; - if(arg2 == 0) { - HuSprAttrReset(arg0->unkA, 0, 1); - HuSprGrpScaleSet(arg0->unkA, 1, 1); - } else { - HuSprAttrReset(arg0->unkA, 0, 64); - } + HsfTransform *temp_r31; + HsfTransform *temp_r30; + s32 temp_r28; + + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + temp_r31 = &arg0->unk6C[arg1]->data.base; + temp_r30 = &arg0->unk10C[arg1]->data.base; + temp_f30 = temp_r31->scale.x; + temp_f29 = temp_r31->scale.y; + temp_f28 = temp_r31->scale.z; + temp_r31->scale.x = temp_r31->scale.y = temp_r31->scale.z = 0; + temp_r30->scale.x = temp_r30->scale.y = temp_r30->scale.z = 0; + for (temp_r28 = 0, temp_f31 = 0; temp_r28 < 30; temp_r28++, temp_f31 += (1.0f / 30.0f)) { + temp_r31->scale.x += temp_f30 / 30.0f; + temp_r31->scale.y += temp_f29 / 30.0f; + temp_r31->scale.z += temp_f28 / 30.0f; + temp_r30->scale.x = temp_r31->scale.x; + temp_r30->scale.y = temp_r31->scale.y; + temp_r30->scale.z = 0.8f * temp_r31->scale.z; + if (arg2 == 0) { + HuSprGrpScaleSet(arg0->unkA, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + temp_r31->scale.x = temp_f30; + temp_r31->scale.y = temp_f29; + temp_r31->scale.z = temp_f28; + temp_r30->scale.x = temp_r31->scale.x; + temp_r30->scale.y = temp_r31->scale.y; + temp_r30->scale.z = 0.8f * temp_r31->scale.z; + if (arg2 == 0) { + HuSprAttrReset(arg0->unkA, 0, 1); + HuSprGrpScaleSet(arg0->unkA, 1, 1); + } + else { + HuSprAttrReset(arg0->unkA, 0, 64); + } } typedef struct work_2C50 { - Bss348Data *unk0; - s32 unk4; - s32 unk8; - s32 *unkC; + Bss348Data *unk0; + s32 unk4; + s32 unk8; + s32 *unkC; } Work2C50; void fn_1_2C50(void) { - HsfTransform *temp_r31; - Work2C50 *temp_r30; - s32 temp_r29; - HsfTransform *temp_r28; - s32 temp_r27; - - float temp_f31; - float temp_f30; - float temp_f29; - temp_r30 = HuPrcCurrentGet()->user_data; - temp_r31 = &temp_r30->unk0->unk6C[temp_r30->unk4]->data.base; - temp_r28 = &temp_r30->unk0->unk10C[temp_r30->unk4]->data.base; - HuAudFXPlay(1401); - if(temp_r30->unk8) { - temp_f30 = temp_r31->rot.z+90.0f; - } else { - temp_f30 = temp_r31->rot.z-90.0f; - } - if(temp_f30 >= 360.0f) { - temp_f30 -= 360.0f; - } - if(temp_f30 < 0.0f) { - temp_f30 += 360.0f; - } - temp_f29 = temp_r31->rot.z; - temp_f31 = 0; - for(temp_r29=0, temp_r27=15; temp_r29unk8) { - temp_r31->rot.z = temp_f29+(100.0*sind(temp_f31)); - } else { - temp_r31->rot.z = temp_f29-(100.0*sind(temp_f31)); - } - temp_r28->rot.z = temp_r31->rot.z; - temp_f31 += 6.0f; - HuPrcVSleep(); - } - temp_f31 = 90.0f; - for(temp_r29=0, temp_r27=3; temp_r29unk8) { - temp_r31->rot.z = temp_f29+(100.0*sind(temp_f31)); - } else { - temp_r31->rot.z = temp_f29-(100.0*sind(temp_f31)); - } - temp_r28->rot.z = temp_r31->rot.z; - HuPrcVSleep(); - } - temp_r31->rot.z = temp_r28->rot.z = temp_f30; - *temp_r30->unkC = 0; - HuPrcKill(HuPrcCurrentGet()); - while(1) { - HuPrcVSleep(); - } + HsfTransform *temp_r31; + Work2C50 *temp_r30; + s32 temp_r29; + HsfTransform *temp_r28; + s32 temp_r27; + + float temp_f31; + float temp_f30; + float temp_f29; + temp_r30 = HuPrcCurrentGet()->user_data; + temp_r31 = &temp_r30->unk0->unk6C[temp_r30->unk4]->data.base; + temp_r28 = &temp_r30->unk0->unk10C[temp_r30->unk4]->data.base; + HuAudFXPlay(1401); + if (temp_r30->unk8) { + temp_f30 = temp_r31->rot.z + 90.0f; + } + else { + temp_f30 = temp_r31->rot.z - 90.0f; + } + if (temp_f30 >= 360.0f) { + temp_f30 -= 360.0f; + } + if (temp_f30 < 0.0f) { + temp_f30 += 360.0f; + } + temp_f29 = temp_r31->rot.z; + temp_f31 = 0; + for (temp_r29 = 0, temp_r27 = 15; temp_r29 < temp_r27; temp_r29++) { + if (temp_r30->unk8) { + temp_r31->rot.z = temp_f29 + (100.0 * sind(temp_f31)); + } + else { + temp_r31->rot.z = temp_f29 - (100.0 * sind(temp_f31)); + } + temp_r28->rot.z = temp_r31->rot.z; + temp_f31 += 6.0f; + HuPrcVSleep(); + } + temp_f31 = 90.0f; + for (temp_r29 = 0, temp_r27 = 3; temp_r29 < temp_r27; temp_r29++) { + temp_f31 -= (25.0f / 3.0f); + if (temp_r30->unk8) { + temp_r31->rot.z = temp_f29 + (100.0 * sind(temp_f31)); + } + else { + temp_r31->rot.z = temp_f29 - (100.0 * sind(temp_f31)); + } + temp_r28->rot.z = temp_r31->rot.z; + HuPrcVSleep(); + } + temp_r31->rot.z = temp_r28->rot.z = temp_f30; + *temp_r30->unkC = 0; + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } } void fn_1_2F08(void) { - Vec *temp_r31 = HuPrcCurrentGet()->user_data; - float temp_f31; - float temp_f30; - HuPrcSleep(frandmod(24)); - temp_f30 = temp_r31->x/100.0f; - temp_f31 = -7.0f; - while(1) { - temp_r31->y -= temp_f31; - if(temp_r31->y < -500.0f) { - break; - } - temp_f31 += 0.5f; - if(temp_f31 > 20.0f) { - temp_f31 = 20.0f; - } - temp_r31->x += temp_f30; - temp_r31->z += 10.0f; - HuPrcVSleep(); - } - HuPrcKill(HuPrcCurrentGet()); - while(1) { - HuPrcVSleep(); - } + Vec *temp_r31 = HuPrcCurrentGet()->user_data; + float temp_f31; + float temp_f30; + HuPrcSleep(frandmod(24)); + temp_f30 = temp_r31->x / 100.0f; + temp_f31 = -7.0f; + while (1) { + temp_r31->y -= temp_f31; + if (temp_r31->y < -500.0f) { + break; + } + temp_f31 += 0.5f; + if (temp_f31 > 20.0f) { + temp_f31 = 20.0f; + } + temp_r31->x += temp_f30; + temp_r31->z += 10.0f; + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } } void fn_1_2FEC(Bss348Data *arg0, s32 arg1) { - Vec *temp_r31 = &arg0->unk6C[arg1]->data.base.pos; - if(temp_r31->x > 230.0f) { - temp_r31->x = 230.0f; - } - if(temp_r31->x < -230.0f) { - temp_r31->x = -230.0f; - } - if(temp_r31->y > 170.0f) { - temp_r31->y = 170.0f; - } - if(temp_r31->y < -170.0f) { - temp_r31->y = -170.0f; - } + Vec *temp_r31 = &arg0->unk6C[arg1]->data.base.pos; + if (temp_r31->x > 230.0f) { + temp_r31->x = 230.0f; + } + if (temp_r31->x < -230.0f) { + temp_r31->x = -230.0f; + } + if (temp_r31->y > 170.0f) { + temp_r31->y = 170.0f; + } + if (temp_r31->y < -170.0f) { + temp_r31->y = -170.0f; + } } void fn_1_30B0(s32 arg0, s32 arg1) { - switch(GWPlayerCfg[arg0].diff) { - case 0: - arg1 *= 8; - break; - - case 1: - arg1 *= 4; - break; - - case 2: - arg1 *= 2; - break; - } - if(arg1 <= 1) { - HuPrcVSleep(); - } else { - HuPrcSleep(frandmod(arg1/2)+arg1); - } + switch (GWPlayerCfg[arg0].diff) { + case 0: + arg1 *= 8; + break; + + case 1: + arg1 *= 4; + break; + + case 2: + arg1 *= 2; + break; + } + if (arg1 <= 1) { + HuPrcVSleep(); + } + else { + HuPrcSleep(frandmod(arg1 / 2) + arg1); + } } void fn_1_3154(Bss348Data *arg0, s32 arg1, s32 arg2) { - HsfTransform *temp_r30; - s32 temp_r29; - HsfTransform *temp_r25; - s32 temp_r23; - float temp_f29; - Vec sp24; - Vec sp18; - Vec spC; - arg1 = lbl_1_bss_C04[arg2]; - temp_r30 = &arg0->unk6C[arg1]->data.base; - arg0->unk7F4 = arg0->unk7F5 = 0; - arg0->unk7F7 = arg0->unk7F6 = 0; - arg0->unk7F8 = 0; - switch(GWPlayerCfg[arg0->unk34].diff) { - case 0: - temp_r29 = (arg2*2)+60; - break; - - case 1: - temp_r29 = arg2+80; - break; - - case 2: - temp_r29 = arg2+90; - break; - - default: - temp_r29 = arg2+95; - break; - } - if(temp_r29 > 100) { - temp_r29 = 100; - } - if(arg0->unk804 == -1) { - if(frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2+1) { - arg0->unk804 = arg1; - } else { - temp_r23 = frandmod(lbl_1_bss_B58-arg2); - arg0->unk804 = lbl_1_bss_C04[arg2+temp_r23]; - } - arg0->unk808 = -1; - if(GWPlayerCfg[arg0->unk34].diff == 2 || GWPlayerCfg[arg0->unk34].diff == 3) { - if(frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2+1) { - arg0->unk808 = 10; - } - } - fn_1_30B0(arg0->unk34, 10); - } - temp_r25 = &arg0->unk24C[arg0->unk804]; - HuSetVecF(&sp24, temp_r25->pos.x, temp_r25->pos.y, 0.0); - HuSetVecF(&sp18, temp_r30->pos.x, temp_r30->pos.y, 0.0); - HuSubVecF(&spC, &sp24, &sp18); - if(VECMagXY(&spC) >= 40.0f) { - temp_f29 = atan2d(spC.x, spC.y); - arg0->unk7F4 = 50*sind(temp_f29); - arg0->unk7F5 = 50*cosd(temp_f29); - if(arg0->unk808 >= 0 && arg0->unk808-- == 0 && temp_r30->rot.z != 0.0f) { - arg0->unk808 = 10; - if(0.0f == (temp_r30->rot.z-90.0f)) { - arg0->unk7F6 = 50; - } else { - arg0->unk7F7 = 50; - } - } - } else { - fn_1_30B0(arg0->unk34, 1); - if(frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2+1) { - if(0.0f != temp_r30->rot.z) { - if(0.0f == (temp_r30->rot.z-90.0f)) { - arg0->unk7F6 = 50; - } else { - arg0->unk7F7 = 50; - } - } else { - arg0->unk7F8 = PAD_BUTTON_A; - arg0->unk804 = -1; - } - - } else { - switch(frandmod(3)) { - case 0: - arg0->unk7F6 = 50; - break; - - case 1: - arg0->unk7F6 = 50; - break; - - default: - arg0->unk7F8 = PAD_BUTTON_A; - arg0->unk804 = -1; - break; - } - if(frandmod(100) < temp_r29) { - arg0->unk804 = -1; - } - } - } + HsfTransform *temp_r30; + s32 temp_r29; + HsfTransform *temp_r25; + s32 temp_r23; + float temp_f29; + Vec sp24; + Vec sp18; + Vec spC; + arg1 = lbl_1_bss_C04[arg2]; + temp_r30 = &arg0->unk6C[arg1]->data.base; + arg0->unk7F4 = arg0->unk7F5 = 0; + arg0->unk7F7 = arg0->unk7F6 = 0; + arg0->unk7F8 = 0; + switch (GWPlayerCfg[arg0->unk34].diff) { + case 0: + temp_r29 = (arg2 * 2) + 60; + break; + + case 1: + temp_r29 = arg2 + 80; + break; + + case 2: + temp_r29 = arg2 + 90; + break; + + default: + temp_r29 = arg2 + 95; + break; + } + if (temp_r29 > 100) { + temp_r29 = 100; + } + if (arg0->unk804 == -1) { + if (frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2 + 1) { + arg0->unk804 = arg1; + } + else { + temp_r23 = frandmod(lbl_1_bss_B58 - arg2); + arg0->unk804 = lbl_1_bss_C04[arg2 + temp_r23]; + } + arg0->unk808 = -1; + if (GWPlayerCfg[arg0->unk34].diff == 2 || GWPlayerCfg[arg0->unk34].diff == 3) { + if (frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2 + 1) { + arg0->unk808 = 10; + } + } + fn_1_30B0(arg0->unk34, 10); + } + temp_r25 = &arg0->unk24C[arg0->unk804]; + HuSetVecF(&sp24, temp_r25->pos.x, temp_r25->pos.y, 0.0); + HuSetVecF(&sp18, temp_r30->pos.x, temp_r30->pos.y, 0.0); + HuSubVecF(&spC, &sp24, &sp18); + if (VECMagXY(&spC) >= 40.0f) { + temp_f29 = atan2d(spC.x, spC.y); + arg0->unk7F4 = 50 * sind(temp_f29); + arg0->unk7F5 = 50 * cosd(temp_f29); + if (arg0->unk808 >= 0 && arg0->unk808-- == 0 && temp_r30->rot.z != 0.0f) { + arg0->unk808 = 10; + if (0.0f == (temp_r30->rot.z - 90.0f)) { + arg0->unk7F6 = 50; + } + else { + arg0->unk7F7 = 50; + } + } + } + else { + fn_1_30B0(arg0->unk34, 1); + if (frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2 + 1) { + if (0.0f != temp_r30->rot.z) { + if (0.0f == (temp_r30->rot.z - 90.0f)) { + arg0->unk7F6 = 50; + } + else { + arg0->unk7F7 = 50; + } + } + else { + arg0->unk7F8 = PAD_BUTTON_A; + arg0->unk804 = -1; + } + } + else { + switch (frandmod(3)) { + case 0: + arg0->unk7F6 = 50; + break; + + case 1: + arg0->unk7F6 = 50; + break; + + default: + arg0->unk7F8 = PAD_BUTTON_A; + arg0->unk804 = -1; + break; + } + if (frandmod(100) < temp_r29) { + arg0->unk804 = -1; + } + } + } } void fn_1_37C4(void) { - Bss348Data *temp_r31; - HsfTransform *temp_r30; - s32 temp_r29; - HsfTransform *temp_r28; - s32 temp_r26; - HsfTransform *temp_r25; - Process *temp_r24; - s32 temp_r23; - Vec spCC; - Vec spC0; - Vec spB4; - Work2C50 spA4; - Vec sp98; - Vec sp8C; - Vec sp80; - Vec sp74; - s32 sp70; - s32 sp58; - s32 sp48; - float temp_f27; - float temp_f26; - - - - temp_r31 = HuPrcCurrentGet()->user_data; - temp_r31->unk40 = 0; - for(temp_r29=0; temp_r29unk10C[temp_r29]->data.base; - temp_r30->pos.x = 5000; - temp_r30 = &temp_r31->unk1AC[temp_r29]->data.base; - temp_r30->pos.x = 5000; - } - while(lbl_1_bss_CA8 == 0) { - HuPrcVSleep(); - } - HuPrcSleep(180); - HuAudFXPlay(1391); - for(temp_r29=0; temp_r29unk6C[temp_r29]->data.base; - temp_f26 = atan2d(temp_r30->pos.x, temp_r30->pos.y); - temp_f27 = VECMagXY(&temp_r30->pos); - temp_f27 *= 1.05f; - temp_r30->pos.x = temp_f27*sind(temp_f26); - temp_r30->pos.y = temp_f27*cosd(temp_f26); - } - omVibrate(temp_r31->unk34, 12, 6, 6); - HuPrcSleep(30); - HuAudFXPlay(1387); - for(temp_r29=0; temp_r29unk6C[temp_r29]->data.base; - temp_r24->user_data = temp_r30; - } - HuPrcSleep(120); - lbl_1_bss_CA8 = 2; - for(temp_r29=0; temp_r29unk44 = 0; - temp_r31->unk804 = -1; - temp_r26 = lbl_1_bss_C04[temp_r29]; - temp_r30 = &temp_r31->unk6C[temp_r26]->data.base; - temp_r28 = &temp_r31->unk10C[temp_r26]->data.base; - if(temp_r29 != 0) { - temp_r25 = &temp_r31->unk24C[lbl_1_bss_C04[temp_r29-1]]; - temp_r30->pos.x = temp_r25->pos.x; - temp_r30->pos.y = temp_r25->pos.y; - temp_r28->pos.x = 20+temp_r30->pos.x; - temp_r28->pos.y = -20+temp_r30->pos.y; - } else { - temp_r30->pos.x = temp_r30->pos.y = 0; - temp_r28->pos.x = 20+temp_r30->pos.x; - temp_r28->pos.y = -20+temp_r30->pos.y; - sp98.x = temp_r30->pos.x+30; - sp98.z = 50; - sp98.y = -30+temp_r30->pos.y; - Hu3D3Dto2D(&sp98, (1 << temp_r31->unk38), &sp8C); - HuSprGrpPosSet(temp_r31->unkA, sp8C.x, sp8C.y); - HuSprAttrReset(temp_r31->unkA, 0, HUSPR_ATTR_DISPOFF); - } - temp_r30->pos.z = 50; - temp_r28->pos.z = temp_r30->pos.z-5; - temp_r30->rot.z = temp_r28->rot.z = 90.0f*lbl_1_bss_B64[temp_r29]; - fn_1_2A34(temp_r31, temp_r26, temp_r29); - if(temp_r29 == 0) { - while(lbl_1_bss_CA8 != 3) { - HuPrcVSleep(); - } - } - while(1) { - if(GWPlayerCfg[temp_r31->unk34].iscom == 1) { - fn_1_3154(temp_r31, temp_r26, temp_r29); - } - if(!sp70) { - temp_r23 = -1; - if(fn_1_21B4_inline(temp_r31->unk34, 0) > 20) { - temp_r23 = 1; - } - if(fn_1_21B4_inline(temp_r31->unk34, 1) > 20) { - temp_r23 = 0; - } - if(temp_r23 != -1) { - sp70 = 1; - temp_r24 = HuPrcChildCreate(fn_1_2C50, 8192, 8192, 0, HuPrcCurrentGet()); - temp_r24->user_data = &spA4; - spA4.unk0 = temp_r31; - spA4.unk4 = temp_r26; - spA4.unk8 = temp_r23; - spA4.unkC = &sp70; - } - } - if((fn_1_2274(temp_r31->unk34) & PAD_BUTTON_A) && !sp70) { - if(0.0f == temp_r30->rot.z) { - temp_r25 = &temp_r31->unk24C[temp_r26]; - HuSetVecF(&spCC, temp_r25->pos.x, temp_r25->pos.y, 0.0f); - HuSetVecF(&spC0, temp_r30->pos.x, temp_r30->pos.y, 0.0f); - HuSubVecF(&spB4, &spCC, &spC0); - if(VECMagXY(&spB4) < 40.0f) { - HuAudFXPlay(1402); - temp_r31->unk44 = 1; - temp_r31->unk48[7] = temp_r30->pos.x; - temp_r31->unk48[8] = temp_r30->pos.y; - fn_1_22E0(temp_r31, temp_r26); - goto end; - } - } - fn_1_263C(temp_r31, temp_r26); - } - temp_r31->unk48[6] = -1.0f; - if(ABS_INV(fn_1_20FC_inline(temp_r31->unk34, 0)) > 20 || ABS_INV(fn_1_20FC_inline(temp_r31->unk34,1)) > 20) { - temp_r31->unk48[6] = atan2d(fn_1_20FC_inline(temp_r31->unk34, 0), fn_1_20FC_inline(temp_r31->unk34, 1)); - } - if(-1.0f != temp_r31->unk48[6]) { - temp_r30->pos.x += 5.0f*sind(temp_r31->unk48[6]); - temp_r30->pos.y += 5.0f*cosd(temp_r31->unk48[6]); - fn_1_2FEC(temp_r31, temp_r26); - temp_r28->pos.x = 20.0f+temp_r30->pos.x; - temp_r28->pos.y = -20.0f+temp_r30->pos.y; - sp80.x = 30.0f+temp_r30->pos.x; - sp80.z = 50; - sp80.y = -30.0f+temp_r30->pos.y; - Hu3D3Dto2D(&sp80, (1 << temp_r31->unk38), &sp74); - HuSprGrpPosSet(temp_r31->unkA, sp74.x, sp74.y); - } - HuPrcVSleep(); - } - - end: - (void)temp_r31; - } - temp_r31->unk40 = 4; - //Hacks to Stop Spilling - (void)temp_r26; - (void)temp_r26; - (void)temp_r24; - (void)temp_r24; - (void)temp_r24; - (void)temp_r23; - (void)temp_r23; - (void)temp_r23; - (void)temp_r23; - while(1) { - HuPrcVSleep(); - } + Bss348Data *temp_r31; + HsfTransform *temp_r30; + s32 temp_r29; + HsfTransform *temp_r28; + s32 temp_r26; + HsfTransform *temp_r25; + Process *temp_r24; + s32 temp_r23; + Vec spCC; + Vec spC0; + Vec spB4; + Work2C50 spA4; + Vec sp98; + Vec sp8C; + Vec sp80; + Vec sp74; + s32 sp70; + s32 sp58; + s32 sp48; + float temp_f27; + float temp_f26; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk40 = 0; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + temp_r30 = &temp_r31->unk10C[temp_r29]->data.base; + temp_r30->pos.x = 5000; + temp_r30 = &temp_r31->unk1AC[temp_r29]->data.base; + temp_r30->pos.x = 5000; + } + while (lbl_1_bss_CA8 == 0) { + HuPrcVSleep(); + } + HuPrcSleep(180); + HuAudFXPlay(1391); + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + temp_r30 = &temp_r31->unk6C[temp_r29]->data.base; + temp_f26 = atan2d(temp_r30->pos.x, temp_r30->pos.y); + temp_f27 = VECMagXY(&temp_r30->pos); + temp_f27 *= 1.05f; + temp_r30->pos.x = temp_f27 * sind(temp_f26); + temp_r30->pos.y = temp_f27 * cosd(temp_f26); + } + omVibrate(temp_r31->unk34, 12, 6, 6); + HuPrcSleep(30); + HuAudFXPlay(1387); + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + temp_r24 = HuPrcChildCreate(fn_1_2F08, 8192, 4096, 0, HuPrcCurrentGet()); + temp_r30 = &temp_r31->unk6C[temp_r29]->data.base; + temp_r24->user_data = temp_r30; + } + HuPrcSleep(120); + lbl_1_bss_CA8 = 2; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + sp70 = 0; + temp_r31->unk44 = 0; + temp_r31->unk804 = -1; + temp_r26 = lbl_1_bss_C04[temp_r29]; + temp_r30 = &temp_r31->unk6C[temp_r26]->data.base; + temp_r28 = &temp_r31->unk10C[temp_r26]->data.base; + if (temp_r29 != 0) { + temp_r25 = &temp_r31->unk24C[lbl_1_bss_C04[temp_r29 - 1]]; + temp_r30->pos.x = temp_r25->pos.x; + temp_r30->pos.y = temp_r25->pos.y; + temp_r28->pos.x = 20 + temp_r30->pos.x; + temp_r28->pos.y = -20 + temp_r30->pos.y; + } + else { + temp_r30->pos.x = temp_r30->pos.y = 0; + temp_r28->pos.x = 20 + temp_r30->pos.x; + temp_r28->pos.y = -20 + temp_r30->pos.y; + sp98.x = temp_r30->pos.x + 30; + sp98.z = 50; + sp98.y = -30 + temp_r30->pos.y; + Hu3D3Dto2D(&sp98, (1 << temp_r31->unk38), &sp8C); + HuSprGrpPosSet(temp_r31->unkA, sp8C.x, sp8C.y); + HuSprAttrReset(temp_r31->unkA, 0, HUSPR_ATTR_DISPOFF); + } + temp_r30->pos.z = 50; + temp_r28->pos.z = temp_r30->pos.z - 5; + temp_r30->rot.z = temp_r28->rot.z = 90.0f * lbl_1_bss_B64[temp_r29]; + fn_1_2A34(temp_r31, temp_r26, temp_r29); + if (temp_r29 == 0) { + while (lbl_1_bss_CA8 != 3) { + HuPrcVSleep(); + } + } + while (1) { + if (GWPlayerCfg[temp_r31->unk34].iscom == 1) { + fn_1_3154(temp_r31, temp_r26, temp_r29); + } + if (!sp70) { + temp_r23 = -1; + if (fn_1_21B4_inline(temp_r31->unk34, 0) > 20) { + temp_r23 = 1; + } + if (fn_1_21B4_inline(temp_r31->unk34, 1) > 20) { + temp_r23 = 0; + } + if (temp_r23 != -1) { + sp70 = 1; + temp_r24 = HuPrcChildCreate(fn_1_2C50, 8192, 8192, 0, HuPrcCurrentGet()); + temp_r24->user_data = &spA4; + spA4.unk0 = temp_r31; + spA4.unk4 = temp_r26; + spA4.unk8 = temp_r23; + spA4.unkC = &sp70; + } + } + if ((fn_1_2274(temp_r31->unk34) & PAD_BUTTON_A) && !sp70) { + if (0.0f == temp_r30->rot.z) { + temp_r25 = &temp_r31->unk24C[temp_r26]; + HuSetVecF(&spCC, temp_r25->pos.x, temp_r25->pos.y, 0.0f); + HuSetVecF(&spC0, temp_r30->pos.x, temp_r30->pos.y, 0.0f); + HuSubVecF(&spB4, &spCC, &spC0); + if (VECMagXY(&spB4) < 40.0f) { + HuAudFXPlay(1402); + temp_r31->unk44 = 1; + temp_r31->unk48[7] = temp_r30->pos.x; + temp_r31->unk48[8] = temp_r30->pos.y; + fn_1_22E0(temp_r31, temp_r26); + goto end; + } + } + fn_1_263C(temp_r31, temp_r26); + } + temp_r31->unk48[6] = -1.0f; + if (ABS_INV(fn_1_20FC_inline(temp_r31->unk34, 0)) > 20 || ABS_INV(fn_1_20FC_inline(temp_r31->unk34, 1)) > 20) { + temp_r31->unk48[6] = atan2d(fn_1_20FC_inline(temp_r31->unk34, 0), fn_1_20FC_inline(temp_r31->unk34, 1)); + } + if (-1.0f != temp_r31->unk48[6]) { + temp_r30->pos.x += 5.0f * sind(temp_r31->unk48[6]); + temp_r30->pos.y += 5.0f * cosd(temp_r31->unk48[6]); + fn_1_2FEC(temp_r31, temp_r26); + temp_r28->pos.x = 20.0f + temp_r30->pos.x; + temp_r28->pos.y = -20.0f + temp_r30->pos.y; + sp80.x = 30.0f + temp_r30->pos.x; + sp80.z = 50; + sp80.y = -30.0f + temp_r30->pos.y; + Hu3D3Dto2D(&sp80, (1 << temp_r31->unk38), &sp74); + HuSprGrpPosSet(temp_r31->unkA, sp74.x, sp74.y); + } + HuPrcVSleep(); + } + + end: + (void)temp_r31; + } + temp_r31->unk40 = 4; + // Hacks to Stop Spilling + (void)temp_r26; + (void)temp_r26; + (void)temp_r24; + (void)temp_r24; + (void)temp_r24; + (void)temp_r23; + (void)temp_r23; + (void)temp_r23; + (void)temp_r23; + while (1) { + HuPrcVSleep(); + } } void fn_1_4768(s32 arg0) { - float temp_f31; - s32 temp_r31; - s32 temp_r30; - Bss348Data *spC = &lbl_1_bss_348[arg0]; - Bss348Data *temp_r29; - - for(temp_r31=0, temp_f31=1; temp_r31<15; temp_r31++) { - temp_f31 -= (1.0f/15.0f); - for(temp_r30=0; temp_r30<1; temp_r30++) { - temp_r29 = &lbl_1_bss_348[temp_r30]; - HuSprGrpScaleSet(temp_r29->unkA, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<1; temp_r31++) { - HuSprAttrSet(lbl_1_bss_348[temp_r31].unkA, 0, HUSPR_ATTR_DISPOFF); - } + float temp_f31; + s32 temp_r31; + s32 temp_r30; + Bss348Data *spC = &lbl_1_bss_348[arg0]; + Bss348Data *temp_r29; + + for (temp_r31 = 0, temp_f31 = 1; temp_r31 < 15; temp_r31++) { + temp_f31 -= (1.0f / 15.0f); + for (temp_r30 = 0; temp_r30 < 1; temp_r30++) { + temp_r29 = &lbl_1_bss_348[temp_r30]; + HuSprGrpScaleSet(temp_r29->unkA, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 1; temp_r31++) { + HuSprAttrSet(lbl_1_bss_348[temp_r31].unkA, 0, HUSPR_ATTR_DISPOFF); + } } void fn_1_4864(void) { - while(1) { - if(omSysExitReq == 1) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudFadeOut(1000); - HuPrcSleep(60); - MGSeqKillAll(); - omOvlReturnEx(1, 1); - while(1) { - HuPrcVSleep(); - } - } - HuPrcVSleep(); - } + while (1) { + if (omSysExitReq == 1) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + HuPrcSleep(60); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (1) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } } void fn_1_48C4(void) { - u32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s16 temp_r21; - s32 sp14; - s32 sp10; - - lbl_1_bss_CA8 = 0; - temp_r31 = 0; - lbl_1_bss_CA8 = 1; - while(lbl_1_bss_CA8 == 1) { - HuPrcVSleep(); - } - sp10 = HuAudSeqPlay(69); - temp_r21 = MGSeqStartCreate(); - while(MGSeqStatGet(temp_r21)) { - HuPrcVSleep(); - } - lbl_1_bss_CA8 = 3; - while(1) { - for(temp_r30=0, sp14=0; temp_r30<1; temp_r30++) { - if(lbl_1_bss_348[temp_r30].unk40 == 4) { - temp_r29 = temp_r30; - sp14++; - } - } - if(sp14 != 0) { - break; - } - temp_r31++; - fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 1); - if(temp_r31 >= 35999) { - temp_r29 = -1; - break; - } - HuPrcVSleep(); - } - if(temp_r29 == -1) { - fn_1_918(lbl_1_bss_CAE, 2, 0, 2); - } - HuAudSeqFadeOut(sp10, 100); - for(temp_r30=0; temp_r30<1; temp_r30++) { - HuPrcKill(lbl_1_bss_4[temp_r30]); - } - temp_r21 = MGSeqFinishCreate(); - while(MGSeqStatGet(temp_r21)) { - HuPrcVSleep(); - } - if(temp_r29 == -1 || temp_r31 >= GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { - if(temp_r29 != -1) { - HuAudSStreamPlay(1); - } else { - HuAudSStreamPlay(4); - } - } - if(temp_r29 != -1) { - lbl_1_bss_CA8 = 4; - lbl_1_bss_CA4 = temp_r29; - fn_1_4768(temp_r29); - } - mgRecordExtra = temp_r31; - if(temp_r29 != -1) { - if(lbl_1_data_74C[lbl_1_bss_B5C] >= temp_r31) { - GWGameStat.present[lbl_1_data_758[lbl_1_bss_B5C]] = 1; - OSReport("time %d no %d\n", lbl_1_data_74C[lbl_1_bss_B5C], lbl_1_data_758[lbl_1_bss_B5C]); - } - if(temp_r31 < GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { - GWMGRecordSet(lbl_1_data_6C8[lbl_1_bss_B5C], temp_r31); - temp_r21 = MGSeqRecordCreate(temp_r31); - HuPrcChildCreate(fn_1_858, 4096, 4096, 0, HuPrcCurrentGet()); - fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 0); - while(MGSeqStatGet(temp_r21)) { - HuPrcVSleep(); - } - HuAudSStreamPlay(1); - } - HuPrcSleep(180); - } else { - mgRecordExtra = 36000; - HuPrcSleep(210); - } - HuPrcSleep(30); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuPrcSleep(60); - HuAudFadeOut(1); - MGSeqKillAll(); - omOvlReturnEx(1, 1); - while(1) { - HuPrcVSleep(); - } + u32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s16 temp_r21; + s32 sp14; + s32 sp10; + + lbl_1_bss_CA8 = 0; + temp_r31 = 0; + lbl_1_bss_CA8 = 1; + while (lbl_1_bss_CA8 == 1) { + HuPrcVSleep(); + } + sp10 = HuAudSeqPlay(69); + temp_r21 = MGSeqStartCreate(); + while (MGSeqStatGet(temp_r21)) { + HuPrcVSleep(); + } + lbl_1_bss_CA8 = 3; + while (1) { + for (temp_r30 = 0, sp14 = 0; temp_r30 < 1; temp_r30++) { + if (lbl_1_bss_348[temp_r30].unk40 == 4) { + temp_r29 = temp_r30; + sp14++; + } + } + if (sp14 != 0) { + break; + } + temp_r31++; + fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 1); + if (temp_r31 >= 35999) { + temp_r29 = -1; + break; + } + HuPrcVSleep(); + } + if (temp_r29 == -1) { + fn_1_918(lbl_1_bss_CAE, 2, 0, 2); + } + HuAudSeqFadeOut(sp10, 100); + for (temp_r30 = 0; temp_r30 < 1; temp_r30++) { + HuPrcKill(lbl_1_bss_4[temp_r30]); + } + temp_r21 = MGSeqFinishCreate(); + while (MGSeqStatGet(temp_r21)) { + HuPrcVSleep(); + } + if (temp_r29 == -1 || temp_r31 >= GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { + if (temp_r29 != -1) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(4); + } + } + if (temp_r29 != -1) { + lbl_1_bss_CA8 = 4; + lbl_1_bss_CA4 = temp_r29; + fn_1_4768(temp_r29); + } + mgRecordExtra = temp_r31; + if (temp_r29 != -1) { + if (lbl_1_data_74C[lbl_1_bss_B5C] >= temp_r31) { + GWGameStat.present[lbl_1_data_758[lbl_1_bss_B5C]] = 1; + OSReport("time %d no %d\n", lbl_1_data_74C[lbl_1_bss_B5C], lbl_1_data_758[lbl_1_bss_B5C]); + } + if (temp_r31 < GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { + GWMGRecordSet(lbl_1_data_6C8[lbl_1_bss_B5C], temp_r31); + temp_r21 = MGSeqRecordCreate(temp_r31); + HuPrcChildCreate(fn_1_858, 4096, 4096, 0, HuPrcCurrentGet()); + fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 0); + while (MGSeqStatGet(temp_r21)) { + HuPrcVSleep(); + } + HuAudSStreamPlay(1); + } + HuPrcSleep(180); + } + else { + mgRecordExtra = 36000; + HuPrcSleep(210); + } + HuPrcSleep(30); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuPrcSleep(60); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (1) { + HuPrcVSleep(); + } } diff --git a/src/REL/mgmodedll/datalist.c b/src/REL/mgmodedll/datalist.c index 8afb7b0a..947f1677 100644 --- a/src/REL/mgmodedll/datalist.c +++ b/src/REL/mgmodedll/datalist.c @@ -1,52 +1,52 @@ #include "REL/mgmodedll.h" DataListModel lbl_1_data_490[] = { - { 0x620000, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620001, 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620002, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620003, 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620004, 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x62005E, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x62005F, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620060, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620061, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620007, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620008, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x00), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x01), 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x02), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x03), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x04), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5E), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5F), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x60), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x61), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x08), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, }; DataListSprite lbl_1_data_768[] = { - { 0x62000C, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0x620009, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0x62000A, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0x62000D, 4, 100, 288, 240, { 255, 255, 255, 255 } }, - { 0x620018, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001A, 4, 20, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001B, 4, 30, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001C, 4, 40, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001D, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001E, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001F, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620020, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620021, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620025, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x62000E, 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { 0x62000F, 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { 0x620019, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x620028, 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x620028, 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x62002A, 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x62002E, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x62002F, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x620032, 4, 5, 288, 240, { 255, 255, 255, 255 } }, - { 0x620031, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620030, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620029, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620029, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620033, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620034, 4, 50, 288, 256, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0C), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x09), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0A), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0D), 4, 100, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x18), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1A), 4, 20, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1B), 4, 30, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1C), 4, 40, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1D), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1E), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1F), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x20), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x21), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x25), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0E), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0F), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x19), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2A), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2E), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2F), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x32), 4, 5, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x31), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x30), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x33), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x34), 4, 50, 288, 256, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; @@ -128,4 +128,4 @@ void fn_1_26BB0(void) espKill(lbl_1_bss_2C2C[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/mgmodedll/free_play.c b/src/REL/mgmodedll/free_play.c index 7e4e5266..7d314df5 100644 --- a/src/REL/mgmodedll/free_play.c +++ b/src/REL/mgmodedll/free_play.c @@ -1,11 +1,11 @@ #include "REL/mgmodedll.h" #include "game/gamework.h" -#include "game/gamework_data.h" -#include "game/esprite.h" #include "game/audio.h" -#include "game/wipe.h" +#include "game/esprite.h" +#include "game/gamework_data.h" #include "game/saveload.h" +#include "game/wipe.h" #include "ext_math.h" @@ -29,25 +29,15 @@ static s16 pad_05_000002E0_bss; s16 lbl_1_data_A0 = -1; -s16 lbl_1_data_A2[7] = { - 0, - 1, - 2, - 4, - 3, - 6, - 9 -}; +s16 lbl_1_data_A2[7] = { 0, 1, 2, 4, 3, 6, 9 }; -float lbl_1_data_B0[4] = { - 370, 412, 488, 530 -}; +float lbl_1_data_B0[4] = { 370, 412, 488, 530 }; s32 lbl_1_data_C0[4] = { - 0x00620037, - 0x0062003D, - 0x0062003A, - 0x00620040 + DATA_MAKE_NUM(DATADIR_MGMODE, 0x37), + DATA_MAKE_NUM(DATADIR_MGMODE, 0x3D), + DATA_MAKE_NUM(DATADIR_MGMODE, 0x3A), + DATA_MAKE_NUM(DATADIR_MGMODE, 0x40), }; void fn_1_9E44(void); @@ -70,1180 +60,1229 @@ s32 fn_1_C0C8(s32 arg0); s32 fn_1_6D28(void) { - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - s16 temp_r23; - s16 spC[6]; - s16 spA; - s16 sp8; - float temp_f31; - temp_r25 = 1; - fn_1_279FC(0); - fn_1_A6A8(); - fn_1_9E44(); - spA = sp8 = 0; - mgInstExitEnableF = 1; - mgTypeCurr = 0; - _SetFlag(11); - fn_1_B770(); - if(lbl_1_bss_2A6 != 2) { - temp_r28 = lbl_1_bss_2C2C[1]; - } else { - temp_r28 = lbl_1_bss_2C2C[2]; - } - if(lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2) { - mgTypeCurr = fn_1_B5A8(&spA, &sp8); - espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); - espTPLvlSet(lbl_1_bss_2C2C[3], 1.0f); - espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); - espPosSet(temp_r28, 288, 70); - espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[13], 450, 216); - if(lbl_1_bss_2A6 == 0) { - espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[4], 450, 404); - if(lbl_1_bss_4 == 1) { - fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); - espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[14], 450, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30*50)+375, 348); - } - } else { - espAttrReset(lbl_1_bss_2C2C[15], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[15], 450, 348); - espAttrReset(lbl_1_bss_2C2C[16], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[16], 450, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], lbl_1_data_B0[temp_r30], 348); - } - } - } else if(lbl_1_bss_2A6 == 1) { - espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], 450, 414); - } else if(lbl_1_bss_2A6 == 2) { - espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[21], 450, 400); - } - for(temp_r30=0; temp_r30= ((lbl_1_bss_316-temp_r30)-1)*10 && temp_r31 <= (((lbl_1_bss_316-temp_r30)-1)*10)+10) { - temp_f31 = (temp_r31-(((lbl_1_bss_316-temp_r30)-1)*10))/10.0; - if(0.0 == temp_f31) { - temp_r26++; - fn_1_9F64(temp_r26 & 0x1, lbl_1_bss_318[temp_r30][0], 0); - } - espAttrReset(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 180, 800+(-530*sind(temp_f31*90.0f))); - espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], (temp_r30*10)+10); - fn_1_A364(temp_r26 & 0x1, 180, 800+(-530*sind(temp_f31*90.0f)), (temp_r30*10)+8); - } - } - HuPrcVSleep(); - } - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][0], 10, 450, 216); - } - espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[19], 204, (sp8*38)+154); - espPriSet(lbl_1_bss_2C2C[19], 7); - espTPLvlSet(lbl_1_bss_2C2C[19], 0.7); - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[17], 204, 126); - espPriSet(lbl_1_bss_2C2C[17], 8); - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[18], 204, 410); - espPriSet(lbl_1_bss_2C2C[18], 8); - espBankSet(lbl_1_bss_2C2C[18], 1); - fn_1_A364(0, 180, 270, 7); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - fn_1_A364(1, 180, 270, 100); - fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); - fn_1_ADA0(1); - HuPrcSleep(10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - while(1) { - HuPrcVSleep(); - if(spA != 0) { - espAttrReset(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - } else { - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - } - if(spA+7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { - espAttrReset(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - } else { - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - } - temp_r27 = temp_r29 = 0; - if(HuPadDStkRep[0] & PAD_BUTTON_UP) { - temp_r29 = -1; - } else if(HuPadDStkRep[0] & PAD_BUTTON_DOWN) { - temp_r29 = 1; - } else if((HuPadDStkRep[0] & PAD_BUTTON_LEFT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_L)) { - temp_r27 = -1; - } else if((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_R)) { - temp_r27 = 1; - } - if(temp_r29 != 0) { - if(sp8+temp_r29 < 0 && spA != 0) { - spA--; - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 5, 450, 216); - for(temp_r31=0; temp_r31<=4; temp_r31++) { - espPosSet(lbl_1_bss_2C2C[17], 204, 126-(8.0*sind(temp_r31*45.0))); - if(temp_r31 == 2){ - HuAudFXPlay(772); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - } - HuPrcVSleep(); - } - } else if(sp8+temp_r29 >= 7 && spA+7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { - spA++; - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 5, 450, 216); - for(temp_r31=0; temp_r31<=4; temp_r31++) { - espPosSet(lbl_1_bss_2C2C[18], 204, 410+(8.0*sind(temp_r31*45.0))); - if(temp_r31 == 2){ - HuAudFXPlay(772); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - } - HuPrcVSleep(); - } - } else if(sp8+temp_r29 >= 0 && (spA+sp8+temp_r29) < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8+temp_r29], 5, 450, 216); - for(temp_r31=0; temp_r31<=4; temp_r31++) { - espPosSet(lbl_1_bss_2C2C[19], 204, ((sp8*38)+154)+(temp_r29*(38.0*sind(22.5*temp_r31)))); - HuPrcVSleep(); - if(temp_r31 == 2){ - HuAudFXPlay(772); - } - - } - sp8 += temp_r29; - } - if(lbl_1_bss_2A4 == 0) { - fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); - } - } - if(temp_r27 && lbl_1_bss_316 > 1) { - HuAudFXPlay(2172); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - temp_r30 = mgTypeCurr; - if(mgTypeCurr+temp_r27 < 0) { - mgTypeCurr = lbl_1_bss_316-1; - } else { - if(mgTypeCurr+temp_r27 >= lbl_1_bss_316) { - mgTypeCurr = 0; - } else { - mgTypeCurr += temp_r27; - } - } - espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - fn_1_ADA0(0); - for(temp_r31=0; temp_r31= 10) { - temp_r24 = 7; - } else { - temp_r24 = 20; - } - fn_1_A364(0, (300.0*sind(temp_r31*9.0))+180.0, 270, temp_r24); - HuPrcVSleep(); - } - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); - espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 10); - fn_1_A364(0, 180.0, 270, 7); - espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[19], 204, 154); - fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); - if(lbl_1_bss_318[mgTypeCurr][0] != 9) { - fn_1_ADA0(1); - } - sp8 = spA = 0; - if(lbl_1_bss_2A4 == 0) { - fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); - } - } - if((HuPadBtnDown[0] & PAD_BUTTON_A) && lbl_1_bss_2A6 == 2) { - temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; - if(!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA+sp8]+401)) { - HuAudFXPlay(4); - continue; - } else { - if(lbl_1_bss_318[mgTypeCurr][0] != 9) { - HuAudFXPlay(2); - temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]+401; - if(!GWMGCustomGet(temp_r31)) { - GWMGCustomSet(temp_r31); - } else { - GWMGCustomReset(temp_r31); - } - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 0, 450, 216); - fn_1_B9B8(); - } else { - if(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8] >= 0) { - HuAudFXPlay(2); - temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]+401; - GWMGCustomReset(temp_r31); - fn_1_B9B8(); - if(lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]] <= spA+sp8) { - if(--sp8 < 0) { - sp8 = 0; - spA--; - } - espPosSet(lbl_1_bss_2C2C[19], 204, (sp8*38)+154); - } - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 0, 450, 216); - } - } - } - } - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - if(lbl_1_bss_2A6 == 2 && !fn_1_BB24()) { - continue; - } - temp_r25 = 0; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + s16 temp_r23; + s16 spC[6]; + s16 spA; + s16 sp8; + float temp_f31; + temp_r25 = 1; + fn_1_279FC(0); + fn_1_A6A8(); + fn_1_9E44(); + spA = sp8 = 0; + mgInstExitEnableF = 1; + mgTypeCurr = 0; + _SetFlag(11); + fn_1_B770(); + if (lbl_1_bss_2A6 != 2) { + temp_r28 = lbl_1_bss_2C2C[1]; + } + else { + temp_r28 = lbl_1_bss_2C2C[2]; + } + if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2) { + mgTypeCurr = fn_1_B5A8(&spA, &sp8); + espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[3], 1.0f); + espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); + espPosSet(temp_r28, 288, 70); + espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[13], 450, 216); + if (lbl_1_bss_2A6 == 0) { + espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[4], 450, 404); + if (lbl_1_bss_4 == 1) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); + espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[14], 450, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30 * 50) + 375, 348); + } + } + else { + espAttrReset(lbl_1_bss_2C2C[15], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[15], 450, 348); + espAttrReset(lbl_1_bss_2C2C[16], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[16], 450, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], lbl_1_data_B0[temp_r30], 348); + } + } + } + else if (lbl_1_bss_2A6 == 1) { + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], 450, 414); + } + else if (lbl_1_bss_2A6 == 2) { + espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[21], 450, 400); + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_316; temp_r30++) { + espAttrReset(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 180, 270); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], (temp_r30 * 10) + 20); + } + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 19); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); + fn_1_A364(0, 180, 270, 19); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 0, 450, 216); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + } + else { + espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[3], 0.0f); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + espTPLvlSet(lbl_1_bss_2C2C[3], temp_r31 / 20.0); + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < lbl_1_bss_316; temp_r31++) { + spC[temp_r31] = -1; + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r31][1]], (temp_r31 * 10) + 20); + } + temp_r26 = 0; + temp_r23 = (lbl_1_bss_316 * 10) + 10; + for (temp_r31 = 0; temp_r31 <= temp_r23; temp_r31++) { + if (temp_r31 <= 20) { + temp_f31 = temp_r31 / 20.0; + espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); + espPosSet(temp_r28, 288, -100 + (170 * sind(temp_f31 * 90.0f))); + } + if (temp_r31 <= 20) { + temp_f31 = temp_r31 / 20.0; + espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[13], (-350 * sind(temp_f31 * 90.0f)) + 800, 216); + if (lbl_1_bss_2A6 == 0) { + espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[4], (-350 * sind(temp_f31 * 90.0f)) + 800, 404); + if (lbl_1_bss_2A4 != 1) { + espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[14], (-350 * sind(temp_f31 * 90.0f)) + 800, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30 * 50) + (((-350 * sind(temp_f31 * 90.0f)) + 800) - 75), 348); + } + } + else { + espAttrReset(lbl_1_bss_2C2C[15], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[15], (-350 * sind(temp_f31 * 90.0f)) + 800, 348); + espAttrReset(lbl_1_bss_2C2C[16], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[16], (-350 * sind(temp_f31 * 90.0f)) + 800, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (800.0 * (1 - sind(temp_f31 * 90.0f))) + lbl_1_data_B0[temp_r30], 348); + } + } + } + else { + if (lbl_1_bss_2A6 == 1) { + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], (-350 * sind(temp_f31 * 90.0f)) + 800, 414); + } + else if (lbl_1_bss_2A6 == 2) { + espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[21], (-350 * sind(temp_f31 * 90.0f)) + 800, 400); + } + } + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_316; temp_r30++) { + if (temp_r31 >= ((lbl_1_bss_316 - temp_r30) - 1) * 10 && temp_r31 <= (((lbl_1_bss_316 - temp_r30) - 1) * 10) + 10) { + temp_f31 = (temp_r31 - (((lbl_1_bss_316 - temp_r30) - 1) * 10)) / 10.0; + if (0.0 == temp_f31) { + temp_r26++; + fn_1_9F64(temp_r26 & 0x1, lbl_1_bss_318[temp_r30][0], 0); + } + espAttrReset(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 180, 800 + (-530 * sind(temp_f31 * 90.0f))); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], (temp_r30 * 10) + 10); + fn_1_A364(temp_r26 & 0x1, 180, 800 + (-530 * sind(temp_f31 * 90.0f)), (temp_r30 * 10) + 8); + } + } + HuPrcVSleep(); + } + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][0], 10, 450, 216); + } + espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[19], 204, (sp8 * 38) + 154); + espPriSet(lbl_1_bss_2C2C[19], 7); + espTPLvlSet(lbl_1_bss_2C2C[19], 0.7); + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[17], 204, 126); + espPriSet(lbl_1_bss_2C2C[17], 8); + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[18], 204, 410); + espPriSet(lbl_1_bss_2C2C[18], 8); + espBankSet(lbl_1_bss_2C2C[18], 1); + fn_1_A364(0, 180, 270, 7); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_A364(1, 180, 270, 100); + fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); + fn_1_ADA0(1); + HuPrcSleep(10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + while (1) { + HuPrcVSleep(); + if (spA != 0) { + espAttrReset(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + } + else { + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + } + if (spA + 7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + espAttrReset(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + } + else { + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + } + temp_r27 = temp_r29 = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_UP) { + temp_r29 = -1; + } + else if (HuPadDStkRep[0] & PAD_BUTTON_DOWN) { + temp_r29 = 1; + } + else if ((HuPadDStkRep[0] & PAD_BUTTON_LEFT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_L)) { + temp_r27 = -1; + } + else if ((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_R)) { + temp_r27 = 1; + } + if (temp_r29 != 0) { + if (sp8 + temp_r29 < 0 && spA != 0) { + spA--; + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 5, 450, 216); + for (temp_r31 = 0; temp_r31 <= 4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[17], 204, 126 - (8.0 * sind(temp_r31 * 45.0))); + if (temp_r31 == 2) { + HuAudFXPlay(772); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + } + HuPrcVSleep(); + } + } + else if (sp8 + temp_r29 >= 7 && spA + 7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + spA++; + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 5, 450, 216); + for (temp_r31 = 0; temp_r31 <= 4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[18], 204, 410 + (8.0 * sind(temp_r31 * 45.0))); + if (temp_r31 == 2) { + HuAudFXPlay(772); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + } + HuPrcVSleep(); + } + } + else if (sp8 + temp_r29 >= 0 && (spA + sp8 + temp_r29) < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8 + temp_r29], 5, 450, 216); + for (temp_r31 = 0; temp_r31 <= 4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[19], 204, ((sp8 * 38) + 154) + (temp_r29 * (38.0 * sind(22.5 * temp_r31)))); + HuPrcVSleep(); + if (temp_r31 == 2) { + HuAudFXPlay(772); + } + } + sp8 += temp_r29; + } + if (lbl_1_bss_2A4 == 0) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); + } + } + if (temp_r27 && lbl_1_bss_316 > 1) { + HuAudFXPlay(2172); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + temp_r30 = mgTypeCurr; + if (mgTypeCurr + temp_r27 < 0) { + mgTypeCurr = lbl_1_bss_316 - 1; + } + else { + if (mgTypeCurr + temp_r27 >= lbl_1_bss_316) { + mgTypeCurr = 0; + } + else { + mgTypeCurr += temp_r27; + } + } + espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + fn_1_ADA0(0); + for (temp_r31 = 0; temp_r31 < lbl_1_bss_316; temp_r31++) { + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r31][1]], 30); + } + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 25); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 15); + fn_1_9F64(1, lbl_1_bss_318[temp_r30][0], spA); + fn_1_A364(1, 180, 270, 14); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][0], 20, 450, 216); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + if (temp_r31 == 10) { + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 10); + } + espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], (300.0 * sind(temp_r31 * 9.0)) + 180.0, 270); + if (temp_r31 >= 10) { + temp_r24 = 7; + } + else { + temp_r24 = 20; + } + fn_1_A364(0, (300.0 * sind(temp_r31 * 9.0)) + 180.0, 270, temp_r24); + HuPrcVSleep(); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 10); + fn_1_A364(0, 180.0, 270, 7); + espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[19], 204, 154); + fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); + if (lbl_1_bss_318[mgTypeCurr][0] != 9) { + fn_1_ADA0(1); + } + sp8 = spA = 0; + if (lbl_1_bss_2A4 == 0) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); + } + } + if ((HuPadBtnDown[0] & PAD_BUTTON_A) && lbl_1_bss_2A6 == 2) { + temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; + if (!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA + sp8] + 401)) { + HuAudFXPlay(4); + continue; + } + else { + if (lbl_1_bss_318[mgTypeCurr][0] != 9) { + HuAudFXPlay(2); + temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8] + 401; + if (!GWMGCustomGet(temp_r31)) { + GWMGCustomSet(temp_r31); + } + else { + GWMGCustomReset(temp_r31); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 0, 450, 216); + fn_1_B9B8(); + } + else { + if (lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8] >= 0) { + HuAudFXPlay(2); + temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8] + 401; + GWMGCustomReset(temp_r31); + fn_1_B9B8(); + if (lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]] <= spA + sp8) { + if (--sp8 < 0) { + sp8 = 0; + spA--; + } + espPosSet(lbl_1_bss_2C2C[19], 204, (sp8 * 38) + 154); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 0, 450, 216); + } + } + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + if (lbl_1_bss_2A6 == 2 && !fn_1_BB24()) { + continue; + } + temp_r25 = 0; break; - } - if(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - continue; - } - if(lbl_1_bss_2A6) { - continue; - } - temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; - if(!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA+sp8]+401)) { - HuAudFXPlay(4); - continue; - } - HuAudFXPlay(773); - GWSystem.mg_next = lbl_1_bss_264C[temp_r31][spA+sp8]; - if(lbl_1_bss_2A4 == 0) { - GWPlayerCfg[0].group = 0; - GWPlayerCfg[1].group = 1; - GWPlayerCfg[2].group = 2; - GWPlayerCfg[3].group = 3; - if((temp_r31 == 1 || temp_r31 == 2) && !fn_1_C0C8(0)) { - continue; - } + } + if (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + continue; + } + if (lbl_1_bss_2A6) { + continue; + } + temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; + if (!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA + sp8] + 401)) { + HuAudFXPlay(4); + continue; + } + HuAudFXPlay(773); + GWSystem.mg_next = lbl_1_bss_264C[temp_r31][spA + sp8]; + if (lbl_1_bss_2A4 == 0) { + GWPlayerCfg[0].group = 0; + GWPlayerCfg[1].group = 1; + GWPlayerCfg[2].group = 2; + GWPlayerCfg[3].group = 3; + if ((temp_r31 == 1 || temp_r31 == 2) && !fn_1_C0C8(0)) { + continue; + } fn_1_2783C(1); - } else if(lbl_1_bss_2A4 == 1) { - fn_1_2783C(2); - } - while(1) { - HuPrcVSleep(); - } - } - espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - if(lbl_1_bss_2A6 == 2) { - for(temp_r31=0; temp_r31<7; temp_r31++) { - HuSprAttrSet(lbl_1_bss_2E2, temp_r31, HUSPR_ATTR_DISPOFF); - } - } - - fn_1_ADA0(0); - fn_1_AE20(-1, 5, 450, 216); - - for(temp_r31=0; temp_r31<=20; temp_r31++) { - if(temp_r31 <= 20) { - temp_f31 = temp_r31/20.0; - espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); - espPosSet(temp_r28, 288, -100.0+(170*cosd(temp_f31*90.0f))); - } - if(temp_r31 <= 10) { - temp_f31 = temp_r31/10.0; - espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[13], (-350*cosd(temp_f31*90.0f))+800, 216); - if(lbl_1_bss_2A6 == 0) { - espPosSet(lbl_1_bss_2C2C[4], (-350*cosd(temp_f31*90.0f))+800, 404); - if(lbl_1_bss_2A4 != 1) { - espPosSet(lbl_1_bss_2C2C[14], (-350*cosd(temp_f31*90.0f))+800, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30*50)+(((-350*cosd(temp_f31*90.0f))+800)-75), 348); - } - } else { - espPosSet(lbl_1_bss_2C2C[15], (-350*cosd(temp_f31*90.0f))+800, 348); - espPosSet(lbl_1_bss_2C2C[16], (-350*cosd(temp_f31*90.0f))+800, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (800*(1-cosd(temp_f31*90.0f)))+lbl_1_data_B0[temp_r30], 348); - } - } - } else { - if(lbl_1_bss_2A6 == 1) { - espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], (-350*cosd(temp_f31*90.0f))+800, 414); - } else if(lbl_1_bss_2A6 == 2) { - espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[21], (-350*cosd(temp_f31*90.0f))+800, 400); - } - } - } - temp_f31 = temp_r31/20.0; - for(temp_r30=0; temp_r30spacing_x = 0; - HuWinBGTPLvlSet(window, 0); - HuWinMesSpeedSet(window, 0); - HuWinDispOff(window); - (void)i; - } - } + s16 j; + s16 i; + for (i = 0; i < 2; i++) { + for (j = 0; j < 7; j++) { + s16 window = HuWinCreate(0, j * 24, 268, 32, 0); + WindowData *windowP; + lbl_1_bss_352[i][j] = window; + windowP = &winData[window]; + windowP->spacing_x = 0; + HuWinBGTPLvlSet(window, 0); + HuWinMesSpeedSet(window, 0); + HuWinDispOff(window); + (void)i; + } + } } void fn_1_9F64(s16 arg0, s16 arg1, s16 arg2) { - s16 i; - s16 no; - s16 window; - if(lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { - for(i=0; i<4; i++) { - HuSprAttrSet(lbl_1_bss_2E2, i+14, HUSPR_ATTR_DISPOFF); - } - } - if(arg1 == 9) { - for(i=0; i<7; i++) { - HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - window = lbl_1_bss_352[arg0][i]; - if(i+arg2 >= lbl_1_bss_2638[9]) { - HuWinDispOff(window); - } else { - no = lbl_1_bss_264C[9][i+arg2]; - if(no < 0) { - lbl_1_bss_30C = arg0; - no = -no-1; - lbl_1_bss_30E[no] = i; - HuSprAttrReset(lbl_1_bss_2E2, no+14, HUSPR_ATTR_DISPOFF); - HuSprPosSet(lbl_1_bss_2E2, no+14, 24+lbl_1_bss_2F4[arg0].x, (lbl_1_bss_2F4[arg0].y+(i*38))-116); - HuWinDispOff(window); - } else { - HuWinMesSet(window, mgInfoTbl[no].name_mess); - HuWinDispOn(window); - } - } - } - } else { - for(i=0; i<7; i++) { - window = lbl_1_bss_352[arg0][i]; - if(i+arg2 >= lbl_1_bss_2638[arg1]) { - HuWinDispOff(window); - if(lbl_1_bss_2A6 == 2) { - HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - } - } else { - no = lbl_1_bss_264C[arg1][i+arg2]; - if(GWMGAvailGet(no+401)) { - HuWinMesSet(window, mgInfoTbl[no].name_mess); - } else { - HuWinMesSet(window, 0x230000); - } - HuWinDispOn(window); - if(lbl_1_bss_2A6 == 2) { - if(GWMGCustomGet(no+401)) { - HuSprAttrReset(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - } else { - HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - } - } - } - } - } + s16 i; + s16 no; + s16 window; + if (lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { + for (i = 0; i < 4; i++) { + HuSprAttrSet(lbl_1_bss_2E2, i + 14, HUSPR_ATTR_DISPOFF); + } + } + if (arg1 == 9) { + for (i = 0; i < 7; i++) { + HuSprAttrSet(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + window = lbl_1_bss_352[arg0][i]; + if (i + arg2 >= lbl_1_bss_2638[9]) { + HuWinDispOff(window); + } + else { + no = lbl_1_bss_264C[9][i + arg2]; + if (no < 0) { + lbl_1_bss_30C = arg0; + no = -no - 1; + lbl_1_bss_30E[no] = i; + HuSprAttrReset(lbl_1_bss_2E2, no + 14, HUSPR_ATTR_DISPOFF); + HuSprPosSet(lbl_1_bss_2E2, no + 14, 24 + lbl_1_bss_2F4[arg0].x, (lbl_1_bss_2F4[arg0].y + (i * 38)) - 116); + HuWinDispOff(window); + } + else { + HuWinMesSet(window, mgInfoTbl[no].name_mess); + HuWinDispOn(window); + } + } + } + } + else { + for (i = 0; i < 7; i++) { + window = lbl_1_bss_352[arg0][i]; + if (i + arg2 >= lbl_1_bss_2638[arg1]) { + HuWinDispOff(window); + if (lbl_1_bss_2A6 == 2) { + HuSprAttrSet(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + } + } + else { + no = lbl_1_bss_264C[arg1][i + arg2]; + if (GWMGAvailGet(no + 401)) { + HuWinMesSet(window, mgInfoTbl[no].name_mess); + } + else { + HuWinMesSet(window, MAKE_MESSID(0x23, 0x00)); + } + HuWinDispOn(window); + if (lbl_1_bss_2A6 == 2) { + if (GWMGCustomGet(no + 401)) { + HuSprAttrReset(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + } + else { + HuSprAttrSet(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + } + } + } + } + } } void fn_1_A364(s16 arg0, float arg1, float arg2, s16 arg3) { - s16 i; - lbl_1_bss_2F4[arg0].x = arg1; - lbl_1_bss_2F4[arg0].y = arg2; - for(i=0; i<7; i++) { - s16 window = lbl_1_bss_352[arg0][i]; - HuWinPosSet(window, arg1-105, (arg2-136)+(i*38)); - HuWinPriSet(window, arg3); - if(lbl_1_bss_2A6 == 2) { - HuSprPosSet(lbl_1_bss_2E2, i+(arg0*7), arg1+24, arg2+(i*38)-116); - HuSprPriSet(lbl_1_bss_2E2, i+(arg0*7), arg3); - } - } - if(lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { - for(i=0; i<4; i++) { - HuSprPosSet(lbl_1_bss_2E2, i+14, arg1+24, arg2+(lbl_1_bss_30E[i]*38)-116); - HuSprPriSet(lbl_1_bss_2E2, i+14, arg3+1); - } - } - + s16 i; + lbl_1_bss_2F4[arg0].x = arg1; + lbl_1_bss_2F4[arg0].y = arg2; + for (i = 0; i < 7; i++) { + s16 window = lbl_1_bss_352[arg0][i]; + HuWinPosSet(window, arg1 - 105, (arg2 - 136) + (i * 38)); + HuWinPriSet(window, arg3); + if (lbl_1_bss_2A6 == 2) { + HuSprPosSet(lbl_1_bss_2E2, i + (arg0 * 7), arg1 + 24, arg2 + (i * 38) - 116); + HuSprPriSet(lbl_1_bss_2E2, i + (arg0 * 7), arg3); + } + } + if (lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { + for (i = 0; i < 4; i++) { + HuSprPosSet(lbl_1_bss_2E2, i + 14, arg1 + 24, arg2 + (lbl_1_bss_30E[i] * 38) - 116); + HuSprPriSet(lbl_1_bss_2E2, i + 14, arg3 + 1); + } + } } void fn_1_A624(void) { - s16 j; - s16 i; - - for(i=0; i<2; i++) { - for(j=0; j<7; j++) { - HuWinKill(lbl_1_bss_352[i][j]); - } - } + s16 j; + s16 i; + + for (i = 0; i < 2; i++) { + for (j = 0; j < 7; j++) { + HuWinKill(lbl_1_bss_352[i][j]); + } + } } void fn_1_A6A8(void) { - s16 spA[2]; - s16 i; - AnimData *anim; - s16 sprite; - s16 group; - s16 player; - s16 bank; - s16 iscom; - if(lbl_1_bss_2A4 == 1) { - spA[0] = 0; - spA[1] = 2; - for(i=0; i<4; i++) { - if(GWPlayerCfg[i].group >= 2) { - lbl_1_bss_340[i] = 0; - } else { - lbl_1_bss_340[spA[GWPlayerCfg[i].group]] = i; - spA[GWPlayerCfg[i].group]++; - } - } - } else { - for(i=0; i<4; i++) { - lbl_1_bss_340[i] = i; - } - } - for(i=0; i<4; i++) { - if(lbl_1_bss_34A[i]) { - HuSprGrpKill(lbl_1_bss_34A[i]); - } - player = lbl_1_bss_340[i]; - group = HuSprGrpCreate(2); - lbl_1_bss_34A[i] = group; - anim = HuSprAnimRead(HuDataReadNum(0x620010+GWPlayerCfg[player].character, MEMORY_DEFAULT_NUM)); - sprite = HuSprCreate(anim, 200, 0); - HuSprGrpMemberSet(group, 0, sprite); - if(iscom = GWPlayerCfg[player].iscom) { - anim = HuSprAnimRead(HuDataReadNum(0x620027, MEMORY_DEFAULT_NUM)); - bank = GWPlayerCfg[player].diff; - } else { - anim = HuSprAnimRead(HuDataReadNum(0x620026, MEMORY_DEFAULT_NUM)); - bank = lbl_1_bss_340[i]; - } - sprite = HuSprCreate(anim, 200, bank); - HuSprGrpMemberSet(group, 1, sprite); - HuSprPosSet(group, 1, 0, 20); - HuSprAttrSet(lbl_1_bss_34A[i], 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(lbl_1_bss_34A[i], 1, HUSPR_ATTR_DISPOFF); - } - if(lbl_1_bss_2E6) { - HuSprGrpKill(lbl_1_bss_2E6); - } - group = HuSprGrpCreate(5); - lbl_1_bss_2E6 = group; - anim = HuSprAnimRead(HuDataReadNum(0x62002D, MEMORY_DEFAULT_NUM)); - for(i=0; i<5; i++) { - sprite = HuSprCreate(anim, 5, 0); - HuSprGrpMemberSet(group, i, sprite); - HuSprPosSet(group, i, (i*16)-32, 0); - } - HuSprBankSet(group, 2, 10); - HuSprGrpPosSet(group, 284, 410); - fn_1_ADA0(0); - if(lbl_1_bss_2A6 == 2 && lbl_1_bss_2E2 == 0) { - anim = HuSprAnimRead(HuDataReadNum(0x62002B, MEMORY_DEFAULT_NUM)); - lbl_1_bss_2E2 = HuSprGrpCreate(18); - for(i=0; i<14; i++) { - sprite = HuSprCreate(anim, 8, 0); - HuSprGrpMemberSet(lbl_1_bss_2E2, i, sprite); - HuSprColorSet(lbl_1_bss_2E2, i, 255, 0, 0); - HuSprAttrSet(lbl_1_bss_2E2, i, HUSPR_ATTR_ADDCOL|HUSPR_ATTR_DISPOFF); - HuSprTPLvlSet(lbl_1_bss_2E2, i, 0.8f); - } - for(i=0; i<4; i++) { - anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_C0[i], MEMORY_DEFAULT_NUM)); - sprite = HuSprCreate(anim, 8, 0); - HuSprGrpMemberSet(lbl_1_bss_2E2, i+14, sprite); - HuSprAttrSet(lbl_1_bss_2E2, i+14, HUSPR_ATTR_DISPOFF); - } - HuSprGrpPosSet(lbl_1_bss_2E2, 0, 0); - } - lbl_1_data_A0 = -1; - (void)sprite; - + s16 spA[2]; + s16 i; + AnimData *anim; + s16 sprite; + s16 group; + s16 player; + s16 bank; + s16 iscom; + if (lbl_1_bss_2A4 == 1) { + spA[0] = 0; + spA[1] = 2; + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].group >= 2) { + lbl_1_bss_340[i] = 0; + } + else { + lbl_1_bss_340[spA[GWPlayerCfg[i].group]] = i; + spA[GWPlayerCfg[i].group]++; + } + } + } + else { + for (i = 0; i < 4; i++) { + lbl_1_bss_340[i] = i; + } + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_34A[i]) { + HuSprGrpKill(lbl_1_bss_34A[i]); + } + player = lbl_1_bss_340[i]; + group = HuSprGrpCreate(2); + lbl_1_bss_34A[i] = group; + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x10) + GWPlayerCfg[player].character, MEMORY_DEFAULT_NUM)); + sprite = HuSprCreate(anim, 200, 0); + HuSprGrpMemberSet(group, 0, sprite); + if (iscom = GWPlayerCfg[player].iscom) { + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x27), MEMORY_DEFAULT_NUM)); + bank = GWPlayerCfg[player].diff; + } + else { + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x26), MEMORY_DEFAULT_NUM)); + bank = lbl_1_bss_340[i]; + } + sprite = HuSprCreate(anim, 200, bank); + HuSprGrpMemberSet(group, 1, sprite); + HuSprPosSet(group, 1, 0, 20); + HuSprAttrSet(lbl_1_bss_34A[i], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_34A[i], 1, HUSPR_ATTR_DISPOFF); + } + if (lbl_1_bss_2E6) { + HuSprGrpKill(lbl_1_bss_2E6); + } + group = HuSprGrpCreate(5); + lbl_1_bss_2E6 = group; + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2D), MEMORY_DEFAULT_NUM)); + for (i = 0; i < 5; i++) { + sprite = HuSprCreate(anim, 5, 0); + HuSprGrpMemberSet(group, i, sprite); + HuSprPosSet(group, i, (i * 16) - 32, 0); + } + HuSprBankSet(group, 2, 10); + HuSprGrpPosSet(group, 284, 410); + fn_1_ADA0(0); + if (lbl_1_bss_2A6 == 2 && lbl_1_bss_2E2 == 0) { + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2B), MEMORY_DEFAULT_NUM)); + lbl_1_bss_2E2 = HuSprGrpCreate(18); + for (i = 0; i < 14; i++) { + sprite = HuSprCreate(anim, 8, 0); + HuSprGrpMemberSet(lbl_1_bss_2E2, i, sprite); + HuSprColorSet(lbl_1_bss_2E2, i, 255, 0, 0); + HuSprAttrSet(lbl_1_bss_2E2, i, HUSPR_ATTR_ADDCOL | HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_2E2, i, 0.8f); + } + for (i = 0; i < 4; i++) { + anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_C0[i], MEMORY_DEFAULT_NUM)); + sprite = HuSprCreate(anim, 8, 0); + HuSprGrpMemberSet(lbl_1_bss_2E2, i + 14, sprite); + HuSprAttrSet(lbl_1_bss_2E2, i + 14, HUSPR_ATTR_DISPOFF); + } + HuSprGrpPosSet(lbl_1_bss_2E2, 0, 0); + } + lbl_1_data_A0 = -1; + (void)sprite; } void fn_1_ACAC(s16 arg0, s16 arg1) { - s16 digit; - digit = arg0/10; - HuSprBankSet(lbl_1_bss_2E6, 0, digit); - arg0 -= digit*10; - HuSprBankSet(lbl_1_bss_2E6, 1, arg0); - digit = arg1/10; - HuSprBankSet(lbl_1_bss_2E6, 3, digit); - arg1 -= digit*10; - HuSprBankSet(lbl_1_bss_2E6, 4, arg1); + s16 digit; + digit = arg0 / 10; + HuSprBankSet(lbl_1_bss_2E6, 0, digit); + arg0 -= digit * 10; + HuSprBankSet(lbl_1_bss_2E6, 1, arg0); + digit = arg1 / 10; + HuSprBankSet(lbl_1_bss_2E6, 3, digit); + arg1 -= digit * 10; + HuSprBankSet(lbl_1_bss_2E6, 4, arg1); } void fn_1_ADA0(s32 arg0) { - s16 i; - for(i=0; i<5; i++) { - if(arg0) { - HuSprAttrReset(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); - } else { - HuSprAttrSet(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); - } - } + s16 i; + for (i = 0; i < 5; i++) { + if (arg0) { + HuSprAttrReset(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); + } + else { + HuSprAttrSet(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); + } + } } void fn_1_AED0(void); void fn_1_AE20(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { - lbl_1_bss_2F0 = arg0; - lbl_1_bss_2E8 = arg1; - lbl_1_bss_2EE = arg2; - lbl_1_bss_2EC = arg3; - HuPrcChildCreate(fn_1_AED0, 100, 12288, 0, HuPrcCurrentGet()); + lbl_1_bss_2F0 = arg0; + lbl_1_bss_2E8 = arg1; + lbl_1_bss_2EE = arg2; + lbl_1_bss_2EC = arg3; + HuPrcChildCreate(fn_1_AED0, 100, 12288, 0, HuPrcCurrentGet()); } void fn_1_AED0(void) { - s16 temp_r31; - s16 temp_r30; - AnimData *temp_r29; - s16 temp_r28; - s16 temp_r27; - s32 temp_r26; - temp_r27 = lbl_1_data_A0; - if(lbl_1_bss_2F0 < 0) { - for(temp_r30=1; temp_r30<=lbl_1_bss_2E8; temp_r30++) { - HuSprGrpTPLvlSet(temp_r27, 1.0-(temp_r30/lbl_1_bss_2E8)); - HuPrcVSleep(); - } - if(temp_r27 != -1) { - HuSprGrpKill(temp_r27); - } - lbl_1_data_A0 = -1; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } - } - lbl_1_data_A0 = HuSprGrpCreate(4); - temp_r26 = mgInfoTbl[lbl_1_bss_2F0].mg_pic[0]; - if(GWMGAvailGet(lbl_1_bss_2F0+401)) { - temp_r29 = HuSprAnimRead(HuDataReadNumHeapShortForce(temp_r26, MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { - temp_r29 = HuSprAnimReadFile(0x62002C); - } - temp_r28 = HuSprCreate(temp_r29, 200, 0); - HuSprGrpMemberSet(lbl_1_data_A0, 0, temp_r28); - HuSprGrpPosSet(lbl_1_data_A0, lbl_1_bss_2EE, lbl_1_bss_2EC); - HuSprGrpScaleSet(lbl_1_data_A0, 0.6f, 0.6f); - temp_r31 = 0; - if(mgInfoTbl[lbl_1_bss_2F0].flag & 0x1) { - temp_r29 = HuSprAnimReadFile(0x620024); - temp_r28 = HuSprCreate(temp_r29, 190, 0); - HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); - HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); - HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); - temp_r31++; - } - if(mgInfoTbl[lbl_1_bss_2F0].flag & 0x2) { - temp_r29 = HuSprAnimReadFile(0x620023); - temp_r28 = HuSprCreate(temp_r29, 190, 0); - HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); - HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); - HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); - temp_r31++; - } - if(GWMGCustomGet(lbl_1_bss_2F0+401)) { - temp_r29 = HuSprAnimReadFile(0x620022); - temp_r28 = HuSprCreate(temp_r29, 190, 0); - HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); - HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); - HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); - temp_r31++; - } - for(temp_r30=1; temp_r30<=lbl_1_bss_2E8; temp_r30++) { - if(temp_r27 != -1) { - HuSprGrpTPLvlSet(temp_r27, 1.0-(temp_r30/lbl_1_bss_2E8)); - } - HuSprGrpTPLvlSet(lbl_1_data_A0, temp_r30/lbl_1_bss_2E8); - HuPrcVSleep(); - } - if(temp_r27 != -1) { - HuSprGrpKill(temp_r27); - } - lbl_1_bss_348 = lbl_1_bss_2F0; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 temp_r31; + s16 temp_r30; + AnimData *temp_r29; + s16 temp_r28; + s16 temp_r27; + s32 temp_r26; + temp_r27 = lbl_1_data_A0; + if (lbl_1_bss_2F0 < 0) { + for (temp_r30 = 1; temp_r30 <= lbl_1_bss_2E8; temp_r30++) { + HuSprGrpTPLvlSet(temp_r27, 1.0 - (temp_r30 / lbl_1_bss_2E8)); + HuPrcVSleep(); + } + if (temp_r27 != -1) { + HuSprGrpKill(temp_r27); + } + lbl_1_data_A0 = -1; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } + } + lbl_1_data_A0 = HuSprGrpCreate(4); + temp_r26 = mgInfoTbl[lbl_1_bss_2F0].mg_pic[0]; + if (GWMGAvailGet(lbl_1_bss_2F0 + 401)) { + temp_r29 = HuSprAnimRead(HuDataReadNumHeapShortForce(temp_r26, MEMORY_DEFAULT_NUM, HEAP_DATA)); + } + else { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2C)); + } + temp_r28 = HuSprCreate(temp_r29, 200, 0); + HuSprGrpMemberSet(lbl_1_data_A0, 0, temp_r28); + HuSprGrpPosSet(lbl_1_data_A0, lbl_1_bss_2EE, lbl_1_bss_2EC); + HuSprGrpScaleSet(lbl_1_data_A0, 0.6f, 0.6f); + temp_r31 = 0; + if (mgInfoTbl[lbl_1_bss_2F0].flag & 0x1) { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x24)); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31 + 1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31 + 1, (355.0 / 3.0) - ((temp_r31 * 50) * (100.0 / 60.0)), (355.0f / 3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31 + 1, 100.0f / 60.0f, 100.0f / 60.0f); + temp_r31++; + } + if (mgInfoTbl[lbl_1_bss_2F0].flag & 0x2) { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x23)); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31 + 1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31 + 1, (355.0 / 3.0) - ((temp_r31 * 50) * (100.0 / 60.0)), (355.0f / 3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31 + 1, 100.0f / 60.0f, 100.0f / 60.0f); + temp_r31++; + } + if (GWMGCustomGet(lbl_1_bss_2F0 + 401)) { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x22)); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31 + 1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31 + 1, (355.0 / 3.0) - ((temp_r31 * 50) * (100.0 / 60.0)), (355.0f / 3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31 + 1, 100.0f / 60.0f, 100.0f / 60.0f); + temp_r31++; + } + for (temp_r30 = 1; temp_r30 <= lbl_1_bss_2E8; temp_r30++) { + if (temp_r27 != -1) { + HuSprGrpTPLvlSet(temp_r27, 1.0 - (temp_r30 / lbl_1_bss_2E8)); + } + HuSprGrpTPLvlSet(lbl_1_data_A0, temp_r30 / lbl_1_bss_2E8); + HuPrcVSleep(); + } + if (temp_r27 != -1) { + HuSprGrpKill(temp_r27); + } + lbl_1_bss_348 = lbl_1_bss_2F0; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } s16 fn_1_B5A8(s16 *arg0, s16 *arg1) { - s16 mgNo = GWSystem.mg_next; - s16 mgType = mgInfoTbl[mgNo].type; - s16 ret; - s16 i; - for(i=ret=0; i= 7 && i+7 >= lbl_1_bss_2638[mgType]) { - i = lbl_1_bss_2638[mgType]-7; - } - *arg0 = i; - if(lbl_1_bss_2638[mgType] < 7) { - *arg0 = 0; - } - *arg1 = *arg1-*arg0; - return ret; + s16 mgNo = GWSystem.mg_next; + s16 mgType = mgInfoTbl[mgNo].type; + s16 ret; + s16 i; + for (i = ret = 0; i < lbl_1_bss_316; i++) { + if (mgType == lbl_1_bss_318[i][0]) { + ret = i; + break; + } + } + for (i = 0; i < lbl_1_bss_2638[mgType]; i++) { + if (mgNo == lbl_1_bss_264C[mgType][i]) { + break; + } + } + *arg1 = i; + i = i - 3; + if (i < 0) { + i = 0; + } + if (lbl_1_bss_2638[mgType] >= 7 && i + 7 >= lbl_1_bss_2638[mgType]) { + i = lbl_1_bss_2638[mgType] - 7; + } + *arg0 = i; + if (lbl_1_bss_2638[mgType] < 7) { + *arg0 = 0; + } + *arg1 = *arg1 - *arg0; + return ret; } void fn_1_B770(void) { - if(lbl_1_bss_2A6 == 2) { - lbl_1_bss_316 = 5; - lbl_1_bss_318[0][0] = 0; - lbl_1_bss_318[0][1] = 5; - lbl_1_bss_318[1][0] = 1; - lbl_1_bss_318[1][1] = 6; - lbl_1_bss_318[2][0] = 2; - lbl_1_bss_318[2][1] = 7; - lbl_1_bss_318[3][0] = 4; - lbl_1_bss_318[3][1] = 8; - lbl_1_bss_318[4][0] = 9; - lbl_1_bss_318[4][1] = 11; - fn_1_B9B8(); - } else if(lbl_1_bss_2A4 == 0 || lbl_1_bss_2A6 == 1) { - lbl_1_bss_316 = 7; - lbl_1_bss_318[0][0] = 0; - lbl_1_bss_318[0][1] = 5; - lbl_1_bss_318[1][0] = 1; - lbl_1_bss_318[1][1] = 6; - lbl_1_bss_318[2][0] = 2; - lbl_1_bss_318[2][1] = 7; - lbl_1_bss_318[3][0] = 4; - lbl_1_bss_318[3][1] = 8; - lbl_1_bss_318[4][0] = 3; - lbl_1_bss_318[4][1] = 9; - lbl_1_bss_318[5][0] = 6; - lbl_1_bss_318[5][1] = 10; - lbl_1_bss_318[6][0] = 8; - lbl_1_bss_318[6][1] = 12; - } else if(lbl_1_bss_2A4 == 1) { - lbl_1_bss_316 = 1; - lbl_1_bss_318[0][0] = 2; - lbl_1_bss_318[0][1] = 7; - } + if (lbl_1_bss_2A6 == 2) { + lbl_1_bss_316 = 5; + lbl_1_bss_318[0][0] = 0; + lbl_1_bss_318[0][1] = 5; + lbl_1_bss_318[1][0] = 1; + lbl_1_bss_318[1][1] = 6; + lbl_1_bss_318[2][0] = 2; + lbl_1_bss_318[2][1] = 7; + lbl_1_bss_318[3][0] = 4; + lbl_1_bss_318[3][1] = 8; + lbl_1_bss_318[4][0] = 9; + lbl_1_bss_318[4][1] = 11; + fn_1_B9B8(); + } + else if (lbl_1_bss_2A4 == 0 || lbl_1_bss_2A6 == 1) { + lbl_1_bss_316 = 7; + lbl_1_bss_318[0][0] = 0; + lbl_1_bss_318[0][1] = 5; + lbl_1_bss_318[1][0] = 1; + lbl_1_bss_318[1][1] = 6; + lbl_1_bss_318[2][0] = 2; + lbl_1_bss_318[2][1] = 7; + lbl_1_bss_318[3][0] = 4; + lbl_1_bss_318[3][1] = 8; + lbl_1_bss_318[4][0] = 3; + lbl_1_bss_318[4][1] = 9; + lbl_1_bss_318[5][0] = 6; + lbl_1_bss_318[5][1] = 10; + lbl_1_bss_318[6][0] = 8; + lbl_1_bss_318[6][1] = 12; + } + else if (lbl_1_bss_2A4 == 1) { + lbl_1_bss_316 = 1; + lbl_1_bss_318[0][0] = 2; + lbl_1_bss_318[0][1] = 7; + } } void fn_1_B9B8(void) { - s16 customNum; - s16 i; - for(i=customNum=0; i<4; i++) { - s16 j; - lbl_1_bss_264C[9][customNum++] = -i-1; - for(j=0; j= 4 && customNum[1] >= 3 && customNum[2] >= 3 && customNum[3] >= 2) { - HuWinMesMaxSizeGet(1, winSize, 0x280030); - window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); - windowP = &winData[window]; - windowP->active_pad = 1; - HuWinMesPalSet(window, 7, 0, 0, 0); - HuWinPriSet(window, 3); - HuWinExAnimIn(window); - HuWinMesSet(window, 0x280030); - HuWinMesWait(window); - HuWinExAnimOut(window); - HuWinExCleanup(window); - return 1; - } else { - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 0); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 1); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 2); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 3); - HuWinMesMaxSizeGet(3, winSize, 0x28002B, 0x28002C, 0x28002D); - window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); - windowP = &winData[window]; - windowP->active_pad = 1; - HuWinMesPalSet(window, 7, 0, 0, 0); - HuWinPriSet(window, 3); - HuWinExAnimIn(window); - for(j=0; j<4; j++) { - strcpy(&messInsert[j][0], messInsertBase); - } - for(j=0; j<4; j++) { - if(customNum[j] >= customMinNum[j]) { - messInsert[j][1] = 5; - } else { - messInsert[j][2] = (customMinNum[j]+'0'-customNum[j]); - } - HuWinInsertMesSet(window, MAKE_MESSID_PTR(&messInsert[j][0]), (s16)j); - } - HuWinMesSet(window, 0x28002C); - HuWinMesWait(window); - HuWinMesSet(window, 0x28002B); - HuWinMesWait(window); - HuWinMesSet(window, 0x28002D); - HuWinMesWait(window); - choice = HuWinChoiceGet(window, 0); - HuWinExAnimOut(window); - HuWinExCleanup(window); - if(choice == 0) { - return 0; - } else { - return 1; - } - } + char messInsert[4][6]; + s16 customNum[4]; + float winSize[2]; + static char messInsertBase[6] = { "\x1E\x03" + "0" + "\x1E\x08" }; + static s16 customMinNum[4] = { 4, 3, 3, 2 }; + s16 window; + s16 j; + s16 i; + WindowData *windowP; + s16 choice; + for (i = 0; i < 4; i++) { + customNum[i] = 0; + for (j = 0; j < lbl_1_bss_20AC[lbl_1_data_A2[i]]; j++) { + if (GWMGCustomGet(lbl_1_bss_20C0[lbl_1_data_A2[i]][j] + 401)) { + customNum[i]++; + } + } + } + if (customNum[0] >= 4 && customNum[1] >= 3 && customNum[2] >= 3 && customNum[3] >= 2) { + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x28, 0x30)); + window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); + windowP = &winData[window]; + windowP->active_pad = 1; + HuWinMesPalSet(window, 7, 0, 0, 0); + HuWinPriSet(window, 3); + HuWinExAnimIn(window); + HuWinMesSet(window, MAKE_MESSID(0x28, 0x30)); + HuWinMesWait(window); + HuWinExAnimOut(window); + HuWinExCleanup(window); + return 1; + } + else { + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 1); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 2); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 3); + HuWinMesMaxSizeGet(3, winSize, MAKE_MESSID(0x28, 0x2B), MAKE_MESSID(0x28, 0x2C), MAKE_MESSID(0x28, 0x2D)); + window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); + windowP = &winData[window]; + windowP->active_pad = 1; + HuWinMesPalSet(window, 7, 0, 0, 0); + HuWinPriSet(window, 3); + HuWinExAnimIn(window); + for (j = 0; j < 4; j++) { + strcpy(&messInsert[j][0], messInsertBase); + } + for (j = 0; j < 4; j++) { + if (customNum[j] >= customMinNum[j]) { + messInsert[j][1] = 5; + } + else { + messInsert[j][2] = (customMinNum[j] + '0' - customNum[j]); + } + HuWinInsertMesSet(window, MAKE_MESSID_PTR(&messInsert[j][0]), (s16)j); + } + HuWinMesSet(window, MAKE_MESSID(0x28, 0x2C)); + HuWinMesWait(window); + HuWinMesSet(window, MAKE_MESSID(0x28, 0x2B)); + HuWinMesWait(window); + HuWinMesSet(window, MAKE_MESSID(0x28, 0x2D)); + HuWinMesWait(window); + choice = HuWinChoiceGet(window, 0); + HuWinExAnimOut(window); + HuWinExCleanup(window); + if (choice == 0) { + return 0; + } + else { + return 1; + } + } } void fn_1_BFA0(s16 arg0) { - s16 i; - for(i=0; i<4; i++) { - HuSprGrpTPLvlSet(lbl_1_bss_34A[i], 1.0f); - } - if(mgInfoTbl[arg0].ovl == OVL_M450) { - HuSprGrpTPLvlSet(lbl_1_bss_34A[1], 0.0f); - } - if(mgInfoTbl[arg0].type == 6 || mgInfoTbl[arg0].type == 8) { - HuSprGrpTPLvlSet(lbl_1_bss_34A[2], 0.0f); - HuSprGrpTPLvlSet(lbl_1_bss_34A[3], 0.0f); - return; - } + s16 i; + for (i = 0; i < 4; i++) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[i], 1.0f); + } + if (mgInfoTbl[arg0].ovl == OVL_M450) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[1], 0.0f); + } + if (mgInfoTbl[arg0].type == 6 || mgInfoTbl[arg0].type == 8) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[2], 0.0f); + HuSprGrpTPLvlSet(lbl_1_bss_34A[3], 0.0f); + return; + } } -float lbl_1_data_E0[2][4] = { - -132, -12, 60, 132, - -132, -60, 60, 132 -}; +float lbl_1_data_E0[2][4] = { -132, -12, 60, 132, -132, -60, 60, 132 }; -u8 lbl_1_data_100[16] = { - 0, 1, 2, 3, - 1, 0, 2, 3, - 2, 0, 1, 3, - 3, 0, 1, 2 -}; +u8 lbl_1_data_100[16] = { 0, 1, 2, 3, 1, 0, 2, 3, 2, 0, 1, 3, 3, 0, 1, 2 }; u8 lbl_1_data_110[12] = { - 0, 1, 2, 3, - 0, 2, 1, 3, - 0, 3, 1, 2, + 0, + 1, + 2, + 3, + 0, + 2, + 1, + 3, + 0, + 3, + 1, + 2, }; s32 fn_1_C0C8(s32 arg0) { - s16 temp_r31; - s16 temp_r30; - float *temp_r29; - s16 temp_r28; - AnimData *temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - WindowData *temp_r22; - AnimData *temp_r21; - - float temp_f31; - float temp_f30; - float temp_f29; - if(mgTypeCurr == 1) { - temp_r29 = &lbl_1_data_E0[0][0]; - temp_f29 = 216; - } else { - temp_r29 = &lbl_1_data_E0[1][0]; - temp_f29 = 288; - } - temp_r28 = HuSprGrpCreate(16); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r27 = HuSprAnimReadFile(lbl_1_bss_8.unk24[temp_r31].unk68+0x620067); - temp_r26 = HuSprCreate(temp_r27, 4, 0); - HuSprGrpMemberSet(temp_r28, 4*temp_r31, temp_r26); - HuSprPosSet(temp_r28, 4*temp_r31, temp_r29[temp_r31], 0); - if(mgTypeCurr == 1) { - if(temp_r31 == 0) { - temp_r27 = HuSprAnimReadFile(0x620075); - } else { - temp_r27 = HuSprAnimReadFile(0x620076); - } - } else { - if(temp_r31 < 2) { - temp_r27 = HuSprAnimReadFile(0x620075); - } else { - temp_r27 = HuSprAnimReadFile(0x620076); - } - } - temp_r26 = HuSprCreate(temp_r27, 3, 0); - HuSprGrpMemberSet(temp_r28, (4*temp_r31)+1, temp_r26); - HuSprPosSet(temp_r28, (4*temp_r31)+1, temp_r29[temp_r31], 0); - if(GWPlayerCfg[temp_r31].iscom) { - temp_r27 = HuSprAnimReadFile(0x620074); - } else { - temp_r27 = HuSprAnimReadFile(0x620070+GWPlayerCfg[temp_r31].pad_idx); - } - temp_r26 = HuSprCreate(temp_r27, 2, 1); - HuSprGrpMemberSet(temp_r28, (4*temp_r31)+2, temp_r26); - HuSprPosSet(temp_r28, (4*temp_r31)+2, temp_r29[temp_r31], 0); - temp_r27 = HuSprAnimReadFile(0x62007B); - temp_r26 = HuSprCreate(temp_r27, 2, GWPlayerCfg[temp_r31].diff); - HuSprGrpMemberSet(temp_r28, (4*temp_r31)+3, temp_r26); - HuSprPosSet(temp_r28, (4*temp_r31)+3, temp_r29[temp_r31], 38); - if(!GWPlayerCfg[temp_r31].iscom) { - HuSprAttrSet(temp_r28, (4*temp_r31)+3, HUSPR_ATTR_DISPOFF); - } - } - temp_r25 = HuSprGrpCreate(8); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x620065, MEMORY_DEFAULT_NUM)); - temp_r21 = HuSprAnimRead(HuDataReadNum(0x620066, MEMORY_DEFAULT_NUM)); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r26 = HuSprCreate(temp_r27, 3, temp_r31); - HuSprGrpMemberSet(temp_r25, (temp_r31*2), temp_r26); - HuSprPosSet(temp_r25, (temp_r31*2), ((temp_r31%2)*380)-190, ((temp_r31/2)*156)-68); - temp_r26 = HuSprCreate(temp_r21, 4, temp_r31); - HuSprGrpMemberSet(temp_r25, (temp_r31*2)+1, temp_r26); - HuSprTPLvlSet(temp_r25, (temp_r31*2)+1, 0.5f); - HuSprPosSet(temp_r25, (temp_r31*2)+1, ((temp_r31%2)*380)-190, ((temp_r31/2)*156)-60); - } - espTPLvlSet(lbl_1_bss_2C2C[22], 0.9f); - espAttrReset(lbl_1_bss_2C2C[22], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[24], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[23], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[25], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[26], HUSPR_ATTR_DISPOFF); - espBankSet(lbl_1_bss_2C2C[25], 1); - espPosSet(lbl_1_bss_2C2C[22], 288, 240); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 20) { - temp_f30 = temp_r31/20.0; - temp_f31 = -300+(560*sind(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } else { - temp_f30 = (temp_r31-20)/10.0; - temp_f31 = 240+(20*cosd(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } - HuPrcVSleep(); - } - temp_r24 = fn_1_25CA8(0x1A0020); - temp_r22 = &winData[temp_r24]; - HuWinPriSet(temp_r24, 5); - HuWinPosSet(temp_r24, (576.0f-temp_r22->w)/2.0f, 310.0f); - temp_r30 = 0; - temp_r23 = 0; - while(1) { - s16 spC; - HuPrcVSleep(); - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - goto loop_end; - } - spC = 0; - if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) { - HuAudFXPlay(772); - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[26], 108-(10*sind(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - temp_r30--; - if(mgTypeCurr == 1) { - if(temp_r30 < 0) { - temp_r30 = 3; - } - if(temp_r30 >= 4) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } else { - if(temp_r30 < 0) { - temp_r30 = 2; - } - if(temp_r30 >= 3) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[26], 108-(10*cosd(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - } else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { - HuAudFXPlay(772); - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[25], 468+(10*sind(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - temp_r30++; - if(mgTypeCurr == 1) { - if(temp_r30 < 0) { - temp_r30 = 3; - } - if(temp_r30 >= 4) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } else { - if(temp_r30 < 0) { - temp_r30 = 2; - } - if(temp_r30 >= 3) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[25], 468+(10*cosd(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - } - if(HuPadBtnDown[0] & (PAD_BUTTON_A|PAD_BUTTON_START)) { - break; - } - } - HuAudFXPlay(773); - if(mgTypeCurr == 1) { - GWPlayerCfg[lbl_1_data_100[temp_r30*4]].group = 0; - for(temp_r31=1; temp_r31<4; temp_r31++) { - GWPlayerCfg[lbl_1_data_100[(temp_r30*4)+temp_r31]].group = 1; - } - } else { - for(temp_r31=0; temp_r31<2; temp_r31++) { - GWPlayerCfg[lbl_1_data_110[(temp_r30*4)+temp_r31]].group = 0; - } - for(temp_r31=2; temp_r31<4; temp_r31++) { - GWPlayerCfg[lbl_1_data_110[(temp_r30*4)+temp_r31]].group = 1; - } - } - if(arg0 != 0) { - temp_r23 = 1; - } else { - return 1; - } - loop_end: - fn_1_25E74(temp_r24); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 10) { - temp_f30 = temp_r31/10.0; - temp_f31 = 240+(20*sind(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } else { - temp_f30 = (temp_r31-10)/20.0; - temp_f31 = -300+(560*cosd(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } - HuPrcVSleep(); - } - HuSprGrpKill(temp_r28); - HuSprGrpKill(temp_r25); - return temp_r23; -} \ No newline at end of file + s16 temp_r31; + s16 temp_r30; + float *temp_r29; + s16 temp_r28; + AnimData *temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + WindowData *temp_r22; + AnimData *temp_r21; + + float temp_f31; + float temp_f30; + float temp_f29; + if (mgTypeCurr == 1) { + temp_r29 = &lbl_1_data_E0[0][0]; + temp_f29 = 216; + } + else { + temp_r29 = &lbl_1_data_E0[1][0]; + temp_f29 = 288; + } + temp_r28 = HuSprGrpCreate(16); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r27 = HuSprAnimReadFile(lbl_1_bss_8.unk24[temp_r31].unk68 + DATA_MAKE_NUM(DATADIR_MGMODE, 0x67)); + temp_r26 = HuSprCreate(temp_r27, 4, 0); + HuSprGrpMemberSet(temp_r28, 4 * temp_r31, temp_r26); + HuSprPosSet(temp_r28, 4 * temp_r31, temp_r29[temp_r31], 0); + if (mgTypeCurr == 1) { + if (temp_r31 == 0) { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x75)); + } + else { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x76)); + } + } + else { + if (temp_r31 < 2) { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x75)); + } + else { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x76)); + } + } + temp_r26 = HuSprCreate(temp_r27, 3, 0); + HuSprGrpMemberSet(temp_r28, (4 * temp_r31) + 1, temp_r26); + HuSprPosSet(temp_r28, (4 * temp_r31) + 1, temp_r29[temp_r31], 0); + if (GWPlayerCfg[temp_r31].iscom) { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x74)); + } + else { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x70) + GWPlayerCfg[temp_r31].pad_idx); + } + temp_r26 = HuSprCreate(temp_r27, 2, 1); + HuSprGrpMemberSet(temp_r28, (4 * temp_r31) + 2, temp_r26); + HuSprPosSet(temp_r28, (4 * temp_r31) + 2, temp_r29[temp_r31], 0); + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x7B)); + temp_r26 = HuSprCreate(temp_r27, 2, GWPlayerCfg[temp_r31].diff); + HuSprGrpMemberSet(temp_r28, (4 * temp_r31) + 3, temp_r26); + HuSprPosSet(temp_r28, (4 * temp_r31) + 3, temp_r29[temp_r31], 38); + if (!GWPlayerCfg[temp_r31].iscom) { + HuSprAttrSet(temp_r28, (4 * temp_r31) + 3, HUSPR_ATTR_DISPOFF); + } + } + temp_r25 = HuSprGrpCreate(8); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x65), MEMORY_DEFAULT_NUM)); + temp_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x66), MEMORY_DEFAULT_NUM)); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r26 = HuSprCreate(temp_r27, 3, temp_r31); + HuSprGrpMemberSet(temp_r25, (temp_r31 * 2), temp_r26); + HuSprPosSet(temp_r25, (temp_r31 * 2), ((temp_r31 % 2) * 380) - 190, ((temp_r31 / 2) * 156) - 68); + temp_r26 = HuSprCreate(temp_r21, 4, temp_r31); + HuSprGrpMemberSet(temp_r25, (temp_r31 * 2) + 1, temp_r26); + HuSprTPLvlSet(temp_r25, (temp_r31 * 2) + 1, 0.5f); + HuSprPosSet(temp_r25, (temp_r31 * 2) + 1, ((temp_r31 % 2) * 380) - 190, ((temp_r31 / 2) * 156) - 60); + } + espTPLvlSet(lbl_1_bss_2C2C[22], 0.9f); + espAttrReset(lbl_1_bss_2C2C[22], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[24], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[23], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[25], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[26], HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_bss_2C2C[25], 1); + espPosSet(lbl_1_bss_2C2C[22], 288, 240); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 20) { + temp_f30 = temp_r31 / 20.0; + temp_f31 = -300 + (560 * sind(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + else { + temp_f30 = (temp_r31 - 20) / 10.0; + temp_f31 = 240 + (20 * cosd(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + HuPrcVSleep(); + } + temp_r24 = fn_1_25CA8(0x1A0020); + temp_r22 = &winData[temp_r24]; + HuWinPriSet(temp_r24, 5); + HuWinPosSet(temp_r24, (576.0f - temp_r22->w) / 2.0f, 310.0f); + temp_r30 = 0; + temp_r23 = 0; + while (1) { + s16 spC; + HuPrcVSleep(); + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + goto loop_end; + } + spC = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + HuAudFXPlay(772); + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[26], 108 - (10 * sind(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + temp_r30--; + if (mgTypeCurr == 1) { + if (temp_r30 < 0) { + temp_r30 = 3; + } + if (temp_r30 >= 4) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + else { + if (temp_r30 < 0) { + temp_r30 = 2; + } + if (temp_r30 >= 3) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[26], 108 - (10 * cosd(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + } + else if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + HuAudFXPlay(772); + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[25], 468 + (10 * sind(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + temp_r30++; + if (mgTypeCurr == 1) { + if (temp_r30 < 0) { + temp_r30 = 3; + } + if (temp_r30 >= 4) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + else { + if (temp_r30 < 0) { + temp_r30 = 2; + } + if (temp_r30 >= 3) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[25], 468 + (10 * cosd(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + } + if (HuPadBtnDown[0] & (PAD_BUTTON_A | PAD_BUTTON_START)) { + break; + } + } + HuAudFXPlay(773); + if (mgTypeCurr == 1) { + GWPlayerCfg[lbl_1_data_100[temp_r30 * 4]].group = 0; + for (temp_r31 = 1; temp_r31 < 4; temp_r31++) { + GWPlayerCfg[lbl_1_data_100[(temp_r30 * 4) + temp_r31]].group = 1; + } + } + else { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + GWPlayerCfg[lbl_1_data_110[(temp_r30 * 4) + temp_r31]].group = 0; + } + for (temp_r31 = 2; temp_r31 < 4; temp_r31++) { + GWPlayerCfg[lbl_1_data_110[(temp_r30 * 4) + temp_r31]].group = 1; + } + } + if (arg0 != 0) { + temp_r23 = 1; + } + else { + return 1; + } +loop_end: + fn_1_25E74(temp_r24); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 10) { + temp_f30 = temp_r31 / 10.0; + temp_f31 = 240 + (20 * sind(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + else { + temp_f30 = (temp_r31 - 10) / 20.0; + temp_f31 = -300 + (560 * cosd(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + HuPrcVSleep(); + } + HuSprGrpKill(temp_r28); + HuSprGrpKill(temp_r25); + return temp_r23; +} diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index 763a8cd3..b4565103 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -1321,7 +1321,7 @@ void fn_1_6C18(void) HuSprInit(); espInit(); HuPrcVSleep(); - sprite = espEntry(0x860020, 5000, 0); + sprite = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 0x20), 5000, 0); espPosSet(sprite, 288.0, 240.0); espAttrReset(sprite, 4); Hu3DBGColorSet(0, 0, 0); @@ -1337,4 +1337,4 @@ void fn_1_6C18(void) while(WipeStatGet()) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/mgmodedll/minigame.c b/src/REL/mgmodedll/minigame.c index fee4e1a9..34a304a9 100644 --- a/src/REL/mgmodedll/minigame.c +++ b/src/REL/mgmodedll/minigame.c @@ -1,14 +1,13 @@ #include "REL/mgmodedll.h" -#include "game/gamework_data.h" -#include "game/gamework.h" -#include "game/wipe.h" #include "game/audio.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/wipe.h" #include "game/chrman.h" #include "math.h" - s16 lbl_1_bss_2C80[13]; s16 lbl_1_bss_2C66[13]; s16 lbl_1_bss_2C2C[29]; @@ -24,25 +23,25 @@ s16 lbl_1_bss_20AA; s16 lbl_1_bss_20A8; s32 lbl_1_data_9C0[8] = { - 0x005F0000, - 0x001A0000, - 0x006D0000, - 0x008A0000, - 0x00850000, - 0x00110000, - 0x000D0000, - 0x00810000 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), }; s32 lbl_1_data_9E0[8] = { - 0x005E0000, - 0x00190000, - 0x006C0000, - 0x00890000, - 0x00840000, - 0x00100000, - 0x000C0000, - 0x00800000 + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1, }; s16 lbl_1_data_A00 = -1; @@ -51,111 +50,111 @@ void fn_1_26C54(s16 layer); void fn_1_26C28(void) { - Hu3DLayerHookSet(2, fn_1_26C54); + Hu3DLayerHookSet(2, fn_1_26C54); } void fn_1_26C54(s16 layer) { - Mtx44 proj; - Mtx modelview; - Vec pos, target, up; - GXColor color; - CameraData *camera = &Hu3DCamera[0]; - MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); - GXSetProjection(proj, GX_PERSPECTIVE); - GXSetViewport(0, 0, 640, 480, 0, 1); - GXSetScissor(0, 0, 640, 480); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - color.a = 255; - GXSetTevColor(GX_TEVREG0, color); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumTexGens(0); - GXSetNumTevStages(01); - GXSetCullMode(GX_CULL_NONE); - GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0); - GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); - pos.x = pos.y = pos.z = 0; - target.x = target.y = 0; - target.z = -100; - up.x = up.z = 0; - up.y = 1; - MTXLookAt(modelview, &pos, &up, &target); - GXLoadPosMtxImm(modelview, GX_PNMTX0); - pos.x = (10000.0f*(-sin(camera->fov/2.0f)))*1.2f; - pos.y = (10000.0f*(-sin(camera->fov/2.0f)))*(5.0f/6.0f); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-pos.x, -pos.y, -10000.0f); - GXPosition3f32(pos.x, -pos.y, -10000.0f); - GXPosition3f32(pos.x, pos.y, -10000.0f); - GXPosition3f32(-pos.x, pos.y, -10000.0f); - GXEnd(); + Mtx44 proj; + Mtx modelview; + Vec pos, target, up; + GXColor color; + CameraData *camera = &Hu3DCamera[0]; + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); + GXSetProjection(proj, GX_PERSPECTIVE); + GXSetViewport(0, 0, 640, 480, 0, 1); + GXSetScissor(0, 0, 640, 480); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + color.a = 255; + GXSetTevColor(GX_TEVREG0, color); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(0); + GXSetNumTevStages(01); + GXSetCullMode(GX_CULL_NONE); + GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + pos.x = pos.y = pos.z = 0; + target.x = target.y = 0; + target.z = -100; + up.x = up.z = 0; + up.y = 1; + MTXLookAt(modelview, &pos, &up, &target); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + pos.x = (10000.0f * (-sin(camera->fov / 2.0f))) * 1.2f; + pos.y = (10000.0f * (-sin(camera->fov / 2.0f))) * (5.0f / 6.0f); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-pos.x, -pos.y, -10000.0f); + GXPosition3f32(pos.x, -pos.y, -10000.0f); + GXPosition3f32(pos.x, pos.y, -10000.0f); + GXPosition3f32(-pos.x, pos.y, -10000.0f); + GXEnd(); } void fn_1_27080(void) { - s16 i; - s32 status; - CharModelDataClose(-1); - CharKill(-1); - for(i=0; i<4; i++) { - status = HuDataDirReadAsync(lbl_1_data_9C0[GWPlayerCfg[i].character]); - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - CharARAMOpen(GWPlayerCfg[i].character); - } - for(i=0; i<2; i++) { - status = HuDataDirReadAsync(lbl_1_data_9E0[GWPlayerCfg[i].character]); - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - } - lbl_1_bss_20AA = 0; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 i; + s32 status; + CharModelDataClose(-1); + CharKill(-1); + for (i = 0; i < 4; i++) { + status = HuDataDirReadAsync(lbl_1_data_9C0[GWPlayerCfg[i].character]); + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + CharARAMOpen(GWPlayerCfg[i].character); + } + for (i = 0; i < 2; i++) { + status = HuDataDirReadAsync(lbl_1_data_9E0[GWPlayerCfg[i].character]); + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + } + lbl_1_bss_20AA = 0; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } - s16 fn_1_271B4(s16 mgNo, s16 x, s16 y) { - s16 time; - AnimData *anim; - s16 sprite; - s32 mgpic; - if(mgNo == -1) { - if(lbl_1_data_A00 == -1) { + s16 time; + AnimData *anim; + s16 sprite; + s32 mgpic; + if (mgNo == -1) { + if (lbl_1_data_A00 == -1) { return; - } - for(time=0; time<=10; time++) { - HuSprGrpTPLvlSet(lbl_1_data_A00, 1.0-(time/10.0)); + } + for (time = 0; time <= 10; time++) { + HuSprGrpTPLvlSet(lbl_1_data_A00, 1.0 - (time / 10.0)); HuPrcVSleep(); } HuSprGrpKill(lbl_1_data_A00); lbl_1_data_A00 = -1; return; - } - - if(lbl_1_data_A00 != -1) { + } + + if (lbl_1_data_A00 != -1) { HuSprGrpKill(lbl_1_data_A00); } lbl_1_data_A00 = HuSprGrpCreate(1); mgpic = mgInfoTbl[mgNo].mg_pic[0]; - if(GWMGAvailGet(mgNo+401)) { + if (GWMGAvailGet(mgNo + 401)) { anim = HuSprAnimReadFile(mgpic); - } else { - anim = HuSprAnimReadFile(0x62002C); + } + else { + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2C)); } sprite = HuSprCreate(anim, 100, 0); HuSprGrpMemberSet(lbl_1_data_A00, 0, sprite); @@ -167,110 +166,111 @@ s16 fn_1_271B4(s16 mgNo, s16 x, s16 y) void fn_1_27418(void) { - s16 i; - s16 j; - for(i=0; i<4; i++) { - lbl_1_bss_2C1C[i] = i; - } - for(i=0; i<4; i++) { - for(j=0; j<3-i; j++) { - if(GWPlayerCfg[lbl_1_bss_2C1C[j]].group > GWPlayerCfg[lbl_1_bss_2C1C[j+1]].group) { - s16 temp = lbl_1_bss_2C1C[j]; - lbl_1_bss_2C1C[j] = lbl_1_bss_2C1C[j+1]; - lbl_1_bss_2C1C[j+1] = temp; - } - } - } - for(i=0; i<4; i++) { - s16 charNo; - lbl_1_bss_2C24[i] = charNo = GWPlayerCfg[lbl_1_bss_2C1C[i]].character; - lbl_1_bss_2C14[i] = CharModelCreate(charNo, 2); - lbl_1_bss_2BC4[i][0] = CharModelMotionCreate(charNo, 0x5F0000); - lbl_1_bss_2BC4[i][1] = CharModelMotionCreate(charNo, 0x5F0002); - lbl_1_bss_2BC4[i][2] = CharModelMotionCreate(charNo, 0x5F0003); - lbl_1_bss_2BC4[i][3] = CharModelMotionCreate(charNo, 0x5F0048); - lbl_1_bss_2BC4[i][4] = CharModelMotionCreate(charNo, 0x5F0049); - lbl_1_bss_2BC4[i][5] = CharModelMotionCreate(charNo, 0x5F0017); - lbl_1_bss_2BC4[i][6] = CharModelMotionCreate(charNo, 0x5F0018); - CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][1], 0); - CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][2], 0); - Hu3DModelPosSet(lbl_1_bss_2C14[i], 600, 0, 800); - Hu3DModelLayerSet(lbl_1_bss_2C14[i], 3); - CharModelDataClose(charNo); - Hu3DModelShadowSet(lbl_1_bss_2C14[i]); - } + s16 i; + s16 j; + for (i = 0; i < 4; i++) { + lbl_1_bss_2C1C[i] = i; + } + for (i = 0; i < 4; i++) { + for (j = 0; j < 3 - i; j++) { + if (GWPlayerCfg[lbl_1_bss_2C1C[j]].group > GWPlayerCfg[lbl_1_bss_2C1C[j + 1]].group) { + s16 temp = lbl_1_bss_2C1C[j]; + lbl_1_bss_2C1C[j] = lbl_1_bss_2C1C[j + 1]; + lbl_1_bss_2C1C[j + 1] = temp; + } + } + } + for (i = 0; i < 4; i++) { + s16 charNo; + lbl_1_bss_2C24[i] = charNo = GWPlayerCfg[lbl_1_bss_2C1C[i]].character; + lbl_1_bss_2C14[i] = CharModelCreate(charNo, 2); + lbl_1_bss_2BC4[i][0] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_2BC4[i][1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + lbl_1_bss_2BC4[i][2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + lbl_1_bss_2BC4[i][3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); + lbl_1_bss_2BC4[i][4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + lbl_1_bss_2BC4[i][5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_2BC4[i][6] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); + CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][1], 0); + CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][2], 0); + Hu3DModelPosSet(lbl_1_bss_2C14[i], 600, 0, 800); + Hu3DModelLayerSet(lbl_1_bss_2C14[i], 3); + CharModelDataClose(charNo); + Hu3DModelShadowSet(lbl_1_bss_2C14[i]); + } } s32 fn_1_2783C(s16 evtno) { - s16 i; - omOvlHisData *his; - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; - GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; - GWPlayerCfg[i].pad_idx = lbl_1_bss_8.unk24[i].unk6C; - GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; - } - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqAllFadeOut(1000); - while(WipeStatGet()) { - HuPrcVSleep(); - } - CharKill(-1); - for(i=0; i<4; i++) { - CharARAMOpen(GWPlayerCfg[i].character); - } - HuAudVoiceInit(-1); - his = omOvlHisGet(0); - omOvlHisChg(0, OVL_MGMODE, evtno, his->stat); - omOvlCallEx(OVL_INST, 1, 0, 0); - while(1) { - HuPrcVSleep(); - } + s16 i; + omOvlHisData *his; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; + GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; + GWPlayerCfg[i].pad_idx = lbl_1_bss_8.unk24[i].unk6C; + GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; + } + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqAllFadeOut(1000); + while (WipeStatGet()) { + HuPrcVSleep(); + } + CharKill(-1); + for (i = 0; i < 4; i++) { + CharARAMOpen(GWPlayerCfg[i].character); + } + HuAudVoiceInit(-1); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MGMODE, evtno, his->stat); + omOvlCallEx(OVL_INST, 1, 0, 0); + while (1) { + HuPrcVSleep(); + } } void fn_1_279FC(s32 coinSkipF) { - s16 i; - s16 mgNum; - for(mgNum=0; mgInfoTbl[mgNum].ovl != 65535; mgNum++); - for(i=0; i<9; i++) { - lbl_1_bss_2638[i] = lbl_1_bss_20AC[i] = 0; - } - for(i=0; i= 0 && type < 9) { - if(coinSkipF) { - s16 ovl = mgInfoTbl[i].ovl; - if(ovl == OVL_M408 || ovl == OVL_M422 || ovl == OVL_M430) { - continue; - } - } - lbl_1_bss_264C[type][lbl_1_bss_2638[type]] = i; - lbl_1_bss_2638[type]++; - if(GWMGAvailGet(i+401)) { - lbl_1_bss_20C0[type][lbl_1_bss_20AC[type]] = i; - lbl_1_bss_20AC[type]++; - } - } - } + s16 i; + s16 mgNum; + for (mgNum = 0; mgInfoTbl[mgNum].ovl != 65535; mgNum++) + ; + for (i = 0; i < 9; i++) { + lbl_1_bss_2638[i] = lbl_1_bss_20AC[i] = 0; + } + for (i = 0; i < mgNum; i++) { + s16 type = mgInfoTbl[i].type; + if (type >= 0 && type < 9) { + if (coinSkipF) { + s16 ovl = mgInfoTbl[i].ovl; + if (ovl == OVL_M408 || ovl == OVL_M422 || ovl == OVL_M430) { + continue; + } + } + lbl_1_bss_264C[type][lbl_1_bss_2638[type]] = i; + lbl_1_bss_2638[type]++; + if (GWMGAvailGet(i + 401)) { + lbl_1_bss_20C0[type][lbl_1_bss_20AC[type]] = i; + lbl_1_bss_20AC[type]++; + } + } + } } void fn_1_27C0C(s16 type) { - s16 i; - s16 j; - for(i=0; i<256;) { - for(j=0; j 256) { - break; - } - mgIndexList[i] = lbl_1_bss_20C0[type][j]; - } - } - for(i=0; i<256; i++) { - mgIndexList[i]; - } - lbl_801D3E94 = 0; -} \ No newline at end of file + s16 i; + s16 j; + for (i = 0; i < 256;) { + for (j = 0; j < lbl_1_bss_20AC[type]; j++, i++) { + if (i > 256) { + break; + } + mgIndexList[i] = lbl_1_bss_20C0[type][j]; + } + } + for (i = 0; i < 256; i++) { + mgIndexList[i]; + } + lbl_801D3E94 = 0; +} diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 7921f251..85e6f2ad 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -1,43 +1,43 @@ #define HUSPR_USE_OLD_DEFS -#include "math.h" #include "game/chrman.h" -#include "game/object.h" -#include "game/wipe.h" -#include "game/pad.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/hsfex.h" -#include "game/printfunc.h" -#include "game/window.h" #include "game/gamework_data.h" -#include "game/sprite.h" +#include "game/hsfanim.h" +#include "game/hsfex.h" +#include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "math.h" #include "REL/modeltestDll.h" // -------------------------------------------------------------------------- // s32 lbl_1_data_0[8] = { - 0x005F001B, - 0x005F0015, - 0x005F0016, - 0x005F0006, - 0x005F0000, - 0x005F0000, - 0x005F0000, - 0x005F0004, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x15), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x16), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x04), }; const f64 unk_rodata_0 = 0.5; const f64 unk_rodata_8 = 3.0; -omObjData * lbl_1_bss_9A4; -omObjData * lbl_1_bss_9A0; +omObjData *lbl_1_bss_9A4; +omObjData *lbl_1_bss_9A0; // -------------------------------------------------------------------------- // void ObjectSetup(void) { - Process * prc; + Process *prc; OSReport("******* MODELTESTObjectSetup *********\n"); prc = omInitObjMan(0x32, 0x2000); @@ -64,108 +64,110 @@ void ObjectSetup(void) // -------------------------------------------------------------------------- // -char * lbl_1_data_D8[16] = { - "target1A", - "target1B", - "target2A", - "target2B", - "target3A", - "target3B", - "target4A", - "target4B", - "target5A", - "target5B", - "target6A", - "target6B", - "target7A", - "target7B", - "target8A", - "target8B" -}; - +char *lbl_1_data_D8[16] = { "target1A", "target1B", "target2A", "target2B", "target3A", "target3B", "target4A", "target4B", "target5A", "target5B", + "target6A", "target6B", "target7A", "target7B", "target8A", "target8B" }; HsfanimStruct00 lbl_1_data_118 = { - /* unk00 */ 40, - /* unk02 */ {0, 0}, - /* unk04 */ 50.0f, - /* unk08 */ 0.0f, - /* unk0C */ 90.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f}, - /* unk1C */ 50.0f, - /* unk20 */ 0.800000011920929f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 4, - /* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}}, - /* unk3E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}}, + /* unk00 */ 40, + /* unk02 */ { 0, 0 }, + /* unk04 */ 50.0f, + /* unk08 */ 0.0f, + /* unk0C */ 90.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f }, + /* unk1C */ 50.0f, + /* unk20 */ 0.800000011920929f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 4, + /* unk2E */ + { { /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255 }, + { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 } }, + /* unk3E */ + { { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, + { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 } }, }; -HsfanimStruct00 lbl_1_data_168[2] = { -{ - /* unk00 */ 50, - /* unk02 */ {0, 0}, - /* unk04 */ 5.0f, - /* unk08 */ 10.0f, - /* unk0C */ 10.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f}, - /* unk1C */ 2.0f, - /* unk20 */ 1.0099999904632568f, - /* unk24 */ 30.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 2, - /* unk2E */ {{ /* r */ 48, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 64, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, - /* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, -}, -{ - /* unk00 */ 30, - /* unk02 */ {0, 0}, - /* unk04 */ 3.299999952316284f, - /* unk08 */ 10.0f, - /* unk0C */ 0.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f}, - /* unk1C */ 2.0f, - /* unk20 */ 1.0f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9800000190734863f, - /* unk2C */ 2, - /* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 64, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, - /* unk3E */ {{ /* r */ 255, /* g */ 128, /* b */ 128, /* a */ 0}, { /* r */ 255, /* g */ 64, /* b */ 32, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, -}}; +HsfanimStruct00 lbl_1_data_168[2] = { { + /* unk00 */ 50, + /* unk02 */ { 0, 0 }, + /* unk04 */ 5.0f, + /* unk08 */ 10.0f, + /* unk0C */ 10.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f }, + /* unk1C */ 2.0f, + /* unk20 */ 1.0099999904632568f, + /* unk24 */ 30.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 2, + /* unk2E */ + { { /* r */ 48, /* g */ 48, /* b */ 8, /* a */ 255 }, { /* r */ 64, /* g */ 48, /* b */ 8, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + /* unk3E */ + { { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + }, + { + /* unk00 */ 30, + /* unk02 */ { 0, 0 }, + /* unk04 */ 3.299999952316284f, + /* unk08 */ 10.0f, + /* unk0C */ 0.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f }, + /* unk1C */ 2.0f, + /* unk20 */ 1.0f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9800000190734863f, + /* unk2C */ 2, + /* unk2E */ + { { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 64, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + /* unk3E */ + { { /* r */ 255, /* g */ 128, /* b */ 128, /* a */ 0 }, { /* r */ 255, /* g */ 64, /* b */ 32, /* a */ 0 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + } }; HsfanimStruct00 lbl_1_data_208 = { - /* unk00 */ 40, - /* unk02 */ {0, 0}, - /* unk04 */ 50.0f, - /* unk08 */ 0.0f, - /* unk0C */ 180.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f}, - /* unk1C */ 30.0f, - /* unk20 */ 0.8999999761581421f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 4, - /* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}}, - /* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, + /* unk00 */ 40, + /* unk02 */ { 0, 0 }, + /* unk04 */ 50.0f, + /* unk08 */ 0.0f, + /* unk0C */ 180.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f }, + /* unk1C */ 30.0f, + /* unk20 */ 0.8999999761581421f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 4, + /* unk2E */ + { { /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255 }, + { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 } }, + /* unk3E */ + { { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, }; HsfanimStruct00 lbl_1_data_258 = { - /* unk00 */ 30, - /* unk02 */ {0, 0}, - /* unk04 */ 50.0f, - /* unk08 */ 0.0f, - /* unk0C */ 90.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f}, - /* unk1C */ 30.0f, - /* unk20 */ 0.949999988079071f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 2, - /* unk2E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, - /* unk3E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, + /* unk00 */ 30, + /* unk02 */ { 0, 0 }, + /* unk04 */ 50.0f, + /* unk08 */ 0.0f, + /* unk0C */ 90.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f }, + /* unk1C */ 30.0f, + /* unk20 */ 0.949999988079071f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 2, + /* unk2E */ + { { /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + /* unk3E */ + { { /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, }; -const Point3d lbl_1_rodata_38 = {0.0f, 0.0f, 0.0f}; -const Point3d lbl_1_rodata_44 = {0.0f, 1.0f, 0.0f}; +const Point3d lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f }; +const Point3d lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f }; s16 lbl_1_bss_99C; s16 lbl_1_bss_99A; s16 lbl_1_bss_98A[8]; @@ -178,24 +180,24 @@ s16 lbl_1_bss_664[256]; s16 lbl_1_bss_460[258]; s16 lbl_1_bss_45A[3]; s16 lbl_1_bss_458; -AnimData * lbl_1_bss_454; +AnimData *lbl_1_bss_454; s32 unk_bss_450; HuObjUnk lbl_1_bss_40[20]; -void * lbl_1_bss_30[4]; +void *lbl_1_bss_30[4]; u8 lbl_1_bss_2C; f32 lbl_1_bss_28; s16 lbl_1_bss_24; f32 lbl_1_bss_20; -Process * lbl_1_bss_18[2]; -Process * lbl_1_bss_14; -Process * lbl_1_bss_10; +Process *lbl_1_bss_18[2]; +Process *lbl_1_bss_14; +Process *lbl_1_bss_10; s32 lbl_1_bss_C; f32 lbl_1_bss_8; static u8 unk_bss[8]; // -------------------------------------------------------------------------- // -void fn_1_29C(omObjData * arg0) +void fn_1_29C(omObjData *arg0) { Point3d sp20; Point3d sp14; @@ -205,8 +207,8 @@ void fn_1_29C(omObjData * arg0) s16 temp_r27; u32 temp_r26; s16 temp_r3; - void * temp_r29; - AnimData * temp_r28; + void *temp_r29; + AnimData *temp_r28; f32 temp_r5; f32 temp_f30; s16 chrIdx; @@ -226,8 +228,7 @@ void fn_1_29C(omObjData * arg0) sp20.z = 1000.0f; Hu3DShadowPosSet(&sp20, &sp8, &sp14); - for (var_r31 = 0; var_r31 < 1; ++var_r31) - { + for (var_r31 = 0; var_r31 < 1; ++var_r31) { chrIdx = 0; lbl_1_bss_98A[var_r31] = CharModelCreate(chrIdx, 2); if (var_r31 == 1) { @@ -242,7 +243,7 @@ void fn_1_29C(omObjData * arg0) lbl_1_bss_88A[var_r31][5] = CharModelMotionCreate(chrIdx, lbl_1_data_0[5]); lbl_1_bss_88A[var_r31][6] = CharModelMotionCreate(chrIdx, lbl_1_data_0[6]); lbl_1_bss_88A[var_r31][7] = CharModelMotionCreate(chrIdx, lbl_1_data_0[7]); - lbl_1_bss_88A[var_r31][0] = CharModelMotionCreate(chrIdx, 0x5F004D); + lbl_1_bss_88A[var_r31][0] = CharModelMotionCreate(chrIdx, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4D)); CharModelMotionSet(chrIdx, lbl_1_bss_88A[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_98A[var_r31], 0x40000001U); Hu3DModelPosSet(lbl_1_bss_98A[var_r31], (var_r31 / 4 * 0xC8) - 100, 0.0f, -(var_r31 % 4) * 0x96); @@ -256,26 +257,27 @@ void fn_1_29C(omObjData * arg0) temp_r5 = OSTicksToMicroseconds(OSGetTick() - temp_r26); OSReport("time %f\n", US_TO_60TH_SEC(temp_r5)); - var_r31 = Hu3DModelCreateFile(0x700024); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x24)); Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f); Hu3DModelShadowMapSet(var_r31); - var_r31 = Hu3DModelCreateFile(0x26001E); - temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(0x26002F, 0x10000000, 2)); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M407, 0x1E)); + temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M407, 0x2F), MEMORY_DEFAULT_NUM, 2)); Hu3DMotionSet(var_r31, temp_r27); Hu3DModelAttrSet(var_r31, 0x40000001U); for (var_r31 = 0; var_r31 < 10; ++var_r31) { if (var_r31 == 0) { - lbl_1_bss_664[var_r31] = Hu3DModelCreateFile(0x700019); - } else { + lbl_1_bss_664[var_r31] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x19)); + } + else { lbl_1_bss_664[var_r31] = Hu3DModelLink(lbl_1_bss_664[0]); } Hu3DModelShadowSet(lbl_1_bss_664[var_r31]); - Hu3DModelPosSet(lbl_1_bss_664[var_r31], ((( var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-( var_r31 % 5) * 0x12C)); + Hu3DModelPosSet(lbl_1_bss_664[var_r31], (((var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-(var_r31 % 5) * 0x12C)); Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x4000U); Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x40000001U); } - temp_r29 = HuDataSelHeapReadNum(0x700013, 0x10000000, 2); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_SAF, 0x13), MEMORY_DEFAULT_NUM, 2); temp_r28 = HuSprAnimRead(temp_r29); lbl_1_bss_99C = HuSprGrpCreate(0x14); @@ -289,7 +291,7 @@ void fn_1_29C(omObjData * arg0) HuSprGrpDrawNoSet(lbl_1_bss_99C, 0x40); lbl_1_bss_458 = 0x293; lbl_1_bss_45A[0] = MGSeqTimerCreate(lbl_1_bss_458 / 60); - temp_r29 = HuDataSelHeapReadNum(0x120001, 0x10000000, 2); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), MEMORY_DEFAULT_NUM, 2); temp_r28 = HuSprAnimRead(temp_r29); lbl_1_bss_888 = Hu3DParManCreate(temp_r28, 0x3E8, &lbl_1_data_208); Hu3DParManAttrSet(lbl_1_bss_888, 0x45); @@ -302,14 +304,15 @@ void fn_1_29C(omObjData * arg0) Hu3DParManVecSet(lbl_1_bss_884, 0.0f, 1.0f, 0.0f); Hu3DParManVacumeSet(lbl_1_bss_884, 500.0f, 0.0f, 0.0f, 1.0f); Hu3DParManColorSet(lbl_1_bss_884, 0); - temp_r29 = HuDataSelHeapReadNum(0x120002, 0x10000000, 2); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), MEMORY_DEFAULT_NUM, 2); temp_r28 = HuSprAnimRead(temp_r29); for (var_r31 = 0; var_r31 < 10; ++var_r31) { lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]); Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864); Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U); - Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0)); + Hu3DParManPosSet( + lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0)); Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f); } @@ -320,9 +323,7 @@ void fn_1_29C(omObjData * arg0) // -------------------------------------------------------------------------- // -s32 unrefData[] = { - 0,0,0 -}; +s32 unrefData[] = { 0, 0, 0 }; // -------------------------------------------------------------------------- // @@ -331,7 +332,7 @@ void fn_1_F38(void) f32 var_f31; var_f31 = 0.0f; - while(TRUE) { + while (TRUE) { Hu3DModelRotSet(lbl_1_bss_460[0], 0.0f, var_f31, 0.0f); var_f31 += 1.0f; HuPrcVSleep(); @@ -340,7 +341,8 @@ void fn_1_F38(void) // -------------------------------------------------------------------------- // -static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { +static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) +{ s8 temp_r28; temp_r28 = HuPadSubStkX[0] & 0xF8; @@ -360,13 +362,11 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { // -------------------------------------------------------------------------- // -const HuUnkF9C2 lbl_1_rodata_B8 = { - {8, 6, 4, 7, 9, 10, 11} -}; +const HuUnkF9C2 lbl_1_rodata_B8 = { { 8, 6, 4, 7, 9, 10, 11 } }; // -------------------------------------------------------------------------- // -void fn_1_F9C(struct om_obj_data * omData) +void fn_1_F9C(struct om_obj_data *omData) { Point3d sp3C; Point3d sp30; @@ -421,40 +421,40 @@ void fn_1_F9C(struct om_obj_data * omData) s32 var_fake; while (0) { - (void) temp_f30; - (void) temp_f30; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r30; - (void) var_r30; - (void) var_r30; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; + (void)temp_f30; + (void)temp_f30; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r30; + (void)var_r30; + (void)var_r30; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; } } @@ -478,15 +478,15 @@ void fn_1_F9C(struct om_obj_data * omData) temp_f31 = CRot.z; sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); + + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) + + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0)) - + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); + + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) + + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0)) - + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) + + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); PSVECCrossProduct(&sp24, &sp30, &sp30); @@ -543,8 +543,8 @@ void fn_1_20F4(void) { s16 temp_r3; s16 var_r29; - HsfObject * temp_r3_2; - HuObjUnk * temp_r31; + HsfObject *temp_r3_2; + HuObjUnk *temp_r31; Mtx spC0; Vec sp24; Mtx sp90; @@ -553,49 +553,38 @@ void fn_1_20F4(void) Vec sp18; Vec spC; f32 temp_f27; - f32 var_f29; // ! - uninitialized - s16 var_r27; // ! - uninitialized + f32 var_f29; // ! - uninitialized + s16 var_r27; // ! - uninitialized s32 var_r26; f32 temp_f30; - temp_r3 = Hu3DModelCreateFile(0x6C0000); + temp_r3 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00)); Hu3DModelPosSet(temp_r3, 0.0f, 0.0f, 100.0f); - for (var_r29 = 0; var_r29 < 16; ++var_r29) - { + for (var_r29 = 0; var_r29 < 16; ++var_r29) { OSReport("%s\n", lbl_1_data_D8[var_r29]); temp_r3_2 = Hu3DModelObjPtrGet(temp_r3, lbl_1_data_D8[var_r29]); lbl_1_bss_40[var_r29].obj = temp_r3_2; Hu3DMotionNoMotSet(temp_r3, lbl_1_data_D8[var_r29], 0x380); - lbl_1_bss_40[var_r29].pos.x = temp_r3_2->data.base.pos.x; - lbl_1_bss_40[var_r29].pos.y = temp_r3_2->data.base.pos.y; - lbl_1_bss_40[var_r29].pos.z = temp_r3_2->data.base.pos.z; - lbl_1_bss_40[var_r29].rot.x = temp_r3_2->data.base.rot.x; - lbl_1_bss_40[var_r29].rot.y = temp_r3_2->data.base.rot.y; - lbl_1_bss_40[var_r29].rot.z = temp_r3_2->data.base.rot.z; + lbl_1_bss_40[var_r29].pos.x = temp_r3_2->data.base.pos.x; + lbl_1_bss_40[var_r29].pos.y = temp_r3_2->data.base.pos.y; + lbl_1_bss_40[var_r29].pos.z = temp_r3_2->data.base.pos.z; + lbl_1_bss_40[var_r29].rot.x = temp_r3_2->data.base.rot.x; + lbl_1_bss_40[var_r29].rot.y = temp_r3_2->data.base.rot.y; + lbl_1_bss_40[var_r29].rot.z = temp_r3_2->data.base.rot.z; lbl_1_bss_40[var_r29].scale.x = temp_r3_2->data.base.scale.x; lbl_1_bss_40[var_r29].scale.y = temp_r3_2->data.base.scale.y; lbl_1_bss_40[var_r29].scale.z = temp_r3_2->data.base.scale.z; - OSReport( - "%d:(%3.2f,%3.2f,%3.2f),(%3.2f,%3.2f,%3.2f)\n", - var_r29, - temp_r3_2->data.base.pos.x, - temp_r3_2->data.base.pos.y, - temp_r3_2->data.base.pos.z, - temp_r3_2->data.base.rot.x, - temp_r3_2->data.base.rot.y, - temp_r3_2->data.base.rot.z - ); + OSReport("%d:(%3.2f,%3.2f,%3.2f),(%3.2f,%3.2f,%3.2f)\n", var_r29, temp_r3_2->data.base.pos.x, temp_r3_2->data.base.pos.y, + temp_r3_2->data.base.pos.z, temp_r3_2->data.base.rot.x, temp_r3_2->data.base.rot.y, temp_r3_2->data.base.rot.z); } - while (TRUE) - { + while (TRUE) { Hu3DModelObjMtxGet(temp_r3, "ske_skirt", sp30); - for (var_r29 = 0; var_r29 < 8; ++var_r29) - { + for (var_r29 = 0; var_r29 < 8; ++var_r29) { temp_r31 = &lbl_1_bss_40[var_r29 * 2]; temp_r31->obj->data.curr.rot.x = temp_r31->rot.x; temp_r31->obj->data.curr.rot.y = temp_r31->rot.y; @@ -634,15 +623,16 @@ void fn_1_20F4(void) if (HuPadSubStkX[1] < 0) { var_r26 = -HuPadSubStkX[1]; - } else { + } + else { var_r26 = HuPadSubStkX[1]; } - if (var_r26 < 0xA && ABS(HuPadSubStkY[1]) < 0xA) { var_r27 = 0x168; var_f29 = 0.0f; - } else { + } + else { var_r27 = 180.0 * (atan2(HuPadSubStkX[1], HuPadSubStkY[1]) / M_PI); temp_f30 = (HuPadSubStkX[1] * HuPadSubStkX[1]) + (HuPadSubStkY[1] * HuPadSubStkY[1]); var_f29 = sqrtf(temp_f30); @@ -657,11 +647,11 @@ void fn_1_20F4(void) // -------------------------------------------------------------------------- // -void fn_1_28F8(Point3d * arg0, Point3d * arg1) +void fn_1_28F8(Point3d *arg0, Point3d *arg1) { Point3d spC; Mtx sp18; - CameraData * cam; + CameraData *cam; f32 temp_f31; f32 temp_f30; @@ -675,7 +665,8 @@ void fn_1_28F8(Point3d * arg0, Point3d * arg1) arg1->y = 240.0f + (spC.y * (240.0f / temp_f30)); } -void fn_1_2AFC(void) { +void fn_1_2AFC(void) +{ s16 temp_r3; HuWinInit(1); @@ -683,7 +674,7 @@ void fn_1_2AFC(void) { HuWinMesSpeedSet(temp_r3, 3); while (TRUE) { - HuWinMesSet(temp_r3, 0x200011); + HuWinMesSet(temp_r3, MAKE_MESSID(0x20, 0x11)); HuWinMesWait(temp_r3); } } @@ -692,12 +683,65 @@ void fn_1_2AFC(void) { // unreferenced data u8 lbl_1_data_322[54] = { - 255, 255, 255, 255, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 255, + 255, + 255, + 255, + 0, + 0, + 60, + 68, + 155, + 166, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 60, + 68, + 155, + 166, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 63, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 63, + 0, + 0, + 0, + 0, + 0, + 0, + 0, }; // -------------------------------------------------------------------------- // -void fn_1_2B68(ModelData * mdl, Mtx arg1) +void fn_1_2B68(ModelData *mdl, Mtx arg1) { GXColor sp17; Mtx sp150; @@ -708,7 +752,7 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1) GXTexObj sp30; f32 sp18[2][3]; Mtx44 sp50; - AnimBmpData * sp10; + AnimBmpData *sp10; f32 temp_f31; f32 var_f30; // ! - uninitialized f32 var_f29; // ! - uninitialized @@ -716,7 +760,7 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1) f32 var_f27; // ! - uninitialized if (!lbl_1_bss_30[0]) { - lbl_1_bss_30[0] = HuMemDirectMallocNum(HEAP_SYSTEM, FB_SIZE(640, 480), 0x10000000); + lbl_1_bss_30[0] = HuMemDirectMallocNum(HEAP_SYSTEM, FB_SIZE(640, 480), MEMORY_DEFAULT_NUM); } GXSetTexCopySrc(0, 0, 640, 480); @@ -741,15 +785,10 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1) GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU, 0U, 0x7DU); GXSetNumTevStages(1); - sp17.r = - sp17.g = - sp17.b = - sp17.a = 255; + sp17.r = sp17.g = sp17.b = sp17.a = 255; GXSetChanMatColor(GX_COLOR0A0, sp17); - sp17.r = - sp17.g = - sp17.b = 128; + sp17.r = sp17.g = sp17.b = 128; sp17.a = 255; GXSetChanAmbColor(GX_COLOR0A0, sp17); diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index 9438febb..ac8d4e0a 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -197,7 +197,7 @@ void fn_1_46F0(void) var_r30 = var_r31; lbl_1_bss_9EC[var_r31] = CharModelCreate(var_r30, 8); Hu3DModelShadowSet(lbl_1_bss_9EC[var_r31]); - lbl_1_bss_9AC[var_r31][0] = CharModelMotionCreate(var_r30, 0x5F0002); + lbl_1_bss_9AC[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); CharModelMotionSet(var_r30, lbl_1_bss_9AC[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], 0x40000001U); Hu3DModelCameraSet(lbl_1_bss_9EC[var_r31], lbl_1_data_358[var_r31]); @@ -206,7 +206,7 @@ void fn_1_46F0(void) CharModelMotionDataClose(var_r30); } - var_r31 = Hu3DModelCreateFile(0x700024); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x24)); Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f); Hu3DModelShadowMapSet(var_r31); @@ -228,4 +228,4 @@ void fn_1_46F0(void) // -------------------------------------------------------------------------- // -// -------------------------------------------------------------------------- // \ No newline at end of file +// -------------------------------------------------------------------------- // diff --git a/src/REL/modeltestDll/modeltest01.c b/src/REL/modeltestDll/modeltest01.c index d30e6c6a..69dba59e 100644 --- a/src/REL/modeltestDll/modeltest01.c +++ b/src/REL/modeltestDll/modeltest01.c @@ -177,114 +177,114 @@ void fn_1_5A60(omObjData *object) } u32 lbl_1_data_3B0[] = { - 0x005D0000, 0x00000000, - 0x005E0000, 0x00000000, - 0x005E0001, 0x00000000, - 0x005F0006, 0x00000001, - 0x005F0000, 0x00000001, - 0x005F0002, 0x00000001, - 0x005F0003, 0x00000001, - 0x005F0005, 0x00000000, - 0x005F0017, 0x00000000, - 0x005F0018, 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMDL0, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x01), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_408[] = { - 0x00170000, 0x00000000, - 0x00170002, 0x00000000, - 0x00170003, 0x00000000, - 0x0017000D, 0x00000001, - 0x00170005, 0x00000001, - 0x00170007, 0x00000001, - 0x00170008, 0x00000001, - 0x0017000C, 0x00000000, - 0x00170028, 0x00000000, - 0x00170029, 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_460[] = { - 0x006A0000, 0x00000000, - 0x006A0002, 0x00000000, - 0x006A0003, 0x00000000, - 0x006A000D, 0x00000001, - 0x006A0005, 0x00000001, - 0x006A0007, 0x00000001, - 0x006A0008, 0x00000001, - 0x006A000C, 0x00000000, - 0x006A0028, 0x00000000, - 0x006A0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_4B8[] = { - 0x00870000, 0x00000000, - 0x00870002, 0x00000000, - 0x00870003, 0x00000000, - 0x0087000D, 0x00000001, - 0x00870005, 0x00000001, - 0x00870007, 0x00000001, - 0x00870008, 0x00000001, - 0x0087000C, 0x00000000, - 0x00870028, 0x00000000, - 0x00870029, 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_510[] = { - 0x00820000, 0x00000000, - 0x00820002, 0x00000000, - 0x00820003, 0x00000000, - 0x0082000D, 0x00000001, - 0x00820005, 0x00000001, - 0x00820007, 0x00000001, - 0x00820008, 0x00000001, - 0x0082000C, 0x00000000, - 0x00820028, 0x00000000, - 0x00820029, 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_568[] = { - 0x000E0000, 0x00000000, - 0x000E0002, 0x00000000, - 0x000E0003, 0x00000000, - 0x000E000D, 0x00000001, - 0x000E0005, 0x00000001, - 0x000E0007, 0x00000001, - 0x000E0008, 0x00000001, - 0x000E000C, 0x00000000, - 0x000E0028, 0x00000000, - 0x000E0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_5C0[] = { - 0x000A0000, 0x00000000, - 0x000A0002, 0x00000000, - 0x000A0003, 0x00000000, - 0x000A000D, 0x00000001, - 0x000A0005, 0x00000001, - 0x000A0007, 0x00000001, - 0x000A0008, 0x00000001, - 0x000A000C, 0x00000000, - 0x000A0028, 0x00000000, - 0x000A0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_618[] = { - 0x007E0000, 0x00000000, - 0x007E0002, 0x00000000, - 0x007E0003, 0x00000000, - 0x007E000D, 0x00000001, - 0x007E0005, 0x00000001, - 0x007E0007, 0x00000001, - 0x007E0008, 0x00000001, - 0x007E000C, 0x00000000, - 0x007E0028, 0x00000000, - 0x007E0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; @@ -750,4 +750,4 @@ void fn_1_83B4(void) } HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/modeseldll/datalist.c b/src/REL/modeseldll/datalist.c index 07019d3f..87287bed 100644 --- a/src/REL/modeseldll/datalist.c +++ b/src/REL/modeseldll/datalist.c @@ -6,45 +6,45 @@ s16 lbl_1_bss_152[12]; s16 lbl_1_bss_150; DataListModel lbl_1_data_428[] = { - { 0x630000, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630000, 0x1, 2, 0, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630001, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630001, 0x1, 2, 2, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630002, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630002, 0x1, 2, 4, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630003, 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630004, 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630026, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630027, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630028, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630029, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002A, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002B, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002C, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002D, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002E, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630007, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x1, 2, 0, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x01), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x01), 0x1, 2, 2, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x02), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x02), 0x1, 2, 4, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x03), 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x04), 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x26), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x27), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x28), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x29), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2A), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2B), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2C), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2D), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2E), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, }; DataListSprite lbl_1_data_93C[] = { - { 0x630009, 4, 2000, 288, 240, { 255, 255, 255, 255 } }, - { 0x630008, 4, 2000, 288, 100, { 255, 255, 255, 255 } }, - { 0x63000A, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63000B, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63000C, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63001F, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x630020, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x630021, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x630022, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63002F, 4, 2000, 288, 240, { 255, 255, 255, 255 } }, - { 0x63003C, 4, 2000, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x09), 4, 2000, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x08), 4, 2000, 288, 100, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x0A), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x0B), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x0C), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x1F), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x20), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x21), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x22), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2F), 4, 2000, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x3C), 4, 2000, 288, 240, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; @@ -127,4 +127,4 @@ void fn_1_C2BC(void) espKill(lbl_1_bss_152[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index adff0c5d..8bf2afb7 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -1,70 +1,51 @@ -#include "game/gamework_data.h" -#include "game/process.h" -#include "game/window.h" -#include "game/wipe.h" #include "game/audio.h" -#include "game/gamework.h" -#include "game/saveload.h" #include "game/card.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/pad.h" -#include "game/hsfdraw.h" +#include "game/process.h" +#include "game/saveload.h" +#include "game/window.h" +#include "game/wipe.h" + #include "math.h" #include "REL/modeseldll.h" - s16 lbl_1_data_100 = -1; -float lbl_1_data_104[] = { - -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 -}; +float lbl_1_data_104[] = { -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 }; s32 lbl_1_data_21C[] = { - 0x63000D, - 0x63000E, - 0x63000F, - 0x630010, - 0x630011, - 0x630012, - 0x630013, - 0x630014, - 0x630015, - 0x630016, - 0x630017, - 0x630018, - 0x630019, - 0x63001A, - 0x63001B, - 0x63001C, - 0x63001D, - 0x63001E, + DATA_MAKE_NUM(DATADIR_MODESEL, 0x0D), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x0E), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x0F), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x10), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x11), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x12), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x13), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x14), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x15), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x16), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x17), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x18), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x19), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1A), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1B), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1C), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1D), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1E), }; +char *lbl_1_data_26C[] = { "\x0E\x16", "\x0E\x17" }; -char *lbl_1_data_26C[] = { - "\x0E\x16", - "\x0E\x17" -}; +char *lbl_1_data_278[] = { "A", "B" }; -char *lbl_1_data_278[] = { - "A", - "B" -}; - -char *lbl_1_data_288[] = { - "1", - "2", - "3" -}; +char *lbl_1_data_288[] = { "1", "2", "3" }; s32 lbl_1_bss_14C; s16 lbl_1_bss_148; @@ -103,63 +84,64 @@ void fn_1_AAB8(void); s32 fn_1_37DC(void) { - s16 i; - s16 result; - WindowData *window; - s16 fxstat; - Process *process = HuPrcCurrentGet(); - Process *child; - float winSize[2]; - for(i=0; i<3; i++) { - lbl_1_bss_13A[i] = lbl_1_bss_134[i] = -1; - lbl_1_bss_116[i] = -1; - lbl_1_bss_110[i] = -1; - } - lbl_1_bss_FC = lbl_1_bss_F8 = lbl_1_bss_F4 = NULL; - curSlotNo = 0; - fn_1_1EC0(0); - fn_1_5D30(); - child = HuPrcChildCreate(fn_1_AAB8, 10, 8192, 0, process); - winSize[0] = 457; - winSize[1] = 94; - lbl_1_bss_148 = HuWinExCreateStyled(-10000, 448-winSize[1], winSize[0], winSize[1], -1, 0); - window = &winData[lbl_1_bss_148]; - window->active_pad = 1; - HuWinPushKeySet(lbl_1_bss_148, 0x300); - HuWinMesSpeedSet(lbl_1_bss_148, 0); - HuWinDispOn(lbl_1_bss_148); - fxstat = HuAudFXPlay(2098); - lbl_1_data_100 = fxstat; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuAudSeqPlay(43); - while(1) { - result = fn_1_3AAC(); - if(!result) { - break; - } - if(!SLSaveFlagGet()) { - GWGameStatReset(); - GWGameStat.sound_mode = msmSysGetOutputMode(); - result = 1; - break; - } else { - if(fn_1_61B4()) { - break; - } - } - } - if(result == 0) { - HuAudFXStop(fxstat); - } - HuWinExAnimOut(lbl_1_bss_148); - HuWinExCleanup(lbl_1_bss_148); - HuPrcKill(child); - HuCardUnMount(0); - HuCardUnMount(1); - return result; + s16 i; + s16 result; + WindowData *window; + s16 fxstat; + Process *process = HuPrcCurrentGet(); + Process *child; + float winSize[2]; + for (i = 0; i < 3; i++) { + lbl_1_bss_13A[i] = lbl_1_bss_134[i] = -1; + lbl_1_bss_116[i] = -1; + lbl_1_bss_110[i] = -1; + } + lbl_1_bss_FC = lbl_1_bss_F8 = lbl_1_bss_F4 = NULL; + curSlotNo = 0; + fn_1_1EC0(0); + fn_1_5D30(); + child = HuPrcChildCreate(fn_1_AAB8, 10, 8192, 0, process); + winSize[0] = 457; + winSize[1] = 94; + lbl_1_bss_148 = HuWinExCreateStyled(-10000, 448 - winSize[1], winSize[0], winSize[1], -1, 0); + window = &winData[lbl_1_bss_148]; + window->active_pad = 1; + HuWinPushKeySet(lbl_1_bss_148, 0x300); + HuWinMesSpeedSet(lbl_1_bss_148, 0); + HuWinDispOn(lbl_1_bss_148); + fxstat = HuAudFXPlay(2098); + lbl_1_data_100 = fxstat; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuAudSeqPlay(43); + while (1) { + result = fn_1_3AAC(); + if (!result) { + break; + } + if (!SLSaveFlagGet()) { + GWGameStatReset(); + GWGameStat.sound_mode = msmSysGetOutputMode(); + result = 1; + break; + } + else { + if (fn_1_61B4()) { + break; + } + } + } + if (result == 0) { + HuAudFXStop(fxstat); + } + HuWinExAnimOut(lbl_1_bss_148); + HuWinExCleanup(lbl_1_bss_148); + HuPrcKill(child); + HuCardUnMount(0); + HuCardUnMount(1); + return result; } #define GET_ZEROSIGN(x) (((x) == 0) ? (-1) : (1)) @@ -173,560 +155,588 @@ void fn_1_BA20(void); s32 fn_1_3AAC(void) { - s16 temp_r31; - s16 temp_r30; - s32 temp_r29; - s32 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - WindowData *temp_r23; - float temp_f31; - CARDFileInfo sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - float sp8[2]; - - fn_1_1EC0(0); - temp_r23 = &winData[lbl_1_bss_148]; - HuWinMesMaxSizeGet(1, sp8, 0x10000C); - lbl_1_bss_146 = HuWinExCreateStyled(-10000.0f, 316.0f, sp8[0], sp8[1], -1, 0); - HuWinBGTPLvlSet(lbl_1_bss_146, 0); - HuWinMesSpeedSet(lbl_1_bss_146, 0); - repeat: - sp28.x = 188; - sp28.y = 250; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[2], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[4], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[0], &sp1C); - sp28.x = 388; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[3], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[5], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[1], &sp1C); - Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[4], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[5], 1); - Hu3DModelRotSet(lbl_1_bss_19A[2], 0, 0, 0); - Hu3DModelRotSet(lbl_1_bss_19A[3], 0, 0, 0); - fn_1_57C8(lbl_1_bss_19A[4]); - fn_1_57C8(lbl_1_bss_19A[5]); - lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 1; - lbl_1_bss_108[0] = lbl_1_bss_108[1] = lbl_1_bss_100[0] = lbl_1_bss_100[1] = 1.0f; - lbl_1_bss_11C = -1; - fn_1_5C38(); - for(temp_r30=0; temp_r30<=20; temp_r30++) { - temp_f31 = temp_r30/20.0; - temp_f31 = sin(M_PI*(90.0f*temp_f31)/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[2], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[3], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[4], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[5], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - while(1) { - repeat_loop: - HuWinDispOff(lbl_1_bss_146); - temp_r28 = fn_1_562C(); - if(temp_r28 == 0 && fn_1_5C38() == 0) { - if(fn_1_5C38() == 0) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } - HuWinMesSet(lbl_1_bss_148, 0x10004F); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r27 == 0) { - SLSaveFlagSet(0); - temp_r29 = 1; - goto cleanup; - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - } - while(!fn_1_5C38()) { - temp_r28 = fn_1_562C(); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - if(temp_r23->key_down & PAD_BUTTON_B) { - HuAudFXPlay(3); - return 0; - } - if(fn_1_5C38()) { - break; - } - HuWinMesSet(lbl_1_bss_148, 0x10004B); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r27 == 0) { - SLSaveFlagSet(0); - temp_r29 = 1; - goto cleanup; - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - } - SLSaveFlagSet(1); - HuWinMesSet(lbl_1_bss_148, 0x100001); - HuWinMesWait(lbl_1_bss_148); - HuWinMesSet(lbl_1_bss_146, 0x10000C); - HuWinDispOn(lbl_1_bss_146); - if(curSlotNo == 0) { - if(lbl_1_bss_14C & 0x1) { - temp_r31 = 0; - } else { - temp_r31 = 1; - } - } else { - if(lbl_1_bss_14C & 0x2) { - temp_r31 = 1; - } else { - temp_r31 = 0; - } - } - fn_1_5BAC(temp_r31, 1); - HuPrcSleep(10); - temp_r24 = temp_r31; - while(1) { - if(!fn_1_5C38()) { - fn_1_5BAC(temp_r31, 0); - HuPrcSleep(10); - goto repeat_loop; - } else { - if((HuPadDStkRep[0] & 0x1) && (lbl_1_bss_14C & 0x1)) { - temp_r31 = 0; - } else if((HuPadDStkRep[0] & 0x2) && (lbl_1_bss_14C & 0x2)) { - temp_r31 = 1; - } else if(!(lbl_1_bss_14C & (1 << temp_r31))) { - if(!(lbl_1_bss_14C & (1 << ((temp_r31+1) & 0x1)))) { - fn_1_5BAC(temp_r31, 0); - HuPrcSleep(10); - goto repeat_loop; - } else { - temp_r31 = (temp_r31+1) & 0x1; - } - } - if(temp_r24 != temp_r31) { - HuAudFXPlay(0); - fn_1_5BAC(temp_r31, 1); - fn_1_5BAC((temp_r31+1) & 0x1, 0); - HuPrcSleep(10); - temp_r24 = temp_r31; - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2096); - goto loop_exit; - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - return 0; - } - } - HuPrcVSleep(); - } - } - loop_exit: - HuWinHomeClear(lbl_1_bss_148); - temp_r26 = (temp_r31+1)&0x1; - Hu3DMotionSet(lbl_1_bss_19A[temp_r31+4], lbl_1_bss_16A[7]); - Hu3DMotionSpeedSet(lbl_1_bss_19A[temp_r31+4], 2.0f); - lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 0; - lbl_1_bss_11C = temp_r31; - SLCurSlotNoSet(temp_r31); - temp_r28 = HuCardMount(temp_r31); - if(temp_r28 == 0) { - SLSerialNoGet(); - temp_r28 = HuCardOpen(temp_r31, SaveFileNameTbl[0], &sp34); - if(temp_r28 != 0 && temp_r28 != -4) { - temp_r29 = 1; - } else { - temp_r29 = 0; - } - HuCardClose(&sp34); - } else { - if(temp_r28 == -3) { - goto repeat; - } + s16 temp_r31; + s16 temp_r30; + s32 temp_r29; + s32 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + WindowData *temp_r23; + float temp_f31; + CARDFileInfo sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float sp8[2]; + + fn_1_1EC0(0); + temp_r23 = &winData[lbl_1_bss_148]; + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x10, 0x0C)); + lbl_1_bss_146 = HuWinExCreateStyled(-10000.0f, 316.0f, sp8[0], sp8[1], -1, 0); + HuWinBGTPLvlSet(lbl_1_bss_146, 0); + HuWinMesSpeedSet(lbl_1_bss_146, 0); +repeat: + sp28.x = 188; + sp28.y = 250; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[2], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[4], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[0], &sp1C); + sp28.x = 388; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[3], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[5], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[1], &sp1C); + Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[4], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[5], 1); + Hu3DModelRotSet(lbl_1_bss_19A[2], 0, 0, 0); + Hu3DModelRotSet(lbl_1_bss_19A[3], 0, 0, 0); + fn_1_57C8(lbl_1_bss_19A[4]); + fn_1_57C8(lbl_1_bss_19A[5]); + lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 1; + lbl_1_bss_108[0] = lbl_1_bss_108[1] = lbl_1_bss_100[0] = lbl_1_bss_100[1] = 1.0f; + lbl_1_bss_11C = -1; + fn_1_5C38(); + for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { + temp_f31 = temp_r30 / 20.0; + temp_f31 = sin(M_PI * (90.0f * temp_f31) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[2], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[3], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[4], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[5], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + while (1) { + repeat_loop: + HuWinDispOff(lbl_1_bss_146); + temp_r28 = fn_1_562C(); + if (temp_r28 == 0 && fn_1_5C38() == 0) { + if (fn_1_5C38() == 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r27 == 0) { + SLSaveFlagSet(0); + temp_r29 = 1; + goto cleanup; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + } + while (!fn_1_5C38()) { + temp_r28 = fn_1_562C(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + if (temp_r23->key_down & PAD_BUTTON_B) { + HuAudFXPlay(3); + return 0; + } + if (fn_1_5C38()) { + break; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4B)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r27 == 0) { + SLSaveFlagSet(0); + temp_r29 = 1; + goto cleanup; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + } + SLSaveFlagSet(1); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x01)); + HuWinMesWait(lbl_1_bss_148); + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x0C)); + HuWinDispOn(lbl_1_bss_146); + if (curSlotNo == 0) { + if (lbl_1_bss_14C & 0x1) { + temp_r31 = 0; + } + else { + temp_r31 = 1; + } + } + else { + if (lbl_1_bss_14C & 0x2) { + temp_r31 = 1; + } + else { + temp_r31 = 0; + } + } + fn_1_5BAC(temp_r31, 1); + HuPrcSleep(10); + temp_r24 = temp_r31; + while (1) { + if (!fn_1_5C38()) { + fn_1_5BAC(temp_r31, 0); + HuPrcSleep(10); + goto repeat_loop; + } + else { + if ((HuPadDStkRep[0] & 0x1) && (lbl_1_bss_14C & 0x1)) { + temp_r31 = 0; + } + else if ((HuPadDStkRep[0] & 0x2) && (lbl_1_bss_14C & 0x2)) { + temp_r31 = 1; + } + else if (!(lbl_1_bss_14C & (1 << temp_r31))) { + if (!(lbl_1_bss_14C & (1 << ((temp_r31 + 1) & 0x1)))) { + fn_1_5BAC(temp_r31, 0); + HuPrcSleep(10); + goto repeat_loop; + } + else { + temp_r31 = (temp_r31 + 1) & 0x1; + } + } + if (temp_r24 != temp_r31) { + HuAudFXPlay(0); + fn_1_5BAC(temp_r31, 1); + fn_1_5BAC((temp_r31 + 1) & 0x1, 0); + HuPrcSleep(10); + temp_r24 = temp_r31; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2096); + goto loop_exit; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + return 0; + } + } + HuPrcVSleep(); + } + } +loop_exit: + HuWinHomeClear(lbl_1_bss_148); + temp_r26 = (temp_r31 + 1) & 0x1; + Hu3DMotionSet(lbl_1_bss_19A[temp_r31 + 4], lbl_1_bss_16A[7]); + Hu3DMotionSpeedSet(lbl_1_bss_19A[temp_r31 + 4], 2.0f); + lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 0; + lbl_1_bss_11C = temp_r31; + SLCurSlotNoSet(temp_r31); + temp_r28 = HuCardMount(temp_r31); + if (temp_r28 == 0) { + SLSerialNoGet(); + temp_r28 = HuCardOpen(temp_r31, SaveFileNameTbl[0], &sp34); + if (temp_r28 != 0 && temp_r28 != -4) { + temp_r29 = 1; + } + else { + temp_r29 = 0; + } + HuCardClose(&sp34); + } + else { + if (temp_r28 == -3) { + goto repeat; + } temp_r29 = 1; - } - temp_r27 = HuCardSectorSizeGet(curSlotNo); - if(temp_r27 > 0 && temp_r27 != 8192) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100039); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - goto skip_check; - } else { - if(temp_r27 == -128) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - goto skip_check; - } else { - lbl_1_bss_8C += 720.0f; - for(temp_r30=0; temp_r30 <= 40; temp_r30++) { - if(temp_r30 <= 30) { - temp_f31 = temp_r30/30.0f; - sp28.x = 288.0+(GET_ZEROSIGN(temp_r26)*(100.0+(250.0*sin(M_PI*(90.0f*temp_f31)/180.0)))); - sp28.y = 250.0-(100.0*sin(M_PI*(180.0f*temp_f31)/180.0)); - sp28.z = (temp_r30*100)+600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26+2], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26], &sp1C); - Hu3DModelRotSet(lbl_1_bss_19A[temp_r26+2], temp_r30*20, temp_r30*10, 0); - } - - if(temp_r30 > 20) { - temp_f31 = (temp_r30-20)/20.0f; - if(temp_r29) { - sp28.x = 288.0f+((1.0-temp_f31)*(100*GET_ZEROSIGN(temp_r31))); - sp28.y = 250.0-(100.0*sin(M_PI*(180.0f*temp_f31)/180.0)); - sp28.z = 600.0f; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - temp_f31 = (0.5*sin(M_PI*(90.0f*temp_f31)/180.0))+1.0; - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); - } else { - sp28.x = 288.0f+(100*GET_ZEROSIGN(temp_r31)); - sp28.y = 250; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - sp28.x = 60; - sp28.y = 90; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp10); - VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI*(90.0f*temp_f31)/180.0); - sp28.y *= 1.0-cos(M_PI*(90.0f*temp_f31)/180.0); - sp28.z = 0; - VECAdd(&sp28, &sp1C, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI*(90.0f*temp_f31)/180.0); - lbl_1_bss_100[temp_r31] = 1.0-temp_f31; - temp_f31 = 1.0+(0.3*cos(M_PI*(90.0f*temp_f31)/180.0)); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); - } - } - HuPrcVSleep(); - } - if(temp_r29 == 0) { - HuWinKill(lbl_1_bss_146); - return 1; - } - HuWinDispOff(lbl_1_bss_146); - temp_r29 = 0; - if(temp_r28 == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -128) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -6) { - UnMountCnt = 0; - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x100004); - HuWinMesWait(lbl_1_bss_148); - temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r25 == 0) { - HuWinMesSet(lbl_1_bss_148, 0x10004E); - HuWinMesWait(lbl_1_bss_148); - temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r25 == 0) { - fn_1_B8CC(0x100038); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << temp_r31)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - goto cleanup; - } else { - _SetFlag(0x30000); - temp_r28 = HuCardFormat(temp_r31); - _ClearFlag(FLAG_ID_MAKE(3, 0)); - if(temp_r28 == 0) { - SLSerialNoGet(); - } - fn_1_BA20(); - if(temp_r28 == -128) { - HuWinMesSet(lbl_1_bss_148, 0x100036); - HuWinMesWait(lbl_1_bss_148); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } - } - } else { - temp_r29 = 1; - } - } else { - temp_r29 = 1; - } - } - } - } - if(temp_r29 == 0) { - goto cleanup; - } - skip_check: - HuWinMesSet(lbl_1_bss_148, 0x10004F); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r27 == 0) { - SLSaveFlagSet(0); - goto cleanup; - } else { - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - } - cleanup: - HuWinDispOff(lbl_1_bss_146); - lbl_1_bss_8C += 720.0f; - for(temp_r30=0; temp_r30<=20; temp_r30++) { - temp_f31 = temp_r30/20.0f; - if(temp_r29) { - temp_f31 = 1.5*cos(M_PI*(90.0f*temp_f31)/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[2], 0.7*temp_f31, 0.7*temp_f31, 0.7*temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[3], 0.7*temp_f31, 0.7*temp_f31, 0.7*temp_f31); - if(!SLSaveFlagGet()) { - espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); - } - } else { - sp28.x = 288; - sp28.y = 250; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - sp28.x = 60; - sp28.y = 90; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp10); - VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI*(90.0f*temp_f31)/180.0); - sp28.y *= 1.0-cos(M_PI*(90.0f*temp_f31)/180.0); - sp28.z = 0.0f; - VECAdd(&sp28, &sp1C, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI*(90.0f*temp_f31)/180.0); - lbl_1_bss_100[temp_r31] = 1.0-temp_f31; - temp_f31 = 1.0+(0.5*cos(M_PI*(90.0f*temp_f31)/180.0)); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - if(temp_r29 && SLSaveFlagGet()) { - goto repeat; - } - HuWinKill(lbl_1_bss_146); - return 1; + } + temp_r27 = HuCardSectorSizeGet(curSlotNo); + if (temp_r27 > 0 && temp_r27 != 8192) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + goto skip_check; + } + else { + if (temp_r27 == -128) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + goto skip_check; + } + else { + lbl_1_bss_8C += 720.0f; + for (temp_r30 = 0; temp_r30 <= 40; temp_r30++) { + if (temp_r30 <= 30) { + temp_f31 = temp_r30 / 30.0f; + sp28.x = 288.0 + (GET_ZEROSIGN(temp_r26) * (100.0 + (250.0 * sin(M_PI * (90.0f * temp_f31) / 180.0)))); + sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.z = (temp_r30 * 100) + 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26 + 2], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26], &sp1C); + Hu3DModelRotSet(lbl_1_bss_19A[temp_r26 + 2], temp_r30 * 20, temp_r30 * 10, 0); + } + + if (temp_r30 > 20) { + temp_f31 = (temp_r30 - 20) / 20.0f; + if (temp_r29) { + sp28.x = 288.0f + ((1.0 - temp_f31) * (100 * GET_ZEROSIGN(temp_r31))); + sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.z = 600.0f; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); + temp_f31 = (0.5 * sin(M_PI * (90.0f * temp_f31) / 180.0)) + 1.0; + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); + } + else { + sp28.x = 288.0f + (100 * GET_ZEROSIGN(temp_r31)); + sp28.y = 250; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + sp28.x = 60; + sp28.y = 90; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp10); + VECSubtract(&sp10, &sp1C, &sp28); + sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); + sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.z = 0; + VECAdd(&sp28, &sp1C, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); + lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; + temp_f31 = 1.0 + (0.3 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); + } + } + HuPrcVSleep(); + } + if (temp_r29 == 0) { + HuWinKill(lbl_1_bss_146); + return 1; + } + HuWinDispOff(lbl_1_bss_146); + temp_r29 = 0; + if (temp_r28 == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -128) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -6) { + UnMountCnt = 0; + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x04)); + HuWinMesWait(lbl_1_bss_148); + temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r25 == 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4E)); + HuWinMesWait(lbl_1_bss_148); + temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r25 == 0) { + fn_1_B8CC(MAKE_MESSID(16, 0x38)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << temp_r31)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + goto cleanup; + } + else { + _SetFlag(0x30000); + temp_r28 = HuCardFormat(temp_r31); + _ClearFlag(FLAG_ID_MAKE(3, 0)); + if (temp_r28 == 0) { + SLSerialNoGet(); + } + fn_1_BA20(); + if (temp_r28 == -128) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x36)); + HuWinMesWait(lbl_1_bss_148); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + } + } + else { + temp_r29 = 1; + } + } + else { + temp_r29 = 1; + } + } + } + } + if (temp_r29 == 0) { + goto cleanup; + } +skip_check: + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r27 == 0) { + SLSaveFlagSet(0); + goto cleanup; + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + } +cleanup: + HuWinDispOff(lbl_1_bss_146); + lbl_1_bss_8C += 720.0f; + for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { + temp_f31 = temp_r30 / 20.0f; + if (temp_r29) { + temp_f31 = 1.5 * cos(M_PI * (90.0f * temp_f31) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[2], 0.7 * temp_f31, 0.7 * temp_f31, 0.7 * temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[3], 0.7 * temp_f31, 0.7 * temp_f31, 0.7 * temp_f31); + if (!SLSaveFlagGet()) { + espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); + } + } + else { + sp28.x = 288; + sp28.y = 250; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + sp28.x = 60; + sp28.y = 90; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp10); + VECSubtract(&sp10, &sp1C, &sp28); + sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); + sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.z = 0.0f; + VECAdd(&sp28, &sp1C, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); + lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; + temp_f31 = 1.0 + (0.5 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + if (temp_r29 && SLSaveFlagGet()) { + goto repeat; + } + HuWinKill(lbl_1_bss_146); + return 1; } s32 fn_1_562C(void) { - s16 i; - s16 result; - s16 ret; - ret = 1; - for(i=0; i<2; i++) { - result = HuCardSlotCheck((s32)i); - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - ret = 0; - } else if(result > 0 && result != 8192) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100039); - HuWinMesWait(lbl_1_bss_148); - ret = 0; - } else if(result == -128) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - ret = 0; - } - } - return ret; + s16 i; + s16 result; + s16 ret; + ret = 1; + for (i = 0; i < 2; i++) { + result = HuCardSlotCheck((s32)i); + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + ret = 0; + } + else if (result > 0 && result != 8192) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + HuWinMesWait(lbl_1_bss_148); + ret = 0; + } + else if (result == -128) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + ret = 0; + } + } + return ret; } void fn_1_57C8(s16 arg0) { - ModelData *model = &Hu3DData[arg0]; - HsfData *hsf = model->hsfData; - HsfMaterial *mat = hsf->material; - s16 i; - for(i=0; imaterialCnt; i++, mat++) { - mat->invAlpha = 0.0f; - mat->pass &= 0xF0; - } + ModelData *model = &Hu3DData[arg0]; + HsfData *hsf = model->hsfData; + HsfMaterial *mat = hsf->material; + s16 i; + for (i = 0; i < hsf->materialCnt; i++, mat++) { + mat->invAlpha = 0.0f; + mat->pass &= 0xF0; + } } typedef struct work_filesel { - s16 index; - s32 param; + s16 index; + s32 param; } WorkFilesel; void fn_1_5850(void) { - s16 index; - WorkFilesel *work; - s16 i; - s32 param; - Process *curr; - curr = HuPrcCurrentGet(); - work = curr->user_data; - index = work->index; - param = work->param; - Hu3DModelAttrSet(lbl_1_bss_19A[index+2], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[index+4], 1); - Hu3DMotionSet(lbl_1_bss_19A[index+4], lbl_1_bss_16A[6]); - Hu3DMotionSpeedSet(lbl_1_bss_19A[index+4], 2.0f); - if(param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index+4], 0x40000004); - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[index+4], 0x40000004); - Hu3DMotionTimeSet(lbl_1_bss_19A[index+4], Hu3DMotionMaxTimeGet(lbl_1_bss_19A[6])); - } - for(i=0; i<10; i++) { - float scale; - float time = i/10.0; - if(param) { - scale = 1.0+(0.3*sin(M_PI*(90.0f*time)/180.0)); - } else { - scale = 1.0+(0.3*cos(M_PI*(90.0f*time)/180.0)); - } - Hu3DModelScaleSet(lbl_1_bss_19A[index+2], scale, scale, scale); - Hu3DModelScaleSet(lbl_1_bss_19A[index+4], scale, scale, scale); - Hu3DModelScaleSet(lbl_1_bss_19A[index], scale, scale, scale); - HuPrcVSleep(); - } - if(!param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index+2], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[index+4], 1); - } - HuMemDirectFree(work); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 index; + WorkFilesel *work; + s16 i; + s32 param; + Process *curr; + curr = HuPrcCurrentGet(); + work = curr->user_data; + index = work->index; + param = work->param; + Hu3DModelAttrSet(lbl_1_bss_19A[index + 2], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 1); + Hu3DMotionSet(lbl_1_bss_19A[index + 4], lbl_1_bss_16A[6]); + Hu3DMotionSpeedSet(lbl_1_bss_19A[index + 4], 2.0f); + if (param) { + Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 0x40000004); + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], 0x40000004); + Hu3DMotionTimeSet(lbl_1_bss_19A[index + 4], Hu3DMotionMaxTimeGet(lbl_1_bss_19A[6])); + } + for (i = 0; i < 10; i++) { + float scale; + float time = i / 10.0; + if (param) { + scale = 1.0 + (0.3 * sin(M_PI * (90.0f * time) / 180.0)); + } + else { + scale = 1.0 + (0.3 * cos(M_PI * (90.0f * time) / 180.0)); + } + Hu3DModelScaleSet(lbl_1_bss_19A[index + 2], scale, scale, scale); + Hu3DModelScaleSet(lbl_1_bss_19A[index + 4], scale, scale, scale); + Hu3DModelScaleSet(lbl_1_bss_19A[index], scale, scale, scale); + HuPrcVSleep(); + } + if (!param) { + Hu3DModelAttrReset(lbl_1_bss_19A[index + 2], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], 1); + } + HuMemDirectFree(work); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_5BAC(s16 arg0, s32 arg1) { - WorkFilesel *work; - Process *child; - Process *parent; - parent = HuPrcCurrentGet(); - child = HuPrcChildCreate(fn_1_5850, 50, 8192, 0, parent); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); - child->user_data = work; - work->index = arg0; - work->param = arg1; + WorkFilesel *work; + Process *child; + Process *parent; + parent = HuPrcCurrentGet(); + child = HuPrcChildCreate(fn_1_5850, 50, 8192, 0, parent); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); + child->user_data = work; + work->index = arg0; + work->param = arg1; } s32 fn_1_5C38(void) { - s32 result; - lbl_1_bss_14C = 0; - result = HuCardSlotCheck(0); - if(result == 8192) { - Hu3DModelAttrReset(lbl_1_bss_19A[0], 1); - lbl_1_bss_14C |= 1; - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[0], 1); - } - result = HuCardSlotCheck(1); - if(result == 8192) { - Hu3DModelAttrReset(lbl_1_bss_19A[1], 1); - lbl_1_bss_14C |= 2; - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[1], 1); - } - return lbl_1_bss_14C; + s32 result; + lbl_1_bss_14C = 0; + result = HuCardSlotCheck(0); + if (result == 8192) { + Hu3DModelAttrReset(lbl_1_bss_19A[0], 1); + lbl_1_bss_14C |= 1; + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[0], 1); + } + result = HuCardSlotCheck(1); + if (result == 8192) { + Hu3DModelAttrReset(lbl_1_bss_19A[1], 1); + lbl_1_bss_14C |= 2; + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[1], 1); + } + return lbl_1_bss_14C; } void fn_1_5D30(void) { - ModelData *model; - Vec pos_2d; - Vec pos_3d; - Mtx scale; - espAttrReset(lbl_1_bss_152[0], 4); - espDrawNoSet(lbl_1_bss_152[0], 127); - espAttrReset(lbl_1_bss_152[1], 4); - Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); - pos_2d.x = 188; - pos_2d.y = 250; - pos_2d.z = 600; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[2], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[4], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[0], &pos_3d); - MTXScale(scale, 0.5f, 0.5f, 0.5f); - model = &Hu3DData[lbl_1_bss_19A[2]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[4]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[0]]; - MTXCopy(scale, model->unk_F0); - Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); - pos_2d.x = 388; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[3], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[5], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[1], &pos_3d); - model = &Hu3DData[lbl_1_bss_19A[3]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[5]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[1]]; - MTXCopy(scale, model->unk_F0); - Hu3DModelScaleSet(lbl_1_bss_19A[0], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[1], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[2], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[3], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[4], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[5], 0, 0, 0); - fn_1_5C38(); + ModelData *model; + Vec pos_2d; + Vec pos_3d; + Mtx scale; + espAttrReset(lbl_1_bss_152[0], 4); + espDrawNoSet(lbl_1_bss_152[0], 127); + espAttrReset(lbl_1_bss_152[1], 4); + Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); + pos_2d.x = 188; + pos_2d.y = 250; + pos_2d.z = 600; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[2], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[4], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[0], &pos_3d); + MTXScale(scale, 0.5f, 0.5f, 0.5f); + model = &Hu3DData[lbl_1_bss_19A[2]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[4]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[0]]; + MTXCopy(scale, model->unk_F0); + Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); + pos_2d.x = 388; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[3], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[5], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[1], &pos_3d); + model = &Hu3DData[lbl_1_bss_19A[3]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[5]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[1]]; + MTXCopy(scale, model->unk_F0); + Hu3DModelScaleSet(lbl_1_bss_19A[0], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[1], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[2], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[3], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[4], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[5], 0, 0, 0); + fn_1_5C38(); } void fn_1_7628(s16 boxno, s32 flag); @@ -745,1302 +755,1356 @@ void fn_1_BA80(s16 boxno); s32 fn_1_61B4(void) { - float temp_f31; - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s32 temp_r27; - s16 temp_r26; - float sp10[2]; - OSTime sp8; - HuWinMesMaxSizeGet(1, sp10, 0x10003D); - lbl_1_bss_146 = HuWinExCreateStyled(-10000, 316, sp10[0], sp10[1], -1, 0); - HuWinAttrSet(lbl_1_bss_146, 0x800); - HuWinBGTPLvlSet(lbl_1_bss_146, 0); - HuWinMesSpeedSet(lbl_1_bss_146, 0); - temp_r30 = -1; - for(temp_r29=lbl_1_bss_88=0; temp_r29<3; temp_r29++) { - lbl_1_bss_EE[temp_r29] = -1; - lbl_1_bss_E8[temp_r29] = -1; - lbl_1_bss_140[temp_r29] = 0; - temp_r27 = fn_1_76B4(SaveFileNameTbl[temp_r29], curSlotNo); - if(temp_r27 == 0) { - temp_r27 = fn_1_83B4(); - if(temp_r27 == 0) { - lbl_1_bss_140[temp_r29] = 1; - if(lbl_1_bss_88 == 0) { - temp_r30 = temp_r29; - } - lbl_1_bss_88++; - if(SLCheckSumCheck()) { - fn_1_A8C0(temp_r29); - } - } - fn_1_9E14(); - } - if(temp_r27 != 0 && temp_r27 != -4) { - HuWinKill(lbl_1_bss_146); - return 0; - } - } - fn_1_9E4C(); - if(temp_r30 == -1) { - temp_r30 = 0; - } - lbl_1_bss_120[0] = lbl_1_bss_120[1] = lbl_1_bss_120[2] = 1; - UnMountCnt = 0; - for(temp_r29=0; temp_r29<=20; temp_r29++) { - temp_f31 = sin(M_PI*(90.0f*(temp_r29/20.0f))/180.0); - for(temp_r28=0; temp_r28<3; temp_r28++) { - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+8], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+11], temp_f31, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - fn_1_7628(temp_r30, 1); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else { - if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - } else { - UnMountCnt = 0; - while(1) { - HuPrcVSleep(); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - temp_r26 = 0; - if(HuPadDStkRep[0] & 0x1) { - temp_r26 = -1; - } else if(HuPadDStkRep[0] & 0x2) { - temp_r26 = 1; - } - if(temp_r26) { - fn_1_7628(temp_r30, 0); - temp_r30 += temp_r26; - if(temp_r30 < 0) { - temp_r30 = 2; - } else if(temp_r30 >= 3) { - temp_r30 = 0; - } - HuAudFXPlay(0); - fn_1_7628(temp_r30, 1); - fn_1_BA80(temp_r30); - HuPrcSleep(10); - } - if((HuPadBtnDown[0] & PAD_BUTTON_X) && lbl_1_bss_140[temp_r30]) { - UnMountCnt = 0; - temp_r31 = fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo); - if(temp_r31 < 0) { - temp_r31 = 0; - break; - } - if(!lbl_1_bss_140[temp_r30]) { - continue; - } - HuWinDispOff(lbl_1_bss_146); - HuAudFXPlay(2); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 1); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x100008); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r31 == 0) { - temp_r31 = fn_1_8540(temp_r30); - if(temp_r31 == 0) { - break; - } - } - if(UnMountCnt & (1 << curSlotNo)) { - continue; - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - continue; - } else if(HuPadBtnDown[0] & PAD_BUTTON_Y) { - UnMountCnt = 0; - if(HuCardSlotCheck(curSlotNo) < 0) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - if(!lbl_1_bss_140[temp_r30]) { - continue; - } - for(temp_r29=0; temp_r29<3; temp_r29++) { - if(!lbl_1_bss_140[temp_r29]) { - break; - } - } - if(temp_r29 == 3) { - continue; - } - HuWinDispOff(lbl_1_bss_146); - HuAudFXPlay(2); - if(fn_1_8C30(temp_r30) == 0) { - temp_r31 = 0; - break; - } - if(UnMountCnt & (1 << curSlotNo)) { - continue; - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - continue; - } else if(HuPadBtnDown[0] & PAD_BUTTON_A) { - UnMountCnt = 0; - HuWinDispOff(lbl_1_bss_146); - HuCardMount(curSlotNo); - if(HuCardSlotCheck(curSlotNo) < 0) { - HuAudFXPlay(4); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - if(SLSerialNoCheck() == 0) { - HuAudFXPlay(4); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - HuAudFXPlay(2097); - SLCurBoxNoSet(temp_r30); - if(!lbl_1_bss_140[temp_r30]) { - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - sp8 = OSGetTime(); - SLSaveDataMake(1, &sp8); - GWGameStatReset(); - GWGameStat.sound_mode = msmSysGetOutputMode(); - SLCommonSet(); - fn_1_B8CC(0x10003C); - HuPrcSleep(20); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - temp_r27 = fn_1_7B74(temp_r30); - fn_1_BA20(); - if(temp_r27 != 0) { - temp_r31 = 1; - break; - } - HuWinMesSet(lbl_1_bss_148, 0x10004F); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r31 == 0) { - SLSaveFlagSet(0); - temp_r31 = 1; - break; - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - temp_r31 = 0; - break; - } else { - if(!fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo)) { - if(!fn_1_83B4()) { - if(SLCheckSumCheck()) { - fn_1_9E14(); - SLLoadGameStat(); - temp_r31 = 1; - break; - } - HuWinHomeClear(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x10003A); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(!temp_r31) { - temp_r31 = fn_1_8540(temp_r30); - if(temp_r31 == 0) { - break; - } - if(HuCardMount(curSlotNo) < 0) { - temp_r31 = 0; - break; - } - } - } else { - temp_r31 = 0; - } - } else { - temp_r31 = 0; - } - if(temp_r31 == 0) { - break; - } - if(UnMountCnt & (1 << curSlotNo)) { - continue; - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - continue; - } - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - temp_r31 = 0; - break; - } - } - } - HuWinDispOff(lbl_1_bss_146); - for(temp_r29=0; temp_r29<=20; temp_r29++) { - temp_f31 = cos(M_PI*(90.0*(temp_r29/20.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[curSlotNo], temp_f31, temp_f31, temp_f31); - for(temp_r28=0; temp_r28<3; temp_r28++) { - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+8], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+11], temp_f31, temp_f31, temp_f31); - } - if(temp_r31) { - espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); - } - HuPrcVSleep(); - } - HuWinKill(lbl_1_bss_146); - return temp_r31; + float temp_f31; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s32 temp_r27; + s16 temp_r26; + float sp10[2]; + OSTime sp8; + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(0x10, 0x3D)); + lbl_1_bss_146 = HuWinExCreateStyled(-10000, 316, sp10[0], sp10[1], -1, 0); + HuWinAttrSet(lbl_1_bss_146, 0x800); + HuWinBGTPLvlSet(lbl_1_bss_146, 0); + HuWinMesSpeedSet(lbl_1_bss_146, 0); + temp_r30 = -1; + for (temp_r29 = lbl_1_bss_88 = 0; temp_r29 < 3; temp_r29++) { + lbl_1_bss_EE[temp_r29] = -1; + lbl_1_bss_E8[temp_r29] = -1; + lbl_1_bss_140[temp_r29] = 0; + temp_r27 = fn_1_76B4(SaveFileNameTbl[temp_r29], curSlotNo); + if (temp_r27 == 0) { + temp_r27 = fn_1_83B4(); + if (temp_r27 == 0) { + lbl_1_bss_140[temp_r29] = 1; + if (lbl_1_bss_88 == 0) { + temp_r30 = temp_r29; + } + lbl_1_bss_88++; + if (SLCheckSumCheck()) { + fn_1_A8C0(temp_r29); + } + } + fn_1_9E14(); + } + if (temp_r27 != 0 && temp_r27 != -4) { + HuWinKill(lbl_1_bss_146); + return 0; + } + } + fn_1_9E4C(); + if (temp_r30 == -1) { + temp_r30 = 0; + } + lbl_1_bss_120[0] = lbl_1_bss_120[1] = lbl_1_bss_120[2] = 1; + UnMountCnt = 0; + for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { + temp_f31 = sin(M_PI * (90.0f * (temp_r29 / 20.0f)) / 180.0); + for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + fn_1_7628(temp_r30, 1); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else { + if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + } + else { + UnMountCnt = 0; + while (1) { + HuPrcVSleep(); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + temp_r26 = 0; + if (HuPadDStkRep[0] & 0x1) { + temp_r26 = -1; + } + else if (HuPadDStkRep[0] & 0x2) { + temp_r26 = 1; + } + if (temp_r26) { + fn_1_7628(temp_r30, 0); + temp_r30 += temp_r26; + if (temp_r30 < 0) { + temp_r30 = 2; + } + else if (temp_r30 >= 3) { + temp_r30 = 0; + } + HuAudFXPlay(0); + fn_1_7628(temp_r30, 1); + fn_1_BA80(temp_r30); + HuPrcSleep(10); + } + if ((HuPadBtnDown[0] & PAD_BUTTON_X) && lbl_1_bss_140[temp_r30]) { + UnMountCnt = 0; + temp_r31 = fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo); + if (temp_r31 < 0) { + temp_r31 = 0; + break; + } + if (!lbl_1_bss_140[temp_r30]) { + continue; + } + HuWinDispOff(lbl_1_bss_146); + HuAudFXPlay(2); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 1); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x08)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r31 == 0) { + temp_r31 = fn_1_8540(temp_r30); + if (temp_r31 == 0) { + break; + } + } + if (UnMountCnt & (1 << curSlotNo)) { + continue; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + continue; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_Y) { + UnMountCnt = 0; + if (HuCardSlotCheck(curSlotNo) < 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + if (!lbl_1_bss_140[temp_r30]) { + continue; + } + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + if (!lbl_1_bss_140[temp_r29]) { + break; + } + } + if (temp_r29 == 3) { + continue; + } + HuWinDispOff(lbl_1_bss_146); + HuAudFXPlay(2); + if (fn_1_8C30(temp_r30) == 0) { + temp_r31 = 0; + break; + } + if (UnMountCnt & (1 << curSlotNo)) { + continue; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + continue; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_A) { + UnMountCnt = 0; + HuWinDispOff(lbl_1_bss_146); + HuCardMount(curSlotNo); + if (HuCardSlotCheck(curSlotNo) < 0) { + HuAudFXPlay(4); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + if (SLSerialNoCheck() == 0) { + HuAudFXPlay(4); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + HuAudFXPlay(2097); + SLCurBoxNoSet(temp_r30); + if (!lbl_1_bss_140[temp_r30]) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + sp8 = OSGetTime(); + SLSaveDataMake(1, &sp8); + GWGameStatReset(); + GWGameStat.sound_mode = msmSysGetOutputMode(); + SLCommonSet(); + fn_1_B8CC(MAKE_MESSID(16, 0x3C)); + HuPrcSleep(20); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + temp_r27 = fn_1_7B74(temp_r30); + fn_1_BA20(); + if (temp_r27 != 0) { + temp_r31 = 1; + break; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r31 == 0) { + SLSaveFlagSet(0); + temp_r31 = 1; + break; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + temp_r31 = 0; + break; + } + else { + if (!fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo)) { + if (!fn_1_83B4()) { + if (SLCheckSumCheck()) { + fn_1_9E14(); + SLLoadGameStat(); + temp_r31 = 1; + break; + } + HuWinHomeClear(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (!temp_r31) { + temp_r31 = fn_1_8540(temp_r30); + if (temp_r31 == 0) { + break; + } + if (HuCardMount(curSlotNo) < 0) { + temp_r31 = 0; + break; + } + } + } + else { + temp_r31 = 0; + } + } + else { + temp_r31 = 0; + } + if (temp_r31 == 0) { + break; + } + if (UnMountCnt & (1 << curSlotNo)) { + continue; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + continue; + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + temp_r31 = 0; + break; + } + } + } + HuWinDispOff(lbl_1_bss_146); + for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { + temp_f31 = cos(M_PI * (90.0 * (temp_r29 / 20.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[curSlotNo], temp_f31, temp_f31, temp_f31); + for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31); + } + if (temp_r31) { + espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); + } + HuPrcVSleep(); + } + HuWinKill(lbl_1_bss_146); + return temp_r31; } void fn_1_72DC(void) { - s16 index; - WorkFilesel *work; - s16 i; - s32 param; - Process *curr; - curr = HuPrcCurrentGet(); - work = curr->user_data; - index = work->index; - param = work->param; - if(param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index+8], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[index+11], 1); - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[index+8], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[index+11], 1); - } - for(i=0; i<=10; i++) { - float scale; - Vec pos_2d; - Vec pos_3d; - if(param) { - scale = sin(M_PI*(90.0f*(i/10.0f))/180.0); - } else { - scale = cos(M_PI*(90.0f*(i/10.0f))/180.0); - } - pos_2d.x = 158.0f+(index*130); - pos_2d.y = 230; - pos_2d.z = 800; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - pos_3d.z = 800+(100.0f*scale); - Hu3DModelPosSetV(lbl_1_bss_19A[index+8], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[index+11], &pos_3d); - Hu3DModelScaleSet(lbl_1_bss_19A[index+8], 1, 1, 1); - Hu3DModelScaleSet(lbl_1_bss_19A[index+11], 1, 1, 1); - HuPrcVSleep(); - } - (void)curr; - HuMemDirectFree(work); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 index; + WorkFilesel *work; + s16 i; + s32 param; + Process *curr; + curr = HuPrcCurrentGet(); + work = curr->user_data; + index = work->index; + param = work->param; + if (param) { + Hu3DModelAttrReset(lbl_1_bss_19A[index + 8], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 11], 1); + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[index + 8], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 11], 1); + } + for (i = 0; i <= 10; i++) { + float scale; + Vec pos_2d; + Vec pos_3d; + if (param) { + scale = sin(M_PI * (90.0f * (i / 10.0f)) / 180.0); + } + else { + scale = cos(M_PI * (90.0f * (i / 10.0f)) / 180.0); + } + pos_2d.x = 158.0f + (index * 130); + pos_2d.y = 230; + pos_2d.z = 800; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + pos_3d.z = 800 + (100.0f * scale); + Hu3DModelPosSetV(lbl_1_bss_19A[index + 8], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[index + 11], &pos_3d); + Hu3DModelScaleSet(lbl_1_bss_19A[index + 8], 1, 1, 1); + Hu3DModelScaleSet(lbl_1_bss_19A[index + 11], 1, 1, 1); + HuPrcVSleep(); + } + (void)curr; + HuMemDirectFree(work); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_7628(s16 boxno, s32 flag) { - WorkFilesel *work; - Process *parent; - Process *child; - - parent = HuPrcCurrentGet(); - child = HuPrcChildCreate(fn_1_72DC, 50, 8192, 0, parent); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); - child->user_data = work; - work->index = boxno; - work->param = flag; + WorkFilesel *work; + Process *parent; + Process *child; + + parent = HuPrcCurrentGet(); + child = HuPrcChildCreate(fn_1_72DC, 50, 8192, 0, parent); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); + child->user_data = work; + work->index = boxno; + work->param = flag; } s32 fn_1_76B4(char *name, s16 slotno) { - s32 result; - s16 choice; - s16 filecnt; - filecnt = 0; - while(1) { - filecnt++; - result = HuCardMount(slotno); - if(result == 0) { - result = HuCardOpen(slotno, name, &curFileInfo); - if(result == 0 || result == -4) { - if(SLSerialNoCheck()) { - return result; - } - } - } - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - return result; - } - if(result == -128 || filecnt > 3) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return result; - } else if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return result; - } else if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Open Error:No File\n"); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - break; - } else if(result == -6) { - UnMountCnt = 0; - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x100004); - HuWinMesWait(lbl_1_bss_148); - choice = HuWinChoiceGet(lbl_1_bss_148, 1); - if(choice == 0) { - HuWinMesSet(lbl_1_bss_148, 0x10004E); - HuWinMesWait(lbl_1_bss_148); - choice = HuWinChoiceGet(lbl_1_bss_148, 1); - if(choice == 0) { - fn_1_B8CC(0x100038); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - } else { - _SetFlag(0x30000); - result = HuCardFormat(slotno); - _ClearFlag(0x30000); - if(result == 0) { - SLSerialNoGet(); - } - fn_1_BA20(); - if(result == -128) { - HuWinMesSet(lbl_1_bss_148, 0x100036); - HuWinMesWait(lbl_1_bss_148); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return result; - } else if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return result; - } - } - } else { - return result; - } - continue; - } - return result; - } - break; - } - return result; + s32 result; + s16 choice; + s16 filecnt; + filecnt = 0; + while (1) { + filecnt++; + result = HuCardMount(slotno); + if (result == 0) { + result = HuCardOpen(slotno, name, &curFileInfo); + if (result == 0 || result == -4) { + if (SLSerialNoCheck()) { + return result; + } + } + } + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + if (result == -128 || filecnt > 3) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + else if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + else if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Open Error:No File\n"); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + break; + } + else if (result == -6) { + UnMountCnt = 0; + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x04)); + HuWinMesWait(lbl_1_bss_148); + choice = HuWinChoiceGet(lbl_1_bss_148, 1); + if (choice == 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4E)); + HuWinMesWait(lbl_1_bss_148); + choice = HuWinChoiceGet(lbl_1_bss_148, 1); + if (choice == 0) { + fn_1_B8CC(MAKE_MESSID(16, 0x38)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + } + else { + _SetFlag(0x30000); + result = HuCardFormat(slotno); + _ClearFlag(0x30000); + if (result == 0) { + SLSerialNoGet(); + } + fn_1_BA20(); + if (result == -128) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x36)); + HuWinMesWait(lbl_1_bss_148); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + else if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + } + } + else { + return result; + } + continue; + } + return result; + } + break; + } + return result; } s32 fn_1_7B74(s16 boxno) { - s32 result; - s32 i; - result = HuCardMount(curSlotNo); - if(result == 0 && !SLSerialNoCheck()) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - } else { - result = HuCardSectorSizeGet(curSlotNo); - if(result == -3) { - fn_1_BA20(); - OSReport("SectorSize Check Error:No Card %d\n", curSlotNo); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } else { - if(result != 8192) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100039); - HuWinMesWait(lbl_1_bss_148); - } else { - u32 byteNotUsed; - u32 filesNotUsed; - result = HuCardFreeSpaceGet(curSlotNo, &byteNotUsed, &filesNotUsed); - if(filesNotUsed == 0 && byteNotUsed < SAVE_BUF_SIZE) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - } else if(filesNotUsed == 0) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - } else if(byteNotUsed < SAVE_BUF_SIZE) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - } else { - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - for(i=0; i<=40; i++) { - float time = i/40.0; - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+8], 0.6+(0.4*time)); - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+11], 0.3+(0.7*time)); - HuPrcVSleep(); - } - _SetFlag(0x30000); - result = HuCardCreate(curSlotNo, SaveFileNameTbl[boxno], SAVE_BUF_SIZE, &curFileInfo); - if(result == -3) { - _ClearFlag(0x30000); - fn_1_BA20(); - OSReport("File Create Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } else if(result == -2) { - _ClearFlag(0x30000); - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - } else if(result < 0) { - _ClearFlag(0x30000); - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - } else { - result = fn_1_812C(); - _ClearFlag(0x30000); - if(result != 0) { - return 1; - } - } - } - } - } - } - return 0; + s32 result; + s32 i; + result = HuCardMount(curSlotNo); + if (result == 0 && !SLSerialNoCheck()) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + } + else { + result = HuCardSectorSizeGet(curSlotNo); + if (result == -3) { + fn_1_BA20(); + OSReport("SectorSize Check Error:No Card %d\n", curSlotNo); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + else { + if (result != 8192) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + HuWinMesWait(lbl_1_bss_148); + } + else { + u32 byteNotUsed; + u32 filesNotUsed; + result = HuCardFreeSpaceGet(curSlotNo, &byteNotUsed, &filesNotUsed); + if (filesNotUsed == 0 && byteNotUsed < SAVE_BUF_SIZE) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + } + else if (filesNotUsed == 0) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + } + else if (byteNotUsed < SAVE_BUF_SIZE) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + } + else { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + for (i = 0; i <= 40; i++) { + float time = i / 40.0; + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6 + (0.4 * time)); + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3 + (0.7 * time)); + HuPrcVSleep(); + } + _SetFlag(0x30000); + result = HuCardCreate(curSlotNo, SaveFileNameTbl[boxno], SAVE_BUF_SIZE, &curFileInfo); + if (result == -3) { + _ClearFlag(0x30000); + fn_1_BA20(); + OSReport("File Create Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result == -2) { + _ClearFlag(0x30000); + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result < 0) { + _ClearFlag(0x30000); + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + } + else { + result = fn_1_812C(); + _ClearFlag(0x30000); + if (result != 0) { + return 1; + } + } + } + } + } + } + return 0; } s32 fn_1_812C(void) { - s32 result; - SLCheckSumSet(); - _SetFlag(0x30000); - result = HuCardWrite(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); - _ClearFlag(0x30000); - if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - result = SLStatSet(0); - if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - return 1; + s32 result; + SLCheckSumSet(); + _SetFlag(0x30000); + result = HuCardWrite(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); + _ClearFlag(0x30000); + if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + result = SLStatSet(0); + if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + return 1; } s32 fn_1_83B4(void) { - s32 result; - result = HuCardRead(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); - if(result == -3) { - OSReport("Card Read Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } else if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Read Error:No File\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - } else if(result < 0) { - OSReport("Card Read Error:Fatal Error %d\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - } - return result; + s32 result; + result = HuCardRead(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); + if (result == -3) { + OSReport("Card Read Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Read Error:No File\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result < 0) { + OSReport("Card Read Error:Fatal Error %d\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + } + return result; } s32 fn_1_8540(s16 boxno) { - float scale; - s32 result; - s32 time; - AnimData *sprite; - result = HuCardMount(curSlotNo); - if(result == -3) { - OSReport("Card Delete Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Delete Error:No File\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - OSReport("Card Delete Error:Fatal Error %d\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - - fn_1_B8CC(0x10003B); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - return 0; - } else { - _SetFlag(0x30000); - result = HuCardDelete(curSlotNo, SaveFileNameTbl[boxno]); - _ClearFlag(0x30000); - fn_1_BA20(); - if(result == -3) { - OSReport("Card Delete Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Delete Error:No File\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - OSReport("Card Delete Error:Fatal Error %d\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - for(time=0; time<=10; time++) { - scale = cos(M_PI*(90.0*(time/10.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[boxno+8], scale, scale, scale); - HuPrcVSleep(); - } - Hu3DAnimKill(lbl_1_bss_13A[boxno]); - Hu3DAnimKill(lbl_1_bss_134[boxno]); - sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[8], MEMORY_DEFAULT_NUM)); - lbl_1_bss_13A[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno+8], "star"); - sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[17], MEMORY_DEFAULT_NUM)); - lbl_1_bss_134[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno+11], "star"); - lbl_1_bss_EE[boxno] = -1; - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+8], 0.6f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+11], 0.3f); - for(time=0; time<=20; time++) { - scale = sin(M_PI*(90.0*(time/20.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[boxno+8], scale, scale, scale); - HuPrcVSleep(); - } - lbl_1_bss_140[boxno] = 0; - lbl_1_bss_88--; - return 1; - } + float scale; + s32 result; + s32 time; + AnimData *sprite; + result = HuCardMount(curSlotNo); + if (result == -3) { + OSReport("Card Delete Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Delete Error:No File\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + OSReport("Card Delete Error:Fatal Error %d\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + + fn_1_B8CC(MAKE_MESSID(16, 0x3B)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + else { + _SetFlag(0x30000); + result = HuCardDelete(curSlotNo, SaveFileNameTbl[boxno]); + _ClearFlag(0x30000); + fn_1_BA20(); + if (result == -3) { + OSReport("Card Delete Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Delete Error:No File\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + OSReport("Card Delete Error:Fatal Error %d\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + for (time = 0; time <= 10; time++) { + scale = cos(M_PI * (90.0 * (time / 10.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); + HuPrcVSleep(); + } + Hu3DAnimKill(lbl_1_bss_13A[boxno]); + Hu3DAnimKill(lbl_1_bss_134[boxno]); + sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[8], MEMORY_DEFAULT_NUM)); + lbl_1_bss_13A[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno + 8], "star"); + sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[17], MEMORY_DEFAULT_NUM)); + lbl_1_bss_134[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno + 11], "star"); + lbl_1_bss_EE[boxno] = -1; + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3f); + for (time = 0; time <= 20; time++) { + scale = sin(M_PI * (90.0 * (time / 20.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); + HuPrcVSleep(); + } + lbl_1_bss_140[boxno] = 0; + lbl_1_bss_88--; + return 1; + } } s32 fn_1_8C30(s16 boxno) { - float temp_f31; - s16 temp_r31; - s16 temp_r30; - s32 temp_r29; - s16 temp_r26; - s16 temp_r25; - AnimData *temp_r19; - Vec sp60; - Vec sp54; - Vec sp48; - Vec sp3C; - s32 sp38; - s32 sp34; - Process *sp30; - ModelData *sp2C; - sp30 = HuPrcCurrentGet(); - OSReport("Card Copy Seq.:Open\n"); - temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); - if(temp_r29 < 0 || !SLSerialNoCheck()) { - return 0; - } - OSReport("Card Copy Seq.:Read\n"); - temp_r29 = fn_1_83B4(); - if(temp_r29 != 0) { - return 0; - } - OSReport("Card Copy Seq.:CheckSum Check\n"); - if(!SLCheckSumCheck()) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x10003A); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r29 != 0) { - return 1; - } else { - temp_r29 = fn_1_8540(boxno); - return temp_r29; - } - } - if(!SLSerialNoCheck()) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - temp_r29 = HuCardFreeSpaceGet(curSlotNo, (u32 *)&sp34, (u32 *)&sp38); - if(sp38 == 0 && sp34 < SAVE_BUF_SIZE) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - return 1; - } else if(sp38 == 0) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - return 1; - } else if(sp34 < SAVE_BUF_SIZE) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - return 1; - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - if(!lbl_1_bss_140[temp_r30]) { - break; - } - } - if(temp_r30 == 3) { - return 1; - } - temp_r31 = temp_r30; - HuWinMesSet(lbl_1_bss_148, 0x100009); - HuWinMesWait(lbl_1_bss_148); - HuWinMesSet(lbl_1_bss_146, 0x100035); - HuWinDispOn(lbl_1_bss_146); - lbl_1_bss_90 = boxno; - Hu3DModelAttrReset(lbl_1_bss_19A[23], 1); - sp2C = &Hu3DData[lbl_1_bss_19A[boxno+8]]; - Hu3DModelPosSetV(lbl_1_bss_19A[23], &sp2C->pos); - for(temp_r30=1; temp_r30<=10; temp_r30++) { - temp_f31 = 0.7+(0.3*(temp_r30/10.0)); - Hu3DModelScaleSet(lbl_1_bss_19A[23], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - fn_1_7628(temp_r31, 1); - while(1) { - HuPrcVSleep(); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - break; - } else { - temp_r26 = 0; - if(HuPadDStkRep[0] & 0x1) { - temp_r26 = -1; - } else if(HuPadDStkRep[0] & 0x2) { - temp_r26 = 1; - } - (void)temp_r26; - if(temp_r26) { - HuAudFXPlay(0); - fn_1_7628(temp_r31, 0); - while(1) { - temp_r31 += temp_r26; - if(temp_r31 < 0) { - temp_r31 = 2; - } else if(temp_r31 >= 3) { - temp_r31 = 0; - } - if(lbl_1_bss_140[temp_r31] == 0) { - break; - } - } - fn_1_7628(temp_r31, 1); - HuPrcSleep(10); - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2096); - } else if(!(HuPadBtnDown[0] & PAD_BUTTON_B)) { - continue; - } else { - HuAudFXPlay(3); - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - fn_1_7628(temp_r31, 0); - HuWinDispOff(lbl_1_bss_146); - return 1; - } - HuWinDispOff(lbl_1_bss_146); - temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); - if(temp_r29 >= 0 && SLSerialNoCheck()) { - fn_1_B8CC(0x10000A); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - OSReport("CheckSum Check\n"); - if(!SLCheckSumCheck()) { - HuPrcSleep(60); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x10003A); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r29 == 0) { - temp_r29 = fn_1_8540(boxno); - } - } else { - fn_1_9E14(); - for(temp_r30=0; temp_r30<=10; temp_r30++) { - temp_f31 = cos(M_PI*(90.0*(temp_r30/10.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+8], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - } else { - OSReport("File Create\n"); - SLCurBoxNoSet(temp_r31); - SLLoadGameStat(); - SLSaveDataMake(0, &GWGameStat.create_time); - if(fn_1_7B74(temp_r31)) { - fn_1_9E14(); - fn_1_A8C0(temp_r31); - Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); - Hu3DAnimKill(lbl_1_bss_134[temp_r31]); - temp_r25 = lbl_1_bss_E8[temp_r31]; - if(temp_r25 < 0) { - temp_r25 = 8; - } - (void)temp_r25; - temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); - lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31+8], "star"); - temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); - lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31+11], "star"); - Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31+11], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31+8], 1); - sp60.x = 158.0f+(boxno*130); - sp60.y = 230; - sp60.z = 800; - Hu3D2Dto3D(&sp60, 1, &sp54); - sp54.z = 900; - sp60.x = 158.0f+(temp_r31*130); - Hu3D2Dto3D(&sp60, 1, &sp48); - sp48.z = 800; - VECSubtract(&sp48, &sp54, &sp3C); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+8], 1.0f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+11], 1.0f); - lbl_1_bss_120[temp_r31] = 0; - for(temp_r30=1; temp_r30<=30; temp_r30++) { - temp_f31 = temp_r30/30.0; - sp60.x = sp3C.x*temp_f31; - sp60.y = sp3C.y*temp_f31; - sp60.z = (sp3C.z*temp_f31)+(-300*sin(M_PI*(180.0f*temp_f31)/180.0)); - VECAdd(&sp60, &sp54, &sp60); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31+11], &sp60); - HuPrcVSleep(); - } - lbl_1_bss_120[temp_r31] = 1; - fn_1_BA20(); - lbl_1_bss_140[temp_r31] = 1; - lbl_1_bss_88++; - return 1; - } - } - } - - } - break; - } - } - fn_1_BA20(); - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - for(temp_r30=0; temp_r30<=10; temp_r30++) { - temp_f31 = sin(M_PI*(90.0*(temp_r30/10.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+8], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - fn_1_7628(temp_r31, 0); - return 0; + float temp_f31; + s16 temp_r31; + s16 temp_r30; + s32 temp_r29; + s16 temp_r26; + s16 temp_r25; + AnimData *temp_r19; + Vec sp60; + Vec sp54; + Vec sp48; + Vec sp3C; + s32 sp38; + s32 sp34; + Process *sp30; + ModelData *sp2C; + sp30 = HuPrcCurrentGet(); + OSReport("Card Copy Seq.:Open\n"); + temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); + if (temp_r29 < 0 || !SLSerialNoCheck()) { + return 0; + } + OSReport("Card Copy Seq.:Read\n"); + temp_r29 = fn_1_83B4(); + if (temp_r29 != 0) { + return 0; + } + OSReport("Card Copy Seq.:CheckSum Check\n"); + if (!SLCheckSumCheck()) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r29 != 0) { + return 1; + } + else { + temp_r29 = fn_1_8540(boxno); + return temp_r29; + } + } + if (!SLSerialNoCheck()) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + temp_r29 = HuCardFreeSpaceGet(curSlotNo, (u32 *)&sp34, (u32 *)&sp38); + if (sp38 == 0 && sp34 < SAVE_BUF_SIZE) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + return 1; + } + else if (sp38 == 0) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + return 1; + } + else if (sp34 < SAVE_BUF_SIZE) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + return 1; + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + if (!lbl_1_bss_140[temp_r30]) { + break; + } + } + if (temp_r30 == 3) { + return 1; + } + temp_r31 = temp_r30; + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x09)); + HuWinMesWait(lbl_1_bss_148); + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x35)); + HuWinDispOn(lbl_1_bss_146); + lbl_1_bss_90 = boxno; + Hu3DModelAttrReset(lbl_1_bss_19A[23], 1); + sp2C = &Hu3DData[lbl_1_bss_19A[boxno + 8]]; + Hu3DModelPosSetV(lbl_1_bss_19A[23], &sp2C->pos); + for (temp_r30 = 1; temp_r30 <= 10; temp_r30++) { + temp_f31 = 0.7 + (0.3 * (temp_r30 / 10.0)); + Hu3DModelScaleSet(lbl_1_bss_19A[23], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + fn_1_7628(temp_r31, 1); + while (1) { + HuPrcVSleep(); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + break; + } + else { + temp_r26 = 0; + if (HuPadDStkRep[0] & 0x1) { + temp_r26 = -1; + } + else if (HuPadDStkRep[0] & 0x2) { + temp_r26 = 1; + } + (void)temp_r26; + if (temp_r26) { + HuAudFXPlay(0); + fn_1_7628(temp_r31, 0); + while (1) { + temp_r31 += temp_r26; + if (temp_r31 < 0) { + temp_r31 = 2; + } + else if (temp_r31 >= 3) { + temp_r31 = 0; + } + if (lbl_1_bss_140[temp_r31] == 0) { + break; + } + } + fn_1_7628(temp_r31, 1); + HuPrcSleep(10); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2096); + } + else if (!(HuPadBtnDown[0] & PAD_BUTTON_B)) { + continue; + } + else { + HuAudFXPlay(3); + Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + fn_1_7628(temp_r31, 0); + HuWinDispOff(lbl_1_bss_146); + return 1; + } + HuWinDispOff(lbl_1_bss_146); + temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); + if (temp_r29 >= 0 && SLSerialNoCheck()) { + fn_1_B8CC(MAKE_MESSID(16, 0x0A)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + OSReport("CheckSum Check\n"); + if (!SLCheckSumCheck()) { + HuPrcSleep(60); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r29 == 0) { + temp_r29 = fn_1_8540(boxno); + } + } + else { + fn_1_9E14(); + for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { + temp_f31 = cos(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + } + else { + OSReport("File Create\n"); + SLCurBoxNoSet(temp_r31); + SLLoadGameStat(); + SLSaveDataMake(0, &GWGameStat.create_time); + if (fn_1_7B74(temp_r31)) { + fn_1_9E14(); + fn_1_A8C0(temp_r31); + Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); + Hu3DAnimKill(lbl_1_bss_134[temp_r31]); + temp_r25 = lbl_1_bss_E8[temp_r31]; + if (temp_r25 < 0) { + temp_r25 = 8; + } + (void)temp_r25; + temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); + lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 8], "star"); + temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); + lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 11], "star"); + Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1); + sp60.x = 158.0f + (boxno * 130); + sp60.y = 230; + sp60.z = 800; + Hu3D2Dto3D(&sp60, 1, &sp54); + sp54.z = 900; + sp60.x = 158.0f + (temp_r31 * 130); + Hu3D2Dto3D(&sp60, 1, &sp48); + sp48.z = 800; + VECSubtract(&sp48, &sp54, &sp3C); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 1.0f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 1.0f); + lbl_1_bss_120[temp_r31] = 0; + for (temp_r30 = 1; temp_r30 <= 30; temp_r30++) { + temp_f31 = temp_r30 / 30.0; + sp60.x = sp3C.x * temp_f31; + sp60.y = sp3C.y * temp_f31; + sp60.z = (sp3C.z * temp_f31) + (-300 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + VECAdd(&sp60, &sp54, &sp60); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &sp60); + HuPrcVSleep(); + } + lbl_1_bss_120[temp_r31] = 1; + fn_1_BA20(); + lbl_1_bss_140[temp_r31] = 1; + lbl_1_bss_88++; + return 1; + } + } + } + } + break; + } + } + fn_1_BA20(); + Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { + temp_f31 = sin(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + fn_1_7628(temp_r31, 0); + return 0; } s32 fn_1_9E14(void) { - s32 result = HuCardClose(&curFileInfo); - return result; + s32 result = HuCardClose(&curFileInfo); + return result; } -s16 lbl_1_data_400[] = { - 15, 15, 13, - 15, 15, 8, - 15, 15, 8, - 15, 15 -}; +s16 lbl_1_data_400[] = { 15, 15, 13, 15, 15, 8, 15, 15, 8, 15, 15 }; s32 fn_1_9E4C(void) { - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - ModelData *temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - AnimData *temp_r24; - s16 temp_r23; - AnimData *temp_r22; - Mtx sp24; - Vec sp18; - Vec spC; - WindowData *sp8; - temp_r23 = -1; - sp8 = &winData[lbl_1_bss_148]; - OSReport("Init\n"); - MTXScale(sp24, 0.5f, 0.5f, 0.5f); - for(temp_r31=0; temp_r31<3; temp_r31++) { - if(lbl_1_bss_116[temp_r31] != -1) { - HuSprGrpKill(lbl_1_bss_116[temp_r31]); - } - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - if(lbl_1_bss_110[temp_r31] != -1) { - HuSprGrpKill(lbl_1_bss_110[temp_r31]); - } - } - lbl_1_bss_FC = HuSprAnimRead(HuDataReadNum(0x630022, MEMORY_DEFAULT_NUM)); - lbl_1_bss_F8 = HuSprAnimRead(HuDataReadNum(0x630023, MEMORY_DEFAULT_NUM)); - lbl_1_bss_F4 = HuSprAnimRead(HuDataReadNum(0x630025, MEMORY_DEFAULT_NUM)); - temp_r22 = HuSprAnimRead(HuDataReadNum(0x630024, MEMORY_DEFAULT_NUM)); - for(temp_r31=0; temp_r31<3; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31+8], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31+11], 1); - temp_r27 = lbl_1_bss_E8[temp_r31]; - if(temp_r27 < 0 || temp_r27 >= 8) { - temp_r27 = 8; - } - if(lbl_1_bss_13A[temp_r31] != -1) { - Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); - } - if(lbl_1_bss_134[temp_r31] != -1) { - Hu3DAnimKill(lbl_1_bss_134[temp_r31]); - } - temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27], MEMORY_DEFAULT_NUM)); - lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31+8], "star"); - temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27+9], MEMORY_DEFAULT_NUM)); - lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31+11], "star"); - if(!lbl_1_bss_140[temp_r31]) { - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+8], 0.6f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+11], 0.3f); - } else { - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+8], 1.0f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+11], 1.0f); - } - sp18.x = 158.0f+(temp_r31*130); - sp18.y = 230; - sp18.z = 800; - Hu3D2Dto3D(&sp18, 1, &spC); - spC.z = 800; - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31+8], &spC); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31+11], &spC); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+8], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+11], 0, 0, 0); - temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31+8]]; - MTXCopy(sp24, temp_r28->unk_F0); - temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31+11]]; - MTXCopy(sp24, temp_r28->unk_F0); - lbl_1_bss_116[temp_r31] = HuSprGrpCreate(9); - temp_r29 = HuSprCreate(lbl_1_bss_FC, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 0, temp_r29); - HuSprPosSet(lbl_1_bss_116[temp_r31], 0, -48, 0); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = HuSprCreate(lbl_1_bss_F8, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], temp_r30+1, temp_r29); - HuSprPosSet(lbl_1_bss_116[temp_r31], temp_r30+1, (temp_r30*24)-24, 0); - } - temp_r29 = HuSprCreate(lbl_1_bss_F4, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 5, temp_r29); - HuSprPosSet(lbl_1_bss_116[temp_r31], 5, 16, 0); - HuSprGrpScissorSet(lbl_1_bss_116[temp_r31], 0, 16, 640, 448); - lbl_1_bss_110[temp_r31] = HuSprGrpCreate(11); - for(temp_r30=temp_r25=0; temp_r30<11; temp_r30++) { - temp_r25 += lbl_1_data_400[temp_r30]; - } - for(temp_r30=temp_r26=0; temp_r30<11; temp_r30++) { - temp_r29 = HuSprCreate(temp_r22, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_110[temp_r31], temp_r30, temp_r29); - HuSprPosSet(lbl_1_bss_110[temp_r31], temp_r30, -(temp_r25/2)+8+temp_r26, 0); - temp_r26 += lbl_1_data_400[temp_r30]; - } - HuSprAttrSet(lbl_1_bss_110[temp_r31], 5, 4); - HuSprBankSet(lbl_1_bss_110[temp_r31], 2, 10); - HuSprBankSet(lbl_1_bss_110[temp_r31], 8, 11); - HuSprGrpScissorSet(lbl_1_bss_110[temp_r31], 0, 16, 640, 448); - } - MTXScale(sp24, 0.45f, 0.45f, 0.45f); - temp_r28 = &Hu3DData[lbl_1_bss_19A[23]]; - Hu3DModelAttrSet(lbl_1_bss_19A[23], 0x40000001); - MTXCopy(sp24, temp_r28->unk_F0); - return temp_r23; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + ModelData *temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + AnimData *temp_r24; + s16 temp_r23; + AnimData *temp_r22; + Mtx sp24; + Vec sp18; + Vec spC; + WindowData *sp8; + temp_r23 = -1; + sp8 = &winData[lbl_1_bss_148]; + OSReport("Init\n"); + MTXScale(sp24, 0.5f, 0.5f, 0.5f); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + if (lbl_1_bss_116[temp_r31] != -1) { + HuSprGrpKill(lbl_1_bss_116[temp_r31]); + } + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + if (lbl_1_bss_110[temp_r31] != -1) { + HuSprGrpKill(lbl_1_bss_110[temp_r31]); + } + } + lbl_1_bss_FC = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x22), MEMORY_DEFAULT_NUM)); + lbl_1_bss_F8 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x23), MEMORY_DEFAULT_NUM)); + lbl_1_bss_F4 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x25), MEMORY_DEFAULT_NUM)); + temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x24), MEMORY_DEFAULT_NUM)); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1); + temp_r27 = lbl_1_bss_E8[temp_r31]; + if (temp_r27 < 0 || temp_r27 >= 8) { + temp_r27 = 8; + } + if (lbl_1_bss_13A[temp_r31] != -1) { + Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); + } + if (lbl_1_bss_134[temp_r31] != -1) { + Hu3DAnimKill(lbl_1_bss_134[temp_r31]); + } + temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27], MEMORY_DEFAULT_NUM)); + lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31 + 8], "star"); + temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27 + 9], MEMORY_DEFAULT_NUM)); + lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31 + 11], "star"); + if (!lbl_1_bss_140[temp_r31]) { + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 0.6f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 0.3f); + } + else { + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 1.0f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 1.0f); + } + sp18.x = 158.0f + (temp_r31 * 130); + sp18.y = 230; + sp18.z = 800; + Hu3D2Dto3D(&sp18, 1, &spC); + spC.z = 800; + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 8], &spC); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &spC); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 11], 0, 0, 0); + temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31 + 8]]; + MTXCopy(sp24, temp_r28->unk_F0); + temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31 + 11]]; + MTXCopy(sp24, temp_r28->unk_F0); + lbl_1_bss_116[temp_r31] = HuSprGrpCreate(9); + temp_r29 = HuSprCreate(lbl_1_bss_FC, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 0, temp_r29); + HuSprPosSet(lbl_1_bss_116[temp_r31], 0, -48, 0); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = HuSprCreate(lbl_1_bss_F8, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], temp_r30 + 1, temp_r29); + HuSprPosSet(lbl_1_bss_116[temp_r31], temp_r30 + 1, (temp_r30 * 24) - 24, 0); + } + temp_r29 = HuSprCreate(lbl_1_bss_F4, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 5, temp_r29); + HuSprPosSet(lbl_1_bss_116[temp_r31], 5, 16, 0); + HuSprGrpScissorSet(lbl_1_bss_116[temp_r31], 0, 16, 640, 448); + lbl_1_bss_110[temp_r31] = HuSprGrpCreate(11); + for (temp_r30 = temp_r25 = 0; temp_r30 < 11; temp_r30++) { + temp_r25 += lbl_1_data_400[temp_r30]; + } + for (temp_r30 = temp_r26 = 0; temp_r30 < 11; temp_r30++) { + temp_r29 = HuSprCreate(temp_r22, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_110[temp_r31], temp_r30, temp_r29); + HuSprPosSet(lbl_1_bss_110[temp_r31], temp_r30, -(temp_r25 / 2) + 8 + temp_r26, 0); + temp_r26 += lbl_1_data_400[temp_r30]; + } + HuSprAttrSet(lbl_1_bss_110[temp_r31], 5, 4); + HuSprBankSet(lbl_1_bss_110[temp_r31], 2, 10); + HuSprBankSet(lbl_1_bss_110[temp_r31], 8, 11); + HuSprGrpScissorSet(lbl_1_bss_110[temp_r31], 0, 16, 640, 448); + } + MTXScale(sp24, 0.45f, 0.45f, 0.45f); + temp_r28 = &Hu3DData[lbl_1_bss_19A[23]]; + Hu3DModelAttrSet(lbl_1_bss_19A[23], 0x40000001); + MTXCopy(sp24, temp_r28->unk_F0); + return temp_r23; } void fn_1_A8C0(s16 boxno) { - SLLoadGameStat(); - SLLoadBoardStory(); - lbl_1_bss_EE[boxno] = GWGameStat.total_stars; - lbl_1_bss_D0[boxno] = GWGameStat.create_time; - lbl_1_bss_E8[boxno] = GWSystem.unk0B[1]; - lbl_1_bss_C4[boxno] = GWGameStat.story_continue; - lbl_1_bss_B8[boxno] = GWGameStat.party_continue; - if(GWGameStat.story_continue) { - SLLoadBoardStory(); - lbl_1_bss_A4[boxno] = GWSystem.board; - lbl_1_bss_AC[boxno] = 0; - } - if(GWGameStat.party_continue) { - SLLoadBoard(); - lbl_1_bss_9E[boxno] = GWSystem.board; - lbl_1_bss_98[boxno] = GWSystem.turn; - lbl_1_bss_92[boxno] = GWSystem.max_turn; - } + SLLoadGameStat(); + SLLoadBoardStory(); + lbl_1_bss_EE[boxno] = GWGameStat.total_stars; + lbl_1_bss_D0[boxno] = GWGameStat.create_time; + lbl_1_bss_E8[boxno] = GWSystem.unk0B[1]; + lbl_1_bss_C4[boxno] = GWGameStat.story_continue; + lbl_1_bss_B8[boxno] = GWGameStat.party_continue; + if (GWGameStat.story_continue) { + SLLoadBoardStory(); + lbl_1_bss_A4[boxno] = GWSystem.board; + lbl_1_bss_AC[boxno] = 0; + } + if (GWGameStat.party_continue) { + SLLoadBoard(); + lbl_1_bss_9E[boxno] = GWSystem.board; + lbl_1_bss_98[boxno] = GWSystem.turn; + lbl_1_bss_92[boxno] = GWSystem.max_turn; + } } void fn_1_AAB8(void) { - float temp_f31; - float temp_f30; - float temp_f29; - ModelData *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - Mtx sp48; - OSCalendarTime sp20; - Vec sp14; - Vec sp8; - for(temp_r30=0; temp_r30<2; temp_r30++) { - lbl_1_bss_12C[temp_r30] = 1; - } - while(1) { - for(temp_r30=0; temp_r30<2; temp_r30++) { - MTXScale(sp48, 0.5f, 0.5f, 0.5f); - mtxRotCat(sp48, 0.0f, 0.0f, 15.0f*lbl_1_bss_100[temp_r30]); - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30]]; - MTXCopy(sp48, temp_r31->unk_F0); - Hu3DModelRotSet(lbl_1_bss_19A[temp_r30], 0, lbl_1_bss_8C*lbl_1_bss_108[temp_r30]*GET_ZEROSIGN(temp_r30 == 0), 0); - if(!lbl_1_bss_12C[temp_r30]) { - espAttrSet(lbl_1_bss_152[temp_r30+2], 4); - } else { - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+2]]; - if(temp_r31->attr & 0x1) { - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+4]]; - } - if(temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[temp_r30+2], 4); - } else { - espAttrReset(lbl_1_bss_152[temp_r30+2], 4); - } - sp8 = temp_r31->pos; - sp8.y -= 30.0f*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - espPosSet(lbl_1_bss_152[temp_r30+2], sp14.x, sp14.y); - espScaleSet(lbl_1_bss_152[temp_r30+2], temp_r31->scale.x, temp_r31->scale.x); - } - } - lbl_1_bss_8C += 3.0f; - if(lbl_1_bss_8C > 1080.0f) { - lbl_1_bss_8C -= 360; - } - if(lbl_1_bss_11C == -1) { - espAttrSet(lbl_1_bss_152[4], 4); - } else { - temp_r31 = &Hu3DData[lbl_1_bss_19A[lbl_1_bss_11C]]; - if(temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[4], 4); - } else { - espBankSet(lbl_1_bss_152[4], lbl_1_bss_11C); - espAttrReset(lbl_1_bss_152[4], 4); - sp8 = temp_r31->pos; - sp8.y += 5.0f*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - espPosSet(lbl_1_bss_152[4], sp14.x, sp14.y); - espScaleSet(lbl_1_bss_152[4], temp_r31->scale.x, temp_r31->scale.x); - } - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - if(!lbl_1_bss_120[temp_r30]) { - espAttrSet(lbl_1_bss_152[temp_r30+5], 4); - continue; - } - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+8]]; - if(temp_r31->attr & 0x1) { - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+11]]; - } - temp_f30 = (900.0+(50.0*temp_r31->scale.x))*sin(M_PI/12); - temp_f29 = (temp_r31->pos.z+(50.0*temp_r31->scale.x))*sin(M_PI/12); - temp_f31 = temp_r31->scale.x*(temp_f29/temp_f30); - if(temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[temp_r30+5], 4); - } else { - espAttrReset(lbl_1_bss_152[temp_r30+5], 4); - } - sp8 = temp_r31->pos; - sp8.y += 40.0*temp_r31->scale.x; - sp8.z += 50.0*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - espPosSet(lbl_1_bss_152[temp_r30+5], sp14.x, sp14.y); - espScaleSet(lbl_1_bss_152[temp_r30+5], temp_f31, temp_f31); - if(lbl_1_bss_EE[temp_r30] == -1) { - HuSprGrpPosSet(lbl_1_bss_116[temp_r30], 0, -500); - } else { - sp8 = temp_r31->pos; - sp8.y -= 30.0*temp_r31->scale.x; - sp8.z += 50.0*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - HuSprGrpPosSet(lbl_1_bss_116[temp_r30], sp14.x, sp14.y); - HuSprGrpScaleSet(lbl_1_bss_116[temp_r30], temp_f31, temp_f31); - if(lbl_1_bss_EE[temp_r30] > 9999) { - for(temp_r28=0; temp_r28<4; temp_r28++) { - HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28+1, 4); - } - HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, 4); - } else { - for(temp_r28=0; temp_r28<4; temp_r28++) { - HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28+1, 4); - } - HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, 4); - temp_r29 = lbl_1_bss_EE[temp_r30]; - HuSprBankSet(lbl_1_bss_116[temp_r30], 1, temp_r29/1000); - temp_r29 -= (temp_r29/1000)*1000; - HuSprBankSet(lbl_1_bss_116[temp_r30], 2, temp_r29/100); - temp_r29 -= (temp_r29/100)*100; - HuSprBankSet(lbl_1_bss_116[temp_r30], 3, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_116[temp_r30], 4, temp_r29); - } - sp8 = temp_r31->pos; - sp8.y -= 40.0*temp_r31->scale.x; - sp8.z += 50.0*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - HuSprGrpPosSet(lbl_1_bss_110[temp_r30], sp14.x, sp14.y); - HuSprGrpScaleSet(lbl_1_bss_110[temp_r30], temp_f31, temp_f31); - OSTicksToCalendarTime(lbl_1_bss_D0[temp_r30], &sp20); - temp_r29 = sp20.mon+1; - HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 1, temp_r29); - temp_r29 = sp20.mday; - HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); - temp_r29 = sp20.hour; - HuSprBankSet(lbl_1_bss_110[temp_r30], 6, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 7, temp_r29); - temp_r29 = sp20.min; - HuSprBankSet(lbl_1_bss_110[temp_r30], 9, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 10, temp_r29); - } - } - HuPrcVSleep(); - } - + float temp_f31; + float temp_f30; + float temp_f29; + ModelData *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + Mtx sp48; + OSCalendarTime sp20; + Vec sp14; + Vec sp8; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + lbl_1_bss_12C[temp_r30] = 1; + } + while (1) { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + MTXScale(sp48, 0.5f, 0.5f, 0.5f); + mtxRotCat(sp48, 0.0f, 0.0f, 15.0f * lbl_1_bss_100[temp_r30]); + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30]]; + MTXCopy(sp48, temp_r31->unk_F0); + Hu3DModelRotSet(lbl_1_bss_19A[temp_r30], 0, lbl_1_bss_8C * lbl_1_bss_108[temp_r30] * GET_ZEROSIGN(temp_r30 == 0), 0); + if (!lbl_1_bss_12C[temp_r30]) { + espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4); + } + else { + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 2]]; + if (temp_r31->attr & 0x1) { + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 4]]; + } + if (temp_r31->attr & 0x1) { + espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4); + } + else { + espAttrReset(lbl_1_bss_152[temp_r30 + 2], 4); + } + sp8 = temp_r31->pos; + sp8.y -= 30.0f * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + espPosSet(lbl_1_bss_152[temp_r30 + 2], sp14.x, sp14.y); + espScaleSet(lbl_1_bss_152[temp_r30 + 2], temp_r31->scale.x, temp_r31->scale.x); + } + } + lbl_1_bss_8C += 3.0f; + if (lbl_1_bss_8C > 1080.0f) { + lbl_1_bss_8C -= 360; + } + if (lbl_1_bss_11C == -1) { + espAttrSet(lbl_1_bss_152[4], 4); + } + else { + temp_r31 = &Hu3DData[lbl_1_bss_19A[lbl_1_bss_11C]]; + if (temp_r31->attr & 0x1) { + espAttrSet(lbl_1_bss_152[4], 4); + } + else { + espBankSet(lbl_1_bss_152[4], lbl_1_bss_11C); + espAttrReset(lbl_1_bss_152[4], 4); + sp8 = temp_r31->pos; + sp8.y += 5.0f * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + espPosSet(lbl_1_bss_152[4], sp14.x, sp14.y); + espScaleSet(lbl_1_bss_152[4], temp_r31->scale.x, temp_r31->scale.x); + } + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + if (!lbl_1_bss_120[temp_r30]) { + espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4); + continue; + } + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 8]]; + if (temp_r31->attr & 0x1) { + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 11]]; + } + temp_f30 = (900.0 + (50.0 * temp_r31->scale.x)) * sin(M_PI / 12); + temp_f29 = (temp_r31->pos.z + (50.0 * temp_r31->scale.x)) * sin(M_PI / 12); + temp_f31 = temp_r31->scale.x * (temp_f29 / temp_f30); + if (temp_r31->attr & 0x1) { + espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4); + } + else { + espAttrReset(lbl_1_bss_152[temp_r30 + 5], 4); + } + sp8 = temp_r31->pos; + sp8.y += 40.0 * temp_r31->scale.x; + sp8.z += 50.0 * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + espPosSet(lbl_1_bss_152[temp_r30 + 5], sp14.x, sp14.y); + espScaleSet(lbl_1_bss_152[temp_r30 + 5], temp_f31, temp_f31); + if (lbl_1_bss_EE[temp_r30] == -1) { + HuSprGrpPosSet(lbl_1_bss_116[temp_r30], 0, -500); + } + else { + sp8 = temp_r31->pos; + sp8.y -= 30.0 * temp_r31->scale.x; + sp8.z += 50.0 * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + HuSprGrpPosSet(lbl_1_bss_116[temp_r30], sp14.x, sp14.y); + HuSprGrpScaleSet(lbl_1_bss_116[temp_r30], temp_f31, temp_f31); + if (lbl_1_bss_EE[temp_r30] > 9999) { + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + } + HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, 4); + } + else { + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + } + HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, 4); + temp_r29 = lbl_1_bss_EE[temp_r30]; + HuSprBankSet(lbl_1_bss_116[temp_r30], 1, temp_r29 / 1000); + temp_r29 -= (temp_r29 / 1000) * 1000; + HuSprBankSet(lbl_1_bss_116[temp_r30], 2, temp_r29 / 100); + temp_r29 -= (temp_r29 / 100) * 100; + HuSprBankSet(lbl_1_bss_116[temp_r30], 3, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_116[temp_r30], 4, temp_r29); + } + sp8 = temp_r31->pos; + sp8.y -= 40.0 * temp_r31->scale.x; + sp8.z += 50.0 * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + HuSprGrpPosSet(lbl_1_bss_110[temp_r30], sp14.x, sp14.y); + HuSprGrpScaleSet(lbl_1_bss_110[temp_r30], temp_f31, temp_f31); + OSTicksToCalendarTime(lbl_1_bss_D0[temp_r30], &sp20); + temp_r29 = sp20.mon + 1; + HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 1, temp_r29); + temp_r29 = sp20.mday; + HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); + temp_r29 = sp20.hour; + HuSprBankSet(lbl_1_bss_110[temp_r30], 6, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 7, temp_r29); + temp_r29 = sp20.min; + HuSprBankSet(lbl_1_bss_110[temp_r30], 9, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 10, temp_r29); + } + } + HuPrcVSleep(); + } } s16 lbl_1_data_41C = -1; void fn_1_B8CC(u32 arg0) { - float size[2]; - if(lbl_1_data_41C != -1) { - HuWinExCleanup(lbl_1_data_41C); - } - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesMaxSizeGet(1, size, arg0); - lbl_1_data_41C = HuWinExCreateStyled(-10000, 308, size[0], size[1], -1, 2); - HuWinMesSpeedSet(lbl_1_data_41C, 0); - HuWinExAnimIn(lbl_1_data_41C); - HuWinInsertMesSet(lbl_1_data_41C, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_data_41C, arg0); - HuWinMesWait(lbl_1_data_41C); + float size[2]; + if (lbl_1_data_41C != -1) { + HuWinExCleanup(lbl_1_data_41C); + } + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesMaxSizeGet(1, size, arg0); + lbl_1_data_41C = HuWinExCreateStyled(-10000, 308, size[0], size[1], -1, 2); + HuWinMesSpeedSet(lbl_1_data_41C, 0); + HuWinExAnimIn(lbl_1_data_41C); + HuWinInsertMesSet(lbl_1_data_41C, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_data_41C, arg0); + HuWinMesWait(lbl_1_data_41C); } void fn_1_BA20(void) { - if(lbl_1_data_41C != -1) { - HuWinExAnimOut(lbl_1_data_41C); - HuWinExCleanup(lbl_1_data_41C); - lbl_1_data_41C = -1; - } + if (lbl_1_data_41C != -1) { + HuWinExAnimOut(lbl_1_data_41C); + HuWinExCleanup(lbl_1_data_41C); + lbl_1_data_41C = -1; + } } void fn_1_BA80(s16 boxno) { - char mesMaxTurn[4]; - char mesTurn[4]; - char mesDummy[1] = {0}; - if(lbl_1_bss_EE[boxno] < 0) { - HuWinMesSet(lbl_1_bss_148, 0x100011); - } else { - if(!lbl_1_bss_C4[boxno] && !lbl_1_bss_B8[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100011, 0); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - HuWinMesSet(lbl_1_bss_148, 0x100043); - } else { - if(!lbl_1_bss_C4[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100011, 0); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_9E[boxno], 2); - sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); - sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); - HuWinMesSet(lbl_1_bss_148, 0x100042); - } else { - if(!lbl_1_bss_B8[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_A4[boxno], 0); - if(lbl_1_bss_AC[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100018, 1); - } else { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - } - HuWinMesSet(lbl_1_bss_148, 0x100043); - } else { - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_A4[boxno], 0); - if(lbl_1_bss_AC[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100018, 1); - } else { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_9E[boxno], 2); - sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); - sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); - HuWinMesSet(lbl_1_bss_148, 0x100042); - } - } - } - } - HuWinMesWait(lbl_1_bss_148); -} \ No newline at end of file + char mesMaxTurn[4]; + char mesTurn[4]; + char mesDummy[1] = { 0 }; + if (lbl_1_bss_EE[boxno] < 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11)); + } + else { + if (!lbl_1_bss_C4[boxno] && !lbl_1_bss_B8[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11), 0); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x43)); + } + else { + if (!lbl_1_bss_C4[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11), 0); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_9E[boxno], 2); + sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); + sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x42)); + } + else { + if (!lbl_1_bss_B8[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_A4[boxno], 0); + if (lbl_1_bss_AC[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x18), 1); + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x43)); + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_A4[boxno], 0); + if (lbl_1_bss_AC[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x18), 1); + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_9E[boxno], 2); + sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); + sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x42)); + } + } + } + } + HuWinMesWait(lbl_1_bss_148); +} diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index e0d6b53d..31253f9a 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -1,261 +1,245 @@ #define HUWIN_USE_OLD_DEFS -#include "game/object.h" -#include "game/gamework_data.h" #include "game/audio.h" -#include "game/wipe.h" -#include "game/window.h" -#include "game/object.h" -#include "game/process.h" -#include "game/hsfman.h" -#include "game/pad.h" +#include "game/gamework_data.h" #include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/window.h" +#include "game/wipe.h" + -#include "ext_math.h" #include "REL/modeseldll.h" +#include "ext_math.h" -s16 lbl_1_data_80[] = { - 16, 17, 18, - 19, 20, 21 -}; -s32 lbl_1_data_8C[] = { - 0x630030, - 0x630032, - 0x630034, - 0x630036, - 0x630038, - 0x63003A -}; +s16 lbl_1_data_80[] = { 16, 17, 18, 19, 20, 21 }; -s32 lbl_1_data_A4[] = { - 0x630031, - 0x630033, - 0x630035, - 0x630037, - 0x630039, - 0x63003B -}; +s32 lbl_1_data_8C[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x30), DATA_MAKE_NUM(DATADIR_MODESEL, 0x32), DATA_MAKE_NUM(DATADIR_MODESEL, 0x34), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x36), DATA_MAKE_NUM(DATADIR_MODESEL, 0x38), DATA_MAKE_NUM(DATADIR_MODESEL, 0x3A) }; -u32 lbl_1_data_BC[] = { - 0x110001, - 0x110002, - 0x110003, - 0x110004, - 0x110005, - 0x110006 -}; +s32 lbl_1_data_A4[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x31), DATA_MAKE_NUM(DATADIR_MODESEL, 0x33), DATA_MAKE_NUM(DATADIR_MODESEL, 0x35), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x37), DATA_MAKE_NUM(DATADIR_MODESEL, 0x39), DATA_MAKE_NUM(DATADIR_MODESEL, 0x3B) }; + +u32 lbl_1_data_BC[] = { MAKE_MESSID(17, 1), MAKE_MESSID(17, 2), MAKE_MESSID(17, 3), MAKE_MESSID(17, 4), MAKE_MESSID(17, 5), MAKE_MESSID(17, 6) }; s16 lbl_1_bss_82; s16 lbl_1_bss_80; void fn_1_3668(void); -//Scratch is at https://decomp.me/scratch/iirXp -//Register allocation issues at line 180 with load of 1.0 double constant +// Scratch is at https://decomp.me/scratch/iirXp +// Register allocation issues at line 180 with load of 1.0 double constant s32 fn_1_2490(void) { - float sp10[2]; - float sp8[2]; - float temp_f31; - float temp_f30; - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s32 temp_r25; - WindowData *temp_r24; - AnimData *temp_r23; - AnimData *temp_r22; - s16 temp_r21; - fn_1_3668(); - fn_1_1EC0(1); - temp_r25 = HuAudFXPlay(2094); - if(omovlevtno) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - } - for(temp_r31=0; temp_r31<=20; temp_r31++) { - temp_f31 = 1.0-sind(90.0*(temp_r31/20.0)); - Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f+(200.0f*temp_f31), 0); - Hu3DModelPosSet(lbl_1_bss_19A[15], 0, -50.0f+(200.0f*temp_f31), 0); - HuPrcVSleep(); - } - HuPrcSleep(20); - Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002); - HuAudFXPlay(2093); - HuPrcSleep(120); - HuAudFXPlay(2095); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - temp_f31 = temp_r31/30.0; - Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f-(20.0f*temp_f31), 0); - HuPrcVSleep(); - } - HuWinMesMaxSizeBetGet(sp10, 0x110000, 0x110006); - lbl_1_bss_82 = HuWinExCreateStyled(-10000, 432-sp10[1], sp10[0], sp10[1], -1, 0); - HuWinMesSpeedSet(lbl_1_bss_82, 0); - temp_r24 = &winData[lbl_1_bss_82]; - temp_r24->active_pad = 1; - HuWinExAnimIn(lbl_1_bss_82); - HuWinMesSet(lbl_1_bss_82, 0x110000); - HuWinMesMaxSizeGet(1, sp8, 0x1A0020); - temp_r29 = HuWinCreate(-10000, 8+(432-sp10[1]-sp8[1]), sp8[0], sp8[1], 0); - HuWinMesSpeedSet(temp_r29, 0); - HuWinBGTPLvlSet(temp_r29, 0); - HuWinMesSet(temp_r29, 0x1A0020); - HuWinDispOff(temp_r29); - while(!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) { - HuPrcVSleep(); - } - Hu3DModelAttrSet(lbl_1_bss_19A[15], 1); - for(temp_r31=0; temp_r31<6; temp_r31++) { - Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0); - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0); - } - HuWinMesWait(lbl_1_bss_82); - - lbl_1_bss_80 = temp_r26 = 0; - espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF); - espBankSet(lbl_1_bss_152[10], 0); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0f; - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31)); - espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*sind(90.0f*temp_f31))); - HuPrcVSleep(); - } - HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); - HuWinDispOn(temp_r29); - while(1) { - temp_r30 = 0; - if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) { - temp_r30 = -1; - } else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { - temp_r30 = 1; - } - if(temp_r30) { - if(lbl_1_bss_80+temp_r30 < 0) { - lbl_1_bss_80 = 0; - } else if(lbl_1_bss_80+temp_r30 >= 6) { - lbl_1_bss_80 = 5; - } else { - lbl_1_bss_80 += temp_r30; - } - if(temp_r26 != lbl_1_bss_80) { - HuAudFXPlay(0); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0f; - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r26]], 0, -50, 50.0*cosd(90.0f*temp_f31)); - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31)); - espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(1.0-sind(180.0f*temp_f31)))); - if(temp_r31 == 5) { - espBankSet(lbl_1_bss_152[10], lbl_1_bss_80); - } - HuPrcVSleep(); - } - temp_r26 = lbl_1_bss_80; - HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); - } - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2); - break; - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - HuAudFXStop(temp_r25); - return -1; - } else { - HuPrcVSleep(); - continue; - } - } - Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002); - HuAudSeqAllFadeOut(1000); - for(temp_r31=0; temp_r31<=20; temp_r31++) { - temp_f31 = temp_r31/20.0f; - for(temp_r28=0; temp_r28<6; temp_r28++) { - if(temp_r28 != lbl_1_bss_80) { - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r28]], 0, -50-(300.0*(1.0-cosd(90.0f*temp_f31))), 0); - espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(cosd(90.0f*temp_f31)))); - } - } - HuPrcVSleep(); - } - HuWinKill(temp_r29); - HuWinExAnimOut(lbl_1_bss_82); - HuAudFXStop(temp_r25); - temp_r27 = HuSprGrpCreate(1); - temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0); - HuSprGrpMemberSet(temp_r27, 0, temp_r21); - HuSprPosSet(temp_r27, 0, 288.0f, 240.0f); - HuSprDrawNoSet(temp_r27, 0, 127); - HuPrcSleep(2); - espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0; - Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -70.0f-(100.0f*temp_f31), 0); - HuPrcVSleep(); - } - temp_r23 = HuSprAnimRead(HuDataReadNum(lbl_1_data_8C[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); - temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); - Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1"); - Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2"); - Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1); - Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0); - Hu3DModelAttrReset(lbl_1_bss_19A[22], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002); - Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50); - Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f); - for(temp_r31=1; temp_r31<=20; temp_r31++) { - temp_f31 = temp_r31/20.0; - Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27.0-(60.0*sind(90.0f*temp_f31)), 50); - HuPrcVSleep(); - } - HuPrcSleep(90); - Hu3DFogSet(3000, 8000, 255, 255, 255); - Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002); - HuPrcSleep(60); - temp_f31 =0; - temp_f30 = 5; - while(!HuTHPEndCheck()) { - Hu3DModelPosSet(lbl_1_bss_19A[22], 0, -33.0f+(temp_f31/30.0f), 50.0f-temp_f31); - temp_f31 += temp_f30; - temp_f30 += 5.0f; - HuPrcVSleep(); - } - _ClearFlag(FLAG_ID_MAKE(1, 11)); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuTHPClose(); - HuSprGrpKill(temp_r27); - return lbl_1_bss_80; + float sp10[2]; + float sp8[2]; + float temp_f31; + float temp_f30; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s32 temp_r25; + WindowData *temp_r24; + AnimData *temp_r23; + AnimData *temp_r22; + s16 temp_r21; + fn_1_3668(); + fn_1_1EC0(1); + temp_r25 = HuAudFXPlay(2094); + if (omovlevtno) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + } + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + temp_f31 = 1.0 - sind(90.0 * (temp_r31 / 20.0)); + Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f + (200.0f * temp_f31), 0); + Hu3DModelPosSet(lbl_1_bss_19A[15], 0, -50.0f + (200.0f * temp_f31), 0); + HuPrcVSleep(); + } + HuPrcSleep(20); + Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002); + HuAudFXPlay(2093); + HuPrcSleep(120); + HuAudFXPlay(2095); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + temp_f31 = temp_r31 / 30.0; + Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f - (20.0f * temp_f31), 0); + HuPrcVSleep(); + } + HuWinMesMaxSizeBetGet(sp10, MAKE_MESSID(0x11, 0x00), MAKE_MESSID(0x11, 0x06)); + lbl_1_bss_82 = HuWinExCreateStyled(-10000, 432 - sp10[1], sp10[0], sp10[1], -1, 0); + HuWinMesSpeedSet(lbl_1_bss_82, 0); + temp_r24 = &winData[lbl_1_bss_82]; + temp_r24->active_pad = 1; + HuWinExAnimIn(lbl_1_bss_82); + HuWinMesSet(lbl_1_bss_82, MAKE_MESSID(0x11, 0x00)); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1A, 0x20)); + temp_r29 = HuWinCreate(-10000, 8 + (432 - sp10[1] - sp8[1]), sp8[0], sp8[1], 0); + HuWinMesSpeedSet(temp_r29, 0); + HuWinBGTPLvlSet(temp_r29, 0); + HuWinMesSet(temp_r29, MAKE_MESSID(0x1A, 0x20)); + HuWinDispOff(temp_r29); + while (!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) { + HuPrcVSleep(); + } + Hu3DModelAttrSet(lbl_1_bss_19A[15], 1); + for (temp_r31 = 0; temp_r31 < 6; temp_r31++) { + Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002); + Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0); + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0); + } + HuWinMesWait(lbl_1_bss_82); + + lbl_1_bss_80 = temp_r26 = 0; + espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_bss_152[10], 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0f; + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0 * sind(90.0f * temp_f31)); + espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * sind(90.0f * temp_f31))); + HuPrcVSleep(); + } + HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); + HuWinDispOn(temp_r29); + while (1) { + temp_r30 = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + temp_r30 = -1; + } + else if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + temp_r30 = 1; + } + if (temp_r30) { + if (lbl_1_bss_80 + temp_r30 < 0) { + lbl_1_bss_80 = 0; + } + else if (lbl_1_bss_80 + temp_r30 >= 6) { + lbl_1_bss_80 = 5; + } + else { + lbl_1_bss_80 += temp_r30; + } + if (temp_r26 != lbl_1_bss_80) { + HuAudFXPlay(0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0f; + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r26]], 0, -50, 50.0 * cosd(90.0f * temp_f31)); + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0 * sind(90.0f * temp_f31)); + espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * (1.0 - sind(180.0f * temp_f31)))); + if (temp_r31 == 5) { + espBankSet(lbl_1_bss_152[10], lbl_1_bss_80); + } + HuPrcVSleep(); + } + temp_r26 = lbl_1_bss_80; + HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + HuAudFXStop(temp_r25); + return -1; + } + else { + HuPrcVSleep(); + continue; + } + } + Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002); + HuAudSeqAllFadeOut(1000); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0f; + for (temp_r28 = 0; temp_r28 < 6; temp_r28++) { + if (temp_r28 != lbl_1_bss_80) { + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r28]], 0, -50 - (300.0 * (1.0 - cosd(90.0f * temp_f31))), 0); + espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * (cosd(90.0f * temp_f31)))); + } + } + HuPrcVSleep(); + } + HuWinKill(temp_r29); + HuWinExAnimOut(lbl_1_bss_82); + HuAudFXStop(temp_r25); + temp_r27 = HuSprGrpCreate(1); + temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0); + HuSprGrpMemberSet(temp_r27, 0, temp_r21); + HuSprPosSet(temp_r27, 0, 288.0f, 240.0f); + HuSprDrawNoSet(temp_r27, 0, 127); + HuPrcSleep(2); + espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0; + Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -70.0f - (100.0f * temp_f31), 0); + HuPrcVSleep(); + } + temp_r23 = HuSprAnimRead(HuDataReadNum(lbl_1_data_8C[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); + temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); + Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1"); + Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2"); + Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1); + Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0); + Hu3DModelAttrReset(lbl_1_bss_19A[22], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002); + Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50); + Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f); + for (temp_r31 = 1; temp_r31 <= 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0; + Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27.0 - (60.0 * sind(90.0f * temp_f31)), 50); + HuPrcVSleep(); + } + HuPrcSleep(90); + Hu3DFogSet(3000, 8000, 255, 255, 255); + Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002); + HuPrcSleep(60); + temp_f31 = 0; + temp_f30 = 5; + while (!HuTHPEndCheck()) { + Hu3DModelPosSet(lbl_1_bss_19A[22], 0, -33.0f + (temp_f31 / 30.0f), 50.0f - temp_f31); + temp_f31 += temp_f30; + temp_f30 += 5.0f; + HuPrcVSleep(); + } + _ClearFlag(FLAG_ID_MAKE(1, 11)); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuTHPClose(); + HuSprGrpKill(temp_r27); + return lbl_1_bss_80; } void fn_1_3668(void) { - Vec sp20; - Vec sp14; - Vec sp8; - Hu3DShadowCreate(20, 100, 5000); - Hu3DShadowTPLvlSet(0.3f); - Hu3DShadowSizeSet(192); - sp14.x = sp14.y = sp14.z = 0; - sp20.x = 0; - sp20.z = 300; - sp20.y = 400; - sp8.x = 0; - sp8.y = 1; - sp8.z = 0; - Hu3DShadowPosSet(&sp20, &sp8, &sp14); - Hu3DModelAttrReset(lbl_1_bss_19A[15], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0); - Hu3DModelAttrReset(lbl_1_bss_19A[14], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0); -} \ No newline at end of file + Vec sp20; + Vec sp14; + Vec sp8; + Hu3DShadowCreate(20, 100, 5000); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowSizeSet(192); + sp14.x = sp14.y = sp14.z = 0; + sp20.x = 0; + sp20.z = 300; + sp20.y = 400; + sp8.x = 0; + sp8.y = 1; + sp8.z = 0; + Hu3DShadowPosSet(&sp20, &sp8, &sp14); + Hu3DModelAttrReset(lbl_1_bss_19A[15], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002); + Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0); + Hu3DModelAttrReset(lbl_1_bss_19A[14], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002); + Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0); +} diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index 1fa909da..ab56c8a5 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -21,54 +21,54 @@ typedef struct struct_data0 { } StructData0; StructData0 lbl_1_data_0[] = { - { 0x680000, 0, 0, 0, 1 }, - { 0x680001, 0, 0, 0, 1 }, - { 0x680002, 0, 0, 0, 1 }, - { 0x680003, 0, 0, 0, 1 }, - { 0x680004, 0, 0, 0, 1 }, - { 0x680005, 0, 0, 0, 1 }, - { 0x680006, 0, 0, 0, 1 }, - { 0x680007, 0, 0, 0, 1 }, - { 0x680008, 0, 0, 0, 1 }, - { 0x680009, 0, 0, 0, 1 }, - { 0x68000A, 0, 0, 0, 1 }, - { 0x68000B, 0, 0, 0, 1 }, - { 0x68000C, 0, 0, 0, 1 }, - { 0x68000D, 0, 0, 0, 1 }, - { 0x68000E, 1, 0, 0, 1 }, - { 0x68000F, 0, 0, 0, 1 }, - { 0x680010, 0, 0, 0, 1 }, - { 0x680011, 0, 0, 0, 1 }, - { 0x680012, 0, 0, 0, 1 }, - { 0x680013, 0, 0, 0, 1 }, - { 0x680014, 0, 0, 0, 1 }, - { 0x680015, 0, 0, 0, 1 }, - { 0x680016, 0, 0, 0, 1 }, - { 0x680017, 0, 0, 0, 1 }, - { 0x680018, 0, 0, 0, 1 }, - { 0x680019, 0, 0, 0, 1 }, - { 0x68001A, 0, 0, 0, 1 }, - { 0x68001B, 0, 0, 0, 1 }, - { 0x68001C, 0, 0, 0, 1 }, - { 0x68001D, 0, 0, 0, 1 }, - { 0x68001E, 0, 0, 0, 1 }, - { 0x68001F, 0, 0, 0, 1 }, - { 0x680020, 0, 0, 0, 1 }, - { 0x680021, 0, 0, 0, 1 }, - { 0x680022, 0, 0, 0, 1 }, - { 0x680023, 0, 0, 0, 1 }, - { 0x680024, 0, 0, 0, 1 }, - { 0x680025, 0, 0, 0, 1 }, - { 0x680026, 0, 0, 0, 1 }, - { 0x680027, 0, 0, 0, 1 }, - { 0x680028, 0, 0, 0, 1 }, - { 0x680029, 0, 0, 0, 1 }, - { 0x68002A, 0, 0, 0, 1 }, - { 0x68002B, 0, 0, 0, 1 }, - { 0x68002C, 0, 0, 0, 1 }, - { 0x68002D, 0, 0, 0, 1 }, - { 0x68002E, 0, 0, 0, 1 }, - { 0x68002F, 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 }, }; char *lbl_1_data_430[] = { @@ -605,4 +605,4 @@ void fn_1_13A0(void) while(1) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/option/guide.c b/src/REL/option/guide.c index 89865969..5b38fe10 100755 --- a/src/REL/option/guide.c +++ b/src/REL/option/guide.c @@ -68,7 +68,7 @@ omObjData *OptionGuideCreate(void) object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 12)); Hu3DModelLayerSet(object->model[0], 1); for (i = 0; i < 3; i++) { - object->motion[i] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->motion[i] = Hu3DJointMotionFile(object->model[0], guideMotTbl[i]); } work->unk_5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC); work->unk_60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC); @@ -217,7 +217,7 @@ static void UpdateGuide(omObjData *object) static float LerpAngle(float start, float end, float time) { float angle; - + float delta = fmod(end - start, 360.0); if (0.0f > delta) { delta += 360.0f; diff --git a/src/REL/present/common.c b/src/REL/present/common.c index 32922f12..0ecd4474 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -56,7 +56,7 @@ omObjData *PresentGuideCreate(void) Hu3DModelLayerSet(object->model[0], 1); for (var_r29 = 0; var_r29 < 3; var_r29++) { - object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], guideMotTbl[var_r29]); } Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = 0], 0.0f, 8.0f, 0x40000001); work->unk_50 = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 10); diff --git a/src/REL/present/main.c b/src/REL/present/main.c index 0d39435e..93ef8386 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -104,7 +104,7 @@ static void ExecPresentView(omObjData *object) case 6: HuAudFXPlay(66); PresentWinAnimIn(work->window); - PresentWinMesSet(work->window, 0x320002); + PresentWinMesSet(work->window, MAKE_MESSID(0x32, 0x02)); object->unk10 = 7; case 7: if (work->window->state) { diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 55adf107..b13a9e34 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -5,6 +5,7 @@ #include "game/hsfex.h" #include "game/hsfman.h" #include "game/wipe.h" +#include "game/window.h" #include "REL/present.h" @@ -502,13 +503,13 @@ static void ExecSelectRoom(omObjData *object) PresentWinAnimIn(work->presentDescWindow); PresentWinAnimIn(work->btnLegendWindow); if (work->constellationSelF) { - mess = 0x320080; + mess = MAKE_MESSID(0x32, 0x80); } else if (work->room == ROOM_TROPHY) { - mess = 0x320085; + mess = MAKE_MESSID(0x32, 0x85); } else { - mess = 0x32007e; + mess = MAKE_MESSID(0x32, 0x7e); } PresentWinMesSet(work->btnLegendWindow, mess); switch (work->room) { @@ -522,36 +523,36 @@ static void ExecSelectRoom(omObjData *object) case ROOM_WALUIGI: if (work->constellationSelF) { if (PresentUnlocked(object, work->room, ROOM_TROPHY)) { - mess = 0x320005; + mess = MAKE_MESSID(0x32, 0x05); } else { - mess = 0x320082; + mess = MAKE_MESSID(0x32, 0x82); } } else if (UnlockedPresents(object, work->room) > 0) { - mess = 0x320001; + mess = MAKE_MESSID(0x32, 0x01); } else { - mess = 0x320081; + mess = MAKE_MESSID(0x32, 0x81); } PresentWinMesSet(work->presentDescWindow, mess); PresentWinInsertMesSet(work->presentDescWindow, roomMessTbl[work->room], 0); break; case ROOM_TROPHY: if (PresentUnlocked(object, ROOM_TROPHY, 0)) { - mess = 0x320041; + mess = MAKE_MESSID(0x32, 0x41); } else { - mess = 0x320084; + mess = MAKE_MESSID(0x32, 0x84); } PresentWinMesSet(work->presentDescWindow, mess); break; case ROOM_MG: if (UnlockedPresents(object, ROOM_MG) > 0) { - mess = 0x320083; + mess = MAKE_MESSID(0x32, 0x83); } else { - mess = 0x320081; + mess = MAKE_MESSID(0x32, 0x81); } PresentWinMesSet(work->presentDescWindow, mess); break; @@ -718,13 +719,13 @@ static void ExecSelectPresent(omObjData *object) } PresentWinAnimIn(work->presentDescWindow); PresentWinAnimIn(work->btnLegendWindow); - PresentWinMesSet(work->btnLegendWindow, 0x32007F); + PresentWinMesSet(work->btnLegendWindow, MAKE_MESSID(0x32, 0x7F)); if (work->roomNotEmptyF) { PresentWinMesSet(work->presentDescWindow, roomTbl[room].presentData[idxInRoom].descMess); } else { - PresentWinMesSet(work->presentDescWindow, 0x320003); + PresentWinMesSet(work->presentDescWindow, MAKE_MESSID(0x32, 0x03)); } work->cursorTime = 0.0f; work->cursorSpeed = 1.0f / 6.0f; @@ -1099,7 +1100,7 @@ static void ExecPresentGet(omObjData *object) case 3: PresentWinAnimIn(work->presentDescWindow); PresentWinInsertMesSet(work->presentDescWindow, roomTbl[work->room].presentData[work->idxInRoom].nameMess, 0); - PresentWinMesSet(work->presentDescWindow, 0x320004); + PresentWinMesSet(work->presentDescWindow, MAKE_MESSID(0x32, 0x04)); PresentWinMesWait(work->presentDescWindow); object->unk10 = 4; case 4: diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index e582532a..94e38485 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -1,144 +1,97 @@ #include "dolphin.h" #include "math.h" -#include "game/hsfanim.h" +#include "game/armem.h" #include "game/audio.h" -#include "game/process.h" -#include "game/wipe.h" -#include "game/window.h" -#include "game/pad.h" -#include "game/object.h" #include "game/chrman.h" -#include "game/sprite.h" +#include "game/frand.h" +#include "game/hsfanim.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/armem.h" -#include "game/frand.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "game/gamework_data.h" #include "REL/resultdll.h" -DataListModel lbl_1_data_4E8[] = { - { 0x6F0008, 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F0009, 0, 0, -1, -1, { -100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F000A, 0, 0, -1, -1, { 100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F000A, 0, 0, -1, -1, { 300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F000B, 0, 0, -1, -1, { -300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000B, 0, 0, -1, -1, { -100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000B, 0, 0, -1, -1, { 100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000B, 0, 0, -1, -1, { 300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000D, 0, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000E, 0, 1, -1, 8, { 0, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000F, 0x40000002, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 2.0f, 2.0f, 2.0f } }, - { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } -}; +DataListModel lbl_1_data_4E8[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x09), 0, 0, -1, -1, { -100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { -300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { -100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { 100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { 300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0D), 0, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0E), 0, 1, -1, 8, { 0, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0F), 0x40000002, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 2.0f, 2.0f, 2.0f } }, + { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; DataListSprite lbl_1_data_758[] = { - { 0x6F0043, 0, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, -}; - -HsfanimStruct00 lbl_1_data_780 = { - 80, - { 0, 0 }, - 3, 30, 90, - { 0, -0.2, 0 }, - 5.0f, 0.95f, 10.0f, - 0.995f, - 2, - { - { 255, 192, 112, 255 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - }, - { - { 128, 128, 128, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - } + { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, + { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; +HsfanimStruct00 lbl_1_data_780 = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f, 0.95f, 10.0f, 0.995f, 2, + { + { 255, 192, 112, 255 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + }, + { + { 128, 128, 128, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + } }; s16 lbl_1_data_7D0[] = { - 320, 132, - 500, 132, - 320, 217, - 500, 217, - 320, 302, - 500, 302, - 320, 387, - 500, 387, + 320, + 132, + 500, + 132, + 320, + 217, + 500, + 217, + 320, + 302, + 500, + 302, + 320, + 387, + 500, + 387, }; -Vec lbl_1_data_7F0[] = { - { -300, 270, 0 }, - { -100, 180, 500 }, - { 100, 90, 500 }, - { 300, 0, 500 } +Vec lbl_1_data_7F0[] = { { -300, 270, 0 }, { -100, 180, 500 }, { 100, 90, 500 }, { 300, 0, 500 } }; + +s16 lbl_1_data_820[] = { -284, 148, -84, 233, 116, 318, 316, 403 }; + +s32 lbl_1_data_830[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), + DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A) }; -s16 lbl_1_data_820[] = { - -284, 148, - -84, 233, - 116, 318, - 316, 403 -}; +float lbl_1_data_840[] = { 130, 150, 170, 150, 150, 130, 170, 190 }; -s32 lbl_1_data_830[] = { - 0x6F0008, - 0x6F0009, - 0x6F000A, - 0x6F000A -}; +float lbl_1_data_860[] = { 130, 150, 180, 150, 150, 170, 180, 210 }; -float lbl_1_data_840[] = { - 130, - 150, - 170, - 150, - 150, - 130, - 170, - 190 -}; +float lbl_1_data_880[] = { 140, 160, 180, 150, 150, 120, 180, 210 }; -float lbl_1_data_860[] = { - 130, - 150, - 180, - 150, - 150, - 170, - 180, - 210 -}; - -float lbl_1_data_880[] = { - 140, - 160, - 180, - 150, - 150, - 120, - 180, - 210 -}; - -s16 lbl_1_data_8A0[] = { - 8, - 0, - -8 -}; +s16 lbl_1_data_8A0[] = { 8, 0, -8 }; typedef struct struct_unk194 { - s16 unk0; - s16 unk2; - Vec unk4; - Vec unk10; - float unk1C; + s16 unk0; + s16 unk2; + Vec unk4; + Vec unk10; + float unk1C; } StructUnk194; u8 lbl_1_bss_19F8[32]; @@ -160,90 +113,92 @@ void fn_1_7544(void); void fn_1_6490(void) { - s16 player; - s16 i; - s16 window; - s16 button; - Process *process = HuPrcCurrentGet(); - HuAudSeqPlay(10); - for(i=player=0; i<4; i++) { - if(GWPlayerCfg[i].iscom) { - player++; - } - } - if(player == 4) { - lbl_1_bss_190 = 1; - } else { - lbl_1_bss_190 = 0; - } - fn_1_6824(); - HuPrcChildCreate(fn_1_6760, 100, 8192, 0, process); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } - lbl_1_bss_178 = 0; - HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, process); - HuPrcSleep(10); - if(!lbl_1_bss_174) { - HuPrcSleep(20); - } - fn_1_7544(); - fn_1_40DC(); - window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(window, 0); - HuWinBGTPLvlSet(window, 0); - HuWinAttrSet(window, 0x800); - HuWinMesSet(window, 0x240007); - i=0; - while(1) { - if(lbl_1_bss_190 && i > 120) { - break; - } - 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++; - } - HuWinKill(window); - while(!lbl_1_bss_178) { - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - HuAudSeqAllFadeOut(500); - while(WipeStatGet()) { - HuPrcVSleep(); - } - omSysPauseEnable(1); - Hu3DParManAllKill(); - omOvlReturnEx(1, 1); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 player; + s16 i; + s16 window; + s16 button; + Process *process = HuPrcCurrentGet(); + HuAudSeqPlay(10); + for (i = player = 0; i < 4; i++) { + if (GWPlayerCfg[i].iscom) { + player++; + } + } + if (player == 4) { + lbl_1_bss_190 = 1; + } + else { + lbl_1_bss_190 = 0; + } + fn_1_6824(); + HuPrcChildCreate(fn_1_6760, 100, 8192, 0, process); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + lbl_1_bss_178 = 0; + HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, process); + HuPrcSleep(10); + if (!lbl_1_bss_174) { + HuPrcSleep(20); + } + fn_1_7544(); + fn_1_40DC(); + window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(window, 0); + HuWinBGTPLvlSet(window, 0); + HuWinAttrSet(window, 0x800); + HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); + i = 0; + while (1) { + if (lbl_1_bss_190 && i > 120) { + break; + } + 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++; + } + HuWinKill(window); + while (!lbl_1_bss_178) { + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + HuAudSeqAllFadeOut(500); + while (WipeStatGet()) { + HuPrcVSleep(); + } + omSysPauseEnable(1); + Hu3DParManAllKill(); + omOvlReturnEx(1, 1); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_6760(void) { - Vec temp; - temp.z = 0.0f; - temp.y = 0.0f; - temp.x = 0.0f; - while(1) { - if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_190 != 0) { + Vec temp; + temp.z = 0.0f; + temp.y = 0.0f; + temp.x = 0.0f; + while (1) { + if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_190 != 0) { lbl_1_bss_174 = 1; - } else { + } + else { lbl_1_bss_174 = 0; } - HuPrcVSleep(); - } + HuPrcVSleep(); + } } void fn_1_7F98(void); @@ -255,464 +210,466 @@ void fn_1_8CB8(struct model_data *model, Mtx matrix); void fn_1_6824(void) { - s16 i; - s16 character; - s16 player; - s16 x_ofs; - AnimData *anim; - AnimData *anim2; - AnimData *anim3; - s16 char_mdl; - Vec pos; - Vec target; - Vec up; - s16 gains[5]; - Process *process = HuPrcCurrentGet(); - CRot.x = 0; - CRot.y = 0; - CRot.z = 0; - Center.x = 0; - Center.y = 330; - Center.z = 0; - CZoom = 2210; - Hu3DShadowCreate(20, 100, 5000); - Hu3DShadowTPLvlSet(0.5f); - Hu3DShadowSizeSet(192); - target.x = target.y = target.z = 0; - pos.x = 500; - pos.z = 1000; - pos.y = 2000; - up.x = 0; - up.y = 1; - up.z = 0; - Hu3DShadowPosSet(&pos, &up, &target); - i = Hu3DHookFuncCreate(fn_1_8CB8); - Hu3DModelPosSet(i, 0, 0, 0); - fn_1_8484(); - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; - for(i=0; i<4; i++) { - lbl_1_data_4E8[i].datanum = lbl_1_data_830[lbl_1_bss_19E8[i]]; - if(lbl_1_bss_19E8[i] == 3) { - lbl_1_data_4E8[i].attr = 1; - } - } - fn_1_8FF8(lbl_1_data_4E8); - fn_1_927C(lbl_1_data_758); - espDrawNoSet(lbl_1_bss_1A1A[0], 127); - for(i=0; i<4; i++) { - Hu3DModelShadowSet(lbl_1_bss_1A9C[i]); - } - for(i=0; i<4; i++) { - anim = HuSprAnimRead(HuDataReadNum(lbl_1_bss_19E8[i]+0x6F0044, MEMORY_DEFAULT_NUM));; - if(lbl_1_bss_19E8[i] <= 2) { - anim2 = HuSprAnimRead(HuDataReadNum(0x6F0048, MEMORY_DEFAULT_NUM)); - } else { - anim2 = HuSprAnimRead(HuDataReadNum(0x6F0048, MEMORY_DEFAULT_NUM)); - } - Hu3DAnimCreate(anim, lbl_1_bss_1A9C[i+4], "ys22_a0"); - Hu3DAnimCreate(anim2, lbl_1_bss_1A9C[i+4], "ys22_a1"); - Hu3DModelAttrSet(lbl_1_bss_1A9C[i+4], 0x40000002); - } - anim = HuSprAnimRead(HuDataReadNum(0x6F003D, MEMORY_DEFAULT_NUM)); - anim2 = HuSprAnimRead(HuDataReadNum(0x6F003B, MEMORY_DEFAULT_NUM)); - anim3 = HuSprAnimRead(HuDataReadNum(0x6F003C, MEMORY_DEFAULT_NUM)); - for(i=0; i<4; i++) { - if(gains[lbl_1_bss_19F0[i]] >= 100) { - x_ofs = lbl_1_data_8A0[2]; - } else if(gains[lbl_1_bss_19F0[i]] >= 10) { - x_ofs = lbl_1_data_8A0[1]; - } else { - x_ofs = lbl_1_data_8A0[0]; - } - lbl_1_bss_19E0[i] = HuSprGrpCreate(5); - lbl_1_bss_19B8[i][0] = HuSprCreate(anim, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 0, lbl_1_bss_19B8[i][0]); - HuSprPosSet(lbl_1_bss_19E0[i], 0, 17, -32); - lbl_1_bss_19B8[i][1] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 1, lbl_1_bss_19B8[i][1]); - HuSprPosSet(lbl_1_bss_19E0[i], 1, x_ofs, -36); - lbl_1_bss_19B8[i][2] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 2, lbl_1_bss_19B8[i][2]); - HuSprPosSet(lbl_1_bss_19E0[i], 2, x_ofs+16, -36); - lbl_1_bss_19B8[i][3] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 3, lbl_1_bss_19B8[i][3]); - HuSprPosSet(lbl_1_bss_19E0[i], 3, x_ofs+32, -36); - lbl_1_bss_19B8[i][4] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 4, lbl_1_bss_19B8[i][4]); - HuSprPosSet(lbl_1_bss_19E0[i], 4, x_ofs+48, -36); - HuSprGrpPosSet(lbl_1_bss_19E0[i], 0, 0); - fn_1_8338(lbl_1_bss_19E0[i], 9); - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 0, 0); - } - (void)anim3; - Hu3DMotionSet(lbl_1_bss_1A9C[8], lbl_1_bss_1A5C[9]); - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 0x40000001); - Hu3DModelShadowSet(lbl_1_bss_1A9C[8]); - for(i=0; i<180; i++) { - if(i == 0) { - lbl_1_bss_1828[0] = Hu3DModelCreateFile(0x6F000C); - } else { - lbl_1_bss_1828[i] = Hu3DModelLink(lbl_1_bss_1828[0]); - } - Hu3DModelScaleSet(lbl_1_bss_1828[i], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); - } - fn_1_8658(); - anim = HuSprAnimRead(HuAR_ARAMtoMRAMFileRead(0x120004, MEMORY_DEFAULT_NUM, HEAP_DATA)); - for(i=0; i<4; i++) { - lbl_1_bss_1814[i] = Hu3DParManCreate(anim, 300, &lbl_1_data_780); - Hu3DParManAttrSet(lbl_1_bss_1814[i], 0x65); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_1814[i]), 1); - Hu3DParManRotSet(lbl_1_bss_1814[i], 90, 0, 0); - } - HuDataDirClose(DATADIR_RESULT); - for(i=0; i<4; i++) { - player = lbl_1_bss_19F0[i]; - character = GWPlayerCfg[lbl_1_bss_19F0[i]].character; - char_mdl = CharModelCreate(character, 2); - lbl_1_bss_19B0[player] = char_mdl; - lbl_1_bss_1990[player][0] = CharModelMotionCreate(character, 0x5F0000); - lbl_1_bss_1990[player][1] = CharModelMotionCreate(character, 0x5F0017); - lbl_1_bss_1990[player][2] = CharModelMotionCreate(character, 0x5F0049); - CharModelVoiceEnableSet(character, lbl_1_bss_1990[player][1], 0); - CharModelMotionSet(character, lbl_1_bss_1990[player][0]); - Hu3DModelPosSet(char_mdl, lbl_1_data_7F0[i].x, lbl_1_data_7F0[lbl_1_bss_19E8[i]].y, 0); - Hu3DModelAttrSet(char_mdl, 0x40000001); - Hu3DModelShadowSet(char_mdl); - } - CharModelDataClose(-1); + s16 i; + s16 character; + s16 player; + s16 x_ofs; + AnimData *anim; + AnimData *anim2; + AnimData *anim3; + s16 char_mdl; + Vec pos; + Vec target; + Vec up; + s16 gains[5]; + Process *process = HuPrcCurrentGet(); + CRot.x = 0; + CRot.y = 0; + CRot.z = 0; + Center.x = 0; + Center.y = 330; + Center.z = 0; + CZoom = 2210; + Hu3DShadowCreate(20, 100, 5000); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowSizeSet(192); + target.x = target.y = target.z = 0; + pos.x = 500; + pos.z = 1000; + pos.y = 2000; + up.x = 0; + up.y = 1; + up.z = 0; + Hu3DShadowPosSet(&pos, &up, &target); + i = Hu3DHookFuncCreate(fn_1_8CB8); + Hu3DModelPosSet(i, 0, 0, 0); + fn_1_8484(); + fn_1_423C(gains); + gains[lbl_1_bss_172] += gains[4]; + for (i = 0; i < 4; i++) { + lbl_1_data_4E8[i].datanum = lbl_1_data_830[lbl_1_bss_19E8[i]]; + if (lbl_1_bss_19E8[i] == 3) { + lbl_1_data_4E8[i].attr = 1; + } + } + fn_1_8FF8(lbl_1_data_4E8); + fn_1_927C(lbl_1_data_758); + espDrawNoSet(lbl_1_bss_1A1A[0], 127); + for (i = 0; i < 4; i++) { + Hu3DModelShadowSet(lbl_1_bss_1A9C[i]); + } + for (i = 0; i < 4; i++) { + anim = HuSprAnimRead(HuDataReadNum(lbl_1_bss_19E8[i] + DATA_MAKE_NUM(DATADIR_RESULT, 0x44), MEMORY_DEFAULT_NUM)); + ; + if (lbl_1_bss_19E8[i] <= 2) { + anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); + } + else { + anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); + } + Hu3DAnimCreate(anim, lbl_1_bss_1A9C[i + 4], "ys22_a0"); + Hu3DAnimCreate(anim2, lbl_1_bss_1A9C[i + 4], "ys22_a1"); + Hu3DModelAttrSet(lbl_1_bss_1A9C[i + 4], 0x40000002); + } + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3D), MEMORY_DEFAULT_NUM)); + anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B), MEMORY_DEFAULT_NUM)); + anim3 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C), MEMORY_DEFAULT_NUM)); + for (i = 0; i < 4; i++) { + if (gains[lbl_1_bss_19F0[i]] >= 100) { + x_ofs = lbl_1_data_8A0[2]; + } + else if (gains[lbl_1_bss_19F0[i]] >= 10) { + x_ofs = lbl_1_data_8A0[1]; + } + else { + x_ofs = lbl_1_data_8A0[0]; + } + lbl_1_bss_19E0[i] = HuSprGrpCreate(5); + lbl_1_bss_19B8[i][0] = HuSprCreate(anim, 10, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 0, lbl_1_bss_19B8[i][0]); + HuSprPosSet(lbl_1_bss_19E0[i], 0, 17, -32); + lbl_1_bss_19B8[i][1] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 1, lbl_1_bss_19B8[i][1]); + HuSprPosSet(lbl_1_bss_19E0[i], 1, x_ofs, -36); + lbl_1_bss_19B8[i][2] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 2, lbl_1_bss_19B8[i][2]); + HuSprPosSet(lbl_1_bss_19E0[i], 2, x_ofs + 16, -36); + lbl_1_bss_19B8[i][3] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 3, lbl_1_bss_19B8[i][3]); + HuSprPosSet(lbl_1_bss_19E0[i], 3, x_ofs + 32, -36); + lbl_1_bss_19B8[i][4] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 4, lbl_1_bss_19B8[i][4]); + HuSprPosSet(lbl_1_bss_19E0[i], 4, x_ofs + 48, -36); + HuSprGrpPosSet(lbl_1_bss_19E0[i], 0, 0); + fn_1_8338(lbl_1_bss_19E0[i], 9); + HuSprGrpScaleSet(lbl_1_bss_19E0[i], 0, 0); + } + (void)anim3; + Hu3DMotionSet(lbl_1_bss_1A9C[8], lbl_1_bss_1A5C[9]); + Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 0x40000001); + Hu3DModelShadowSet(lbl_1_bss_1A9C[8]); + for (i = 0; i < 180; i++) { + if (i == 0) { + lbl_1_bss_1828[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x0C)); + } + else { + lbl_1_bss_1828[i] = Hu3DModelLink(lbl_1_bss_1828[0]); + } + Hu3DModelScaleSet(lbl_1_bss_1828[i], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); + } + fn_1_8658(); + anim = HuSprAnimRead(HuAR_ARAMtoMRAMFileRead(DATA_MAKE_NUM(DATADIR_EFFECT, 4), MEMORY_DEFAULT_NUM, HEAP_DATA)); + for (i = 0; i < 4; i++) { + lbl_1_bss_1814[i] = Hu3DParManCreate(anim, 300, &lbl_1_data_780); + Hu3DParManAttrSet(lbl_1_bss_1814[i], 0x65); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_1814[i]), 1); + Hu3DParManRotSet(lbl_1_bss_1814[i], 90, 0, 0); + } + HuDataDirClose(DATADIR_RESULT); + for (i = 0; i < 4; i++) { + player = lbl_1_bss_19F0[i]; + character = GWPlayerCfg[lbl_1_bss_19F0[i]].character; + char_mdl = CharModelCreate(character, 2); + lbl_1_bss_19B0[player] = char_mdl; + lbl_1_bss_1990[player][0] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_1990[player][1] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_1990[player][2] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + CharModelVoiceEnableSet(character, lbl_1_bss_1990[player][1], 0); + CharModelMotionSet(character, lbl_1_bss_1990[player][0]); + Hu3DModelPosSet(char_mdl, lbl_1_data_7F0[i].x, lbl_1_data_7F0[lbl_1_bss_19E8[i]].y, 0); + Hu3DModelAttrSet(char_mdl, 0x40000001); + Hu3DModelShadowSet(char_mdl); + } + CharModelDataClose(-1); } -Vec lbl_1_data_8B8[] = { - { 8, 0, 0 }, - { 0, 8, 0 }, - { 10, 5, 0 }, - { -5, 10, 0 }, - { 0, -8, 0 }, - { 8, 10, 0 }, - { -10, 8, 0 }, - { 15, 0, 0 } -}; +Vec lbl_1_data_8B8[] = { { 8, 0, 0 }, { 0, 8, 0 }, { 10, 5, 0 }, { -5, 10, 0 }, { 0, -8, 0 }, { 8, 10, 0 }, { -10, 8, 0 }, { 15, 0, 0 } }; void fn_1_7544(void) { - s16 i; - s16 time; - s16 done_cnt; - float pos_y; - s16 gains[5]; - s16 time_player[4]; - fn_1_423C(gains); - for(time=0; time<=5; time++) { - pos_y = ((5-time)*50)+580; - for(i=0; i<4; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[i+4], lbl_1_data_7F0[i].x, pos_y, 0); - } - HuPrcVSleep(); - } - for(i=0; i<4; i++) { - Hu3DModelAttrReset(lbl_1_bss_1A9C[i+4], 0x40000002); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[i+4], 1.5f); - } - HuPrcSleep(35); - for(i=0; i<4; i++) { - if(gains[lbl_1_bss_19F0[i]] > 0) { - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); - time_player[i] = frandmod(10); - } else { - time_player[i] = 0; - } - Hu3DParManPosSet(lbl_1_bss_1814[i], lbl_1_data_7F0[i].x, 610.0f, 0.0f); - } - while(1) { - for(i=done_cnt=0; i<4; i++) { - if(time_player[i]) { - time_player[i]--; - continue; - } - if(gains[lbl_1_bss_19F0[i]] <= 0) { - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); - done_cnt++; - } else { - fn_1_86DC(i); - gains[lbl_1_bss_19F0[i]]--; - if(gains[lbl_1_bss_19F0[i]] <= 10) { - time_player[i] = 4; - } else { - if(gains[lbl_1_bss_19F0[i]] <= 20) { - time_player[i] = 3; - } else { - if(gains[lbl_1_bss_19F0[i]] <= 40) { - time_player[i] = 2; - } else { - time_player[i] = 1; - } - } - } - } - } - if(done_cnt == 4) { - break; - } - HuPrcVSleep(); - } - if(gains[4]) { - HuPrcSleep(20); - Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0, -90, 0); - Hu3DModelScaleSet(lbl_1_bss_1A9C[8], 0.8f, 0.8f, 0.8f); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[8], 2.0f); - for(i=0; i<=40; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[8], 500.0f*(1.0f-(i/40.0f)), 0, 100.0f); - HuPrcVSleep(); - } - HuAudFXPlay(828); - Hu3DModelAttrReset(lbl_1_bss_1A9C[10], 0x40000002); - Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); - for(i=0; i 10) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 1); - } - Center.x = lbl_1_data_8B8[(i/2) & 0x7].x; - Center.y = 330.0f+lbl_1_data_8B8[(i/2) & 0x7].y; - Center.z = lbl_1_data_8B8[(i/2) & 0x7].z; - espPosSet(lbl_1_bss_1A1A[0], 288.0f+lbl_1_data_8B8[(i/2) & 0x7].x, 240.0f-lbl_1_data_8B8[(i/2) & 0x7].y); - HuPrcVSleep(); - } - espPosSet(lbl_1_bss_1A1A[0], 288.0, 240.0); - Center.x = 0; - Center.y = 330; - Center.z = 0; - time_player[0] = 10; - for(i=0; i<4; i++) { - if(lbl_1_bss_172 == lbl_1_bss_19F0[i]) { - break; - } - } - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); - while(1) { - if(time_player[0] != 0) { - time_player[0]--; - HuPrcVSleep(); - continue; - } - if(gains[4] <= 0){ - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); - break; - } - fn_1_86DC(i); - gains[4]--; - time_player[0] = 5; - HuPrcVSleep(); - } - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); - } - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; - for(i=0; i<4; i++) { - if(gains[lbl_1_bss_19F0[i]]) { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, 0); - HuAudPlayerVoicePlay(lbl_1_bss_19F0[i], 293); - } else { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, 0); - } - } - HuPrcSleep(20); - fn_1_7F98(); - HuPrcSleep(120); + s16 i; + s16 time; + s16 done_cnt; + float pos_y; + s16 gains[5]; + s16 time_player[4]; + fn_1_423C(gains); + for (time = 0; time <= 5; time++) { + pos_y = ((5 - time) * 50) + 580; + for (i = 0; i < 4; i++) { + Hu3DModelPosSet(lbl_1_bss_1A9C[i + 4], lbl_1_data_7F0[i].x, pos_y, 0); + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + Hu3DModelAttrReset(lbl_1_bss_1A9C[i + 4], 0x40000002); + Hu3DMotionSpeedSet(lbl_1_bss_1A9C[i + 4], 1.5f); + } + HuPrcSleep(35); + for (i = 0; i < 4; i++) { + if (gains[lbl_1_bss_19F0[i]] > 0) { + Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); + time_player[i] = frandmod(10); + } + else { + time_player[i] = 0; + } + Hu3DParManPosSet(lbl_1_bss_1814[i], lbl_1_data_7F0[i].x, 610.0f, 0.0f); + } + while (1) { + for (i = done_cnt = 0; i < 4; i++) { + if (time_player[i]) { + time_player[i]--; + continue; + } + if (gains[lbl_1_bss_19F0[i]] <= 0) { + Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + done_cnt++; + } + else { + fn_1_86DC(i); + gains[lbl_1_bss_19F0[i]]--; + if (gains[lbl_1_bss_19F0[i]] <= 10) { + time_player[i] = 4; + } + else { + if (gains[lbl_1_bss_19F0[i]] <= 20) { + time_player[i] = 3; + } + else { + if (gains[lbl_1_bss_19F0[i]] <= 40) { + time_player[i] = 2; + } + else { + time_player[i] = 1; + } + } + } + } + } + if (done_cnt == 4) { + break; + } + HuPrcVSleep(); + } + if (gains[4]) { + HuPrcSleep(20); + Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0, -90, 0); + Hu3DModelScaleSet(lbl_1_bss_1A9C[8], 0.8f, 0.8f, 0.8f); + Hu3DMotionSpeedSet(lbl_1_bss_1A9C[8], 2.0f); + for (i = 0; i <= 40; i++) { + Hu3DModelPosSet(lbl_1_bss_1A9C[8], 500.0f * (1.0f - (i / 40.0f)), 0, 100.0f); + HuPrcVSleep(); + } + HuAudFXPlay(828); + Hu3DModelAttrReset(lbl_1_bss_1A9C[10], 0x40000002); + Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); + for (i = 0; i < Hu3DMotionMaxTimeGet(lbl_1_bss_1A9C[10]); i++) { + if (i > 10) { + Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 1); + } + Center.x = lbl_1_data_8B8[(i / 2) & 0x7].x; + Center.y = 330.0f + lbl_1_data_8B8[(i / 2) & 0x7].y; + Center.z = lbl_1_data_8B8[(i / 2) & 0x7].z; + espPosSet(lbl_1_bss_1A1A[0], 288.0f + lbl_1_data_8B8[(i / 2) & 0x7].x, 240.0f - lbl_1_data_8B8[(i / 2) & 0x7].y); + HuPrcVSleep(); + } + espPosSet(lbl_1_bss_1A1A[0], 288.0, 240.0); + Center.x = 0; + Center.y = 330; + Center.z = 0; + time_player[0] = 10; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_172 == lbl_1_bss_19F0[i]) { + break; + } + } + Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); + while (1) { + if (time_player[0] != 0) { + time_player[0]--; + HuPrcVSleep(); + continue; + } + if (gains[4] <= 0) { + Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + break; + } + fn_1_86DC(i); + gains[4]--; + time_player[0] = 5; + HuPrcVSleep(); + } + Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + } + fn_1_423C(gains); + gains[lbl_1_bss_172] += gains[4]; + for (i = 0; i < 4; i++) { + if (gains[lbl_1_bss_19F0[i]]) { + CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, 0); + HuAudPlayerVoicePlay(lbl_1_bss_19F0[i], 293); + } + else { + CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, 0); + } + } + HuPrcSleep(20); + fn_1_7F98(); + HuPrcSleep(120); } void fn_1_7F98(void) { - s16 i; - s16 time; - s16 delay; - s16 gains[5]; - Vec pos_3d; - Vec pos_2d; - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; - for(i=0; i<4; i++) { - fn_1_8338(lbl_1_bss_19E0[i], gains[lbl_1_bss_19F0[i]]); - pos_3d.x = lbl_1_data_7F0[i].x; - if(gains[lbl_1_bss_19F0[i]]) { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y+lbl_1_data_860[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; - } else { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y+lbl_1_data_880[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; - } - pos_3d.z = 0; - Hu3D3Dto2D(&pos_3d, 1, &pos_2d); - HuSprGrpPosSet(lbl_1_bss_19E0[i], pos_2d.x, pos_2d.y); - } - delay = (lbl_1_bss_174) ? 3 : 10; - for(time=0; time<=delay; time++) { - float scale = sin(M_PI*((90.0/delay)*time)/180.0); - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], scale, scale); - } - HuPrcVSleep(); - } - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 1.0f, 1.0f); - } + s16 i; + s16 time; + s16 delay; + s16 gains[5]; + Vec pos_3d; + Vec pos_2d; + fn_1_423C(gains); + gains[lbl_1_bss_172] += gains[4]; + for (i = 0; i < 4; i++) { + fn_1_8338(lbl_1_bss_19E0[i], gains[lbl_1_bss_19F0[i]]); + pos_3d.x = lbl_1_data_7F0[i].x; + if (gains[lbl_1_bss_19F0[i]]) { + pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_860[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + } + else { + pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_880[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + } + pos_3d.z = 0; + Hu3D3Dto2D(&pos_3d, 1, &pos_2d); + HuSprGrpPosSet(lbl_1_bss_19E0[i], pos_2d.x, pos_2d.y); + } + delay = (lbl_1_bss_174) ? 3 : 10; + for (time = 0; time <= delay; time++) { + float scale = sin(M_PI * ((90.0 / delay) * time) / 180.0); + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_19E0[i], scale, scale); + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_19E0[i], 1.0f, 1.0f); + } } void fn_1_8338(s16 group, s16 value) { - s16 digit; - s16 digit_value; + s16 digit; + s16 digit_value; - 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); - } + 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_8484(void) { - s16 i; - s16 j; - for(i=0; i<4; i++) { - lbl_1_bss_19E8[i] = GWPlayerCoinWinGet(i); - lbl_1_bss_19F0[i] = i; - } - for(j=1; j<4; j++) { - for(i=0; i<4-j; i++) { - if(lbl_1_bss_19E8[i] > lbl_1_bss_19E8[i+1]) { - s16 temp; - temp = lbl_1_bss_19E8[i]; - lbl_1_bss_19E8[i] = lbl_1_bss_19E8[i+1]; - lbl_1_bss_19E8[i+1] = temp; - temp = lbl_1_bss_19F0[i]; - lbl_1_bss_19F0[i] = lbl_1_bss_19F0[i+1]; - lbl_1_bss_19F0[i+1] = temp; - } - } - } + s16 i; + s16 j; + for (i = 0; i < 4; i++) { + lbl_1_bss_19E8[i] = GWPlayerCoinWinGet(i); + lbl_1_bss_19F0[i] = i; + } + for (j = 1; j < 4; j++) { + for (i = 0; i < 4 - j; i++) { + if (lbl_1_bss_19E8[i] > lbl_1_bss_19E8[i + 1]) { + s16 temp; + temp = lbl_1_bss_19E8[i]; + lbl_1_bss_19E8[i] = lbl_1_bss_19E8[i + 1]; + lbl_1_bss_19E8[i + 1] = temp; + temp = lbl_1_bss_19F0[i]; + lbl_1_bss_19F0[i] = lbl_1_bss_19F0[i + 1]; + lbl_1_bss_19F0[i + 1] = temp; + } + } + } } void fn_1_8998(void); void fn_1_8658(void) { - s16 i; - Process *process = HuPrcCurrentGet(); - for(i=0; i<180; i++) { - lbl_1_bss_194[i].unk0 = -1; - } - HuPrcChildCreate(fn_1_8998, 100, 8192, 0, process); + s16 i; + Process *process = HuPrcCurrentGet(); + for (i = 0; i < 180; i++) { + lbl_1_bss_194[i].unk0 = -1; + } + HuPrcChildCreate(fn_1_8998, 100, 8192, 0, process); } void fn_1_86DC(s16 player) { - s16 i; - for(i=0; i<180; i++) { - if(lbl_1_bss_194[i].unk0 == -1) { - break; - } - } - if(i == 180) { - return; - } - lbl_1_bss_194[i].unk0 = player; - lbl_1_bss_194[i].unk4.x = lbl_1_data_7F0[player].x; - lbl_1_bss_194[i].unk4.y = 610.0f; - lbl_1_bss_194[i].unk4.z = 0.0f; - lbl_1_bss_194[i].unk2 = lbl_1_bss_19E8[player]; - lbl_1_bss_194[i].unk10.x = frandmod(20)-10.0f; - lbl_1_bss_194[i].unk10.y = frandmod(20)-10.0f; - lbl_1_bss_194[i].unk10.z = 0; - lbl_1_bss_194[i].unk1C = 10.0f; - Hu3DModelAttrReset(lbl_1_bss_1828[i], 1); - Hu3DModelPosSet(lbl_1_bss_1828[i], 0, 100, 0); - Hu3DModelRotSet(lbl_1_bss_1828[i], 0, 0, 0); + s16 i; + for (i = 0; i < 180; i++) { + if (lbl_1_bss_194[i].unk0 == -1) { + break; + } + } + if (i == 180) { + return; + } + lbl_1_bss_194[i].unk0 = player; + lbl_1_bss_194[i].unk4.x = lbl_1_data_7F0[player].x; + lbl_1_bss_194[i].unk4.y = 610.0f; + lbl_1_bss_194[i].unk4.z = 0.0f; + lbl_1_bss_194[i].unk2 = lbl_1_bss_19E8[player]; + lbl_1_bss_194[i].unk10.x = frandmod(20) - 10.0f; + lbl_1_bss_194[i].unk10.y = frandmod(20) - 10.0f; + lbl_1_bss_194[i].unk10.z = 0; + lbl_1_bss_194[i].unk1C = 10.0f; + Hu3DModelAttrReset(lbl_1_bss_1828[i], 1); + Hu3DModelPosSet(lbl_1_bss_1828[i], 0, 100, 0); + Hu3DModelRotSet(lbl_1_bss_1828[i], 0, 0, 0); } void fn_1_8998(void) { - s16 i; - ModelData *model_ptr; - s16 player; - while(1) { - for(i=0; i<180; i++) { - if(lbl_1_bss_194[i].unk0 == -1) { - continue; - } - player = lbl_1_bss_194[i].unk0; - model_ptr = &Hu3DData[lbl_1_bss_1828[i]]; - model_ptr->pos = lbl_1_bss_194[i].unk4; - model_ptr->rot.x += lbl_1_bss_194[i].unk10.x; - model_ptr->rot.y += lbl_1_bss_194[i].unk10.y; - lbl_1_bss_194[i].unk4.y -= lbl_1_bss_194[i].unk1C; - lbl_1_bss_194[i].unk1C += 0.2f; - if(lbl_1_bss_194[i].unk4.y < ((3-lbl_1_bss_194[i].unk2)*100)+lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]) { - Vec pos; - pos.x = lbl_1_data_7F0[player].x; - pos.y = ((3-lbl_1_bss_194[i].unk2)*100)+lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]; - pos.z = 0.0f; - CharModelCoinEffectCreate(1, &pos); - lbl_1_bss_194[i].unk0 = -1; - HuAudFXPlay(7); - Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); - } - } - HuPrcVSleep(); - } - + s16 i; + ModelData *model_ptr; + s16 player; + while (1) { + for (i = 0; i < 180; i++) { + if (lbl_1_bss_194[i].unk0 == -1) { + continue; + } + player = lbl_1_bss_194[i].unk0; + model_ptr = &Hu3DData[lbl_1_bss_1828[i]]; + model_ptr->pos = lbl_1_bss_194[i].unk4; + model_ptr->rot.x += lbl_1_bss_194[i].unk10.x; + model_ptr->rot.y += lbl_1_bss_194[i].unk10.y; + lbl_1_bss_194[i].unk4.y -= lbl_1_bss_194[i].unk1C; + lbl_1_bss_194[i].unk1C += 0.2f; + if (lbl_1_bss_194[i].unk4.y < ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]) { + Vec pos; + pos.x = lbl_1_data_7F0[player].x; + pos.y = ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]; + pos.z = 0.0f; + CharModelCoinEffectCreate(1, &pos); + lbl_1_bss_194[i].unk0 = -1; + HuAudFXPlay(7); + Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); + } + } + HuPrcVSleep(); + } } void fn_1_8CB8(struct model_data *model, Mtx matrix) { - s32 sp8 = 0; - GXTexObj tex; - Mtx final; - Mtx inv_camera; - Mtx shadow; - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + s32 sp8 = 0; + GXTexObj tex; + Mtx final; + Mtx inv_camera; + Mtx shadow; + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex, 0); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, matrix, final); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); - MTXConcat(shadow, final, final); - GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX9); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - GXSetNumTexGens(1); - GXSetNumTevStages(1); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); - GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - GXLoadPosMtxImm(matrix, GX_PNMTX0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-500.0f, 0, -500.0f); - GXPosition3f32(500.0f, 0, -500.0f); - GXPosition3f32(500.0f, 0, 500.0f); - GXPosition3f32(-500.0f, 0, 500.0f); - GXEnd(); -} \ No newline at end of file + MTXInverse(Hu3DCameraMtx, inv_camera); + MTXConcat(inv_camera, matrix, final); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); + MTXConcat(shadow, final, final); + GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX9); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXLoadPosMtxImm(matrix, GX_PNMTX0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-500.0f, 0, -500.0f); + GXPosition3f32(500.0f, 0, -500.0f); + GXPosition3f32(500.0f, 0, 500.0f); + GXPosition3f32(-500.0f, 0, 500.0f); + GXEnd(); +} diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 00793250..52dcbd6a 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -1,52 +1,50 @@ #include "dolphin.h" -#include "rel_sqrt_consts.h" -#include "game/object.h" -#include "game/data.h" -#include "game/window.h" -#include "game/hsfman.h" -#include "game/process.h" -#include "game/objsub.h" -#include "game/audio.h" -#include "game/wipe.h" -#include "game/pad.h" #include "game/armem.h" -#include "game/saveload.h" -#include "game/gamework.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 "rel_sqrt_consts.h" #include "math.h" #include "REL/resultdll.h" -DataListModel lbl_1_data_0[] = { - { 0x6F0000, 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0001, 1, 0, -1, -1, { 148, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0002, 1, 0, -1, -1, { 148, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0003, 1, 0, -1, -1, { 148, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 0, -1, -1, { 230, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 4, -1, { 230, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 4, -1, { 230, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 4, -1, { 230, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0005, 0, 0, -1, -1, { 410, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 8, -1, { 410, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 8, -1, { 410, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 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 } } -}; +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[] = { - { 0x6F0043, 0, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x6F001D, 0, 10, 288, 60, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 132, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 132, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 217, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 217, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 302, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 302, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 387, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 387, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, + { 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; @@ -88,144 +86,148 @@ 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); + 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, 0x240007); - 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(); - } + 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_f29; f32 var_f31; f32 var_f30; @@ -237,7 +239,8 @@ void fn_1_888(void) while (1) { if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_4 != 0) { lbl_1_bss_174 = 1; - } else { + } + else { lbl_1_bss_174 = 0; } Hu3DModelRotSet(lbl_1_bss_1A9C[4], 0.0f, var_f31, 0.0f); @@ -267,54 +270,47 @@ void fn_1_888(void) } s32 lbl_1_data_3A8[] = { - 0x006F0010, - 0x006F0011, - 0x006F0012, - 0x006F0013, - 0x006F0014, - 0x006F0015 + 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[] = { - 0x006F001F, - 0x006F001E, - 0x006F001D, - 0x006F0021, - 0x006F0020, - 0x006F001F + 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, + 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 -}; +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 } -}; +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 -}; +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); @@ -323,977 +319,987 @@ 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(0x6F001B); - 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(0x6F003A); - anim3 = HuSprAnimReadFile(0x6F003B); - anim2 = HuSprAnimReadFile(0x6F003C); - anim4 = HuSprAnimReadFile(0x6F003E); - 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(0x6F0022+(character*3)); - lbl_1_bss_E4[character][1] = HuSprAnimReadFile(0x6F0023+(character*3)); - lbl_1_bss_E4[character][2] = HuSprAnimReadFile(0x6F0024+(character*3)); - for(j=0; j<4; j++) { - lbl_1_bss_5C[character][j] = Hu3DModelCreateFile(0x6F0000+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], 1); - } - } - for(i=0; i<4; i++) { - lbl_1_bss_144[i] = HuSprAnimReadFile(0x6F0016+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]], 1); - } - 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(0x6F0004); - 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, 1); - model = Hu3DModelCreateFile(0x6F0007); - 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, 1); - lbl_1_bss_E0 = HuSprAnimReadFile(0x6F001C); - 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(0x6F003F); - sprite = HuSprCreate(anim, 100, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprAttrSet(group, 0, 4); - HuSprDrawNoSet(group, 0, 127); - anim = HuSprAnimReadFile(0x6F0040); - sprite = HuSprCreate(anim, 90, 0); - HuSprGrpMemberSet(group, 1, sprite); - HuSprAttrSet(group, 1, 4); - anim = HuSprAnimReadFile(0x6F0041); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 2, sprite); - HuSprAttrSet(group, 2, 4); - HuSprDrawNoSet(group, 2, 127); - anim = HuSprAnimReadFile(0x6F0042); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 3, sprite); - HuSprAttrSet(group, 3, 4); - HuSprDrawNoSet(group, 3, 127); - (void)sprite; + 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], 1); + } + } + 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]], 1); + } + 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, 1); + 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, 1); + 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); - } + 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]], 1); - Hu3DModelAttrReset(lbl_1_bss_A[i], 1); - Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); - } else { - Hu3DModelAttrSet(lbl_1_bss_A[i], 1); - } - } - 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]], 1); - temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3DModelAttrReset(lbl_1_bss_A[i], 1); - 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; + 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]], 1); + Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); + } + else { + Hu3DModelAttrSet(lbl_1_bss_A[i], 1); + } + } + 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]], 1); + temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; + Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + 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); - } + 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); - } + 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; - } - } - } + 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 -}; +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(); - } + 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; - } - } - } + 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; - } + 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, 4); - 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(); - } + s16 sprite; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + espInit(); + HuPrcVSleep(); + sprite = espEntry(0x860020, 5000, 0); + espPosSet(sprite, 288.0, 240.0); + espAttrReset(sprite, 4); + 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 -}; +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 }, + { 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], 4); - espAttrSet(lbl_1_bss_1A1A[1], 4); - for(temp_r31=0; temp_r31<2; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31+6], 1); - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31+10], 1); - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - espAttrSet(lbl_1_bss_1A1A[temp_r31+6], 4); - } - for(temp_r31=4; temp_r31<8; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], 1); - } - 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], 1); - } - Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], 1); - } - 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, 1); - 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(0x6F0016+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, 0x240007); - 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); + 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], 4); + espAttrSet(lbl_1_bss_1A1A[1], 4); + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 6], 1); + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 10], 1); + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + espAttrSet(lbl_1_bss_1A1A[temp_r31 + 6], 4); + } + for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], 1); + } + 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], 1); + } + Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], 1); + } + 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, 1); + 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 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)); + 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); + } - 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))); + CZoom += HuPadTrigL[0] / 2; + CZoom -= HuPadTrigR[0] / 2; - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&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); - } - PSVECNormalize(&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); - } + 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))); + + PSVECCrossProduct(&dir, &offset, &offset); + PSVECNormalize(&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); + } + PSVECNormalize(&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); + } } diff --git a/src/REL/selmenuDll/main.c b/src/REL/selmenuDll/main.c index 29b299ae..75831f13 100644 --- a/src/REL/selmenuDll/main.c +++ b/src/REL/selmenuDll/main.c @@ -1,22 +1,23 @@ -#include "game/object.h" -#include "game/objsub.h" -#include "game/pad.h" -#include "game/gamework_data.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" -#include "game/wipe.h" -#include "game/flag.h" -#include "game/printfunc.h" -#include "game/minigame_seq.h" -#include "game/data.h" #include "game/board/main.h" #include "game/armem.h" #include "game/audio.h" +#include "game/data.h" +#include "game/flag.h" #include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/wipe.h" #include "rel_sqrt_consts.h" -//MSM Definitions +// MSM Definitions static s8 *msmSeGetIndexPtr(s16 datano); static void msmMusSetMasterVolume(s32 value); @@ -28,117 +29,93 @@ static void msmMusSetMasterVolume(s32 value); #define SM_KEY_UP 0x0001 #define SM_KEY_DOWN 0x0002 -static char *smCharTbl[] = { - "Mario", - "Luigi", - "Peach", - "Yoshi", - "Wario", - "Donkey", - "Daisy", - "Waluigi" -}; +static char *smCharTbl[] = { "Mario", "Luigi", "Peach", "Yoshi", "Wario", "Donkey", "Daisy", "Waluigi" }; typedef struct sm_entry { - u16 enabled; - char *name; - OverlayID overlay; + u16 enabled; + char *name; + OverlayID overlay; } SMEntry; -static SMEntry smMenuTbl[SM_PAGE_MAX*SM_PAGE_SIZE] = { - { 1, "401:WAKUGURI DIVING", OVL_M401 }, - { 1, "402:PURURUN! BIGSLIME", OVL_M402 }, - { 1, "403:TAORERUKABE!", OVL_M403 }, - { 1, "404:CRAYON RUNNER", OVL_M404 }, - { 1, "405:MEDREY RACE", OVL_M405 }, - { 1, "406:SKI RACE", OVL_M406 }, - { 1, "407:BATTANDOMINO", OVL_M407 }, - { 1, "408:SKY DIVE", OVL_M408 }, - { 1, "409:CRAY SHOT", OVL_M409 }, - { 1, "410:JANJAN FREE THROW", OVL_M410 }, - { 1, "411:PAZZLE DE PONG", OVL_M411 }, - { 1, "412:SNOW THROW", OVL_M412 }, - { 1, "413:BOMBHEI PAZZLE!", OVL_M413 }, - { 1, "414:NERATTE UTE!", OVL_M414 }, - { 1, "415:PYONPYON STAMP", OVL_M415 }, - { 1, "416:MAMORE FIRE", OVL_M416 }, - { 1, "417:MARIO SURFER", OVL_M417 }, - { 1, "418:TAIHOU KAKURENBO", OVL_M418 }, - { 1, "419:BANANA DE KOROBASE", OVL_M419 }, - { 1, "420:WATER BATTLE", OVL_M420 }, - { 1, "421:BODY BALOON", OVL_M421 }, - { 1, "422:BELCON COIN", OVL_M422 }, - { 1, "423:GOAL AND GOAL", OVL_M423 }, - { 1, "424:CLANE CATCH", OVL_M424 }, - { 1, "425:AIR DOSSUN", OVL_M425 }, - { 1, "426:KYOROKYORO PANIC", OVL_M426 }, - { 1, "427:BOAT RACE", OVL_M427 }, - { 1, "428:THE ROCK CLIME", OVL_M428 }, - { 1, "429:TREASURE FOREST", OVL_M429 }, - { 1, "430:PARASAILING GO", OVL_M430 }, - { 1, "431:GURUGURU BOX", OVL_M431 }, - { 1, "432:PAIR DE RACE", OVL_M432 }, - { 1, "433:BEACH VOLLEY", OVL_SUBCHRSEL }, - { 1, "434:KINGYOSUKUI", OVL_M434 }, - { 1, "435:KOOPA DARTS", OVL_M435 }, - { 1, "436:KOOPANO AREGA TABETAI!", OVL_M436 }, - { 1, "437:FUSEN RAKUGO", OVL_M437 }, - { 1, "438:SYAKUNETSU WANWAN ATTACK", OVL_M438 }, - { 1, "439:GURUGURU DANGEROUS", OVL_M439 }, - { 1, "440:NEO KOOPA BAKUDAN", OVL_M440 }, - { 1, "441:HIRAHIRA CHOUCHO", OVL_M441 }, - { 1, "442:SUIMYAKU HORE2", OVL_M442 }, - { 1, "443:DRUG RACE", OVL_M443 }, - { 1, "444:MIRACLE PINBALL", OVL_M444 }, - { 1, "445:KINOPIO HAMMER", OVL_M445 }, - { 1, "446:3MAI SOROERO!", OVL_M446 }, - { 1, "447:IQ BLOCK", OVL_M447 }, - { 1, "448:FUMIKURI", OVL_M448 }, - { 1, "449:NOKO2 KOURA PAZZLE", OVL_M449 }, - { 1, "450:LAST GAME", OVL_M450 }, - { 1, "451:PAZZLE", OVL_M451 }, - { 1, "455:BURUTTE 1BAN", OVL_M455 }, - { 1, "456:MOGUTTE 1BAN", OVL_M456 }, - { 1, "457:SUMOH", OVL_M457 }, - { 1, "458:PSYCOLO BATTLE", OVL_M458 }, - { 1, "459:Dr.WARIO", OVL_M459 }, - { 1, "460:", OVL_M460 }, - { 1, "461:BOMBHEI SCRANBLE", OVL_M461 }, - { 1, "462:", OVL_M462 }, - { 1, "***:MESS CHECK", OVL_MESS }, - { 1, "***:BOARD W01", OVL_W01 }, - { 1, "***:BOARD W02", OVL_W02 }, - { 1, "***:BOARD W03", OVL_W03 }, - { 1, "***:BOARD W04", OVL_W04 }, - { 1, "***:BOARD W05", OVL_W05 }, - { 1, "***:BOARD W06", OVL_W06 }, - { 1, "***:BOARD W20", OVL_W20 }, - { 1, "***:BOARD W21", OVL_W21 }, - { 1, "***:STAFF", OVL_STAFF }, - { 1, "***:STORY TEST", OVL_MSTORY4 }, +static SMEntry smMenuTbl[SM_PAGE_MAX * SM_PAGE_SIZE] = { + { 1, "401:WAKUGURI DIVING", OVL_M401 }, + { 1, "402:PURURUN! BIGSLIME", OVL_M402 }, + { 1, "403:TAORERUKABE!", OVL_M403 }, + { 1, "404:CRAYON RUNNER", OVL_M404 }, + { 1, "405:MEDREY RACE", OVL_M405 }, + { 1, "406:SKI RACE", OVL_M406 }, + { 1, "407:BATTANDOMINO", OVL_M407 }, + { 1, "408:SKY DIVE", OVL_M408 }, + { 1, "409:CRAY SHOT", OVL_M409 }, + { 1, "410:JANJAN FREE THROW", OVL_M410 }, + { 1, "411:PAZZLE DE PONG", OVL_M411 }, + { 1, "412:SNOW THROW", OVL_M412 }, + { 1, "413:BOMBHEI PAZZLE!", OVL_M413 }, + { 1, "414:NERATTE UTE!", OVL_M414 }, + { 1, "415:PYONPYON STAMP", OVL_M415 }, + { 1, "416:MAMORE FIRE", OVL_M416 }, + { 1, "417:MARIO SURFER", OVL_M417 }, + { 1, "418:TAIHOU KAKURENBO", OVL_M418 }, + { 1, "419:BANANA DE KOROBASE", OVL_M419 }, + { 1, "420:WATER BATTLE", OVL_M420 }, + { 1, "421:BODY BALOON", OVL_M421 }, + { 1, "422:BELCON COIN", OVL_M422 }, + { 1, "423:GOAL AND GOAL", OVL_M423 }, + { 1, "424:CLANE CATCH", OVL_M424 }, + { 1, "425:AIR DOSSUN", OVL_M425 }, + { 1, "426:KYOROKYORO PANIC", OVL_M426 }, + { 1, "427:BOAT RACE", OVL_M427 }, + { 1, "428:THE ROCK CLIME", OVL_M428 }, + { 1, "429:TREASURE FOREST", OVL_M429 }, + { 1, "430:PARASAILING GO", OVL_M430 }, + { 1, "431:GURUGURU BOX", OVL_M431 }, + { 1, "432:PAIR DE RACE", OVL_M432 }, + { 1, "433:BEACH VOLLEY", OVL_SUBCHRSEL }, + { 1, "434:KINGYOSUKUI", OVL_M434 }, + { 1, "435:KOOPA DARTS", OVL_M435 }, + { 1, "436:KOOPANO AREGA TABETAI!", OVL_M436 }, + { 1, "437:FUSEN RAKUGO", OVL_M437 }, + { 1, "438:SYAKUNETSU WANWAN ATTACK", OVL_M438 }, + { 1, "439:GURUGURU DANGEROUS", OVL_M439 }, + { 1, "440:NEO KOOPA BAKUDAN", OVL_M440 }, + { 1, "441:HIRAHIRA CHOUCHO", OVL_M441 }, + { 1, "442:SUIMYAKU HORE2", OVL_M442 }, + { 1, "443:DRUG RACE", OVL_M443 }, + { 1, "444:MIRACLE PINBALL", OVL_M444 }, + { 1, "445:KINOPIO HAMMER", OVL_M445 }, + { 1, "446:3MAI SOROERO!", OVL_M446 }, + { 1, "447:IQ BLOCK", OVL_M447 }, + { 1, "448:FUMIKURI", OVL_M448 }, + { 1, "449:NOKO2 KOURA PAZZLE", OVL_M449 }, + { 1, "450:LAST GAME", OVL_M450 }, + { 1, "451:PAZZLE", OVL_M451 }, + { 1, "455:BURUTTE 1BAN", OVL_M455 }, + { 1, "456:MOGUTTE 1BAN", OVL_M456 }, + { 1, "457:SUMOH", OVL_M457 }, + { 1, "458:PSYCOLO BATTLE", OVL_M458 }, + { 1, "459:Dr.WARIO", OVL_M459 }, + { 1, "460:", OVL_M460 }, + { 1, "461:BOMBHEI SCRANBLE", OVL_M461 }, + { 1, "462:", OVL_M462 }, + { 1, "***:MESS CHECK", OVL_MESS }, + { 1, "***:BOARD W01", OVL_W01 }, + { 1, "***:BOARD W02", OVL_W02 }, + { 1, "***:BOARD W03", OVL_W03 }, + { 1, "***:BOARD W04", OVL_W04 }, + { 1, "***:BOARD W05", OVL_W05 }, + { 1, "***:BOARD W06", OVL_W06 }, + { 1, "***:BOARD W20", OVL_W20 }, + { 1, "***:BOARD W21", OVL_W21 }, + { 1, "***:STAFF", OVL_STAFF }, + { 1, "***:STORY TEST", OVL_MSTORY4 }, }; -static u32 cameraMaskTbl[] = { - ( 1 << 0 ), - ( 1 << 1 ), - ( 1 << 2 ), - ( 1 << 3 ) -}; +static u32 cameraMaskTbl[] = { (1 << 0), (1 << 1), (1 << 2), (1 << 3) }; -static u32 lbl_1_data_844[] = { - 0, 1, 2, 3, 4, 5 -}; +static u32 lbl_1_data_844[] = { 0, 1, 2, 3, 4, 5 }; -static char *dvdMusTbl[] = { - "sound/mu_016a.dvd", - "sound/mu_047a.dvd", - "sound/mu_052a.dvd", - "sound/mu_054a.dvd", - "sound/mu_101a.dvd", - "sound/mu_108a.dvd", - "sound/mu002a.dvd", - "" -}; +static char *dvdMusTbl[] = { "sound/mu_016a.dvd", "sound/mu_047a.dvd", "sound/mu_052a.dvd", "sound/mu_054a.dvd", "sound/mu_101a.dvd", + "sound/mu_108a.dvd", "sound/mu002a.dvd", "" }; static s16 smPage; static s16 smSelectPosBackup[SM_PAGE_MAX]; @@ -160,161 +137,166 @@ static void SMRand8Tick(omObjData *object); void ObjectSetup(void) { - static char *funcId = "SMOBJECTSETUP\n"; - s32 i; - Process *objman; - Vec pos, dir; - - OSReport("ObjectSetup:%08x\n", ObjectSetup); - OSReport("\n\n\n******* SMObjectSetup *********\n"); - OSReport(funcId); - objman = omInitObjMan(50, 8192); - for(i=0; i<4; i++) { - if(GWPlayerCfg[i].character >= 8) { - break; - } - } - if(i != 4) { - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = i; - } - } - smMainObj = omAddObjEx(objman, 0, 0, 0, -1, SMInit); - outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - omAddObjEx(objman, 0, 0, 0, -1, SMRand8Tick); - outViewObj->work[0] = 4; - for(i=0; i<4; i++) { - CRotM[i].x = -20.0f; - CRotM[i].y = 0.0f; - CRotM[i].z = 0.0f; - CenterM[i].x = 0.0f; - CenterM[i].y = 50.0f; - CenterM[i].z = 0.0f; - CZoomM[i] = 500.0f; - Hu3DCameraCreate(cameraMaskTbl[i]); - Hu3DCameraPerspectiveSet(cameraMaskTbl[i], 45.0f, 20.0f, 25000.0f, 4.0f/3.0f); - Hu3DCameraViewportSet(cameraMaskTbl[i], (i%2)*320.0f, (i/2)*240.0f, 320.0f, 240.0f, 0.0f, 1.0f); - } - Hu3DGLightCreate(0.0f, 0.0f, 100.0f, 0.0f, 0.0f, -1.0f, 255, 255, 255); - pos.x = 0.0f; - pos.y = 0.0f; - pos.z = 200.0f; - dir.x = dir.y = 0.0f; - dir.z = -1.0f; - SetDefLight(&pos, &dir, 255, 255, 255, 64, 64, 64, 255, 255, 255); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - GWMGTypeSet(-1); - _ClearFlag(FLAG_ID_MAKE(1, 0)); - GWSystem.turn = 1; - GWSystem.max_turn = 20; + static char *funcId = "SMOBJECTSETUP\n"; + s32 i; + Process *objman; + Vec pos, dir; + + OSReport("ObjectSetup:%08x\n", ObjectSetup); + OSReport("\n\n\n******* SMObjectSetup *********\n"); + OSReport(funcId); + objman = omInitObjMan(50, 8192); + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character >= 8) { + break; + } + } + if (i != 4) { + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = i; + } + } + smMainObj = omAddObjEx(objman, 0, 0, 0, -1, SMInit); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + omAddObjEx(objman, 0, 0, 0, -1, SMRand8Tick); + outViewObj->work[0] = 4; + for (i = 0; i < 4; i++) { + CRotM[i].x = -20.0f; + CRotM[i].y = 0.0f; + CRotM[i].z = 0.0f; + CenterM[i].x = 0.0f; + CenterM[i].y = 50.0f; + CenterM[i].z = 0.0f; + CZoomM[i] = 500.0f; + Hu3DCameraCreate(cameraMaskTbl[i]); + Hu3DCameraPerspectiveSet(cameraMaskTbl[i], 45.0f, 20.0f, 25000.0f, 4.0f / 3.0f); + Hu3DCameraViewportSet(cameraMaskTbl[i], (i % 2) * 320.0f, (i / 2) * 240.0f, 320.0f, 240.0f, 0.0f, 1.0f); + } + Hu3DGLightCreate(0.0f, 0.0f, 100.0f, 0.0f, 0.0f, -1.0f, 255, 255, 255); + pos.x = 0.0f; + pos.y = 0.0f; + pos.z = 200.0f; + dir.x = dir.y = 0.0f; + dir.z = -1.0f; + SetDefLight(&pos, &dir, 255, 255, 255, 64, 64, 64, 255, 255, 255); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + GWMGTypeSet(-1); + _ClearFlag(FLAG_ID_MAKE(1, 0)); + GWSystem.turn = 1; + GWSystem.max_turn = 20; } static void CopyPlayerCfg(PlayerConfig *dst, PlayerConfig *src) { - s32 i; - for(i=0; i<4; i++) { - *dst++ = *src++; - } + s32 i; + for (i = 0; i < 4; i++) { + *dst++ = *src++; + } } static void CalcBtns(void) { - s32 i; - keyDStk = keyDStkDown = btnDown = 0; - for(i=0; i<4; i++) { - keyDStkAll[i] = keyDStkAllDown[i] = btnDownAll[i] = 0; - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_LEFT) { - keyDStkAll[i] |= SM_KEY_LEFT; - } - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_RIGHT) { - keyDStkAll[i] |= SM_KEY_RIGHT; - } - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_UP) { - keyDStkAll[i] |= SM_KEY_UP; - } - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_DOWN) { - keyDStkAll[i] |= SM_KEY_DOWN; - } - btnDownAll[i] |= HuPadBtnDown[i]; - keyDStkAllDown[i] = (keyDStkAll[i] ^ keyDStkAllPrev[i]) & keyDStkAll[i]; - keyDStkAllPrev[i] = keyDStkAll[i]; - keyDStk |= keyDStkAll[i]; - keyDStkDown |= keyDStkAllDown[i]; - btnDown |= btnDownAll[i]; - } + s32 i; + keyDStk = keyDStkDown = btnDown = 0; + for (i = 0; i < 4; i++) { + keyDStkAll[i] = keyDStkAllDown[i] = btnDownAll[i] = 0; + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_LEFT) { + keyDStkAll[i] |= SM_KEY_LEFT; + } + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_RIGHT) { + keyDStkAll[i] |= SM_KEY_RIGHT; + } + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_UP) { + keyDStkAll[i] |= SM_KEY_UP; + } + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_DOWN) { + keyDStkAll[i] |= SM_KEY_DOWN; + } + btnDownAll[i] |= HuPadBtnDown[i]; + keyDStkAllDown[i] = (keyDStkAll[i] ^ keyDStkAllPrev[i]) & keyDStkAll[i]; + keyDStkAllPrev[i] = keyDStkAll[i]; + keyDStk |= keyDStkAll[i]; + keyDStkDown |= keyDStkAllDown[i]; + btnDown |= btnDownAll[i]; + } } static void DrawPage(void) { - s32 i; - SMEntry *entry; - fontcolor = FONT_COLOR_YELLOW; - print8(200, 160, 2.5f, "PAGE:%d/%d", smPage+1, SM_PAGE_MAX); - for(i=0; ienabled == 1) { - if(i == smSelectPos) { - fontcolor = FONT_COLOR_CYAN; - } else { - fontcolor = FONT_COLOR_GREEN; - } - } else { - fontcolor = FONT_COLOR_DARK_GREEN; - } - print8(100, (float)((i+10)*8)*2.5f, 2.5f, "%s", entry->name); - } + s32 i; + SMEntry *entry; + fontcolor = FONT_COLOR_YELLOW; + print8(200, 160, 2.5f, "PAGE:%d/%d", smPage + 1, SM_PAGE_MAX); + for (i = 0; i < SM_PAGE_SIZE; i++) { + entry = &smMenuTbl[(smPage * SM_PAGE_SIZE) + i]; + if (entry->enabled == 1) { + if (i == smSelectPos) { + fontcolor = FONT_COLOR_CYAN; + } + else { + fontcolor = FONT_COLOR_GREEN; + } + } + else { + fontcolor = FONT_COLOR_DARK_GREEN; + } + print8(100, (float)((i + 10) * 8) * 2.5f, 2.5f, "%s", entry->name); + } } static void MoveSMCursor(s16 amount); static void MoveSMPage(s16 amount) { - s16 page; - s32 i; - u16 enabled; - s16 page_old; - enabled = 0; - page = smPage; - page_old = page; - do { - page += amount; - if(page >= SM_PAGE_MAX) { - page = 0; - } else if(page < 0) { - page = SM_PAGE_MAX-1; - } - for(i=0; i= SM_PAGE_MAX) { + page = 0; + } + else if (page < 0) { + page = SM_PAGE_MAX - 1; + } + for (i = 0; i < SM_PAGE_SIZE; i++) { + if (smMenuTbl[(page * SM_PAGE_SIZE) + i].enabled == 1) { + enabled = 1; + break; + } + } + } while (!enabled); + smPage = page; + if (page_old == -1) { + smSelectPos = -1; + MoveSMCursor(1); + smSelectPosBackup[smPage] = smSelectPos; + } + else { + smSelectPosBackup[page_old] = smSelectPos; + smSelectPos = smSelectPosBackup[smPage]; + } } static void MoveSMCursor(s16 amount) { - s16 pos; - pos = smSelectPos; - do { - pos += amount; - if(pos >= SM_PAGE_SIZE) { - pos = 0; - } else if(pos < 0) { - pos = SM_PAGE_SIZE-1; - } - } while(!smMenuTbl[(smPage*SM_PAGE_SIZE)+pos].enabled); - smSelectPos = pos; - (void)pos; + s16 pos; + pos = smSelectPos; + do { + pos += amount; + if (pos >= SM_PAGE_SIZE) { + pos = 0; + } + else if (pos < 0) { + pos = SM_PAGE_SIZE - 1; + } + } while (!smMenuTbl[(smPage * SM_PAGE_SIZE) + pos].enabled); + smSelectPos = pos; + (void)pos; } static s16 SMChangeChar(s16 player, s16 offset); @@ -322,43 +304,44 @@ static void SMUpdate(omObjData *object); static void SMInit(omObjData *object) { - s32 i, j; - OSReport("SMinit:%08x\n", SMInit); - omDLLDBGOut(); - Hu3DBGColorSet(0, 0, 0); - CopyPlayerCfg(smPlayerCfg, GWPlayerCfg); - for(i=0; i<4; i++) { - for(j=i+1; j<4; j++) { - if(smPlayerCfg[i].character == smPlayerCfg[j].character) { - smPlayerCfg[j].character = SMChangeChar(j, -1); - } - } - } - smPage = -1; - for(i=0; ifunc = SMUpdate; + s32 i, j; + OSReport("SMinit:%08x\n", SMInit); + omDLLDBGOut(); + Hu3DBGColorSet(0, 0, 0); + CopyPlayerCfg(smPlayerCfg, GWPlayerCfg); + for (i = 0; i < 4; i++) { + for (j = i + 1; j < 4; j++) { + if (smPlayerCfg[i].character == smPlayerCfg[j].character) { + smPlayerCfg[j].character = SMChangeChar(j, -1); + } + } + } + smPage = -1; + for (i = 0; i < SM_PAGE_MAX; i++) { + for (j = 0; j < SM_PAGE_SIZE; j++) { + if (smMenuTbl[(i * SM_PAGE_SIZE) + j].enabled == 1) { + break; + } + } + if (j == SM_PAGE_SIZE) { + smSelectPosBackup[i] = -1; + } + else { + smSelectPosBackup[i] = j; + } + } + MoveSMPage(1); + if (mgSeqOvlPrev != OVL_INVALID) { + for (i = 0; i < SM_PAGE_MAX * SM_PAGE_SIZE; i++) { + if (mgSeqOvlPrev == smMenuTbl[i].overlay && smMenuTbl[i].enabled == 1) { + smPage = i / SM_PAGE_SIZE; + smSelectPos = i % SM_PAGE_SIZE; + smSelectPosBackup[smPage] = smSelectPos; + break; + } + } + } + object->func = SMUpdate; } static void SMGroupGen(s32 index); @@ -368,110 +351,112 @@ static void SMSound3DInit(omObjData *object); static void SMUpdate(omObjData *object) { - CalcBtns(); - DrawPage(); - if(keyDStkDown & SM_KEY_UP) { - MoveSMCursor(-1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if(keyDStkDown & SM_KEY_DOWN) { - MoveSMCursor(1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if(keyDStkDown & SM_KEY_LEFT) { - MoveSMPage(-1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if(keyDStkDown & SM_KEY_RIGHT) { - MoveSMPage(1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_START)) { - object->func = SMCharInit; - return; - } - if(btnDown & PAD_BUTTON_Y) { - object->func = SMPlayerCfgInit; - return; - } - if(btnDown & PAD_TRIGGER_Z) { - object->func = SMSound3DInit; - return; - } - if(btnDown & PAD_BUTTON_X) { - omOvlReturnEx(0, 1); - } + CalcBtns(); + DrawPage(); + if (keyDStkDown & SM_KEY_UP) { + MoveSMCursor(-1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if (keyDStkDown & SM_KEY_DOWN) { + MoveSMCursor(1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if (keyDStkDown & SM_KEY_LEFT) { + MoveSMPage(-1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if (keyDStkDown & SM_KEY_RIGHT) { + MoveSMPage(1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if ((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_START)) { + object->func = SMCharInit; + return; + } + if (btnDown & PAD_BUTTON_Y) { + object->func = SMPlayerCfgInit; + return; + } + if (btnDown & PAD_TRIGGER_Z) { + object->func = SMSound3DInit; + return; + } + if (btnDown & PAD_BUTTON_X) { + omOvlReturnEx(0, 1); + } } static void SMGroupGen(s32 index) { - OverlayID overlay; - s32 i; - overlay = smMenuTbl[index].overlay; - for(i=0; i<50; i++) { - if(overlay == mgInfoTbl[i].ovl) { - break; - } - } - if(i == 50) { - for(i=0; i<4; i++) { - smPlayerCfg[i].group = i; - } - return; - } - switch(mgInfoTbl[i].type) { - case 0: - case 3: - case 4: - case 5: - case 6: - for(i=0; i<4; i++) { - smPlayerCfg[i].group = i; - } - break; - - case 1: - smPlayerCfg[0].group = 0; - for(i=1; i<4; i++) { - smPlayerCfg[i].group = 1; - } - break; - - case 2: - for(i=0; i<2; i++) { - smPlayerCfg[i].group = 0; - } - for(i=2; i<4; i++) { - smPlayerCfg[i].group = 1; - } - break; - } - if(overlay == OVL_M430) { - s32 team_cnt[2]; - s32 team_players[2][2]; - team_cnt[0] = team_cnt[1] = 0; - for(i=0; i<4; i++) { - team_players[smPlayerCfg[i].group][team_cnt[smPlayerCfg[i].group]++] = i; - } - if(frandBool()) { - GWPlayerCfg[team_players[0][0]].group = 0; - GWPlayerCfg[team_players[0][1]].group = 1; - } else { - GWPlayerCfg[team_players[0][0]].group = 1; - GWPlayerCfg[team_players[0][1]].group = 0; - } - if(frandBool()) { - GWPlayerCfg[team_players[1][0]].group = 2; - GWPlayerCfg[team_players[1][1]].group = 3; - } else { - GWPlayerCfg[team_players[1][0]].group = 3; - GWPlayerCfg[team_players[1][1]].group = 2; - } - } + OverlayID overlay; + s32 i; + overlay = smMenuTbl[index].overlay; + for (i = 0; i < 50; i++) { + if (overlay == mgInfoTbl[i].ovl) { + break; + } + } + if (i == 50) { + for (i = 0; i < 4; i++) { + smPlayerCfg[i].group = i; + } + return; + } + switch (mgInfoTbl[i].type) { + case 0: + case 3: + case 4: + case 5: + case 6: + for (i = 0; i < 4; i++) { + smPlayerCfg[i].group = i; + } + break; + + case 1: + smPlayerCfg[0].group = 0; + for (i = 1; i < 4; i++) { + smPlayerCfg[i].group = 1; + } + break; + + case 2: + for (i = 0; i < 2; i++) { + smPlayerCfg[i].group = 0; + } + for (i = 2; i < 4; i++) { + smPlayerCfg[i].group = 1; + } + break; + } + if (overlay == OVL_M430) { + s32 team_cnt[2]; + s32 team_players[2][2]; + team_cnt[0] = team_cnt[1] = 0; + for (i = 0; i < 4; i++) { + team_players[smPlayerCfg[i].group][team_cnt[smPlayerCfg[i].group]++] = i; + } + if (frandBool()) { + GWPlayerCfg[team_players[0][0]].group = 0; + GWPlayerCfg[team_players[0][1]].group = 1; + } + else { + GWPlayerCfg[team_players[0][0]].group = 1; + GWPlayerCfg[team_players[0][1]].group = 0; + } + if (frandBool()) { + GWPlayerCfg[team_players[1][0]].group = 2; + GWPlayerCfg[team_players[1][1]].group = 3; + } + else { + GWPlayerCfg[team_players[1][0]].group = 3; + GWPlayerCfg[team_players[1][1]].group = 2; + } + } } static s16 charModelID[8]; @@ -479,83 +464,83 @@ static s16 playerDoneF[4]; static s16 charSelProhibitF[8]; static s32 charMdlTbl[] = { - DATA_MAKE_NUM(DATADIR_SELMENU, 0), - DATA_MAKE_NUM(DATADIR_SELMENU, 2), - DATA_MAKE_NUM(DATADIR_SELMENU, 4), - DATA_MAKE_NUM(DATADIR_SELMENU, 6), - DATA_MAKE_NUM(DATADIR_SELMENU, 8), - DATA_MAKE_NUM(DATADIR_SELMENU, 10), - DATA_MAKE_NUM(DATADIR_SELMENU, 12), - DATA_MAKE_NUM(DATADIR_SELMENU, 14), + DATA_MAKE_NUM(DATADIR_SELMENU, 0), + DATA_MAKE_NUM(DATADIR_SELMENU, 2), + DATA_MAKE_NUM(DATADIR_SELMENU, 4), + DATA_MAKE_NUM(DATADIR_SELMENU, 6), + DATA_MAKE_NUM(DATADIR_SELMENU, 8), + DATA_MAKE_NUM(DATADIR_SELMENU, 10), + DATA_MAKE_NUM(DATADIR_SELMENU, 12), + DATA_MAKE_NUM(DATADIR_SELMENU, 14), }; static s32 charMdlMotTbl[] = { - DATA_MAKE_NUM(DATADIR_SELMENU, 1), - DATA_MAKE_NUM(DATADIR_SELMENU, 3), - DATA_MAKE_NUM(DATADIR_SELMENU, 5), - DATA_MAKE_NUM(DATADIR_SELMENU, 7), - DATA_MAKE_NUM(DATADIR_SELMENU, 9), - DATA_MAKE_NUM(DATADIR_SELMENU, 11), - DATA_MAKE_NUM(DATADIR_SELMENU, 13), - DATA_MAKE_NUM(DATADIR_SELMENU, 15), + DATA_MAKE_NUM(DATADIR_SELMENU, 1), + DATA_MAKE_NUM(DATADIR_SELMENU, 3), + DATA_MAKE_NUM(DATADIR_SELMENU, 5), + DATA_MAKE_NUM(DATADIR_SELMENU, 7), + DATA_MAKE_NUM(DATADIR_SELMENU, 9), + DATA_MAKE_NUM(DATADIR_SELMENU, 11), + DATA_MAKE_NUM(DATADIR_SELMENU, 13), + DATA_MAKE_NUM(DATADIR_SELMENU, 15), }; static s16 SMChangeChar(s16 player, s16 offset) { - s32 i; - s16 character; - for(i=0; i<8; i++) { - charSelProhibitF[i] = 0; - } - for(i=0; i<4; i++) { - if(smPlayerCfg[i].iscom) { - continue; - } - charSelProhibitF[smPlayerCfg[i].character] = 1; - } - if(!offset) { - return; - } - character = smPlayerCfg[player].character; - do { - character += offset; - if(character < 0) { - character = 7; - } - if(character >= 8) { - character = 0; - } - } while(charSelProhibitF[character] != 0); - return character; + s32 i; + s16 character; + for (i = 0; i < 8; i++) { + charSelProhibitF[i] = 0; + } + for (i = 0; i < 4; i++) { + if (smPlayerCfg[i].iscom) { + continue; + } + charSelProhibitF[smPlayerCfg[i].character] = 1; + } + if (!offset) { + return; + } + character = smPlayerCfg[player].character; + do { + character += offset; + if (character < 0) { + character = 7; + } + if (character >= 8) { + character = 0; + } + } while (charSelProhibitF[character] != 0); + return character; } static void SMCharKill(void) { - s32 i; - for(i=0; i<8; i++) { - Hu3DModelKill(charModelID[i]); - } + s32 i; + for (i = 0; i < 8; i++) { + Hu3DModelKill(charModelID[i]); + } } static void CharRandomize(void) { - s32 i; - s32 j; - s32 valid_cnt; - s32 valid_list[8]; - for(i=0; i<4; i++) { - valid_cnt = 0; - for(j=0; j<8; j++) { - if(charSelProhibitF[j]) { - continue; - } - valid_list[valid_cnt++] = j; - } - if(smPlayerCfg[i].iscom == 1) { - smPlayerCfg[i].character = valid_list[rand8() % valid_cnt]; - charSelProhibitF[smPlayerCfg[i].character] = 1; - } - } + s32 i; + s32 j; + s32 valid_cnt; + s32 valid_list[8]; + for (i = 0; i < 4; i++) { + valid_cnt = 0; + for (j = 0; j < 8; j++) { + if (charSelProhibitF[j]) { + continue; + } + valid_list[valid_cnt++] = j; + } + if (smPlayerCfg[i].iscom == 1) { + smPlayerCfg[i].character = valid_list[rand8() % valid_cnt]; + charSelProhibitF[smPlayerCfg[i].character] = 1; + } + } } static void SMCharUpdate(omObjData *object); @@ -563,230 +548,233 @@ static void SMExit(omObjData *object); static void SMCharInit(omObjData *object) { - s32 i; - for(i=0; i<8; i++) { - void *data = HuDataSelHeapReadNum(charMdlTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA); - charModelID[i] = Hu3DModelCreate(data); - Hu3DModelPosSet(charModelID[i], 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(charModelID[i], 0x40000001); - Hu3DMotionSet(charModelID[i], Hu3DJointMotion(charModelID[i], HuDataSelHeapReadNum(charMdlMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA))); - } - for(i=0; i<4; i++) { - playerDoneF[i] = 0; - } - SMChangeChar(0, 0); - object->func = SMCharUpdate; + s32 i; + for (i = 0; i < 8; i++) { + void *data = HuDataSelHeapReadNum(charMdlTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA); + charModelID[i] = Hu3DModelCreate(data); + Hu3DModelPosSet(charModelID[i], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(charModelID[i], 0x40000001); + Hu3DMotionSet(charModelID[i], Hu3DJointMotionFile(charModelID[i], charMdlMotTbl[i])); + } + for (i = 0; i < 4; i++) { + playerDoneF[i] = 0; + } + SMChangeChar(0, 0); + object->func = SMCharUpdate; } static void SMCharUpdate(omObjData *object) { - s32 i; - - s16 port; - s32 j; - s16 w; - s16 x; - s16 y; - s16 done_players; - s16 num_players; - - for(i=0; i<8; i++) { - Hu3DModelAttrSet(charModelID[i], 0x1); - } - for(i=0; i<4; i++) { - if(!smPlayerCfg[i].iscom) { - Hu3DModelAttrReset(charModelID[smPlayerCfg[i].character], 0x1); - Hu3DModelCameraSet(charModelID[smPlayerCfg[i].character], cameraMaskTbl[i]); - } - } - for(i=0, done_players=0, num_players=0; i<4; i++) { - if(playerDoneF[i] == 1) { - done_players++; - } - if(!smPlayerCfg[i].iscom) { - num_players++; - } - } - if(done_players == num_players) { - SMChangeChar(0, 0); - CharRandomize(); - CopyPlayerCfg(GWPlayerCfg, smPlayerCfg); - CharKill(-1); - OSReport("%d,%d,%d,%d\n", GWPlayerCfg[0].character, - GWPlayerCfg[1].character, - GWPlayerCfg[2].character, - GWPlayerCfg[3].character); - if(!CharAMemPtrGet(GWPlayerCfg[0].character)) { - CharARAMOpen(GWPlayerCfg[0].character); - } - if(!CharAMemPtrGet(GWPlayerCfg[1].character)) { - CharARAMOpen(GWPlayerCfg[1].character); - } - if(!CharAMemPtrGet(GWPlayerCfg[2].character)) { - CharARAMOpen(GWPlayerCfg[2].character); - } - if(!CharAMemPtrGet(GWPlayerCfg[3].character)) { - CharARAMOpen(GWPlayerCfg[3].character); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - object->func = SMExit; - } - CalcBtns(); - for(i=0; i<4; i++) { - port = smPlayerCfg[i].pad_idx; - if(!playerDoneF[i]) { - if(keyDStkAllDown[port] & SM_KEY_LEFT) { - smPlayerCfg[port].character = SMChangeChar(i, -1); - } - if(keyDStkAllDown[port] & SM_KEY_RIGHT) { - smPlayerCfg[port].character = SMChangeChar(i, 1); - } - if(btnDownAll[port] & PAD_BUTTON_A) { - playerDoneF[i] = 1; - } - } - if(HuPadBtnDown[port] & PAD_BUTTON_B) { - if(done_players != 0) { - playerDoneF[i] = 0; - } else { - SMCharKill(); - object->func = SMUpdate; - return; - } - } - if(btnDownAll[port] & PAD_BUTTON_START) { - for(j=0; j<4; j++) { - if(!smPlayerCfg[j].iscom) { - playerDoneF[j] = 1; - } - } - return; - } - if(!smPlayerCfg[i].iscom) { - w = strlen(smCharTbl[smPlayerCfg[i].character]); - w *= 16; - x = ((320-w)/2)+((i%2)*320); - y = 176+((i/2)*240); - if(playerDoneF[i] == 1) { - fontcolor = FONT_COLOR_WHITE; - print8(x, y, 2.0f, "\xFD\x08""%s", smCharTbl[smPlayerCfg[i].character]); - } else { - fontcolor = FONT_COLOR_GREEN; - print8(x, y, 2.0f, "\xFD\x05""%s", smCharTbl[smPlayerCfg[i].character]); - } - } else { - w = 72; - x = ((320-w)/2)+((i%2)*320); - y = 108+((i/2)*240); - fontcolor = FONT_COLOR_YELLOW; - print8(x, y, 3.0f, "\xFD\x07""COM"); - } - } + s32 i; + + s16 port; + s32 j; + s16 w; + s16 x; + s16 y; + s16 done_players; + s16 num_players; + + for (i = 0; i < 8; i++) { + Hu3DModelAttrSet(charModelID[i], 0x1); + } + for (i = 0; i < 4; i++) { + if (!smPlayerCfg[i].iscom) { + Hu3DModelAttrReset(charModelID[smPlayerCfg[i].character], 0x1); + Hu3DModelCameraSet(charModelID[smPlayerCfg[i].character], cameraMaskTbl[i]); + } + } + for (i = 0, done_players = 0, num_players = 0; i < 4; i++) { + if (playerDoneF[i] == 1) { + done_players++; + } + if (!smPlayerCfg[i].iscom) { + num_players++; + } + } + if (done_players == num_players) { + SMChangeChar(0, 0); + CharRandomize(); + CopyPlayerCfg(GWPlayerCfg, smPlayerCfg); + CharKill(-1); + OSReport("%d,%d,%d,%d\n", GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, GWPlayerCfg[3].character); + if (!CharAMemPtrGet(GWPlayerCfg[0].character)) { + CharARAMOpen(GWPlayerCfg[0].character); + } + if (!CharAMemPtrGet(GWPlayerCfg[1].character)) { + CharARAMOpen(GWPlayerCfg[1].character); + } + if (!CharAMemPtrGet(GWPlayerCfg[2].character)) { + CharARAMOpen(GWPlayerCfg[2].character); + } + if (!CharAMemPtrGet(GWPlayerCfg[3].character)) { + CharARAMOpen(GWPlayerCfg[3].character); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + object->func = SMExit; + } + CalcBtns(); + for (i = 0; i < 4; i++) { + port = smPlayerCfg[i].pad_idx; + if (!playerDoneF[i]) { + if (keyDStkAllDown[port] & SM_KEY_LEFT) { + smPlayerCfg[port].character = SMChangeChar(i, -1); + } + if (keyDStkAllDown[port] & SM_KEY_RIGHT) { + smPlayerCfg[port].character = SMChangeChar(i, 1); + } + if (btnDownAll[port] & PAD_BUTTON_A) { + playerDoneF[i] = 1; + } + } + if (HuPadBtnDown[port] & PAD_BUTTON_B) { + if (done_players != 0) { + playerDoneF[i] = 0; + } + else { + SMCharKill(); + object->func = SMUpdate; + return; + } + } + if (btnDownAll[port] & PAD_BUTTON_START) { + for (j = 0; j < 4; j++) { + if (!smPlayerCfg[j].iscom) { + playerDoneF[j] = 1; + } + } + return; + } + if (!smPlayerCfg[i].iscom) { + w = strlen(smCharTbl[smPlayerCfg[i].character]); + w *= 16; + x = ((320 - w) / 2) + ((i % 2) * 320); + y = 176 + ((i / 2) * 240); + if (playerDoneF[i] == 1) { + fontcolor = FONT_COLOR_WHITE; + print8(x, y, 2.0f, + "\xFD\x08" + "%s", + smCharTbl[smPlayerCfg[i].character]); + } + else { + fontcolor = FONT_COLOR_GREEN; + print8(x, y, 2.0f, + "\xFD\x05" + "%s", + smCharTbl[smPlayerCfg[i].character]); + } + } + else { + w = 72; + x = ((320 - w) / 2) + ((i % 2) * 320); + y = 108 + ((i / 2) * 240); + fontcolor = FONT_COLOR_YELLOW; + print8(x, y, 3.0f, + "\xFD\x07" + "COM"); + } + } } static void SMExit(omObjData *object) { - s32 mg; - if(WipeStatGet()) { - return; - } - while(HuARDMACheck()); - mg = omMgIndexGet(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay); - GWSystem.mg_next = mg; - OSReport("mgNo=%d\n", mg); - if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W10) { - _SetFlag(0x1000B); - } else if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W20) { - BoardSaveInit(7); - BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); - } else if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W21) { - BoardSaveInit(8); - BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); - } else { - _ClearFlag(0x1000B); - } - if(mg == -1 || !(HuPadBtn[0] & PAD_TRIGGER_Z) || mgInfoTbl[mg].type == 5 || mgInfoTbl[mg].type == 3 || mgInfoTbl[mg].type == 6) { - omOvlCallEx(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay, 1, 0, 0); - } else { - omOvlCallEx(OVL_INST, 1, 0, 0); - } - mgSeqOvlPrev = smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay; - smSelectPosExit = smSelectPos; + s32 mg; + if (WipeStatGet()) { + return; + } + while (HuARDMACheck()) + ; + mg = omMgIndexGet(smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay); + GWSystem.mg_next = mg; + OSReport("mgNo=%d\n", mg); + if (smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay == OVL_W10) { + _SetFlag(0x1000B); + } + else if (smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay == OVL_W20) { + BoardSaveInit(7); + BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); + } + else if (smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay == OVL_W21) { + BoardSaveInit(8); + BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); + } + else { + _ClearFlag(0x1000B); + } + if (mg == -1 || !(HuPadBtn[0] & PAD_TRIGGER_Z) || mgInfoTbl[mg].type == 5 || mgInfoTbl[mg].type == 3 || mgInfoTbl[mg].type == 6) { + omOvlCallEx(smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay, 1, 0, 0); + } + else { + omOvlCallEx(OVL_INST, 1, 0, 0); + } + mgSeqOvlPrev = smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay; + smSelectPosExit = smSelectPos; } -static char *padCfgStrTbl[] = { - "PLAYER:%d", - " PAD%d:%s", - "PADNO:%d", - " GRP:%d", - " DIF:%s" -}; +static char *padCfgStrTbl[] = { "PLAYER:%d", " PAD%d:%s", "PADNO:%d", " GRP:%d", " DIF:%s" }; static s16 playerCfgSelF; static s16 playerCfgPlayerPos; static s16 playerCfgOptionPos; -#define DO_HILITE(option) \ -do { \ - s32 color; \ - if(playerCfgOptionPos == option) { \ - color = fontcolor = FONT_COLOR_CYAN; \ - } else { \ - color = fontcolor = FONT_COLOR_GREEN; \ - } \ - (void)color; \ -} while(0) - +#define DO_HILITE(option) \ + do { \ + s32 color; \ + if (playerCfgOptionPos == option) { \ + color = fontcolor = FONT_COLOR_CYAN; \ + } \ + else { \ + color = fontcolor = FONT_COLOR_GREEN; \ + } \ + (void)color; \ + } while (0) + static void SMPlayerCfgDraw(void) { - s32 i; - s16 x; - s16 y; - s16 w; - char *comStr[] = { - "HUMAN", - "COM" - }; - char *diffStr[] = { - "EASY", - "NORMAL", - "HARD", - "VERYHARD" - }; - - for(i=0; i<4; i++) { - w = 128; - x = ((320-w)/2)+((i%2)*320); - y = ((i/2)*240)+48; - if(playerCfgSelF == 0 && playerCfgPlayerPos == i) { - fontcolor = FONT_COLOR_CYAN; - } else { - fontcolor = FONT_COLOR_GREEN; - } - print8(x, y, 2.0f, padCfgStrTbl[0], i); - if(playerCfgSelF == 0) { - fontcolor = FONT_COLOR_DARK_GREEN; - print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); - print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); - print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); - print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); - } else if(playerCfgSelF == 1 && playerCfgPlayerPos == i) { - DO_HILITE(0); - print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); - DO_HILITE(1); - print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); - DO_HILITE(2); - print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); - DO_HILITE(3); - print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); - } else { - fontcolor = FONT_COLOR_DARK_GREEN; - print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); - print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); - print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); - print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); - } - } + s32 i; + s16 x; + s16 y; + s16 w; + char *comStr[] = { "HUMAN", "COM" }; + char *diffStr[] = { "EASY", "NORMAL", "HARD", "VERYHARD" }; + + for (i = 0; i < 4; i++) { + w = 128; + x = ((320 - w) / 2) + ((i % 2) * 320); + y = ((i / 2) * 240) + 48; + if (playerCfgSelF == 0 && playerCfgPlayerPos == i) { + fontcolor = FONT_COLOR_CYAN; + } + else { + fontcolor = FONT_COLOR_GREEN; + } + print8(x, y, 2.0f, padCfgStrTbl[0], i); + if (playerCfgSelF == 0) { + fontcolor = FONT_COLOR_DARK_GREEN; + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); + } + else if (playerCfgSelF == 1 && playerCfgPlayerPos == i) { + DO_HILITE(0); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); + DO_HILITE(1); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); + DO_HILITE(2); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); + DO_HILITE(3); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); + } + else { + fontcolor = FONT_COLOR_DARK_GREEN; + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); + } + } } #undef DO_HILITE @@ -794,114 +782,120 @@ static void SMPlayerCfgUpdate(omObjData *object); static void SMPlayerCfgInit(omObjData *object) { - playerCfgSelF = 0; - playerCfgPlayerPos = 0; - playerCfgOptionPos = 0; - object->func = SMPlayerCfgUpdate; + playerCfgSelF = 0; + playerCfgPlayerPos = 0; + playerCfgOptionPos = 0; + object->func = SMPlayerCfgUpdate; } static void SMPlayerCfgUpdate(omObjData *object) { - s32 offset; - SMPlayerCfgDraw(); - CalcBtns(); - if(!playerCfgSelF) { - if(keyDStkDown & SM_KEY_LEFT) { - offset = ((playerCfgPlayerPos & 0x1)-1) & 0x1; - playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset; - } else { - if(keyDStkDown & SM_KEY_RIGHT) { - offset = ((playerCfgPlayerPos & 0x1)+1) & 0x1; - playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset; - } else if(keyDStkDown & SM_KEY_DOWN) { - if((playerCfgPlayerPos += 2) >= 4) { - playerCfgPlayerPos -= 4; - } - } else if(keyDStkDown & SM_KEY_UP) { - if((playerCfgPlayerPos -= 2) < 0) { - playerCfgPlayerPos += 4; - } - } - } - if(btnDown & PAD_BUTTON_A) { - playerCfgSelF = 1; - return; - } - if((btnDown & PAD_BUTTON_B) || (btnDown & PAD_BUTTON_Y)) { - object->func = SMUpdate; - } - } else if(keyDStkDown & SM_KEY_UP) { - if(--playerCfgOptionPos < 0) { - playerCfgOptionPos = 3; - } - } else if(keyDStkDown & SM_KEY_DOWN) { - if(++playerCfgOptionPos > 3) { - playerCfgOptionPos = 0; - } - } else if(keyDStkDown & SM_KEY_LEFT) { - switch(playerCfgOptionPos) { - case 0: - smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; - break; - - case 1: - if(--smPlayerCfg[playerCfgPlayerPos].pad_idx < 0) { - smPlayerCfg[playerCfgPlayerPos].pad_idx = 3; - } - break; - - case 2: - if(--smPlayerCfg[playerCfgPlayerPos].group < 0) { - smPlayerCfg[playerCfgPlayerPos].group = 3; - } - break; - - case 3: - if(--smPlayerCfg[playerCfgPlayerPos].diff < 0) { - smPlayerCfg[playerCfgPlayerPos].diff = 3; - } - break; - }; - } else if(keyDStkDown & SM_KEY_RIGHT) { - switch(playerCfgOptionPos) { - case 0: - smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; - break; - - case 1: - if(++smPlayerCfg[playerCfgPlayerPos].pad_idx > 3) { - smPlayerCfg[playerCfgPlayerPos].pad_idx = 0; - } - break; - - case 2: - if(++smPlayerCfg[playerCfgPlayerPos].group > 3) { - smPlayerCfg[playerCfgPlayerPos].group = 0; - } - break; - - case 3: - if(++smPlayerCfg[playerCfgPlayerPos].diff > 3) { - smPlayerCfg[playerCfgPlayerPos].diff = 0; - } - break; - } - } else if((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_B)) { - playerCfgSelF = 0; - } else if(btnDown & PAD_BUTTON_Y) { - object->func = SMUpdate; - } + s32 offset; + SMPlayerCfgDraw(); + CalcBtns(); + if (!playerCfgSelF) { + if (keyDStkDown & SM_KEY_LEFT) { + offset = ((playerCfgPlayerPos & 0x1) - 1) & 0x1; + playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE) + offset; + } + else { + if (keyDStkDown & SM_KEY_RIGHT) { + offset = ((playerCfgPlayerPos & 0x1) + 1) & 0x1; + playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE) + offset; + } + else if (keyDStkDown & SM_KEY_DOWN) { + if ((playerCfgPlayerPos += 2) >= 4) { + playerCfgPlayerPos -= 4; + } + } + else if (keyDStkDown & SM_KEY_UP) { + if ((playerCfgPlayerPos -= 2) < 0) { + playerCfgPlayerPos += 4; + } + } + } + if (btnDown & PAD_BUTTON_A) { + playerCfgSelF = 1; + return; + } + if ((btnDown & PAD_BUTTON_B) || (btnDown & PAD_BUTTON_Y)) { + object->func = SMUpdate; + } + } + else if (keyDStkDown & SM_KEY_UP) { + if (--playerCfgOptionPos < 0) { + playerCfgOptionPos = 3; + } + } + else if (keyDStkDown & SM_KEY_DOWN) { + if (++playerCfgOptionPos > 3) { + playerCfgOptionPos = 0; + } + } + else if (keyDStkDown & SM_KEY_LEFT) { + switch (playerCfgOptionPos) { + case 0: + smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; + break; + + case 1: + if (--smPlayerCfg[playerCfgPlayerPos].pad_idx < 0) { + smPlayerCfg[playerCfgPlayerPos].pad_idx = 3; + } + break; + + case 2: + if (--smPlayerCfg[playerCfgPlayerPos].group < 0) { + smPlayerCfg[playerCfgPlayerPos].group = 3; + } + break; + + case 3: + if (--smPlayerCfg[playerCfgPlayerPos].diff < 0) { + smPlayerCfg[playerCfgPlayerPos].diff = 3; + } + break; + }; + } + else if (keyDStkDown & SM_KEY_RIGHT) { + switch (playerCfgOptionPos) { + case 0: + smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; + break; + + case 1: + if (++smPlayerCfg[playerCfgPlayerPos].pad_idx > 3) { + smPlayerCfg[playerCfgPlayerPos].pad_idx = 0; + } + break; + + case 2: + if (++smPlayerCfg[playerCfgPlayerPos].group > 3) { + smPlayerCfg[playerCfgPlayerPos].group = 0; + } + break; + + case 3: + if (++smPlayerCfg[playerCfgPlayerPos].diff > 3) { + smPlayerCfg[playerCfgPlayerPos].diff = 0; + } + break; + } + } + else if ((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_B)) { + playerCfgSelF = 0; + } + else if (btnDown & PAD_BUTTON_Y) { + object->func = SMUpdate; + } } static void SMRand8Tick(omObjData *object) { - rand8(); + rand8(); } -void fn_1_450C(void) -{ - -} +void fn_1_450C(void) { } static s16 emiCompDataNo; static s16 emiCompVal; @@ -913,165 +907,165 @@ static void SMSound3DDraw(void); static void SMSound3DInit(omObjData *object) { - s8 *data = msmSeGetIndexPtr(emiCompDataNo); - emiCompVal = data[12]; - object->func = SMSound3DUpdate; + s8 *data = msmSeGetIndexPtr(emiCompDataNo); + emiCompVal = data[12]; + object->func = SMSound3DUpdate; } static void SMSound3DUpdate(omObjData *object) { - float increment; - s8 *data; - - CalcBtns(); - if(keyDStkDown & SM_KEY_UP) { - smSound3DPos--; - if(smSound3DPos < 0) { - smSound3DPos = 7; - } - } - if(keyDStkDown & SM_KEY_DOWN) { - smSound3DPos++; - if(smSound3DPos >= 8) { - smSound3DPos = 0; - } - } - if(keyDStkDown & (SM_KEY_LEFT | SM_KEY_RIGHT)) { - if(keyDStkDown & SM_KEY_RIGHT) { - increment = 10; - } else { - increment = -10; - } - if(HuPadBtn[0] & PAD_TRIGGER_Z) { - increment *= 10.0f; - } - switch(smSound3DPos) { - case 0: - Snd3DDistOffset += increment; - break; - - case 1: - Snd3DSpeedOffset += increment; - break; - - case 2: - Snd3DStartDisOffset += increment; - break; - - case 3: - Snd3DFrontSurDisOffset += increment; - break; - - case 4: - Snd3DBackSurDisOffset += increment; - break; - - case 5: - emiCompDataNo += increment/10.0f; - if(emiCompDataNo < 0) { - emiCompDataNo = 0; - } - data = msmSeGetIndexPtr(emiCompDataNo); - emiCompVal = data[12]; - break; - - case 6: - emiCompVal += increment/10.0f; - if(emiCompVal > 127) { - emiCompVal = 127; - } - if(emiCompVal < -127) { - emiCompVal = -127; - } - data = msmSeGetIndexPtr(emiCompDataNo); - data[12] = emiCompVal; - break; - - case 7: - musicOffF = (musicOffF) ? 0 : 1; - if(musicOffF) { - msmMusSetMasterVolume(0); - } else { - msmMusSetMasterVolume(127); - } - break; - } - } - if(btnDown & PAD_BUTTON_START) { - switch(smSound3DPos) { - case 0: - Snd3DDistOffset = 0; - break; - - case 1: - Snd3DSpeedOffset = 0; - break; - - case 2: - Snd3DStartDisOffset = 0; - break; - - case 3: - Snd3DFrontSurDisOffset = 0; - break; - - case 4: - Snd3DBackSurDisOffset = 0; - break; - - case 5: - emiCompDataNo = 0; - break; - - case 6: - emiCompVal = 0; - break; - - case 7: - musicOffF = 0; - break; - } - } - - if(btnDown & PAD_BUTTON_B) { - object->func = SMUpdate; - } - SMSound3DDraw(); + float increment; + s8 *data; + + CalcBtns(); + if (keyDStkDown & SM_KEY_UP) { + smSound3DPos--; + if (smSound3DPos < 0) { + smSound3DPos = 7; + } + } + if (keyDStkDown & SM_KEY_DOWN) { + smSound3DPos++; + if (smSound3DPos >= 8) { + smSound3DPos = 0; + } + } + if (keyDStkDown & (SM_KEY_LEFT | SM_KEY_RIGHT)) { + if (keyDStkDown & SM_KEY_RIGHT) { + increment = 10; + } + else { + increment = -10; + } + if (HuPadBtn[0] & PAD_TRIGGER_Z) { + increment *= 10.0f; + } + switch (smSound3DPos) { + case 0: + Snd3DDistOffset += increment; + break; + + case 1: + Snd3DSpeedOffset += increment; + break; + + case 2: + Snd3DStartDisOffset += increment; + break; + + case 3: + Snd3DFrontSurDisOffset += increment; + break; + + case 4: + Snd3DBackSurDisOffset += increment; + break; + + case 5: + emiCompDataNo += increment / 10.0f; + if (emiCompDataNo < 0) { + emiCompDataNo = 0; + } + data = msmSeGetIndexPtr(emiCompDataNo); + emiCompVal = data[12]; + break; + + case 6: + emiCompVal += increment / 10.0f; + if (emiCompVal > 127) { + emiCompVal = 127; + } + if (emiCompVal < -127) { + emiCompVal = -127; + } + data = msmSeGetIndexPtr(emiCompDataNo); + data[12] = emiCompVal; + break; + + case 7: + musicOffF = (musicOffF) ? 0 : 1; + if (musicOffF) { + msmMusSetMasterVolume(0); + } + else { + msmMusSetMasterVolume(127); + } + break; + } + } + if (btnDown & PAD_BUTTON_START) { + switch (smSound3DPos) { + case 0: + Snd3DDistOffset = 0; + break; + + case 1: + Snd3DSpeedOffset = 0; + break; + + case 2: + Snd3DStartDisOffset = 0; + break; + + case 3: + Snd3DFrontSurDisOffset = 0; + break; + + case 4: + Snd3DBackSurDisOffset = 0; + break; + + case 5: + emiCompDataNo = 0; + break; + + case 6: + emiCompVal = 0; + break; + + case 7: + musicOffF = 0; + break; + } + } + + if (btnDown & PAD_BUTTON_B) { + object->func = SMUpdate; + } + SMSound3DDraw(); } -#define DO_HILITE(pos) \ -do { \ - if(smSound3DPos == pos) { \ - fontcolor = FONT_COLOR_GREEN; \ - } else { \ - fontcolor = FONT_COLOR_DARK_GREEN; \ - } \ -} while(0) +#define DO_HILITE(pos) \ + do { \ + if (smSound3DPos == pos) { \ + fontcolor = FONT_COLOR_GREEN; \ + } \ + else { \ + fontcolor = FONT_COLOR_DARK_GREEN; \ + } \ + } while (0) static void SMSound3DDraw(void) { - char *onOffStr[] = { - " ON", - "OFF" - }; - fontcolor = FONT_COLOR_YELLOW; - print8(200, 64, 2.0f, "3DSound Config."); - DO_HILITE(0); - print8(140, 96, 2.0f, "Max Distance %5.1f", Snd3DDistOffset); - DO_HILITE(1); - print8(140, 112, 2.0f, "Sound Speed %5.1f", Snd3DSpeedOffset); - DO_HILITE(2); - print8(140, 128, 2.0f, "Start Distance %5.1f", Snd3DStartDisOffset); - DO_HILITE(3); - print8(140, 144, 2.0f, "Front Distance %5.1f", Snd3DFrontSurDisOffset); - DO_HILITE(4); - print8(140, 160, 2.0f, "Back Distance %5.1f", Snd3DBackSurDisOffset); - DO_HILITE(5); - print8(140, 176, 2.0f, "emiComp DataNo %04d", emiCompDataNo); - DO_HILITE(6); - print8(140, 192, 2.0f, "emiComp VAL %3d", emiCompVal); - DO_HILITE(7); - print8(140, 208, 2.0f, "Music %s", onOffStr[(musicOffF) ? 1 : 0]); + char *onOffStr[] = { " ON", "OFF" }; + fontcolor = FONT_COLOR_YELLOW; + print8(200, 64, 2.0f, "3DSound Config."); + DO_HILITE(0); + print8(140, 96, 2.0f, "Max Distance %5.1f", Snd3DDistOffset); + DO_HILITE(1); + print8(140, 112, 2.0f, "Sound Speed %5.1f", Snd3DSpeedOffset); + DO_HILITE(2); + print8(140, 128, 2.0f, "Start Distance %5.1f", Snd3DStartDisOffset); + DO_HILITE(3); + print8(140, 144, 2.0f, "Front Distance %5.1f", Snd3DFrontSurDisOffset); + DO_HILITE(4); + print8(140, 160, 2.0f, "Back Distance %5.1f", Snd3DBackSurDisOffset); + DO_HILITE(5); + print8(140, 176, 2.0f, "emiComp DataNo %04d", emiCompDataNo); + DO_HILITE(6); + print8(140, 192, 2.0f, "emiComp VAL %3d", emiCompVal); + DO_HILITE(7); + print8(140, 208, 2.0f, "Music %s", onOffStr[(musicOffF) ? 1 : 0]); } #undef DO_HILITE diff --git a/src/REL/staffDll/main.c b/src/REL/staffDll/main.c index 2214364b..28f1fbc4 100644 --- a/src/REL/staffDll/main.c +++ b/src/REL/staffDll/main.c @@ -305,7 +305,7 @@ static void CreateStaff(void) } for (var_r31 = 0; var_r31 < 3; var_r31++) { - var_r29 = HuDataSelHeapReadNum(var_r31 + 0x73001A, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 256, 0); staffLogoGroup[var_r31] = HuSprGrpCreate(1); @@ -319,7 +319,7 @@ static void CreateStaff(void) HuSprGrpPosSet(thpGroup, 280.0f, 200.0f); HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF); HuTHPStop(); - var_r29 = HuDataSelHeapReadNum(0x73001D, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 16385, 0); thpCoverGroup = HuSprGrpCreate(1); diff --git a/src/REL/w02Dll/gamble.c b/src/REL/w02Dll/gamble.c index 92fa2ce9..8c588fda 100644 --- a/src/REL/w02Dll/gamble.c +++ b/src/REL/w02Dll/gamble.c @@ -17,16 +17,16 @@ void fn_1_2D04(void) m02GenDice spEC; m02GenDice sp4C; s32 sp24[10] = { - 0x0076001C, - 0x0076001D, - 0x0076001E, - 0x0076001F, - 0x00760020, - 0x00760021, - 0x00760022, - 0x00760023, - 0x00760024, - 0x00760025 + DATA_MAKE_NUM(DATADIR_W02, 0x1C), + DATA_MAKE_NUM(DATADIR_W02, 0x1D), + DATA_MAKE_NUM(DATADIR_W02, 0x1E), + DATA_MAKE_NUM(DATADIR_W02, 0x1F), + DATA_MAKE_NUM(DATADIR_W02, 0x20), + DATA_MAKE_NUM(DATADIR_W02, 0x21), + DATA_MAKE_NUM(DATADIR_W02, 0x22), + DATA_MAKE_NUM(DATADIR_W02, 0x23), + DATA_MAKE_NUM(DATADIR_W02, 0x24), + DATA_MAKE_NUM(DATADIR_W02, 0x25) }; Vec sp18; Vec spC; @@ -43,7 +43,7 @@ void fn_1_2D04(void) OSReport("gamble start %d\n", temp_r31); sp8 = BoardSpaceGet(0, GWPlayer[temp_r31].space_curr); BoardRollDispSet(0); - temp_r28 = BoardModelCreate(0x76000F, NULL, 0); + temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x0F), NULL, 0); BoardModelVisibilitySet(temp_r28, 0); switch(lbl_1_bss_54) { case 0: @@ -78,9 +78,9 @@ void fn_1_2D04(void) BoardModelHookReset(temp_r30); BoardModelPosGet(temp_r30, &sp18); BoardModelPosSetV(lbl_1_data_286, &sp18); - fn_1_121C(0x13000A); + fn_1_121C(MAKE_MESSID(0x13, 0x0A)); spEC.unk00 = 1; - spEC.unk04 = 0x76001B; + spEC.unk04 = DATA_MAKE_NUM(DATADIR_W02, 0x1B); spEC.unk08 = sp24; spEC.unk0C = sp18; spEC.unk18 = 1; @@ -140,9 +140,9 @@ void fn_1_2D04(void) temp_r27 = spEC.unk94; if(temp_r27 == 10) { HuAudPlayerVoicePlay(temp_r31, 302); - fn_1_121C(0x130010); + fn_1_121C(MAKE_MESSID(0x13, 0x10)); } else { - fn_1_121C(0x13000C); + fn_1_121C(MAKE_MESSID(0x13, 0x0C)); } BoardPlayerMotBlendSet(temp_r31, 0, 15); while(!BoardPlayerMotBlendCheck(temp_r31)) { @@ -189,10 +189,10 @@ void fn_1_2D04(void) HuPrcVSleep(); } if(sp4C.unk94 > temp_r27) { - fn_1_121C(0x13000D); + fn_1_121C(MAKE_MESSID(0x13, 0x0D)); } else { HuAudPlayerVoicePlay(temp_r31, 302); - fn_1_121C(0x13000F); + fn_1_121C(MAKE_MESSID(0x13, 0x0F)); } } else { sp4C.unk94 = 0; @@ -214,7 +214,7 @@ void fn_1_2D04(void) HuAudFXPlay(7); HuPrcSleep(6); } - fn_1_121C(0x13000E); + fn_1_121C(MAKE_MESSID(0x13, 0x0E)); } else { temp_r26 = GWPlayer[temp_r31].space_curr; BoardCameraTargetSpaceSet(temp_r26); @@ -320,4 +320,4 @@ void fn_1_394C(s32 arg0) { while (lbl_1_bss_50) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/w02Dll/gendice.c b/src/REL/w02Dll/gendice.c index 7562a53b..eb264bc3 100644 --- a/src/REL/w02Dll/gendice.c +++ b/src/REL/w02Dll/gendice.c @@ -3,20 +3,20 @@ typedef struct { union { -/* 0x00 */ struct { - u8 unk7 : 1; - u8 unk6 : 1; - u8 unk3 : 3; - u8 unk1 : 2; - u8 unk0 : 1; + /* 0x00 */ struct { + u8 unk7 : 1; + u8 unk6 : 1; + u8 unk3 : 3; + u8 unk1 : 2; + u8 unk0 : 1; + }; + u8 unk00; }; - u8 unk00; - }; -/* 0x01 */ u8 unk01; -/* 0x02 */ u8 unk02; -/* 0x03 */ u8 unk03; -/* 0x04 */ s16 unk04; -/* 0x06 */ s16 unk06; + /* 0x01 */ u8 unk01; + /* 0x02 */ u8 unk02; + /* 0x03 */ u8 unk03; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; } WorkGenDice; /* EXTERN FUNCTIONS */ @@ -24,7 +24,7 @@ void fn_1_13D0(void); void fn_1_1574(m02GenDice *arg0); void fn_1_1794(m02GenDice *arg0); void fn_1_1850(omObjData *object); -void fn_1_1F94(m02GenDice* arg0, s32 arg1); +void fn_1_1F94(m02GenDice *arg0, s32 arg1); void fn_1_2030(m02GenDice *arg0); void fn_1_2100(m02GenDice *arg0, s32 arg1); void fn_1_2220(m02GenDice *arg0); @@ -34,7 +34,8 @@ void fn_1_23B4(m02GenDice *arg0, s32 arg1); void fn_1_272C(m02GenDice *arg0); /* LOCAL FUNCTIONS */ -void fn_1_1254(m02GenDice* arg0) { +void fn_1_1254(m02GenDice *arg0) +{ Vec sp8; s32 i; @@ -61,11 +62,12 @@ void fn_1_1254(m02GenDice* arg0) { } } -void fn_1_13D0(void) { +void fn_1_13D0(void) +{ s32 var_r29; s32 i; s32 var_r30_2; - m02GenDice* temp_r31; + m02GenDice *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; temp_r31->unk36[0] = temp_r31->unk36[1] = temp_r31->unk36[2] = 0; @@ -74,17 +76,17 @@ void fn_1_13D0(void) { while (temp_r31->unk96 < temp_r31->unk00) { fn_1_1574(temp_r31); fn_1_1794(temp_r31); - while (temp_r31->unk9C == 0) { + while (temp_r31->unk9C == 0) { HuPrcVSleep(); - } - fn_1_2220(temp_r31); - while (temp_r31->unk9C != 0) { + } + fn_1_2220(temp_r31); + while (temp_r31->unk9C != 0) { HuPrcVSleep(); - } - temp_r31->unk96 += 1; + } + temp_r31->unk96 += 1; } - for ( i = 0; i < temp_r31->unk00; i++) { + for (i = 0; i < temp_r31->unk00; i++) { var_r29 += temp_r31->unk36[i]; } OSReport("Dice res: %d\n", var_r29); @@ -92,7 +94,7 @@ void fn_1_13D0(void) { while (fn_1_233C(temp_r31) == 0) { HuPrcVSleep(); } - temp_r31->unk94 = (s16) var_r29; + temp_r31->unk94 = (s16)var_r29; temp_r31->unk28 = 1; if (temp_r31->unk22 != 0) { for (i = 0; i < temp_r31->unk00; i++) { @@ -102,11 +104,12 @@ void fn_1_13D0(void) { HuPrcEnd(); } while (TRUE) { - HuPrcVSleep(); + HuPrcVSleep(); } } -void fn_1_1518(m02GenDice* arg0) { +void fn_1_1518(m02GenDice *arg0) +{ OSReport("m02GenDiceKill\n"); if (arg0->unk2C) { HuPrcKill(arg0->unk2C); @@ -115,12 +118,13 @@ void fn_1_1518(m02GenDice* arg0) { fn_1_272C(arg0); } -void fn_1_1574(m02GenDice* arg0) { +void fn_1_1574(m02GenDice *arg0) +{ Vec sp8; f32 temp_f0; - omObjData* temp_r3; + omObjData *temp_r3; s32 temp_r28; - WorkGenDice* temp_r29; + WorkGenDice *temp_r29; temp_r28 = arg0->unk96; arg0->unk30[temp_r28] = BoardModelCreate(arg0->unk04, NULL, 0); @@ -129,7 +133,7 @@ void fn_1_1574(m02GenDice* arg0) { BoardModelMotionSpeedSet(arg0->unk30[temp_r28], 0); BoardModelMotionTimeSet(arg0->unk30[temp_r28], arg0->unk98); temp_r3 = omAddObjEx(boardObjMan, 0x102, 0U, 0U, -1, fn_1_1850); - temp_r29 = (WorkGenDice*) temp_r3->work; + temp_r29 = (WorkGenDice *)temp_r3->work; temp_r29->unk7 = 0; temp_r29->unk6 = 0; @@ -139,7 +143,7 @@ void fn_1_1574(m02GenDice* arg0) { temp_r29->unk04 = 0; temp_r29->unk01 = 3; temp_r29->unk02 = 0; - temp_r3->unk10 = (u32) arg0; + temp_r3->unk10 = (u32)arg0; arg0->unk3C[temp_r28] = temp_r3; sp8 = arg0->unk0C; sp8.y += (250.0f * arg0->unk24); @@ -153,8 +157,9 @@ void fn_1_1574(m02GenDice* arg0) { HuAudFXPlay(0x302); } -void fn_1_1794(m02GenDice* arg0) { - WorkGenDice* temp_r30; +void fn_1_1794(m02GenDice *arg0) +{ + WorkGenDice *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0->unk3C[arg0->unk96], WorkGenDice); while (temp_r30->unk3 != 1) { @@ -162,10 +167,10 @@ void fn_1_1794(m02GenDice* arg0) { } } -s32 fn_1_17F4(m02GenDice* arg0) +s32 fn_1_17F4(m02GenDice *arg0) { - WorkGenDice* temp; - if ( arg0->unk96 < 0) { + WorkGenDice *temp; + if (arg0->unk96 < 0) { return 0; } temp = OM_GET_WORK_PTR(arg0->unk3C[arg0->unk96], WorkGenDice); @@ -177,121 +182,126 @@ s32 fn_1_17F4(m02GenDice* arg0) void fn_1_1850(omObjData *object) { - WorkGenDice *temp_r29; - m02GenDice *temp_r27; - s16 temp_r26; - s16 temp_r25; - float temp_f29; - float temp_f28; - float temp_f27; - temp_r27 = (m02GenDice *)object->unk10; - temp_r29 = OM_GET_WORK_PTR(object, WorkGenDice); - if(temp_r29->unk7 || BoardIsKill()) { - fn_1_1F94(temp_r27, temp_r29->unk1); - temp_r27->unk3C[temp_r29->unk1] = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(BoardPauseActiveCheck()) { - return; - } - switch(temp_r29->unk3) { - case 0: - if(temp_r29->unk06 >= 1080) { - temp_r29->unk3 = 1; - object->scale.x = object->scale.y = object->scale.z = 1; - - object->rot.y = temp_r29->unk04 = 0; - } else { - if(!temp_r29->unk04 && temp_r27->unk88[temp_r29->unk1] == -1) { - temp_r27->unk88[temp_r29->unk1] = HuAudFXPlay(768); - } - object->rot.y = temp_r29->unk06%360; - temp_r29->unk06 += 25; - if(temp_r29->unk04 < 180) { - temp_f27 = 0; - temp_f28 = 1; - } else { - temp_f27 = 1; - temp_f28 = 0.5f; - } - object->scale.x = (temp_f28*sind((float)(temp_r29->unk04%180)))+temp_f27; - object->scale.y = object->scale.x; - object->scale.z = object->scale.x; - if(temp_r29->unk04 <= 360) { - if(temp_r29->unk04 < 180) { - temp_r29->unk04 += 6; - } else { - temp_r29->unk04 += 18; - } - if(temp_r29->unk04 > 360) { - temp_r29->unk04 = 360; - } - } - - } - break; - - case 1: - temp_r29->unk04 += 4; - if(temp_r29->unk04 > 360) { - temp_r29->unk04 -= 360; - } - OSs16tof32(&temp_r29->unk04, &temp_f29); - object->trans.y += sind(temp_f29)*0.2f; - break; - - case 2: - temp_r29->unk04++; - if(temp_r29->unk04 >= 8) { - if(temp_r27->unk88[temp_r29->unk1] != -1) { - HuAudFXStop(temp_r27->unk88[temp_r29->unk1]); - temp_r27->unk88[temp_r29->unk1] = -1; - } - HuAudFXPlay(771); - HuAudFXPlay(780); - temp_r29->unk3 = 3; - temp_r29->unk04 = 0; - fn_1_23FC(temp_r27, temp_r27->unk36[temp_r29->unk1]); - fn_1_2100(temp_r27, temp_r29->unk1); - Hu3DParManPosSet(temp_r27->unk48[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); - BoardModelVisibilitySet(temp_r27->unk30[temp_r29->unk1], 0); - } else { - OSs16tof32(&temp_r29->unk04, &temp_f29); - if(temp_r29->unk04 < 4) { - object->trans.y += (0.5f*temp_f29)+10.0f; - object->scale.x += (0.1f*sind(4.0f*temp_f29)); - object->scale.y = object->scale.x; - object->scale.z = object->scale.x; - } else { - BoardModelAlphaSet(temp_r27->unk30[temp_r29->unk1], 255-(temp_r29->unk04*32)); - } - object->trans.y += -0.49f*temp_f29*temp_f29; - } - break; - - case 3: - if(++temp_r29->unk04 >= 150) { - temp_r29->unk7 = 1; - } - break; - } - if(!temp_r29->unk6 || temp_r29->unk3 != 3) { - if(temp_r29->unk02++ > temp_r29->unk01) { - temp_r29->unk02 = 0; - temp_r25 = BoardModelMotionTimeGet(temp_r27->unk30[temp_r29->unk1]); - do { - temp_r26 = BoardRandMod(temp_r27->unk1A); - } while(temp_r26 == temp_r25); - BoardModelMotionTimeSet(temp_r27->unk30[temp_r29->unk1], temp_r26+0.5f); - } - } - BoardModelPosSet(temp_r27->unk30[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); - BoardModelRotSet(temp_r27->unk30[temp_r29->unk1], object->rot.x, object->rot.y, object->rot.z); - BoardModelScaleSet(temp_r27->unk30[temp_r29->unk1], object->scale.x, object->scale.y, object->scale.z); + WorkGenDice *temp_r29; + m02GenDice *temp_r27; + s16 temp_r26; + s16 temp_r25; + float temp_f29; + float temp_f28; + float temp_f27; + temp_r27 = (m02GenDice *)object->unk10; + temp_r29 = OM_GET_WORK_PTR(object, WorkGenDice); + if (temp_r29->unk7 || BoardIsKill()) { + fn_1_1F94(temp_r27, temp_r29->unk1); + temp_r27->unk3C[temp_r29->unk1] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if (BoardPauseActiveCheck()) { + return; + } + switch (temp_r29->unk3) { + case 0: + if (temp_r29->unk06 >= 1080) { + temp_r29->unk3 = 1; + object->scale.x = object->scale.y = object->scale.z = 1; + + object->rot.y = temp_r29->unk04 = 0; + } + else { + if (!temp_r29->unk04 && temp_r27->unk88[temp_r29->unk1] == -1) { + temp_r27->unk88[temp_r29->unk1] = HuAudFXPlay(768); + } + object->rot.y = temp_r29->unk06 % 360; + temp_r29->unk06 += 25; + if (temp_r29->unk04 < 180) { + temp_f27 = 0; + temp_f28 = 1; + } + else { + temp_f27 = 1; + temp_f28 = 0.5f; + } + object->scale.x = (temp_f28 * sind((float)(temp_r29->unk04 % 180))) + temp_f27; + object->scale.y = object->scale.x; + object->scale.z = object->scale.x; + if (temp_r29->unk04 <= 360) { + if (temp_r29->unk04 < 180) { + temp_r29->unk04 += 6; + } + else { + temp_r29->unk04 += 18; + } + if (temp_r29->unk04 > 360) { + temp_r29->unk04 = 360; + } + } + } + break; + + case 1: + temp_r29->unk04 += 4; + if (temp_r29->unk04 > 360) { + temp_r29->unk04 -= 360; + } + OSs16tof32(&temp_r29->unk04, &temp_f29); + object->trans.y += sind(temp_f29) * 0.2f; + break; + + case 2: + temp_r29->unk04++; + if (temp_r29->unk04 >= 8) { + if (temp_r27->unk88[temp_r29->unk1] != -1) { + HuAudFXStop(temp_r27->unk88[temp_r29->unk1]); + temp_r27->unk88[temp_r29->unk1] = -1; + } + HuAudFXPlay(771); + HuAudFXPlay(780); + temp_r29->unk3 = 3; + temp_r29->unk04 = 0; + fn_1_23FC(temp_r27, temp_r27->unk36[temp_r29->unk1]); + fn_1_2100(temp_r27, temp_r29->unk1); + Hu3DParManPosSet(temp_r27->unk48[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); + BoardModelVisibilitySet(temp_r27->unk30[temp_r29->unk1], 0); + } + else { + OSs16tof32(&temp_r29->unk04, &temp_f29); + if (temp_r29->unk04 < 4) { + object->trans.y += (0.5f * temp_f29) + 10.0f; + object->scale.x += (0.1f * sind(4.0f * temp_f29)); + object->scale.y = object->scale.x; + object->scale.z = object->scale.x; + } + else { + BoardModelAlphaSet(temp_r27->unk30[temp_r29->unk1], 255 - (temp_r29->unk04 * 32)); + } + object->trans.y += -0.49f * temp_f29 * temp_f29; + } + break; + + case 3: + if (++temp_r29->unk04 >= 150) { + temp_r29->unk7 = 1; + } + break; + } + if (!temp_r29->unk6 || temp_r29->unk3 != 3) { + if (temp_r29->unk02++ > temp_r29->unk01) { + temp_r29->unk02 = 0; + temp_r25 = BoardModelMotionTimeGet(temp_r27->unk30[temp_r29->unk1]); + do { + temp_r26 = BoardRandMod(temp_r27->unk1A); + } while (temp_r26 == temp_r25); + BoardModelMotionTimeSet(temp_r27->unk30[temp_r29->unk1], temp_r26 + 0.5f); + } + } + BoardModelPosSet(temp_r27->unk30[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); + BoardModelRotSet(temp_r27->unk30[temp_r29->unk1], object->rot.x, object->rot.y, object->rot.z); + BoardModelScaleSet(temp_r27->unk30[temp_r29->unk1], object->scale.x, object->scale.y, object->scale.z); } -void fn_1_1F94(m02GenDice* arg0, s32 arg1) { +void fn_1_1F94(m02GenDice *arg0, s32 arg1) +{ if (arg0->unk30[arg1] != -1) { BoardModelKill(arg0->unk30[arg1]); arg0->unk30[arg1] = -1; @@ -305,157 +315,134 @@ void fn_1_1F94(m02GenDice* arg0, s32 arg1) { void fn_1_2030(m02GenDice *arg0) { - fn_1_1F94(arg0, 0); - fn_1_1F94(arg0, 1); - fn_1_1F94(arg0, 2); + fn_1_1F94(arg0, 0); + fn_1_1F94(arg0, 1); + fn_1_1F94(arg0, 2); } - -HsfanimStruct00 lbl_1_data_2D8 = { - 150, - { 0x00, 0x00 }, // padding? - 50, - 0, - 65.0f, - { 0.0f, -0.195f, 0.0f }, - 100.0f, - 0.99f, - 40.0f, - 0.999f, - 0x0004, - { - 0xFF, 0xFF, 0x20, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0xFF, 0x80, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF - }, - { - 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, 0x00 - } -}; +HsfanimStruct00 lbl_1_data_2D8 = { 150, { 0x00, 0x00 }, // padding? + 50, 0, 65.0f, { 0.0f, -0.195f, 0.0f }, 100.0f, 0.99f, 40.0f, 0.999f, 0x0004, + { 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00 } }; void fn_1_2100(m02GenDice *arg0, s32 arg1) { - s16 temp_r29; - AnimData *temp_r28; - void *temp_r27; - temp_r27 = HuDataSelHeapReadNum(0x120001, MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r28 = HuSprAnimRead(temp_r27); - arg0->unk48[arg1] = Hu3DParManCreate(temp_r28, 100, &lbl_1_data_2D8); - Hu3DParManAttrSet(arg0->unk48[arg1], 0x108); - Hu3DParManRotSet(arg0->unk48[arg1], 0, 0, 0); - Hu3DParManVecSet(arg0->unk48[arg1], 0, 0.4f, 0.2f); - temp_r29 = Hu3DParManModelIDGet(arg0->unk48[arg1]); - Hu3DModelLayerSet(temp_r29, 2); - Hu3DParticleBlendModeSet(temp_r29, 0); + s16 temp_r29; + AnimData *temp_r28; + void *temp_r27; + temp_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r28 = HuSprAnimRead(temp_r27); + arg0->unk48[arg1] = Hu3DParManCreate(temp_r28, 100, &lbl_1_data_2D8); + Hu3DParManAttrSet(arg0->unk48[arg1], 0x108); + Hu3DParManRotSet(arg0->unk48[arg1], 0, 0, 0); + Hu3DParManVecSet(arg0->unk48[arg1], 0, 0.4f, 0.2f); + temp_r29 = Hu3DParManModelIDGet(arg0->unk48[arg1]); + Hu3DModelLayerSet(temp_r29, 2); + Hu3DParticleBlendModeSet(temp_r29, 0); } void fn_1_2220(m02GenDice *arg0) { - s32 temp_r30; - WorkGenDice *temp_r29; - temp_r30 = arg0->unk96; - temp_r29 = OM_GET_WORK_PTR(arg0->unk3C[temp_r30], WorkGenDice); - temp_r29->unk3 = 2; - temp_r29->unk04 = 0; - BoardModelMotionSpeedSet(arg0->unk30[temp_r30], 0); - - arg0->unk36[temp_r30] = arg0->unk1C[temp_r30]; + s32 temp_r30; + WorkGenDice *temp_r29; + temp_r30 = arg0->unk96; + temp_r29 = OM_GET_WORK_PTR(arg0->unk3C[temp_r30], WorkGenDice); + temp_r29->unk3 = 2; + temp_r29->unk04 = 0; + BoardModelMotionSpeedSet(arg0->unk30[temp_r30], 0); + + arg0->unk36[temp_r30] = arg0->unk1C[temp_r30]; } typedef struct { - u8 field0_bit0 : 1; - u8 field0_bit1 : 1; - u8 field0_bit2 : 1; - u8 field0_bit3 : 2; - s8 unk01; - s16 unk02; - s16 unk04[2]; - float unk08; + u8 field0_bit0 : 1; + u8 field0_bit1 : 1; + u8 field0_bit2 : 1; + u8 field0_bit3 : 2; + s8 unk01; + s16 unk02; + s16 unk04[2]; + float unk08; } WorkGenDiceNum; void fn_1_22BC(m02GenDice *arg0) { - s32 temp_r31; - WorkGenDiceNum *temp_r30; - for(temp_r31=0; temp_r31unk00; temp_r31++) { - if(arg0->unk50[temp_r31]) { - temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); - temp_r30->field0_bit1 = 1; - temp_r30->field0_bit2 = 1; - temp_r30->unk02 = 0; - } - } + s32 temp_r31; + WorkGenDiceNum *temp_r30; + for (temp_r31 = 0; temp_r31 < arg0->unk00; temp_r31++) { + if (arg0->unk50[temp_r31]) { + temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); + temp_r30->field0_bit1 = 1; + temp_r30->field0_bit2 = 1; + temp_r30->unk02 = 0; + } + } } -s32 fn_1_233C(m02GenDice* arg0) +s32 fn_1_233C(m02GenDice *arg0) { - s32 temp_r31; - WorkGenDiceNum *temp_r30; - for(temp_r31=0; temp_r31unk00; temp_r31++) { - if(!arg0->unk50[temp_r31]) { - continue; - } - temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); - if(temp_r30->field0_bit2) { - return 0; - } - } - return 1; + s32 temp_r31; + WorkGenDiceNum *temp_r30; + for (temp_r31 = 0; temp_r31 < arg0->unk00; temp_r31++) { + if (!arg0->unk50[temp_r31]) { + continue; + } + temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); + if (temp_r30->field0_bit2) { + return 0; + } + } + return 1; } void fn_1_23B4(m02GenDice *arg0, s32 arg1) { - WorkGenDiceNum *work; - if(!arg0->unk50[arg1]) { - return; - } - work = OM_GET_WORK_PTR(arg0->unk50[arg1], WorkGenDiceNum); - work->field0_bit0 = 1; + WorkGenDiceNum *work; + if (!arg0->unk50[arg1]) { + return; + } + work = OM_GET_WORK_PTR(arg0->unk50[arg1], WorkGenDiceNum); + work->field0_bit0 = 1; } void fn_1_25D0(omObjData *object); void fn_1_23FC(m02GenDice *arg0, s32 arg1) { - Vec spC; - s16 sp8[2]; - WorkGenDiceNum *temp_r31; - s16 temp_r29; - omObjData *temp_r28; - s32 temp_r26; - s16 temp_r25; - temp_r26 = arg0->unk96; - if(arg1 > 99) { - arg1 = 99; - } - sp8[0] = arg1%10; - sp8[1] = arg1/10; - spC = arg0->unk0C; - spC.y += 300.0f; - temp_r28 = omAddObjEx(boardObjMan, 258, 0, 0, -1, fn_1_25D0); - temp_r28->unk10 = (u32)arg0; - temp_r31 = OM_GET_WORK_PTR(temp_r28, WorkGenDiceNum); - temp_r31->field0_bit0 = 0; - temp_r31->field0_bit1 = 0; - temp_r31->field0_bit2 = 0; - temp_r31->field0_bit3 = temp_r26; - temp_r31->unk08 = 0.3f; - temp_r31->unk01 = arg1; - temp_r31->unk02 = 360; - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r25 = BoardModelCreate(arg0->unk08[sp8[temp_r29]], NULL, 0); - BoardModelPosSetV(temp_r25, &spC); - temp_r31->unk04[temp_r29] = temp_r25; - } - if(sp8[1] == 0) { - BoardModelVisibilitySet(temp_r31->unk04[1], 0); - } - arg0->unk50[temp_r26] = temp_r28; - + Vec spC; + s16 sp8[2]; + WorkGenDiceNum *temp_r31; + s16 temp_r29; + omObjData *temp_r28; + s32 temp_r26; + s16 temp_r25; + temp_r26 = arg0->unk96; + if (arg1 > 99) { + arg1 = 99; + } + sp8[0] = arg1 % 10; + sp8[1] = arg1 / 10; + spC = arg0->unk0C; + spC.y += 300.0f; + temp_r28 = omAddObjEx(boardObjMan, 258, 0, 0, -1, fn_1_25D0); + temp_r28->unk10 = (u32)arg0; + temp_r31 = OM_GET_WORK_PTR(temp_r28, WorkGenDiceNum); + temp_r31->field0_bit0 = 0; + temp_r31->field0_bit1 = 0; + temp_r31->field0_bit2 = 0; + temp_r31->field0_bit3 = temp_r26; + temp_r31->unk08 = 0.3f; + temp_r31->unk01 = arg1; + temp_r31->unk02 = 360; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r25 = BoardModelCreate(arg0->unk08[sp8[temp_r29]], NULL, 0); + BoardModelPosSetV(temp_r25, &spC); + temp_r31->unk04[temp_r29] = temp_r25; + } + if (sp8[1] == 0) { + BoardModelVisibilitySet(temp_r31->unk04[1], 0); + } + arg0->unk50[temp_r26] = temp_r28; } void fn_1_2694(WorkGenDiceNum *arg0); @@ -464,150 +451,147 @@ void fn_1_2BE4(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2); void fn_1_25D0(omObjData *object) { - WorkGenDiceNum *temp_r31; - m02GenDice *temp_r30; - temp_r30 = (m02GenDice *)object->unk10; - temp_r31 = OM_GET_WORK_PTR(object, WorkGenDiceNum); - if(temp_r31->field0_bit0 || BoardIsKill()) { - fn_1_2694(temp_r31); - temp_r30->unk50[temp_r31->field0_bit3] = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(BoardPauseActiveCheck()) { - return; - } - fn_1_2830(temp_r30, temp_r31, temp_r31->field0_bit1); - fn_1_2BE4(temp_r30, temp_r31, temp_r31->field0_bit1); + WorkGenDiceNum *temp_r31; + m02GenDice *temp_r30; + temp_r30 = (m02GenDice *)object->unk10; + temp_r31 = OM_GET_WORK_PTR(object, WorkGenDiceNum); + if (temp_r31->field0_bit0 || BoardIsKill()) { + fn_1_2694(temp_r31); + temp_r30->unk50[temp_r31->field0_bit3] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if (BoardPauseActiveCheck()) { + return; + } + fn_1_2830(temp_r30, temp_r31, temp_r31->field0_bit1); + fn_1_2BE4(temp_r30, temp_r31, temp_r31->field0_bit1); } void fn_1_2694(WorkGenDiceNum *arg0) { - s32 i; - for(i=0; i<2; i++) { - if(arg0->unk04[i] == -1) { - continue; - } - OSReport("%d:GenDiceNumExitOM Kill %d\n", i, arg0->unk04[i]); - BoardModelKill(arg0->unk04[i]); - arg0->unk04[i] = -1; - (void)i; - } + s32 i; + for (i = 0; i < 2; i++) { + if (arg0->unk04[i] == -1) { + continue; + } + OSReport("%d:GenDiceNumExitOM Kill %d\n", i, arg0->unk04[i]); + BoardModelKill(arg0->unk04[i]); + arg0->unk04[i] = -1; + (void)i; + } } void fn_1_272C(m02GenDice *arg0) { - s32 i; - WorkGenDiceNum *work; - s32 j; - for(i=0; i<3; i++) { - if(!arg0->unk50[i]) { - continue; - } - work = OM_GET_WORK_PTR(arg0->unk50[i], WorkGenDiceNum); - for(j=0; j<2; j++) { - if(work->unk04[j] == -1) { - continue; - } - OSReport("%d:GenDiceNumOMKillAll %d\n", j, work->unk04[j]); - BoardModelKill(work->unk04[j]); - work->unk04[j] = -1; - (void)j; - } - fn_1_23B4(arg0, i); - } - + s32 i; + WorkGenDiceNum *work; + s32 j; + for (i = 0; i < 3; i++) { + if (!arg0->unk50[i]) { + continue; + } + work = OM_GET_WORK_PTR(arg0->unk50[i], WorkGenDiceNum); + for (j = 0; j < 2; j++) { + if (work->unk04[j] == -1) { + continue; + } + OSReport("%d:GenDiceNumOMKillAll %d\n", j, work->unk04[j]); + BoardModelKill(work->unk04[j]); + work->unk04[j] = -1; + (void)j; + } + fn_1_23B4(arg0, i); + } } void fn_1_2830(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2) { - float temp_f31; - s16 temp_r31; - Vec *temp_r29; - s16 temp_r27; - s32 sp8 = 0; - Vec sp30; - Vec sp24; - Vec sp18 = { 288, 155, 1400 }; - Vec sp54[2]; - Vec sp3C[2] = { - { 144, 155, 1400 }, - { 432, 155, 1400 } - }; - Vec sp6C[3] = { - { 144, 155, 1400 }, - { 432, 155, 1400 }, - { 288, 155, 1400 } - }; - Vec spC = { 288, 176, 1400 }; - temp_r27 = arg1->unk01/10; - if(arg2) { - temp_r29 = &spC; - temp_f31 = -20.0f*arg1->field0_bit3; - } else { - switch(arg0->unk00) { - case 1: - temp_r29 = &arg0->unk7C; - break; - - case 2: - case 3: - temp_r29 = &arg0->unk64[arg1->field0_bit3]; - break; - } - temp_f31 = 0; - } - for(temp_r31=0; temp_r31<2; temp_r31++) { - if(temp_r27 == 0) { - sp54[temp_r31].x = temp_r29->x; - } else { - if(temp_r31) { - sp54[temp_r31].x = temp_r29->x-30; - } else { - sp54[temp_r31].x = temp_r29->x+30; - } - } - sp54[temp_r31].y = temp_r29->y; - sp54[temp_r31].z = temp_r29->z+temp_f31; - } - for(temp_r31=0; temp_r31<2; temp_r31++) { - BoardModelPosGet(arg1->unk04[temp_r31], &sp30); - Hu3D2Dto3D(&sp54[temp_r31], 1, &sp54[temp_r31]); - VECSubtract(&sp54[temp_r31], &sp30, &sp24); - if(VECMag(&sp24) < 0.01f) { - arg1->field0_bit2 = 0; - if(arg2 && arg1->field0_bit3) { - BoardModelVisibilitySet(arg1->unk04[temp_r31], 0); - } - } else { - arg1->field0_bit2 = 1; - } - VECScale(&sp24, &sp24, arg1->unk08); - VECAdd(&sp30, &sp24, &sp30); - BoardModelPosSetV(arg1->unk04[temp_r31], &sp30); - } + float temp_f31; + s16 temp_r31; + Vec *temp_r29; + s16 temp_r27; + s32 sp8 = 0; + Vec sp30; + Vec sp24; + Vec sp18 = { 288, 155, 1400 }; + Vec sp54[2]; + Vec sp3C[2] = { { 144, 155, 1400 }, { 432, 155, 1400 } }; + Vec sp6C[3] = { { 144, 155, 1400 }, { 432, 155, 1400 }, { 288, 155, 1400 } }; + Vec spC = { 288, 176, 1400 }; + temp_r27 = arg1->unk01 / 10; + if (arg2) { + temp_r29 = &spC; + temp_f31 = -20.0f * arg1->field0_bit3; + } + else { + switch (arg0->unk00) { + case 1: + temp_r29 = &arg0->unk7C; + break; + + case 2: + case 3: + temp_r29 = &arg0->unk64[arg1->field0_bit3]; + break; + } + temp_f31 = 0; + } + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + if (temp_r27 == 0) { + sp54[temp_r31].x = temp_r29->x; + } + else { + if (temp_r31) { + sp54[temp_r31].x = temp_r29->x - 30; + } + else { + sp54[temp_r31].x = temp_r29->x + 30; + } + } + sp54[temp_r31].y = temp_r29->y; + sp54[temp_r31].z = temp_r29->z + temp_f31; + } + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + BoardModelPosGet(arg1->unk04[temp_r31], &sp30); + Hu3D2Dto3D(&sp54[temp_r31], 1, &sp54[temp_r31]); + VECSubtract(&sp54[temp_r31], &sp30, &sp24); + if (VECMag(&sp24) < 0.01f) { + arg1->field0_bit2 = 0; + if (arg2 && arg1->field0_bit3) { + BoardModelVisibilitySet(arg1->unk04[temp_r31], 0); + } + } + else { + arg1->field0_bit2 = 1; + } + VECScale(&sp24, &sp24, arg1->unk08); + VECAdd(&sp30, &sp24, &sp30); + BoardModelPosSetV(arg1->unk04[temp_r31], &sp30); + } } void fn_1_2BE4(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2) { - s32 temp_r29; - float temp_f30; - if(arg2) { - arg1->unk02 += 18; - if(arg1->unk02 >= 360) { - arg1->unk02 = 360; - } - } else { - arg1->unk02 -= 18; - if(arg1->unk02 <= 0) { - arg1->unk02 = 0; - } - } - OSs16tof32(&arg1->unk02, &temp_f30); - for(temp_r29=0; temp_r29<2; temp_r29++) { - if(arg1->unk04[temp_r29] == -1) { - continue; - } - BoardModelRotSet(arg1->unk04[temp_r29], 0, temp_f30, 0); - } -} \ No newline at end of file + s32 temp_r29; + float temp_f30; + if (arg2) { + arg1->unk02 += 18; + if (arg1->unk02 >= 360) { + arg1->unk02 = 360; + } + } + else { + arg1->unk02 -= 18; + if (arg1->unk02 <= 0) { + arg1->unk02 = 0; + } + } + OSs16tof32(&arg1->unk02, &temp_f30); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + if (arg1->unk04[temp_r29] == -1) { + continue; + } + BoardModelRotSet(arg1->unk04[temp_r29], 0, temp_f30, 0); + } +} diff --git a/src/REL/w02Dll/main.c b/src/REL/w02Dll/main.c index db0b592e..8da93e44 100644 --- a/src/REL/w02Dll/main.c +++ b/src/REL/w02Dll/main.c @@ -89,17 +89,17 @@ void BoardCreate(void) { boardData = get_current_board(); lbl_1_bss_0 = GWSystem.board_data; - BoardSpaceInit(0x760000); - lbl_1_data_280 = BoardModelCreate(0x760001, NULL, 0); + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W02, 0x00)); + lbl_1_data_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x01), NULL, 0); fn_8006DDE8(lbl_1_data_280, -1.0f); BoardModelPosSet(lbl_1_data_280, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_280, 0, 0x40000001); BoardModelMotionSpeedSet(lbl_1_data_280, 0.1f); - lbl_1_data_282 = BoardModelCreate(0x760002, NULL, 0); + lbl_1_data_282 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_282, -1.0f); BoardModelPosSet(lbl_1_data_282, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_282, 0, 0x40000001); - lbl_1_data_284 = BoardModelCreate(0x760003, lbl_1_data_288, 0); + lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x03), lbl_1_data_288, 0); BoardModelPosSet(lbl_1_data_284, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_284, 1, 0x40000001); lbl_1_data_286 = BoardModelCreate(0x20005, lbl_1_data_290, 0); @@ -132,8 +132,8 @@ void BoardCreate(void) { fn_1_92C(); BoardModelPosGet(lbl_1_bss_30[13], &lbl_1_bss_20); BoardModelPosGet(lbl_1_bss_30[14], &lbl_1_bss_14); - lbl_1_bss_2E = BoardModelCreate(0x760010, NULL, 1); - lbl_1_bss_2C = BoardModelCreate(0x760010, NULL, 1); + lbl_1_bss_2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x10), NULL, 1); + lbl_1_bss_2C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x10), NULL, 1); fn_1_9250(); BoardSpaceWalkEventFuncSet(fn_1_800); BoardSpaceWalkMiniEventFuncSet(fn_1_1128); diff --git a/src/REL/w02Dll/mg_coin.c b/src/REL/w02Dll/mg_coin.c index a1ce769c..40c6649e 100644 --- a/src/REL/w02Dll/mg_coin.c +++ b/src/REL/w02Dll/mg_coin.c @@ -1,10 +1,9 @@ #include "REL/w02Dll.h" #include "game/audio.h" -#include "game/pad.h" -#include "game/objsub.h" +#include "game/chrman.h" #include "game/frand.h" #include "game/objsub.h" -#include "game/chrman.h" +#include "game/pad.h" #include "ext_math.h" @@ -24,184 +23,158 @@ s16 lbl_1_bss_84; s16 lbl_1_bss_5C[20]; s32 lbl_1_bss_58; -Vec lbl_1_data_378[3] = { - { -45, 155, 108 }, - { 0, 155, 108 }, - { 45, 155, 108 } -}; +Vec lbl_1_data_378[3] = { { -45, 155, 108 }, { 0, 155, 108 }, { 45, 155, 108 } }; -Vec lbl_1_data_39C[3] = { - { -45, 25, 200 }, - { 0, 25, 200 }, - { 45, 25, 200 } -}; +Vec lbl_1_data_39C[3] = { { -45, 25, 200 }, { 0, 25, 200 }, { 45, 25, 200 } }; -s32 lbl_1_data_3C0[9] = { - 5, 10, 20, - 5, 10, 20, - 5, 10, 20 -}; +s32 lbl_1_data_3C0[9] = { 5, 10, 20, 5, 10, 20, 5, 10, 20 }; -s32 lbl_1_data_3E4[8] = { - 0x5F0008, - 0x1A0008, - 0x6D0008, - 0x8A0008, - 0x850008, - 0x110008, - 0x0D0008, - 0x810008 -}; +s32 lbl_1_data_3E4[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x08), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x08), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x08), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x08), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x08), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x08), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x08), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x08) }; -s32 lbl_1_data_404[8] = { - 0x5F000A, - 0x1A000A, - 0x6D000A, - 0x8A000A, - 0x85000A, - 0x11000A, - 0x0D000A, - 0x81000A -}; +s32 lbl_1_data_404[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x0A), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x0A), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x0A), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x0A), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x0A), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x0A) }; void fn_1_51B4(Vec *arg0); void fn_1_39F4(void) { - Vec sp8; - s32 temp_r31; - BoardModelVisibilitySet(lbl_1_bss_30[7], 1); - BoardModelVisibilitySet(lbl_1_bss_30[8], 1); - BoardModelVisibilitySet(lbl_1_bss_30[9], 0); - BoardModelAttrSet(lbl_1_bss_30[8], 0x40000002); - BoardModelAttrSet(lbl_1_bss_30[9], 0x40000003); - BoardModelAttrSet(lbl_1_bss_30[7], 0x40000001); - BoardModelPosGet(lbl_1_bss_30[8], &lbl_1_bss_94); - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_C2[temp_r31] = BoardModelCreate(0x760013, NULL, 1); - lbl_1_bss_BC[temp_r31] = BoardModelCreate(0x760014, NULL, 1); - BoardModelAttrSet(lbl_1_bss_BC[temp_r31], 0x40000002); - lbl_1_bss_B0[temp_r31] = (s32)frandmod(9)*40.0f; - sp8.x = lbl_1_bss_B0[temp_r31]; - sp8.y = sp8.z = 0; - BoardModelRotSetV(lbl_1_bss_C2[temp_r31], &sp8); - } - BoardModelPosSetV(lbl_1_bss_30[7], &lbl_1_bss_94); - fn_1_51B4(&lbl_1_bss_94); + Vec sp8; + s32 temp_r31; + BoardModelVisibilitySet(lbl_1_bss_30[7], 1); + BoardModelVisibilitySet(lbl_1_bss_30[8], 1); + BoardModelVisibilitySet(lbl_1_bss_30[9], 0); + BoardModelAttrSet(lbl_1_bss_30[8], 0x40000002); + BoardModelAttrSet(lbl_1_bss_30[9], 0x40000003); + BoardModelAttrSet(lbl_1_bss_30[7], 0x40000001); + BoardModelPosGet(lbl_1_bss_30[8], &lbl_1_bss_94); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_C2[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x13), NULL, 1); + lbl_1_bss_BC[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x14), NULL, 1); + BoardModelAttrSet(lbl_1_bss_BC[temp_r31], 0x40000002); + lbl_1_bss_B0[temp_r31] = (s32)frandmod(9) * 40.0f; + sp8.x = lbl_1_bss_B0[temp_r31]; + sp8.y = sp8.z = 0; + BoardModelRotSetV(lbl_1_bss_C2[temp_r31], &sp8); + } + BoardModelPosSetV(lbl_1_bss_30[7], &lbl_1_bss_94); + fn_1_51B4(&lbl_1_bss_94); } void fn_1_3F0C(omObjData *object); void fn_1_4050(omObjData *object); typedef struct work_mgcoin_player { - float unk0[3]; - float unkC[3]; - float unk18[3]; - s16 unk24[3]; + float unk0[3]; + float unkC[3]; + float unk18[3]; + s16 unk24[3]; } WorkMGCoinPlayer; typedef struct work_mgcoin { - float unk0; - float unk4; - s16 unk8; - Vec unkC; - s16 unk18; - s16 unk1A; - s16 unk1C; - s16 unk1E; - s16 unk20; + float unk0; + float unk4; + s16 unk8; + Vec unkC; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + s16 unk20; } WorkMGCoin; void fn_1_3BF4(void) { - Vec sp8; - - s32 temp_r31; - WorkMGCoinPlayer *temp_r30; - lbl_1_bss_86 = GWSystem.player_curr; - lbl_1_bss_AC = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_3F0C); - lbl_1_bss_A4 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_4050); - lbl_1_bss_A8 = omAddObjEx(boardObjMan, 257, 0, 2, -1, NULL); - lbl_1_bss_A8->motion[0] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_3E4[GWPlayer[lbl_1_bss_86].character]); - lbl_1_bss_A8->motion[1] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_404[GWPlayer[lbl_1_bss_86].character]); - lbl_1_bss_A4->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoinPlayer), MEMORY_DEFAULT_NUM); - temp_r30 = lbl_1_bss_A4->data; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r30->unk0[temp_r31] = lbl_1_bss_B0[temp_r31]; - temp_r30->unkC[temp_r31] = 0; - temp_r30->unk18[temp_r31] = 0; - temp_r30->unk24[temp_r31] = 0; - } - lbl_1_bss_A8->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoin), MEMORY_DEFAULT_NUM); - BoardPlayerPosGet(lbl_1_bss_86, &sp8); - lbl_1_bss_A8->trans.x = sp8.x; - lbl_1_bss_A8->trans.y = sp8.y; - lbl_1_bss_A8->trans.z = sp8.z; - for(temp_r31=0; temp_r31<20; temp_r31++) { - lbl_1_bss_5C[temp_r31] = BoardModelCreate(0x7000A, NULL, 1); - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); - } - lbl_1_bss_A0 = 0; + Vec sp8; + + s32 temp_r31; + WorkMGCoinPlayer *temp_r30; + lbl_1_bss_86 = GWSystem.player_curr; + lbl_1_bss_AC = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_3F0C); + lbl_1_bss_A4 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_4050); + lbl_1_bss_A8 = omAddObjEx(boardObjMan, 257, 0, 2, -1, NULL); + lbl_1_bss_A8->motion[0] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_3E4[GWPlayer[lbl_1_bss_86].character]); + lbl_1_bss_A8->motion[1] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_404[GWPlayer[lbl_1_bss_86].character]); + lbl_1_bss_A4->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoinPlayer), MEMORY_DEFAULT_NUM); + temp_r30 = lbl_1_bss_A4->data; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r30->unk0[temp_r31] = lbl_1_bss_B0[temp_r31]; + temp_r30->unkC[temp_r31] = 0; + temp_r30->unk18[temp_r31] = 0; + temp_r30->unk24[temp_r31] = 0; + } + lbl_1_bss_A8->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoin), MEMORY_DEFAULT_NUM); + BoardPlayerPosGet(lbl_1_bss_86, &sp8); + lbl_1_bss_A8->trans.x = sp8.x; + lbl_1_bss_A8->trans.y = sp8.y; + lbl_1_bss_A8->trans.z = sp8.z; + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + lbl_1_bss_5C[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); + } + lbl_1_bss_A0 = 0; } void fn_1_3F94(void); void fn_1_3F0C(omObjData *object) { - if(lbl_1_bss_A0 && BoardMGDoneFlagGet() == 1) { - fn_1_3F94(); - omDelObjEx(boardObjMan, object); - } + if (lbl_1_bss_A0 && BoardMGDoneFlagGet() == 1) { + fn_1_3F94(); + omDelObjEx(boardObjMan, object); + } } void fn_1_3F64(void) { - lbl_1_bss_A0 = 1; - BoardMGExit(); + lbl_1_bss_A0 = 1; + BoardMGExit(); } void fn_1_3F94(void) { - s32 temp_r31; - BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[0]); - BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[1]); - omDelObjEx(boardObjMan, lbl_1_bss_A8); - for(temp_r31=0; temp_r31<20; temp_r31++) { - BoardModelKill(lbl_1_bss_5C[temp_r31]); - } - BoardMGDoneFlagSet(0); + s32 temp_r31; + BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[0]); + BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[1]); + omDelObjEx(boardObjMan, lbl_1_bss_A8); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + BoardModelKill(lbl_1_bss_5C[temp_r31]); + } + BoardMGDoneFlagSet(0); } void fn_1_4100(omObjData *object); void fn_1_4050(omObjData *object) { - if(object->work[0] == 0) { - object->work[0] = MGSeqStartCreate(); - return; - } - if(MGSeqStatGet(object->work[0])) { - return; - } - object->func = fn_1_4100; - BoardModelMotionTimeSet(lbl_1_bss_30[8], 0); - BoardModelAttrReset(lbl_1_bss_30[8], 0x40000006); - HuAudFXPlay(1062); + if (object->work[0] == 0) { + object->work[0] = MGSeqStartCreate(); + return; + } + if (MGSeqStatGet(object->work[0])) { + return; + } + object->func = fn_1_4100; + BoardModelMotionTimeSet(lbl_1_bss_30[8], 0); + BoardModelAttrReset(lbl_1_bss_30[8], 0x40000006); + HuAudFXPlay(1062); } void fn_1_41B8(omObjData *object); void fn_1_4100(omObjData *object) { - if(BoardModelMotionTimeGet(lbl_1_bss_30[8]) >= BoardModelMotionMaxTimeGet(lbl_1_bss_30[8])) { - object->work[0] = 0; - object->work[1] = 0; - object->work[2] = 1; - object->work[3] = 0; - object->func = fn_1_41B8; - BoardModelAttrSet(lbl_1_bss_30[8], 0x40000004); - lbl_1_bss_58 = HuAudFXPlay(1063); - } + if (BoardModelMotionTimeGet(lbl_1_bss_30[8]) >= BoardModelMotionMaxTimeGet(lbl_1_bss_30[8])) { + object->work[0] = 0; + object->work[1] = 0; + object->work[2] = 1; + object->work[3] = 0; + object->func = fn_1_41B8; + BoardModelAttrSet(lbl_1_bss_30[8], 0x40000004); + lbl_1_bss_58 = HuAudFXPlay(1063); + } } void fn_1_4378(omObjData *object); @@ -209,42 +182,42 @@ void fn_1_5290(omObjData *object); void fn_1_41B8(omObjData *object) { - Vec sp8; - WorkMGCoinPlayer *temp_r30; - s32 temp_r29; - s32 temp_r28; - u32 temp_r27; - temp_r30 = object->data; - if(object->work[1] == 0) { - object->work[0] |= object->work[2]; - object->work[1] = 12; - object->work[2] <<= 1; - } else { - object->work[1]--; - } - sp8.y = sp8.z = 0; - temp_r28 = 0; - for(temp_r29=0; temp_r29<3; temp_r29++) { - temp_r27 = 1 << temp_r29; - if(object->work[0] & temp_r27) { - temp_r30->unkC[temp_r29] += 0.25f; - if(temp_r30->unkC[temp_r29] > 5.0f) { - temp_r30->unkC[temp_r29] = 5.0f; - temp_r28++; - } - temp_r30->unk0[temp_r29] += temp_r30->unkC[temp_r29]; - if(temp_r30->unk0[temp_r29] >= 360.0f) { - temp_r30->unk0[temp_r29] -= 360.0f; - } - sp8.x = temp_r30->unk0[temp_r29]; - BoardModelRotSetV(lbl_1_bss_C2[temp_r29], &sp8); - } - } - if(temp_r28 == 3) { - object->func = fn_1_4378; - lbl_1_bss_A8->func = fn_1_5290; - } - + Vec sp8; + WorkMGCoinPlayer *temp_r30; + s32 temp_r29; + s32 temp_r28; + u32 temp_r27; + temp_r30 = object->data; + if (object->work[1] == 0) { + object->work[0] |= object->work[2]; + object->work[1] = 12; + object->work[2] <<= 1; + } + else { + object->work[1]--; + } + sp8.y = sp8.z = 0; + temp_r28 = 0; + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + temp_r27 = 1 << temp_r29; + if (object->work[0] & temp_r27) { + temp_r30->unkC[temp_r29] += 0.25f; + if (temp_r30->unkC[temp_r29] > 5.0f) { + temp_r30->unkC[temp_r29] = 5.0f; + temp_r28++; + } + temp_r30->unk0[temp_r29] += temp_r30->unkC[temp_r29]; + if (temp_r30->unk0[temp_r29] >= 360.0f) { + temp_r30->unk0[temp_r29] -= 360.0f; + } + sp8.x = temp_r30->unk0[temp_r29]; + BoardModelRotSetV(lbl_1_bss_C2[temp_r29], &sp8); + } + } + if (temp_r28 == 3) { + object->func = fn_1_4378; + lbl_1_bss_A8->func = fn_1_5290; + } } void fn_1_4698(omObjData *object); @@ -253,431 +226,442 @@ void fn_1_46E8(void); void fn_1_4378(omObjData *object) { - Vec sp8; - float temp_f31; - WorkMGCoinPlayer *temp_r31; - s32 temp_r30; - s32 temp_r28; - Process *temp_r27; - temp_r31 = object->data; - sp8.y = sp8.z = 0; - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r28 = 1<work[0] & temp_r28) { - if(object->work[3] & temp_r28) { - temp_r31->unk18[temp_r30] = 360; - temp_r31->unk24[temp_r30] = 1; - object->work[3] &= ~temp_r28; - } - if(temp_r31->unk24[temp_r30]) { - if(0.0f == temp_r31->unk18[temp_r30]) { - temp_f31 = fmod(temp_r31->unk0[temp_r30], 40.0); - if(temp_f31+temp_r31->unkC[temp_r30] >= 40.0f) { - temp_r31->unk0[temp_r30] += (temp_f31+temp_r31->unkC[temp_r30])-40.0f; - temp_f31 = 0; - } - if(0.0f == temp_f31) { - HuAudFXPlay(1067); - object->work[0] &= ~temp_r28; - temp_r31->unkC[temp_r30] = 0; - lbl_1_bss_A8->work[2] = 60; - if(temp_r30 != 2) { - lbl_1_bss_A8->func = fn_1_5290; - } else { - BoardAudSeqFadeOut(1, 100); - temp_r27 = HuPrcCreate(fn_1_46E8, 8196, 6144, 0); - temp_r27->user_data = object; - HuAudFXStop(lbl_1_bss_58); - object->func = fn_1_4698; - } - } - } else { - temp_r31->unk18[temp_r30] -= temp_r31->unkC[temp_r30]; - if(temp_r31->unk18[temp_r30] < 0.0f) { - temp_r31->unk18[temp_r30] = 0.0f; - } - } - } - temp_r31->unk0[temp_r30] += temp_r31->unkC[temp_r30]; - if(temp_r31->unk0[temp_r30] >= 360.0f) { - temp_r31->unk0[temp_r30] -= 360.0f; - } - } - sp8.x = temp_r31->unk0[temp_r30]; - BoardModelRotSetV(lbl_1_bss_C2[temp_r30], &sp8); - } + Vec sp8; + float temp_f31; + WorkMGCoinPlayer *temp_r31; + s32 temp_r30; + s32 temp_r28; + Process *temp_r27; + temp_r31 = object->data; + sp8.y = sp8.z = 0; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r28 = 1 << temp_r30; + if (object->work[0] & temp_r28) { + if (object->work[3] & temp_r28) { + temp_r31->unk18[temp_r30] = 360; + temp_r31->unk24[temp_r30] = 1; + object->work[3] &= ~temp_r28; + } + if (temp_r31->unk24[temp_r30]) { + if (0.0f == temp_r31->unk18[temp_r30]) { + temp_f31 = fmod(temp_r31->unk0[temp_r30], 40.0); + if (temp_f31 + temp_r31->unkC[temp_r30] >= 40.0f) { + temp_r31->unk0[temp_r30] += (temp_f31 + temp_r31->unkC[temp_r30]) - 40.0f; + temp_f31 = 0; + } + if (0.0f == temp_f31) { + HuAudFXPlay(1067); + object->work[0] &= ~temp_r28; + temp_r31->unkC[temp_r30] = 0; + lbl_1_bss_A8->work[2] = 60; + if (temp_r30 != 2) { + lbl_1_bss_A8->func = fn_1_5290; + } + else { + BoardAudSeqFadeOut(1, 100); + temp_r27 = HuPrcCreate(fn_1_46E8, 8196, 6144, 0); + temp_r27->user_data = object; + HuAudFXStop(lbl_1_bss_58); + object->func = fn_1_4698; + } + } + } + else { + temp_r31->unk18[temp_r30] -= temp_r31->unkC[temp_r30]; + if (temp_r31->unk18[temp_r30] < 0.0f) { + temp_r31->unk18[temp_r30] = 0.0f; + } + } + } + temp_r31->unk0[temp_r30] += temp_r31->unkC[temp_r30]; + if (temp_r31->unk0[temp_r30] >= 360.0f) { + temp_r31->unk0[temp_r30] -= 360.0f; + } + } + sp8.x = temp_r31->unk0[temp_r30]; + BoardModelRotSetV(lbl_1_bss_C2[temp_r30], &sp8); + } } void fn_1_4698(omObjData *object) { - if(msmMusGetStatus(1) == 0) { - BoardAudSeqPause(0, 0, 1000); - object->func = NULL; - } + if (msmMusGetStatus(1) == 0) { + BoardAudSeqPause(0, 0, 1000); + object->func = NULL; + } } void fn_1_511C(omObjData *object); void fn_1_46E8(void) { - Vec sp21C[20]; - Vec sp12C[20]; - Vec sp3C[20]; - s32 sp30[3]; - Vec sp24; - Vec sp18; - Vec spC; - char sp8[4]; - float temp_f31; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - omObjData *temp_r27; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelRotGet(lbl_1_bss_C2[temp_r31], &sp24); - sp30[temp_r31] = lbl_1_data_3C0[(int)(sp24.x/40.0f)]; - } - if(sp30[0] == sp30[1] && sp30[0] == sp30[2]) { - lbl_1_bss_84 = sp30[0]; - } else { - lbl_1_bss_84 = 1; - } - if(lbl_1_bss_84 != 1) { - BoardModelVisibilitySet(lbl_1_bss_30[9], 1); - BoardModelAttrReset(lbl_1_bss_30[9], 0x40000002); - } - sprintf(sp8, "%d", lbl_1_bss_84); - BoardWinCreate(2, MAKE_MESSID(19, 19), 4); - BoardWinInsertMesSet((u32)sp8, 0); - BoardWinWait(); - BoardWinKill(); - BoardCameraTargetModelSet(-1); - temp_r30 = 0; - temp_r29 = 45; - temp_f31 = 0; - sp18 = lbl_1_bss_94; - HuAudFXPlay(1065); - while(1) { - temp_r28 = 0; - if(temp_r29 == 0 && temp_r30 < lbl_1_bss_84) { - HuAudFXPlay(18); - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r30], 1); - sp21C[temp_r30].x = -5.0f+((1.0f/255.0f)*(10.0f*frand8())); - sp21C[temp_r30].y = 212.5f; - sp21C[temp_r30].z = 130.0f; - VECAdd(&sp21C[temp_r30], &sp18, &sp21C[temp_r30]); - BoardModelPosSetV(lbl_1_bss_5C[temp_r30], &sp21C[temp_r30]); - sp12C[temp_r30].x = -1.0f+((1.0f/255.0f)*(2.0f*frand8())); - sp12C[temp_r30].y = 18.0f; - sp12C[temp_r30].z = 0.0f; - temp_r29 = frandmod(3)+5; - temp_r30++; - } else { - temp_r29--; - } - for(temp_r31=0; temp_r31= 500.0f) { - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); - temp_r28++; - } else { - VECAdd(&sp21C[temp_r31], &sp12C[temp_r31], &sp21C[temp_r31]); - } - BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); - } - sp18.y += 0.8f*sind(temp_f31); - temp_f31 += 45.0f; - if(temp_f31 >= 360.0f) { - temp_f31 -= 360.0f; - } - fn_1_51B4(&sp18); - if(temp_r28 == lbl_1_bss_84) { - break; - } - HuPrcVSleep(); - } - fn_1_51B4(&lbl_1_bss_94); - BoardModelAttrSet(lbl_1_bss_30[9], 0x40000002); - BoardModelMotionTimeSet(lbl_1_bss_30[9], 0); - BoardModelVisibilitySet(lbl_1_bss_30[9], 0); - BoardPlayerPosGet(lbl_1_bss_86, &sp18); - for(temp_r31=0; temp_r31= 360.0f) { - sp3C[temp_r31].y -= 360.0f; - } - BoardModelRotSetV(lbl_1_bss_5C[temp_r31], &sp3C[temp_r31]); - if(sp21C[temp_r31].y <= 80.0f+sp18.y) { - spC = sp21C[temp_r31]; - CharModelCoinEffectCreate(1, &spC); - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); - temp_r30++; - BoardPlayerCoinsAdd(lbl_1_bss_86, 1); - HuAudFXPlay(7); - omVibrate(lbl_1_bss_86, 12, 6, 6); - } - } - temp_f31 *= 1.05f; - if(temp_f31 < -20.0f) { - temp_f31 = -20.0f; - } - if(temp_r30 == lbl_1_bss_84) { - BoardPlayerMotionShiftSet(lbl_1_bss_86, 7, 0, 10, 0); - break; - } - HuPrcVSleep(); - } - while(!BoardPlayerMotionEndCheck(lbl_1_bss_86)) { - HuPrcVSleep(); - } - fn_1_121C(0x130014); - temp_r27 = HuPrcCurrentGet()->user_data; - temp_r27->func = fn_1_511C; - HuPrcEnd(); + Vec sp21C[20]; + Vec sp12C[20]; + Vec sp3C[20]; + s32 sp30[3]; + Vec sp24; + Vec sp18; + Vec spC; + char sp8[4]; + float temp_f31; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + omObjData *temp_r27; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelRotGet(lbl_1_bss_C2[temp_r31], &sp24); + sp30[temp_r31] = lbl_1_data_3C0[(int)(sp24.x / 40.0f)]; + } + if (sp30[0] == sp30[1] && sp30[0] == sp30[2]) { + lbl_1_bss_84 = sp30[0]; + } + else { + lbl_1_bss_84 = 1; + } + if (lbl_1_bss_84 != 1) { + BoardModelVisibilitySet(lbl_1_bss_30[9], 1); + BoardModelAttrReset(lbl_1_bss_30[9], 0x40000002); + } + sprintf(sp8, "%d", lbl_1_bss_84); + BoardWinCreate(2, MAKE_MESSID(19, 19), 4); + BoardWinInsertMesSet((u32)sp8, 0); + BoardWinWait(); + BoardWinKill(); + BoardCameraTargetModelSet(-1); + temp_r30 = 0; + temp_r29 = 45; + temp_f31 = 0; + sp18 = lbl_1_bss_94; + HuAudFXPlay(1065); + while (1) { + temp_r28 = 0; + if (temp_r29 == 0 && temp_r30 < lbl_1_bss_84) { + HuAudFXPlay(18); + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r30], 1); + sp21C[temp_r30].x = -5.0f + ((1.0f / 255.0f) * (10.0f * frand8())); + sp21C[temp_r30].y = 212.5f; + sp21C[temp_r30].z = 130.0f; + VECAdd(&sp21C[temp_r30], &sp18, &sp21C[temp_r30]); + BoardModelPosSetV(lbl_1_bss_5C[temp_r30], &sp21C[temp_r30]); + sp12C[temp_r30].x = -1.0f + ((1.0f / 255.0f) * (2.0f * frand8())); + sp12C[temp_r30].y = 18.0f; + sp12C[temp_r30].z = 0.0f; + temp_r29 = frandmod(3) + 5; + temp_r30++; + } + else { + temp_r29--; + } + for (temp_r31 = 0; temp_r31 < temp_r30; temp_r31++) { + if (sp21C[temp_r31].y >= 500.0f) { + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); + temp_r28++; + } + else { + VECAdd(&sp21C[temp_r31], &sp12C[temp_r31], &sp21C[temp_r31]); + } + BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); + } + sp18.y += 0.8f * sind(temp_f31); + temp_f31 += 45.0f; + if (temp_f31 >= 360.0f) { + temp_f31 -= 360.0f; + } + fn_1_51B4(&sp18); + if (temp_r28 == lbl_1_bss_84) { + break; + } + HuPrcVSleep(); + } + fn_1_51B4(&lbl_1_bss_94); + BoardModelAttrSet(lbl_1_bss_30[9], 0x40000002); + BoardModelMotionTimeSet(lbl_1_bss_30[9], 0); + BoardModelVisibilitySet(lbl_1_bss_30[9], 0); + BoardPlayerPosGet(lbl_1_bss_86, &sp18); + for (temp_r31 = 0; temp_r31 < lbl_1_bss_84; temp_r31++) { + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 1); + sp21C[temp_r31] = sp18; + sp21C[temp_r31].y += (temp_r31 * 120) + 600.0f; + sp21C[temp_r31].x += -25.0f + ((1.0f / 255.0f) * (50.0f * frand8())); + sp21C[temp_r31].z += -25.0f + ((1.0f / 255.0f) * (50.0f * frand8())); + sp3C[temp_r31].x = sp3C[temp_r31].z = 0; + sp3C[temp_r31].y = ((1.0f / 255.0f) * (360.0f * frand8())); + BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); + BoardModelRotSetV(lbl_1_bss_5C[temp_r31], &sp3C[temp_r31]); + } + temp_f31 = -1; + temp_r30 = 0; + while (1) { + for (temp_r31 = 0; temp_r31 < lbl_1_bss_84; temp_r31++) { + if (temp_r31 < temp_r30) { + continue; + } + sp21C[temp_r31].y += temp_f31; + BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); + sp3C[temp_r31].y += 45.0f; + if (sp3C[temp_r31].y >= 360.0f) { + sp3C[temp_r31].y -= 360.0f; + } + BoardModelRotSetV(lbl_1_bss_5C[temp_r31], &sp3C[temp_r31]); + if (sp21C[temp_r31].y <= 80.0f + sp18.y) { + spC = sp21C[temp_r31]; + CharModelCoinEffectCreate(1, &spC); + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); + temp_r30++; + BoardPlayerCoinsAdd(lbl_1_bss_86, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_86, 12, 6, 6); + } + } + temp_f31 *= 1.05f; + if (temp_f31 < -20.0f) { + temp_f31 = -20.0f; + } + if (temp_r30 == lbl_1_bss_84) { + BoardPlayerMotionShiftSet(lbl_1_bss_86, 7, 0, 10, 0); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_86)) { + HuPrcVSleep(); + } + fn_1_121C(MAKE_MESSID(0x13, 0x14)); + temp_r27 = HuPrcCurrentGet()->user_data; + temp_r27->func = fn_1_511C; + HuPrcEnd(); } void fn_1_511C(omObjData *object) { - Vec spC; - s32 temp_r31; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelRotGet(lbl_1_bss_C2[temp_r31], &spC); - lbl_1_bss_B0[temp_r31] = spC.x; - } - fn_1_3F64(); - omDelObjEx(boardObjMan, object); + Vec spC; + s32 temp_r31; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelRotGet(lbl_1_bss_C2[temp_r31], &spC); + lbl_1_bss_B0[temp_r31] = spC.x; + } + fn_1_3F64(); + omDelObjEx(boardObjMan, object); } void fn_1_51B4(Vec *arg0) { - s32 temp_r31; - Vec sp8; - BoardModelPosSetV(lbl_1_bss_30[8], arg0); - BoardModelPosSetV(lbl_1_bss_30[9], arg0); - for(temp_r31=0; temp_r31<3; temp_r31++) { - VECAdd(arg0, &lbl_1_data_378[temp_r31], &sp8); - BoardModelPosSetV(lbl_1_bss_C2[temp_r31], &sp8); - VECAdd(arg0, &lbl_1_data_39C[temp_r31], &sp8); - BoardModelPosSetV(lbl_1_bss_BC[temp_r31], &sp8); - } + s32 temp_r31; + Vec sp8; + BoardModelPosSetV(lbl_1_bss_30[8], arg0); + BoardModelPosSetV(lbl_1_bss_30[9], arg0); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + VECAdd(arg0, &lbl_1_data_378[temp_r31], &sp8); + BoardModelPosSetV(lbl_1_bss_C2[temp_r31], &sp8); + VECAdd(arg0, &lbl_1_data_39C[temp_r31], &sp8); + BoardModelPosSetV(lbl_1_bss_BC[temp_r31], &sp8); + } } void fn_1_53B8(omObjData *object); void fn_1_5290(omObjData *object) { - WorkMGCoin *temp_r31; - float sp8[2]; - if(object->work[2] == 0) { - temp_r31 = object->data; - temp_r31->unk18 = 5; - temp_r31->unk1A = 60; - temp_r31->unk1C = MGSeqTimerCreateXY(temp_r31->unk18, 288, 64); - HuWinMesMaxSizeGet(1, sp8, 0x130015); - temp_r31->unk1E = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk1E, 0x130015); - HuWinBGTPLvlSet(temp_r31->unk1E, 0); - HuWinMesSpeedSet(temp_r31->unk1E, 0); - temp_r31->unk20 = frandmod(100)+20; - object->func = fn_1_53B8; - } else { - object->work[2]--; - } + WorkMGCoin *temp_r31; + float sp8[2]; + if (object->work[2] == 0) { + temp_r31 = object->data; + temp_r31->unk18 = 5; + temp_r31->unk1A = 60; + temp_r31->unk1C = MGSeqTimerCreateXY(temp_r31->unk18, 288, 64); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x15)); + temp_r31->unk1E = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); + HuWinMesSet(temp_r31->unk1E, MAKE_MESSID(0x13, 0x15)); + HuWinBGTPLvlSet(temp_r31->unk1E, 0); + HuWinMesSpeedSet(temp_r31->unk1E, 0); + temp_r31->unk20 = frandmod(100) + 20; + object->func = fn_1_53B8; + } + else { + object->work[2]--; + } } void fn_1_5634(omObjData *object); void fn_1_53B8(omObjData *object) { - Vec sp14; - Vec sp8; - WorkMGCoin *temp_r31; - s32 temp_r29; - s32 temp_r28; - temp_r31 = object->data; - temp_r28 = GWPlayer[lbl_1_bss_86].port; - if(--temp_r31->unk1A == 0) { - temp_r31->unk1A = 60; - if(--temp_r31->unk18 >= 0) { - MGSeqParamSet(temp_r31->unk1C, 1, temp_r31->unk18); - } - } - if(!GWPlayer[lbl_1_bss_86].com) { - temp_r29 = HuPadBtnDown[temp_r28]; - } else { - if(--temp_r31->unk20 == 0) { - temp_r29 = PAD_BUTTON_A; - } - } - if((temp_r29 & PAD_BUTTON_A) || temp_r31->unk18 < 0) { - MGSeqParamSet(temp_r31->unk1C, 2, -1); - HuWinKill(temp_r31->unk1E); - BoardPlayerMotionShiftSet(lbl_1_bss_86, 4, 0, 5, 0); - temp_r31->unk0 = 10; - temp_r31->unk4 = 0; - if(lbl_1_bss_A4->work[0] & 0x1) { - temp_r31->unk8 = 0; - } else { - if(lbl_1_bss_A4->work[0] & 0x2) { - temp_r31->unk8 = 1; - } else { - temp_r31->unk8 = 2; - } - } - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - sp8 = lbl_1_bss_94; - VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); - VECSubtract(&sp8, &sp14, &temp_r31->unkC); - VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.05f); - object->work[0] = 1; - object->func = fn_1_5634; - } + Vec sp14; + Vec sp8; + WorkMGCoin *temp_r31; + s32 temp_r29; + s32 temp_r28; + temp_r31 = object->data; + temp_r28 = GWPlayer[lbl_1_bss_86].port; + if (--temp_r31->unk1A == 0) { + temp_r31->unk1A = 60; + if (--temp_r31->unk18 >= 0) { + MGSeqParamSet(temp_r31->unk1C, 1, temp_r31->unk18); + } + } + if (!GWPlayer[lbl_1_bss_86].com) { + temp_r29 = HuPadBtnDown[temp_r28]; + } + else { + if (--temp_r31->unk20 == 0) { + temp_r29 = PAD_BUTTON_A; + } + } + if ((temp_r29 & PAD_BUTTON_A) || temp_r31->unk18 < 0) { + MGSeqParamSet(temp_r31->unk1C, 2, -1); + HuWinKill(temp_r31->unk1E); + BoardPlayerMotionShiftSet(lbl_1_bss_86, 4, 0, 5, 0); + temp_r31->unk0 = 10; + temp_r31->unk4 = 0; + if (lbl_1_bss_A4->work[0] & 0x1) { + temp_r31->unk8 = 0; + } + else { + if (lbl_1_bss_A4->work[0] & 0x2) { + temp_r31->unk8 = 1; + } + else { + temp_r31->unk8 = 2; + } + } + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + sp8 = lbl_1_bss_94; + VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); + VECSubtract(&sp8, &sp14, &temp_r31->unkC); + VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.05f); + object->work[0] = 1; + object->func = fn_1_5634; + } } void fn_1_5868(omObjData *object); void fn_1_5634(omObjData *object) { - Vec sp14; - Vec sp8; - float temp_f31; - WorkMGCoin *temp_r31; - temp_r31 = object->data; - if(object->work[0] == 1) { - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - temp_r31->unkC.y = temp_r31->unk0-(0.075f*(0.25f*(temp_r31->unk4*temp_r31->unk4))); - temp_r31->unk4++; - VECAdd(&sp14, &temp_r31->unkC, &sp14); - if(sp14.y <= lbl_1_bss_94.y) { - sp14.y = lbl_1_bss_94.y; - } - BoardPlayerPosSetV(lbl_1_bss_86, &sp14); - sp8 = lbl_1_bss_94; - VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); - sp8.y = sp14.y = 0; - VECSubtract(&sp8, &sp14, &sp14); - temp_f31 = VECMag(&sp14); - if(temp_f31 <= 1.0f) { - BoardPlayerMotionStart(lbl_1_bss_86, object->motion[0], 0); - object->work[0] = 0; - } - } else { - if(BoardPlayerMotionTimeGet(lbl_1_bss_86) >= BoardPlayerMotionMaxTimeGet(lbl_1_bss_86)) { - temp_r31->unk0 = -5; - temp_r31->unk4 = 0; - temp_r31->unkC.x = temp_r31->unkC.z = 0; - object->func = fn_1_5868; - } - } + Vec sp14; + Vec sp8; + float temp_f31; + WorkMGCoin *temp_r31; + temp_r31 = object->data; + if (object->work[0] == 1) { + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + temp_r31->unkC.y = temp_r31->unk0 - (0.075f * (0.25f * (temp_r31->unk4 * temp_r31->unk4))); + temp_r31->unk4++; + VECAdd(&sp14, &temp_r31->unkC, &sp14); + if (sp14.y <= lbl_1_bss_94.y) { + sp14.y = lbl_1_bss_94.y; + } + BoardPlayerPosSetV(lbl_1_bss_86, &sp14); + sp8 = lbl_1_bss_94; + VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); + sp8.y = sp14.y = 0; + VECSubtract(&sp8, &sp14, &sp14); + temp_f31 = VECMag(&sp14); + if (temp_f31 <= 1.0f) { + BoardPlayerMotionStart(lbl_1_bss_86, object->motion[0], 0); + object->work[0] = 0; + } + } + else { + if (BoardPlayerMotionTimeGet(lbl_1_bss_86) >= BoardPlayerMotionMaxTimeGet(lbl_1_bss_86)) { + temp_r31->unk0 = -5; + temp_r31->unk4 = 0; + temp_r31->unkC.x = temp_r31->unkC.z = 0; + object->func = fn_1_5868; + } + } } void fn_1_5AC0(omObjData *object); void fn_1_5868(omObjData *object) { - Vec sp14; - Vec sp8; - WorkMGCoin *temp_r31; - temp_r31 = object->data; - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - temp_r31->unkC.y = temp_r31->unk0-(0.075f*(0.25f*(temp_r31->unk4*temp_r31->unk4))); - temp_r31->unk4++; - VECAdd(&sp14, &temp_r31->unkC, &sp14); - sp8 = lbl_1_bss_94; - VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); - sp8.y += 16.0f; - if(sp14.y <= sp8.y) { - sp14.y = sp8.y; - } - BoardPlayerPosSetV(lbl_1_bss_86, &sp14); - if(sp14.y == sp8.y) { - BoardModelMotionTimeSet(lbl_1_bss_BC[temp_r31->unk8], 0); - BoardModelAttrReset(lbl_1_bss_BC[temp_r31->unk8], 0x40000002); - BoardPlayerMotionShiftSet(lbl_1_bss_86, object->motion[1], 0, 5, 0); - lbl_1_bss_A4->work[3] |= 1 << temp_r31->unk8; - temp_r31->unk0 = 5; - temp_r31->unk4 = 0; - sp8.x = object->trans.x; - sp8.y = object->trans.y; - sp8.z = object->trans.z; - VECSubtract(&sp8, &sp14, &temp_r31->unkC); - VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.03f); - HuAudFXPlay(1064); - object->func = fn_1_5AC0; - - } + Vec sp14; + Vec sp8; + WorkMGCoin *temp_r31; + temp_r31 = object->data; + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + temp_r31->unkC.y = temp_r31->unk0 - (0.075f * (0.25f * (temp_r31->unk4 * temp_r31->unk4))); + temp_r31->unk4++; + VECAdd(&sp14, &temp_r31->unkC, &sp14); + sp8 = lbl_1_bss_94; + VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); + sp8.y += 16.0f; + if (sp14.y <= sp8.y) { + sp14.y = sp8.y; + } + BoardPlayerPosSetV(lbl_1_bss_86, &sp14); + if (sp14.y == sp8.y) { + BoardModelMotionTimeSet(lbl_1_bss_BC[temp_r31->unk8], 0); + BoardModelAttrReset(lbl_1_bss_BC[temp_r31->unk8], 0x40000002); + BoardPlayerMotionShiftSet(lbl_1_bss_86, object->motion[1], 0, 5, 0); + lbl_1_bss_A4->work[3] |= 1 << temp_r31->unk8; + temp_r31->unk0 = 5; + temp_r31->unk4 = 0; + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z; + VECSubtract(&sp8, &sp14, &temp_r31->unkC); + VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.03f); + HuAudFXPlay(1064); + object->func = fn_1_5AC0; + } } void fn_1_5C84(omObjData *object); void fn_1_5AC0(omObjData *object) { - float temp_f31; - float temp_f30; - Vec sp14; - Vec sp8; - WorkMGCoin *temp_r30; - temp_r30 = object->data; - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - temp_r30->unkC.y = temp_r30->unk0-(0.075f*(0.25f*(temp_r30->unk4*temp_r30->unk4))); - temp_r30->unk4++; - VECAdd(&sp14, &temp_r30->unkC, &sp14); - sp8.x = object->trans.x; - sp8.y = 0; - sp8.z = object->trans.z; - temp_f30 = sp14.y; - sp14.y = 0; - VECSubtract(&sp8, &sp14, &sp8); - sp14.y = temp_f30; - temp_f31 = VECMag(&sp8); - if(temp_f31 <= 1.0f) { - temp_r30->unkC.x = temp_r30->unkC.z = 0; - } - if(sp14.y <= object->trans.y) { - sp14.x = object->trans.x; - sp14.y = object->trans.y; - sp14.z = object->trans.z; - BoardPlayerIdleSet(lbl_1_bss_86); - if(temp_r30->unk8 != 2) { - object->func = NULL; - } else { - object->work[1] = 8; - object->func = fn_1_5C84; - } - } - BoardPlayerPosSetV(lbl_1_bss_86, &sp14); + float temp_f31; + float temp_f30; + Vec sp14; + Vec sp8; + WorkMGCoin *temp_r30; + temp_r30 = object->data; + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + temp_r30->unkC.y = temp_r30->unk0 - (0.075f * (0.25f * (temp_r30->unk4 * temp_r30->unk4))); + temp_r30->unk4++; + VECAdd(&sp14, &temp_r30->unkC, &sp14); + sp8.x = object->trans.x; + sp8.y = 0; + sp8.z = object->trans.z; + temp_f30 = sp14.y; + sp14.y = 0; + VECSubtract(&sp8, &sp14, &sp8); + sp14.y = temp_f30; + temp_f31 = VECMag(&sp8); + if (temp_f31 <= 1.0f) { + temp_r30->unkC.x = temp_r30->unkC.z = 0; + } + if (sp14.y <= object->trans.y) { + sp14.x = object->trans.x; + sp14.y = object->trans.y; + sp14.z = object->trans.z; + BoardPlayerIdleSet(lbl_1_bss_86); + if (temp_r30->unk8 != 2) { + object->func = NULL; + } + else { + object->work[1] = 8; + object->func = fn_1_5C84; + } + } + BoardPlayerPosSetV(lbl_1_bss_86, &sp14); } void fn_1_5C84(omObjData *object) { - WorkMGCoin *sp8; - sp8 = object->data; - if(object->work[1] != 0) { - if(--object->work[1] == 0) { - BoardPlayerMotBlendSet(lbl_1_bss_86, 0, 15); - object->func = NULL; - } - (void)object; - } else { - (void)object; - } -} \ No newline at end of file + WorkMGCoin *sp8; + sp8 = object->data; + if (object->work[1] != 0) { + if (--object->work[1] == 0) { + BoardPlayerMotBlendSet(lbl_1_bss_86, 0, 15); + object->func = NULL; + } + (void)object; + } + else { + (void)object; + } +} diff --git a/src/REL/w02Dll/mg_item.c b/src/REL/w02Dll/mg_item.c index a03f2ed7..dd5815d2 100644 --- a/src/REL/w02Dll/mg_item.c +++ b/src/REL/w02Dll/mg_item.c @@ -1,45 +1,35 @@ #include "REL/w02Dll.h" #include "game/audio.h" -#include "game/pad.h" -#include "game/objsub.h" -#include "game/frand.h" -#include "game/objsub.h" #include "game/chrman.h" +#include "game/frand.h" #include "game/hsfdraw.h" +#include "game/objsub.h" +#include "game/pad.h" #include "ext_math.h" #include "game/minigame_seq.h" s32 lbl_1_data_428[14] = { - 0x0007006D, - 0x0007006E, - 0x0007006F, - 0x00070070, - 0x00070071, - 0x00070072, - 0x00070073, - 0x00070074, - 0x00070076, - 0x00070077, - 0x00070078, - 0x00070079, - 0x0007007A, - 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73), + DATA_MAKE_NUM(DATADIR_BOARD, 0x74), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), }; -char *lbl_1_data_474[3] = { - "item", - "item1", - "item2" -}; +char *lbl_1_data_474[3] = { "item", "item1", "item2" }; -s32 lbl_1_data_480[] = { - 0x760018, - 0x760019, - 0x76001A, - -1 -}; +s32 lbl_1_data_480[] = { DATA_MAKE_NUM(DATADIR_W02, 0x18), DATA_MAKE_NUM(DATADIR_W02, 0x19), DATA_MAKE_NUM(DATADIR_W02, 0x1A), -1 }; u16 lbl_1_bss_198; s16 lbl_1_bss_196; @@ -62,28 +52,28 @@ AnimData *lbl_1_bss_C8; void fn_1_5CF8(void) { - BoardModelVisibilitySet(lbl_1_bss_30[10], 1); + BoardModelVisibilitySet(lbl_1_bss_30[10], 1); } typedef struct work_mgitem { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - s16 unkC; + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; } WorkMGItem; typedef struct work_mgitem_player { - Vec unk0[3]; - s16 unk24[3]; - s16 unk2A[3]; - float unk30[2]; - float unk38[2]; - s16 unk40[2]; - Vec unk44[3]; - s16 unk68; + Vec unk0[3]; + s16 unk24[3]; + s16 unk2A[3]; + float unk30[2]; + float unk38[2]; + s16 unk40[2]; + Vec unk44[3]; + s16 unk68; } WorkMGItemPlayer; void fn_1_8570(void); @@ -93,285 +83,291 @@ void fn_1_606C(omObjData *object); void fn_1_5D28(void) { - Vec spC; - WorkMGItem *sp8; - lbl_1_bss_196 = GWSystem.player_curr; - BoardPlayerPosGet(lbl_1_bss_196, &spC); - BoardPlayerPosLerpStart(lbl_1_bss_196, &spC, &lbl_1_bss_DC[1], 20); - while(GWPlayer[lbl_1_bss_196].moving) { - HuPrcVSleep(); - } - BoardPlayerIdleSet(lbl_1_bss_196); - HuPrcSleep(120); - BoardAudSeqPause(0, 1, 1000); - HuAudFXPlay(781); - fn_1_8570(); - HuPrcSleep(60); - lbl_1_bss_104 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_5F08); - lbl_1_bss_108 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_606C); - lbl_1_bss_10C = omAddObjEx(boardObjMan, 257, 0, 0, -1, NULL); - lbl_1_bss_108->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItemPlayer), MEMORY_DEFAULT_NUM); - lbl_1_bss_10C->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItem), MEMORY_DEFAULT_NUM); - sp8 = lbl_1_bss_10C->data; - lbl_1_bss_198 = 0; + Vec spC; + WorkMGItem *sp8; + lbl_1_bss_196 = GWSystem.player_curr; + BoardPlayerPosGet(lbl_1_bss_196, &spC); + BoardPlayerPosLerpStart(lbl_1_bss_196, &spC, &lbl_1_bss_DC[1], 20); + while (GWPlayer[lbl_1_bss_196].moving) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_196); + HuPrcSleep(120); + BoardAudSeqPause(0, 1, 1000); + HuAudFXPlay(781); + fn_1_8570(); + HuPrcSleep(60); + lbl_1_bss_104 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_5F08); + lbl_1_bss_108 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_606C); + lbl_1_bss_10C = omAddObjEx(boardObjMan, 257, 0, 0, -1, NULL); + lbl_1_bss_108->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItemPlayer), MEMORY_DEFAULT_NUM); + lbl_1_bss_10C->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItem), MEMORY_DEFAULT_NUM); + sp8 = lbl_1_bss_10C->data; + lbl_1_bss_198 = 0; } void fn_1_602C(void); void fn_1_5F08(omObjData *object) { - if(lbl_1_bss_198 && BoardMGDoneFlagGet() == 1) { - fn_1_602C(); - omDelObjEx(boardObjMan, object); - } + if (lbl_1_bss_198 && BoardMGDoneFlagGet() == 1) { + fn_1_602C(); + omDelObjEx(boardObjMan, object); + } } void fn_1_5F60(void) { - lbl_1_bss_198 = 1; - BoardMGExit(); + lbl_1_bss_198 = 1; + BoardMGExit(); } void fn_1_5F90(void) { - s32 i; - for(i=0; i<3; i++) { - BoardModelKill(lbl_1_bss_184[i]); - BoardModelKill(lbl_1_bss_18A[i]); - } - if(lbl_1_bss_C8) { - HuSprAnimKill(lbl_1_bss_C8); - lbl_1_bss_C8 = NULL; - } + s32 i; + for (i = 0; i < 3; i++) { + BoardModelKill(lbl_1_bss_184[i]); + BoardModelKill(lbl_1_bss_18A[i]); + } + if (lbl_1_bss_C8) { + HuSprAnimKill(lbl_1_bss_C8); + lbl_1_bss_C8 = NULL; + } } void fn_1_602C(void) { - omDelObjEx(boardObjMan, lbl_1_bss_10C); - BoardMGDoneFlagSet(0); + omDelObjEx(boardObjMan, lbl_1_bss_10C); + BoardMGDoneFlagSet(0); } void fn_1_6248(omObjData *object); void fn_1_606C(omObjData *object) { - WorkMGItemPlayer *temp_r31 = object->data; - temp_r31->unk24[0] = lbl_1_bss_18A[0]; - temp_r31->unk24[1] = lbl_1_bss_18A[1]; - temp_r31->unk24[2] = lbl_1_bss_18A[2]; - BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[0]); - temp_r31->unk44[0].x -= lbl_1_bss_110; - BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[1]); - temp_r31->unk44[1].x += lbl_1_bss_110; - BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[2]); - BoardMusStart(1, 19, 127, 0); - object->work[0] = 300; - object->work[1] = 0; - object->func = fn_1_6248; + WorkMGItemPlayer *temp_r31 = object->data; + temp_r31->unk24[0] = lbl_1_bss_18A[0]; + temp_r31->unk24[1] = lbl_1_bss_18A[1]; + temp_r31->unk24[2] = lbl_1_bss_18A[2]; + BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[0]); + temp_r31->unk44[0].x -= lbl_1_bss_110; + BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[1]); + temp_r31->unk44[1].x += lbl_1_bss_110; + BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[2]); + BoardMusStart(1, 19, 127, 0); + object->work[0] = 300; + object->work[1] = 0; + object->func = fn_1_6248; } void fn_1_616C(s16 arg0, s16 arg1) { - s32 temp; - temp = lbl_1_bss_190[arg0]; - lbl_1_bss_190[arg0] = lbl_1_bss_190[arg1]; - lbl_1_bss_190[arg1] = temp; - temp = lbl_1_bss_184[arg0]; - lbl_1_bss_184[arg0] = lbl_1_bss_184[arg1]; - lbl_1_bss_184[arg1] = temp; + s32 temp; + temp = lbl_1_bss_190[arg0]; + lbl_1_bss_190[arg0] = lbl_1_bss_190[arg1]; + lbl_1_bss_190[arg1] = temp; + temp = lbl_1_bss_184[arg0]; + lbl_1_bss_184[arg0] = lbl_1_bss_184[arg1]; + lbl_1_bss_184[arg1] = temp; } void fn_1_6AB0(omObjData *object); void fn_1_6248(omObjData *object) { - float temp_f31; - float temp_f30; - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - u8 sp8[8] = { - 0, 1, 1, 2, - 0, 1, 0, 2 - }; - WorkMGItemPlayer *temp_r31 = object->data; - s32 temp_r30; - s32 temp_r28; - if(object->work[0]) { - object->work[0]--; - } - if(object->work[1] == 0) { - if(object->work[0] == 0) { - object->func = fn_1_6AB0; - } - temp_r28 = sp8[frand() & 0x7]; - switch(temp_r28) { - case 0: - temp_r31->unk2A[0] = temp_r31->unk24[0]; - temp_r31->unk2A[1] = temp_r31->unk24[1]; - sp28 = lbl_1_bss_160[0]; - sp34 = lbl_1_bss_160[1]; - temp_f31 = 15; - break; - - case 1: - temp_r31->unk2A[0] = temp_r31->unk24[1]; - temp_r31->unk2A[1] = temp_r31->unk24[2]; - sp28 = lbl_1_bss_160[1]; - sp34 = lbl_1_bss_160[2]; - temp_f31 = 15; - break; - - case 2: - temp_r31->unk2A[0] = temp_r31->unk24[0]; - temp_r31->unk2A[1] = temp_r31->unk24[2]; - temp_f31 = 22.5f; - break; - } - temp_r31->unk68 = temp_r28; - temp_r31->unk30[0] = 180; - temp_r31->unk30[1] = 0; - if(temp_r28 != 2) { - temp_r31->unk40[0] = frandmod(3); - temp_r31->unk40[1] = frandmod(3); - while(temp_r31->unk40[1] == temp_r31->unk40[0]) { - temp_r31->unk40[1] = frandmod(3); - } - VECSubtract(&sp34, &sp28, &temp_r31->unk0[0]); - VECScale(&temp_r31->unk0[0], &temp_r31->unk0[0], 1.0f/temp_f31); - VECSubtract(&sp28, &sp34, &temp_r31->unk0[1]); - VECScale(&temp_r31->unk0[1], &temp_r31->unk0[1], 1.0f/temp_f31); - } else { - temp_r31->unk40[0] = frandmod(2); - temp_r31->unk40[1] = temp_r31->unk40[0]^1; - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r31->unk40[temp_r30] == 0) { - temp_r31->unk38[temp_r30] = 180.0f/temp_f31; - } else { - temp_r31->unk38[temp_r30] = -180.0f/temp_f31; - } - if(temp_r30 == 1) { - temp_r31->unk38[temp_r30] = -temp_r31->unk38[temp_r30]; - } - } - object->work[2] = temp_f31; - object->work[1] = 1; - BoardModelMotionStart(temp_r31->unk2A[temp_r30], 2, 0x40000001); - BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 3.0f); - } else { - for(temp_r30=0; temp_r30<2; temp_r30++) { - BoardModelPosGet(temp_r31->unk2A[temp_r30], &sp1C); - sp10 = sp1C; - if(temp_r31->unk68 != 2) { - temp_f30 = lbl_1_bss_110; - } else { - temp_f30 = 2.0f*lbl_1_bss_110; - } - if(temp_r31->unk40[temp_r30] != 2) { - sp1C.x = temp_r31->unk44[temp_r31->unk68].x+(temp_f30*cosd(temp_r31->unk30[temp_r30])); - sp1C.z = temp_r31->unk44[temp_r31->unk68].z+(temp_f30*sind(temp_r31->unk30[temp_r30])); - temp_r31->unk30[temp_r30] += temp_r31->unk38[temp_r30]; - } else { - VECAdd(&sp1C, &temp_r31->unk0[temp_r30], &sp1C); - } - BoardModelPosSetV(temp_r31->unk2A[temp_r30], &sp1C); - VECSubtract(&sp1C, &sp10, &sp10); - BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); - sp1C.y = atan2d(sp10.x, sp10.z); - BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); - } - if(--object->work[2] == 0) { - object->work[1] = 0; - BoardModelMotionStart(temp_r31->unk2A[temp_r30], 1, 0x40000001); - BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 1.0f); - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r31->unk40[temp_r30] == 0) { - BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); - sp1C.y = 0; - BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); - } else if(temp_r31->unk40[temp_r30] == 1) { - BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); - sp1C.y = 180; - BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); - } - } - switch(temp_r31->unk68) { - case 0: - temp_r31->unk24[0] = temp_r31->unk2A[1]; - temp_r31->unk24[1] = temp_r31->unk2A[0]; - fn_1_616C(0, 1); - break; - - case 1: - temp_r31->unk24[1] = temp_r31->unk2A[1]; - temp_r31->unk24[2] = temp_r31->unk2A[0]; - fn_1_616C(1, 2); - break; - - case 2: - temp_r31->unk24[0] = temp_r31->unk2A[1]; - temp_r31->unk24[2] = temp_r31->unk2A[0]; - fn_1_616C(0, 2); - break; - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - BoardModelPosSetV(temp_r31->unk24[temp_r30], &lbl_1_bss_160[temp_r30]); - } - } - } + float temp_f31; + float temp_f30; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + u8 sp8[8] = { 0, 1, 1, 2, 0, 1, 0, 2 }; + WorkMGItemPlayer *temp_r31 = object->data; + s32 temp_r30; + s32 temp_r28; + if (object->work[0]) { + object->work[0]--; + } + if (object->work[1] == 0) { + if (object->work[0] == 0) { + object->func = fn_1_6AB0; + } + temp_r28 = sp8[frand() & 0x7]; + switch (temp_r28) { + case 0: + temp_r31->unk2A[0] = temp_r31->unk24[0]; + temp_r31->unk2A[1] = temp_r31->unk24[1]; + sp28 = lbl_1_bss_160[0]; + sp34 = lbl_1_bss_160[1]; + temp_f31 = 15; + break; + + case 1: + temp_r31->unk2A[0] = temp_r31->unk24[1]; + temp_r31->unk2A[1] = temp_r31->unk24[2]; + sp28 = lbl_1_bss_160[1]; + sp34 = lbl_1_bss_160[2]; + temp_f31 = 15; + break; + + case 2: + temp_r31->unk2A[0] = temp_r31->unk24[0]; + temp_r31->unk2A[1] = temp_r31->unk24[2]; + temp_f31 = 22.5f; + break; + } + temp_r31->unk68 = temp_r28; + temp_r31->unk30[0] = 180; + temp_r31->unk30[1] = 0; + if (temp_r28 != 2) { + temp_r31->unk40[0] = frandmod(3); + temp_r31->unk40[1] = frandmod(3); + while (temp_r31->unk40[1] == temp_r31->unk40[0]) { + temp_r31->unk40[1] = frandmod(3); + } + VECSubtract(&sp34, &sp28, &temp_r31->unk0[0]); + VECScale(&temp_r31->unk0[0], &temp_r31->unk0[0], 1.0f / temp_f31); + VECSubtract(&sp28, &sp34, &temp_r31->unk0[1]); + VECScale(&temp_r31->unk0[1], &temp_r31->unk0[1], 1.0f / temp_f31); + } + else { + temp_r31->unk40[0] = frandmod(2); + temp_r31->unk40[1] = temp_r31->unk40[0] ^ 1; + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r31->unk40[temp_r30] == 0) { + temp_r31->unk38[temp_r30] = 180.0f / temp_f31; + } + else { + temp_r31->unk38[temp_r30] = -180.0f / temp_f31; + } + if (temp_r30 == 1) { + temp_r31->unk38[temp_r30] = -temp_r31->unk38[temp_r30]; + } + } + object->work[2] = temp_f31; + object->work[1] = 1; + BoardModelMotionStart(temp_r31->unk2A[temp_r30], 2, 0x40000001); + BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 3.0f); + } + else { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + BoardModelPosGet(temp_r31->unk2A[temp_r30], &sp1C); + sp10 = sp1C; + if (temp_r31->unk68 != 2) { + temp_f30 = lbl_1_bss_110; + } + else { + temp_f30 = 2.0f * lbl_1_bss_110; + } + if (temp_r31->unk40[temp_r30] != 2) { + sp1C.x = temp_r31->unk44[temp_r31->unk68].x + (temp_f30 * cosd(temp_r31->unk30[temp_r30])); + sp1C.z = temp_r31->unk44[temp_r31->unk68].z + (temp_f30 * sind(temp_r31->unk30[temp_r30])); + temp_r31->unk30[temp_r30] += temp_r31->unk38[temp_r30]; + } + else { + VECAdd(&sp1C, &temp_r31->unk0[temp_r30], &sp1C); + } + BoardModelPosSetV(temp_r31->unk2A[temp_r30], &sp1C); + VECSubtract(&sp1C, &sp10, &sp10); + BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); + sp1C.y = atan2d(sp10.x, sp10.z); + BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); + } + if (--object->work[2] == 0) { + object->work[1] = 0; + BoardModelMotionStart(temp_r31->unk2A[temp_r30], 1, 0x40000001); + BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 1.0f); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r31->unk40[temp_r30] == 0) { + BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); + sp1C.y = 0; + BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); + } + else if (temp_r31->unk40[temp_r30] == 1) { + BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); + sp1C.y = 180; + BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); + } + } + switch (temp_r31->unk68) { + case 0: + temp_r31->unk24[0] = temp_r31->unk2A[1]; + temp_r31->unk24[1] = temp_r31->unk2A[0]; + fn_1_616C(0, 1); + break; + + case 1: + temp_r31->unk24[1] = temp_r31->unk2A[1]; + temp_r31->unk24[2] = temp_r31->unk2A[0]; + fn_1_616C(1, 2); + break; + + case 2: + temp_r31->unk24[0] = temp_r31->unk2A[1]; + temp_r31->unk24[2] = temp_r31->unk2A[0]; + fn_1_616C(0, 2); + break; + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + BoardModelPosSetV(temp_r31->unk24[temp_r30], &lbl_1_bss_160[temp_r30]); + } + } + } } void fn_1_6CA4(omObjData *object); void fn_1_6AB0(omObjData *object) { - Vec sp8; - s32 temp_r31; - s32 temp_r30; - temp_r30 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelRotGet(lbl_1_bss_18A[temp_r31], &sp8); - if(sp8.y < 0.0f) { - sp8.y += 360.0f; - } - if(0.0f == sp8.y) { - temp_r30++; - continue; - } - if(sp8.y < 180.0f) { - if(sp8.y < -10.0f) { - sp8.y = 0; - } else { - sp8.y -= 10.0f; - } - } else { - if(360.0f-sp8.y < 10.0f) { - sp8.y = 0; - } else { - sp8.y += 10.0f; - } - } - BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &sp8); - } - if(temp_r30 == 3) { - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - } - object->work[0] = MGSeqStartCreate(); - object->func = fn_1_6CA4; - } + Vec sp8; + s32 temp_r31; + s32 temp_r30; + temp_r30 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelRotGet(lbl_1_bss_18A[temp_r31], &sp8); + if (sp8.y < 0.0f) { + sp8.y += 360.0f; + } + if (0.0f == sp8.y) { + temp_r30++; + continue; + } + if (sp8.y < 180.0f) { + if (sp8.y < -10.0f) { + sp8.y = 0; + } + else { + sp8.y -= 10.0f; + } + } + else { + if (360.0f - sp8.y < 10.0f) { + sp8.y = 0; + } + else { + sp8.y += 10.0f; + } + } + BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &sp8); + } + if (temp_r30 == 3) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + } + object->work[0] = MGSeqStartCreate(); + object->func = fn_1_6CA4; + } } void fn_1_73C8(omObjData *object); void fn_1_6CA4(omObjData *object) { - if(!MGSeqStatGet(object->work[0])) { - lbl_1_bss_10C->func = fn_1_73C8; - object->func = NULL; - } + if (!MGSeqStatGet(object->work[0])) { + lbl_1_bss_10C->func = fn_1_73C8; + object->func = NULL; + } } void fn_1_6E34(omObjData *object); @@ -380,161 +376,161 @@ void fn_1_8DAC(void); void fn_1_6D04(omObjData *object) { - Vec sp8; - BoardModelRotGet(lbl_1_bss_18A[object->work[0]], &sp8); - sp8.y += 8.0f; - if(sp8.y >= 360.0f) { - sp8.y = 0.0f; - HuAudFXPlay(784); - lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); - HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); - *((u32 *)&lbl_1_bss_100->user_data) = (1 << object->work[0])|0x10000000; - lbl_1_bss_D8 = HuAudFXPlay(863); - object->func = fn_1_6E34; - } - BoardModelRotSetV(lbl_1_bss_18A[object->work[0]], &sp8); + Vec sp8; + BoardModelRotGet(lbl_1_bss_18A[object->work[0]], &sp8); + sp8.y += 8.0f; + if (sp8.y >= 360.0f) { + sp8.y = 0.0f; + HuAudFXPlay(784); + lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); + HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); + *((u32 *)&lbl_1_bss_100->user_data) = (1 << object->work[0]) | 0x10000000; + lbl_1_bss_D8 = HuAudFXPlay(863); + object->func = fn_1_6E34; + } + BoardModelRotSetV(lbl_1_bss_18A[object->work[0]], &sp8); } void fn_1_6EA8(void); void fn_1_6E34(omObjData *object) { - Process *temp_r31; - if((u32)lbl_1_bss_100->user_data & 0x40000000) { - temp_r31 = HuPrcCreate(fn_1_6EA8, 8196, 6144, 0); - temp_r31->user_data = object; - object->func = NULL; - } + Process *temp_r31; + if ((u32)lbl_1_bss_100->user_data & 0x40000000) { + temp_r31 = HuPrcCreate(fn_1_6EA8, 8196, 6144, 0); + temp_r31->user_data = object; + object->func = NULL; + } } void fn_1_72E4(omObjData *object); void fn_1_6EA8(void) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f31; - float temp_f30; - float temp_f29; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - - temp_r31 = lbl_1_bss_108->work[0]; - BoardWinCreate(2, MAKE_MESSID(19, 24), 4); - BoardWinInsertMesSet(lbl_1_bss_190[temp_r31]+0x80000, 1); - BoardWinWait(); - BoardWinKill(); - BoardPlayerPosGet(lbl_1_bss_196, &sp20); - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - sp20.y = sp2C.y = 0; - VECSubtract(&sp20, &sp2C, &sp14); - temp_f30 = VECMag(&sp14); - VECScale(&sp14, &sp14, 1.0f/60.0f); - for(temp_r30=0; temp_r30<60; temp_r30++) { - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - VECAdd(&sp2C, &sp14, &sp2C); - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); - HuPrcVSleep(); - } - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - sp2C.x = sp20.x; - sp2C.z = sp20.z; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); - BoardPlayerMotBlendSet(lbl_1_bss_196, 0, 15); - while(!BoardPlayerMotBlendCheck(lbl_1_bss_196)) { - HuPrcVSleep(); - } - HuPrcKill(lbl_1_bss_100); - lbl_1_bss_100 = NULL; - HuPrcVSleep(); - HuAudFXPlay(781); - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - BoardModelScaleGet(lbl_1_bss_184[temp_r31], &sp8); - temp_f31 = sp8.x; - temp_f29 = -0.04f; - temp_f30 = (sp20.y-sp2C.y)/30.0f; - temp_r29 = 0; - HuAudFXFadeOut(lbl_1_bss_D8, 499); - while(!temp_r29) { - sp2C.y += temp_f30; - temp_f31 += temp_f29; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - temp_r29 = 1; - } - sp8.x = sp8.y = sp8.z = temp_f31; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp8); - HuPrcVSleep(); - } - HuAudFXStop(lbl_1_bss_D8); - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); - BoardPlayerItemAdd(lbl_1_bss_196, lbl_1_bss_190[temp_r31]); - omVibrate(lbl_1_bss_196, 12, 6, 6); - temp_r28 = HuAudSStreamPlay(2); - BoardPlayerMotionShiftSet(lbl_1_bss_196, 7, 0, 5, 0); - while(!BoardPlayerMotionEndCheck(lbl_1_bss_196)) { - HuPrcVSleep(); - } - HuPrcSleep(30); - while(HuAudSStreamStatGet(temp_r28)) { - HuPrcVSleep(); - } - BoardAudSeqPause(0, 0, 1000); - HuAudFXPlay(68); - fn_1_121C(0x130019); - lbl_1_bss_108->func = fn_1_72E4; - HuPrcKill(NULL); - while(1) { - HuPrcVSleep(); - } + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + float temp_f30; + float temp_f29; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + + temp_r31 = lbl_1_bss_108->work[0]; + BoardWinCreate(2, MAKE_MESSID(19, 24), 4); + BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_190[temp_r31]), 1); + BoardWinWait(); + BoardWinKill(); + BoardPlayerPosGet(lbl_1_bss_196, &sp20); + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + sp20.y = sp2C.y = 0; + VECSubtract(&sp20, &sp2C, &sp14); + temp_f30 = VECMag(&sp14); + VECScale(&sp14, &sp14, 1.0f / 60.0f); + for (temp_r30 = 0; temp_r30 < 60; temp_r30++) { + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + VECAdd(&sp2C, &sp14, &sp2C); + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); + HuPrcVSleep(); + } + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + sp2C.x = sp20.x; + sp2C.z = sp20.z; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); + BoardPlayerMotBlendSet(lbl_1_bss_196, 0, 15); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_196)) { + HuPrcVSleep(); + } + HuPrcKill(lbl_1_bss_100); + lbl_1_bss_100 = NULL; + HuPrcVSleep(); + HuAudFXPlay(781); + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + BoardModelScaleGet(lbl_1_bss_184[temp_r31], &sp8); + temp_f31 = sp8.x; + temp_f29 = -0.04f; + temp_f30 = (sp20.y - sp2C.y) / 30.0f; + temp_r29 = 0; + HuAudFXFadeOut(lbl_1_bss_D8, 499); + while (!temp_r29) { + sp2C.y += temp_f30; + temp_f31 += temp_f29; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + temp_r29 = 1; + } + sp8.x = sp8.y = sp8.z = temp_f31; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp8); + HuPrcVSleep(); + } + HuAudFXStop(lbl_1_bss_D8); + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); + BoardPlayerItemAdd(lbl_1_bss_196, lbl_1_bss_190[temp_r31]); + omVibrate(lbl_1_bss_196, 12, 6, 6); + temp_r28 = HuAudSStreamPlay(2); + BoardPlayerMotionShiftSet(lbl_1_bss_196, 7, 0, 5, 0); + while (!BoardPlayerMotionEndCheck(lbl_1_bss_196)) { + HuPrcVSleep(); + } + HuPrcSleep(30); + while (HuAudSStreamStatGet(temp_r28)) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + HuAudFXPlay(68); + fn_1_121C(MAKE_MESSID(0x13, 0x19)); + lbl_1_bss_108->func = fn_1_72E4; + HuPrcKill(NULL); + while (1) { + HuPrcVSleep(); + } } void fn_1_72E4(omObjData *object) { - fn_1_5F60(); - omDelObjEx(boardObjMan, object); + fn_1_5F60(); + omDelObjEx(boardObjMan, object); } void fn_1_732C(s32 arg0) { - lbl_1_bss_108->work[0] = arg0; - lbl_1_bss_108->func = fn_1_6D04; + lbl_1_bss_108->work[0] = arg0; + lbl_1_bss_108->func = fn_1_6D04; } void fn_1_7358(WorkMGItem *arg0) { - if(--arg0->unk2 == 0) { - arg0->unk2 = 60; - if(--arg0->unk0 >= 0) { - MGSeqParamSet(arg0->unk4, 1, arg0->unk0); - } - } + if (--arg0->unk2 == 0) { + arg0->unk2 = 60; + if (--arg0->unk0 >= 0) { + MGSeqParamSet(arg0->unk4, 1, arg0->unk0); + } + } } void fn_1_74E4(omObjData *object); void fn_1_73C8(omObjData *object) { - float sp8[2]; - WorkMGItem *temp_r31; - temp_r31 = object->data; - temp_r31->unk0 = 5; - temp_r31->unk2 = 60; - temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk0, 288, 64); - HuWinMesMaxSizeGet(1, sp8, 0x13001B); - temp_r31->unk6 = HuWinCreate(-10000, 368, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk6, 0x13001B); - HuWinBGTPLvlSet(temp_r31->unk6, 0); - HuWinMesSpeedSet(temp_r31->unk6, 0); - temp_r31->unk8 = 1; - temp_r31->unkA = frandmod(30)+15; - temp_r31->unkC = 0; - object->func = fn_1_74E4; + float sp8[2]; + WorkMGItem *temp_r31; + temp_r31 = object->data; + temp_r31->unk0 = 5; + temp_r31->unk2 = 60; + temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk0, 288, 64); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1B)); + temp_r31->unk6 = HuWinCreate(-10000, 368, sp8[0], sp8[1], 0); + HuWinMesSet(temp_r31->unk6, MAKE_MESSID(0x13, 0x1B)); + HuWinBGTPLvlSet(temp_r31->unk6, 0); + HuWinMesSpeedSet(temp_r31->unk6, 0); + temp_r31->unk8 = 1; + temp_r31->unkA = frandmod(30) + 15; + temp_r31->unkC = 0; + object->func = fn_1_74E4; } void fn_1_7898(omObjData *arg0, s32 *arg1, s32 *arg2); @@ -544,413 +540,417 @@ void fn_1_7818(omObjData *object); void fn_1_74E4(omObjData *object) { - s32 spC; - s32 sp8; - WorkMGItem *temp_r31; - s32 temp_r29; - temp_r31 = object->data; - fn_1_7358(temp_r31); - temp_r29 = GWPlayer[lbl_1_bss_196].port; - if(GWPlayer[lbl_1_bss_196].com) { - fn_1_7898(object, &spC, &sp8); - } else { - spC = HuPadDStkRep[temp_r29]; - sp8 = HuPadBtnDown[temp_r29]; - } - if((sp8 & PAD_BUTTON_A) || temp_r31->unk0 < 0) { - MGSeqParamSet(temp_r31->unk4, 2, -1); - HuWinKill(temp_r31->unk6); - BoardPlayerMotBlendSet(lbl_1_bss_196, 180, 10); - BoardAudSeqFadeOut(1, 1000); - object->func = fn_1_7818; - } else if(spC & PAD_BUTTON_LEFT) { - if(temp_r31->unk8 != 0) { - temp_r31->unk8--; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8+1], &lbl_1_bss_DC[temp_r31->unk8], 12); - object->func = fn_1_7750; - } - } else if(spC & PAD_BUTTON_RIGHT) { - if(temp_r31->unk8 != 2) { - temp_r31->unk8++; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8-1], &lbl_1_bss_DC[temp_r31->unk8], 12); - object->func = fn_1_7750; - } - } + s32 spC; + s32 sp8; + WorkMGItem *temp_r31; + s32 temp_r29; + temp_r31 = object->data; + fn_1_7358(temp_r31); + temp_r29 = GWPlayer[lbl_1_bss_196].port; + if (GWPlayer[lbl_1_bss_196].com) { + fn_1_7898(object, &spC, &sp8); + } + else { + spC = HuPadDStkRep[temp_r29]; + sp8 = HuPadBtnDown[temp_r29]; + } + if ((sp8 & PAD_BUTTON_A) || temp_r31->unk0 < 0) { + MGSeqParamSet(temp_r31->unk4, 2, -1); + HuWinKill(temp_r31->unk6); + BoardPlayerMotBlendSet(lbl_1_bss_196, 180, 10); + BoardAudSeqFadeOut(1, 1000); + object->func = fn_1_7818; + } + else if (spC & PAD_BUTTON_LEFT) { + if (temp_r31->unk8 != 0) { + temp_r31->unk8--; + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + object->func = fn_1_7750; + } + } + else if (spC & PAD_BUTTON_RIGHT) { + if (temp_r31->unk8 != 2) { + temp_r31->unk8++; + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + object->func = fn_1_7750; + } + } } void fn_1_7750(omObjData *object) { - WorkMGItem *temp_r31 = object->data; - fn_1_7358(temp_r31); - if(!GWPlayer[lbl_1_bss_196].moving) { - BoardPlayerIdleSet(lbl_1_bss_196); - object->func = fn_1_74E4; - } + WorkMGItem *temp_r31 = object->data; + fn_1_7358(temp_r31); + if (!GWPlayer[lbl_1_bss_196].moving) { + BoardPlayerIdleSet(lbl_1_bss_196); + object->func = fn_1_74E4; + } } void fn_1_7818(omObjData *object) { - if(BoardPlayerMotBlendCheck(lbl_1_bss_196)) { - fn_1_732C(((WorkMGItem *)object->data)->unk8); - object->func = NULL; - } + if (BoardPlayerMotBlendCheck(lbl_1_bss_196)) { + fn_1_732C(((WorkMGItem *)object->data)->unk8); + object->func = NULL; + } } void fn_1_7898(omObjData *arg0, s32 *arg1, s32 *arg2) { - WorkMGItem *temp_r31; - s32 temp_r28; - temp_r31 = arg0->data; - *arg1 = *arg2 = 0; - if(temp_r31->unkA) { - temp_r31->unkA--; - } else { - temp_r31->unkA = frandmod(30)+15; - if(temp_r31->unkC == 4) { - *arg2 |= PAD_BUTTON_A; - } else if((s32)frandmod(10) < 4) { - *arg2 |= PAD_BUTTON_A; - } else { - temp_r28 = frandBool(); - if((temp_r28 == 0 && temp_r31->unk8 != 2) || temp_r31->unk8 == 0) { - *arg1 |= PAD_BUTTON_RIGHT; - } else if((temp_r28 == 1 && temp_r31->unk8 != 0) || temp_r31->unk8 == 2) { - *arg1 |= PAD_BUTTON_LEFT; - } - temp_r31->unkC++; - } - } + WorkMGItem *temp_r31; + s32 temp_r28; + temp_r31 = arg0->data; + *arg1 = *arg2 = 0; + if (temp_r31->unkA) { + temp_r31->unkA--; + } + else { + temp_r31->unkA = frandmod(30) + 15; + if (temp_r31->unkC == 4) { + *arg2 |= PAD_BUTTON_A; + } + else if ((s32)frandmod(10) < 4) { + *arg2 |= PAD_BUTTON_A; + } + else { + temp_r28 = frandBool(); + if ((temp_r28 == 0 && temp_r31->unk8 != 2) || temp_r31->unk8 == 0) { + *arg1 |= PAD_BUTTON_RIGHT; + } + else if ((temp_r28 == 1 && temp_r31->unk8 != 0) || temp_r31->unk8 == 2) { + *arg1 |= PAD_BUTTON_LEFT; + } + temp_r31->unkC++; + } + } } static inline void WriteTrans(s32 index, float value) { - Hu3DData[BoardModelIDGet(lbl_1_bss_184[index])].unk_F0[1][3] = value; + Hu3DData[BoardModelIDGet(lbl_1_bss_184[index])].unk_F0[1][3] = value; } void fn_1_79BC(s16 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f25; - Vec sp8; - s32 temp_r31; - s32 temp_r29; - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_190[temp_r31] = arg0[temp_r31]; - lbl_1_bss_184[temp_r31] = BoardModelCreate(lbl_1_data_428[lbl_1_bss_190[temp_r31]], NULL, 0); - if(lbl_1_bss_190[temp_r31] == 5) { - WriteTrans(temp_r31, -50.0f); - } - if(arg0[temp_r31] == 4) { - BoardModelMotionSpeedSet(lbl_1_bss_184[temp_r31], 0); - } - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); - if(arg0[temp_r31] == 11) { - BoardModelAttrSet(lbl_1_bss_184[temp_r31], 0x40000001); - } - } - if(lbl_1_bss_C8 == NULL) { - lbl_1_bss_C8 = HuSprAnimReadFile(0x120000); - HuSprAnimLock(lbl_1_bss_C8); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_18A[temp_r31] = BoardModelCreate(0x760017, lbl_1_data_480, 0); - lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].z = 0.1f; - lbl_1_bss_118[temp_r31].y = 0.1f; - lbl_1_bss_13C[temp_r31].x = 0; - lbl_1_bss_13C[temp_r31].y = lbl_1_bss_13C[temp_r31].z = 0; - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_30[10]), lbl_1_data_474[temp_r31], &lbl_1_bss_160[temp_r31]); - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_13C[temp_r31]); - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - } - lbl_1_bss_114 = lbl_1_bss_160[0].y; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelPosGet(lbl_1_bss_30[10], &lbl_1_bss_DC[temp_r31]); - lbl_1_bss_DC[temp_r31].x = lbl_1_bss_160[temp_r31].x; - lbl_1_bss_DC[temp_r31].z = lbl_1_bss_160[temp_r31].z+200.0f; - BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); - } - lbl_1_bss_110 = fabs(lbl_1_bss_160[0].x-lbl_1_bss_160[1].x)/2; - temp_f31 = 0; - temp_f29 = 20; - sp8.x = 0.04f; - sp8.y = 0.04f; - sp8.z = 0.04f; - for(temp_r29=0; temp_r29<3;) { - temp_f30 = temp_f29-((7.0f/60.0f)*(0.25f*(temp_f31*temp_f31))); - temp_f31++; - temp_r29 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_160[temp_r31].y += temp_f30; - if(lbl_1_bss_160[temp_r31].y < lbl_1_bss_114) { - lbl_1_bss_160[temp_r31].y = lbl_1_bss_114; - temp_r29++; - } - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - VECAdd(&lbl_1_bss_118[temp_r31], &sp8, &lbl_1_bss_118[temp_r31]); - if(lbl_1_bss_118[temp_r31].x > 0.7f) { - lbl_1_bss_118[temp_r31].x = 0.7f; - } - if(lbl_1_bss_118[temp_r31].y > 0.7f) { - lbl_1_bss_118[temp_r31].y = 0.7f; - } - if(lbl_1_bss_118[temp_r31].z > 0.7f) { - lbl_1_bss_118[temp_r31].z = 0.7f; - } - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].y = lbl_1_bss_118[temp_r31].z = 0.7f; - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 1, 0x40000001); - } - lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); - HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); - *((u32 *)&lbl_1_bss_100->user_data) = 7; - HuAudFXPlay(866); - while(((u32)lbl_1_bss_100->user_data & 0x40000000) == 0) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f25; + Vec sp8; + s32 temp_r31; + s32 temp_r29; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_190[temp_r31] = arg0[temp_r31]; + lbl_1_bss_184[temp_r31] = BoardModelCreate(lbl_1_data_428[lbl_1_bss_190[temp_r31]], NULL, 0); + if (lbl_1_bss_190[temp_r31] == 5) { + WriteTrans(temp_r31, -50.0f); + } + if (arg0[temp_r31] == 4) { + BoardModelMotionSpeedSet(lbl_1_bss_184[temp_r31], 0); + } + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); + if (arg0[temp_r31] == 11) { + BoardModelAttrSet(lbl_1_bss_184[temp_r31], 0x40000001); + } + } + if (lbl_1_bss_C8 == NULL) { + lbl_1_bss_C8 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00)); + HuSprAnimLock(lbl_1_bss_C8); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_18A[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x17), lbl_1_data_480, 0); + lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].z = 0.1f; + lbl_1_bss_118[temp_r31].y = 0.1f; + lbl_1_bss_13C[temp_r31].x = 0; + lbl_1_bss_13C[temp_r31].y = lbl_1_bss_13C[temp_r31].z = 0; + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_30[10]), lbl_1_data_474[temp_r31], &lbl_1_bss_160[temp_r31]); + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_13C[temp_r31]); + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + } + lbl_1_bss_114 = lbl_1_bss_160[0].y; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelPosGet(lbl_1_bss_30[10], &lbl_1_bss_DC[temp_r31]); + lbl_1_bss_DC[temp_r31].x = lbl_1_bss_160[temp_r31].x; + lbl_1_bss_DC[temp_r31].z = lbl_1_bss_160[temp_r31].z + 200.0f; + BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); + } + lbl_1_bss_110 = fabs(lbl_1_bss_160[0].x - lbl_1_bss_160[1].x) / 2; + temp_f31 = 0; + temp_f29 = 20; + sp8.x = 0.04f; + sp8.y = 0.04f; + sp8.z = 0.04f; + for (temp_r29 = 0; temp_r29 < 3;) { + temp_f30 = temp_f29 - ((7.0f / 60.0f) * (0.25f * (temp_f31 * temp_f31))); + temp_f31++; + temp_r29 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_160[temp_r31].y += temp_f30; + if (lbl_1_bss_160[temp_r31].y < lbl_1_bss_114) { + lbl_1_bss_160[temp_r31].y = lbl_1_bss_114; + temp_r29++; + } + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + VECAdd(&lbl_1_bss_118[temp_r31], &sp8, &lbl_1_bss_118[temp_r31]); + if (lbl_1_bss_118[temp_r31].x > 0.7f) { + lbl_1_bss_118[temp_r31].x = 0.7f; + } + if (lbl_1_bss_118[temp_r31].y > 0.7f) { + lbl_1_bss_118[temp_r31].y = 0.7f; + } + if (lbl_1_bss_118[temp_r31].z > 0.7f) { + lbl_1_bss_118[temp_r31].z = 0.7f; + } + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].y = lbl_1_bss_118[temp_r31].z = 0.7f; + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 1, 0x40000001); + } + lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); + HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); + *((u32 *)&lbl_1_bss_100->user_data) = 7; + HuAudFXPlay(866); + while (((u32)lbl_1_bss_100->user_data & 0x40000000) == 0) { + HuPrcVSleep(); + } } void fn_1_8244(u16 arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - Vec spC; - - s32 temp_r31; - s32 temp_r30; - if(arg0) { - fn_1_8570(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); - } - temp_f31 = 0; - temp_f29 = 20; - spC.x = -0.02f; - spC.y = -0.02f; - spC.z = -0.02f; - for(temp_r30=0; temp_r30<3;) { - temp_f30 = temp_f29-((7.0f/60.0f)*(0.25f*(temp_f31*temp_f31))); - temp_f31++; - temp_r30 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_160[temp_r31].y += temp_f30; - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - if(temp_f30 < 0.0f) { - VECAdd(&lbl_1_bss_118[temp_r31], &spC, &lbl_1_bss_118[temp_r31]); - if(lbl_1_bss_118[temp_r31].x < 0.0f) { - lbl_1_bss_118[temp_r31].x = 0.0f; - } - if(lbl_1_bss_118[temp_r31].y < 0.0f) { - lbl_1_bss_118[temp_r31].y = 0.0f; - } - if(lbl_1_bss_118[temp_r31].z < 0.0f) { - lbl_1_bss_118[temp_r31].z = 0.0f; - } - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - if(lbl_1_bss_118[temp_r31].x == 0.0f) { - temp_r30++; - } - } - - - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelVisibilitySet(lbl_1_bss_18A[temp_r31], 0); - } + float temp_f31; + float temp_f30; + float temp_f29; + Vec spC; + + s32 temp_r31; + s32 temp_r30; + if (arg0) { + fn_1_8570(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); + } + temp_f31 = 0; + temp_f29 = 20; + spC.x = -0.02f; + spC.y = -0.02f; + spC.z = -0.02f; + for (temp_r30 = 0; temp_r30 < 3;) { + temp_f30 = temp_f29 - ((7.0f / 60.0f) * (0.25f * (temp_f31 * temp_f31))); + temp_f31++; + temp_r30 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_160[temp_r31].y += temp_f30; + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + if (temp_f30 < 0.0f) { + VECAdd(&lbl_1_bss_118[temp_r31], &spC, &lbl_1_bss_118[temp_r31]); + if (lbl_1_bss_118[temp_r31].x < 0.0f) { + lbl_1_bss_118[temp_r31].x = 0.0f; + } + if (lbl_1_bss_118[temp_r31].y < 0.0f) { + lbl_1_bss_118[temp_r31].y = 0.0f; + } + if (lbl_1_bss_118[temp_r31].z < 0.0f) { + lbl_1_bss_118[temp_r31].z = 0.0f; + } + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + if (lbl_1_bss_118[temp_r31].x == 0.0f) { + temp_r30++; + } + } + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelVisibilitySet(lbl_1_bss_18A[temp_r31], 0); + } } void fn_1_8570(void) { - u32 temp_r31; - temp_r31 = (u32)lbl_1_bss_100->user_data; - temp_r31 |= 0x20000000; - *(u32 *)&lbl_1_bss_100->user_data = temp_r31; - while(((u32)lbl_1_bss_100->user_data & 0x80000000) == 0) { - HuPrcVSleep(); - } - HuPrcKill(lbl_1_bss_100); - lbl_1_bss_100 = NULL; + u32 temp_r31; + temp_r31 = (u32)lbl_1_bss_100->user_data; + temp_r31 |= 0x20000000; + *(u32 *)&lbl_1_bss_100->user_data = temp_r31; + while (((u32)lbl_1_bss_100->user_data & 0x80000000) == 0) { + HuPrcVSleep(); + } + HuPrcKill(lbl_1_bss_100); + lbl_1_bss_100 = NULL; } void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_85FC(void) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - Vec sp20[3]; - Vec sp14; - float sp8[3]; - s32 temp_r31; - u32 temp_r30; - u32 temp_r29; - s32 temp_r28; - ParticleData *temp_r27; - temp_r30 = (u32)HuPrcCurrentGet()->user_data; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - BoardModelPosGet(lbl_1_bss_18A[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += 50.0f; - sp8[temp_r31] = 0.0f; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 1); - temp_f28 = 130.0f+sp20[temp_r31].y; - if(temp_r30 & 0x10000000) { - lbl_1_bss_CC[temp_r31] = Hu3DParticleCreate(lbl_1_bss_C8, 100); - temp_r27 = Hu3DData[lbl_1_bss_CC[temp_r31]].unk_120; - temp_r27->unk_02 = lbl_1_bss_184[temp_r31]; - Hu3DParticleHookSet(lbl_1_bss_CC[temp_r31], fn_1_8E38); - Hu3DParticleColSet(lbl_1_bss_CC[temp_r31], 255, 255, 0); - Hu3DModelPosSet(lbl_1_bss_CC[temp_r31], 0, 0, 0); - Hu3DParticleBlendModeSet(lbl_1_bss_CC[temp_r31], 1); - Hu3DModelLayerSet(lbl_1_bss_CC[temp_r31], 2); - } - } - } - temp_f31 = 12; - temp_f29 = 0.05f; - while(1) { - temp_r28 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - temp_r28++; - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += temp_f31; - if(sp20[temp_r31].y >= temp_f28) { - sp20[temp_r31].y = temp_f28; - temp_r28--; - } - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp8[temp_r31] += temp_f29; - if(sp8[temp_r31] > 1.0f) { - sp8[temp_r31] = 1.0f; - } - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - } - } - temp_f31 *= 0.92f; - if(temp_r28 == 0) { - break; - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - sp8[temp_r31] = 1.0f; - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - } - } - temp_r30 |= 0x40000000; - *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; - temp_f30 = 0; - while(1) { - - temp_r30 = (u32)HuPrcCurrentGet()->user_data; - if(temp_r30 & 0x20000000) { - break; - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += sind(temp_f30)*0.25f; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - } - - } - temp_f30 += 5.0f; - if(temp_f30 >= 360.0f) { - temp_f30 -= 360.0f; - } - - HuPrcVSleep(); - } - temp_f31 = -12; - temp_f29 = -0.05f; - while(1) { - temp_r28 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - temp_r28++; - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += temp_f31; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp8[temp_r31] += temp_f29; - if(sp8[temp_r31] < 0.0f) { - sp8[temp_r31] = 0.0f; - } - if(sp8[temp_r31] == 0.0f) { - temp_r28--; - } - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - } - } - temp_f31 *= 0.92f; - if(temp_r28 == 0) { - break; - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - sp14.x = sp14.y = sp14.z = 1.0f; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); - } - } - temp_r30 |= 0x80000000; - *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; - while(1) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + Vec sp20[3]; + Vec sp14; + float sp8[3]; + s32 temp_r31; + u32 temp_r30; + u32 temp_r29; + s32 temp_r28; + ParticleData *temp_r27; + temp_r30 = (u32)HuPrcCurrentGet()->user_data; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + BoardModelPosGet(lbl_1_bss_18A[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += 50.0f; + sp8[temp_r31] = 0.0f; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 1); + temp_f28 = 130.0f + sp20[temp_r31].y; + if (temp_r30 & 0x10000000) { + lbl_1_bss_CC[temp_r31] = Hu3DParticleCreate(lbl_1_bss_C8, 100); + temp_r27 = Hu3DData[lbl_1_bss_CC[temp_r31]].unk_120; + temp_r27->unk_02 = lbl_1_bss_184[temp_r31]; + Hu3DParticleHookSet(lbl_1_bss_CC[temp_r31], fn_1_8E38); + Hu3DParticleColSet(lbl_1_bss_CC[temp_r31], 255, 255, 0); + Hu3DModelPosSet(lbl_1_bss_CC[temp_r31], 0, 0, 0); + Hu3DParticleBlendModeSet(lbl_1_bss_CC[temp_r31], 1); + Hu3DModelLayerSet(lbl_1_bss_CC[temp_r31], 2); + } + } + } + temp_f31 = 12; + temp_f29 = 0.05f; + while (1) { + temp_r28 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + temp_r28++; + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += temp_f31; + if (sp20[temp_r31].y >= temp_f28) { + sp20[temp_r31].y = temp_f28; + temp_r28--; + } + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp8[temp_r31] += temp_f29; + if (sp8[temp_r31] > 1.0f) { + sp8[temp_r31] = 1.0f; + } + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + } + } + temp_f31 *= 0.92f; + if (temp_r28 == 0) { + break; + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + sp8[temp_r31] = 1.0f; + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + } + } + temp_r30 |= 0x40000000; + *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; + temp_f30 = 0; + while (1) { + + temp_r30 = (u32)HuPrcCurrentGet()->user_data; + if (temp_r30 & 0x20000000) { + break; + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += sind(temp_f30) * 0.25f; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + } + } + temp_f30 += 5.0f; + if (temp_f30 >= 360.0f) { + temp_f30 -= 360.0f; + } + + HuPrcVSleep(); + } + temp_f31 = -12; + temp_f29 = -0.05f; + while (1) { + temp_r28 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + temp_r28++; + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += temp_f31; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp8[temp_r31] += temp_f29; + if (sp8[temp_r31] < 0.0f) { + sp8[temp_r31] = 0.0f; + } + if (sp8[temp_r31] == 0.0f) { + temp_r28--; + } + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + } + } + temp_f31 *= 0.92f; + if (temp_r28 == 0) { + break; + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + sp14.x = sp14.y = sp14.z = 1.0f; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); + } + } + temp_r30 |= 0x80000000; + *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; + while (1) { + HuPrcVSleep(); + } } void fn_1_8DAC(void) { - s32 temp_r31; - u32 temp_r30 = (u32)HuPrcCurrentGet()->user_data; - u32 temp_r29; - if(temp_r30 & 0x10000000) { - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - Hu3DModelKill(lbl_1_bss_CC[temp_r31]); - } - } - } + s32 temp_r31; + u32 temp_r30 = (u32)HuPrcCurrentGet()->user_data; + u32 temp_r29; + if (temp_r30 & 0x10000000) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + Hu3DModelKill(lbl_1_bss_CC[temp_r31]); + } + } + } } void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix) { - Vec sp8; + Vec sp8; f32 temp_f30; f32 temp_f29; f32 temp_f31; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 i, j; if (particle->unk_34 == 0) { @@ -974,20 +974,20 @@ void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix) } } if (j != particle->unk_30) { - temp_f30 = 360.0f * ((1.0f/255.0f) * frand8()); - temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f/255.0f) * frand8()))); + temp_f30 = 360.0f * ((1.0f / 255.0f) * frand8()); + temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk34.x = (sp8.x + (temp_f29 * sind(temp_f30))); var_r31->unk34.z = (sp8.z + (temp_f29 * cosd(temp_f30))); - var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f/255.0f) * frand8()))))); - var_r31->unk08.x = (0.5f + (3.0f * ((1.0f/255.0f) * frand8()))); - var_r31->unk08.y = (0.3f + (2.0f * ((1.0f/255.0f) * frand8()))); + var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f / 255.0f) * frand8()))))); + var_r31->unk08.x = (0.5f + (3.0f * ((1.0f / 255.0f) * frand8()))); + var_r31->unk08.y = (0.3f + (2.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk40.a = 180; - var_r31->unk2C = (15.0f * temp_f31); + var_r31->unk2C = (15.0f * temp_f31); } } var_r31 = particle->unk_48; - + for (i = 0; i < particle->unk_30; i++, var_r31++) { if (0.0f != var_r31->unk2C) { var_r31->unk34.y = (var_r31->unk34.y - var_r31->unk08.x); @@ -995,6 +995,6 @@ void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix) if (var_r31->unk2C <= 0.0f) { var_r31->unk2C = 0.0f; } - } + } } } diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c index 2a2808bc..0ff58995 100644 --- a/src/REL/w02Dll/roulette.c +++ b/src/REL/w02Dll/roulette.c @@ -69,11 +69,11 @@ void fn_1_BCFC(void) { HuPrcVSleep(); } BoardModelRotYSet(lbl_1_bss_30[15], -90.0f); - fn_1_121C(0x130000); + fn_1_121C(MAKE_MESSID(0x13, 0x00)); HuAudFXPlay(0x44); temp_r29 = fn_1_BE88(); BoardStatusShowSetAll(0); - fn_1_121C(0x130001); + fn_1_121C(MAKE_MESSID(0x13, 0x01)); temp_r30 = fn_1_C108(temp_r29); fn_1_CD04(temp_r30); BoardCameraViewSet(1); @@ -104,7 +104,7 @@ s32 fn_1_BE88(void) { if (coinAmount < 5) { return var_r30; } - fn_1_121C(0x130002); + fn_1_121C(MAKE_MESSID(0x13, 0x02)); do { BoardWinCreateChoice(2, MAKE_MESSID(19, 29), 4, 0); @@ -153,17 +153,17 @@ s32 fn_1_BE88(void) { // Coin amount is now the bribe amount in coins switch (bribeChoice) { case 0: - mesg = 0x130004; + mesg = MAKE_MESSID(0x13, 0x04); coinAmount = 0x14; var_r30 = 0x5A; // 90% break; case 1: - mesg = 0x130005; + mesg = MAKE_MESSID(0x13, 0x05); coinAmount = 0xA; var_r30 = 0x3C; // 60% break; case 2: - mesg = 0x130006; + mesg = MAKE_MESSID(0x13, 0x06); coinAmount = 5; var_r30 = 0x1E; // 30% break; @@ -183,7 +183,7 @@ s32 fn_1_BE88(void) { } } while (rouletteChoice == 2); // While viewing map if (var_r30 == -1) { - fn_1_121C(0x130007); + fn_1_121C(MAKE_MESSID(0x13, 0x07)); } return var_r30; } @@ -516,12 +516,12 @@ void fn_1_D3AC(void) Vec sp20; Vec sp14; float sp8[3] = { 1.0f, 0.3f, 2.5f }; - fn_1_121C(0x130008); + fn_1_121C(MAKE_MESSID(0x13, 0x08)); BoardStatusShowSetAll(1); BoardPlayerMotBlendSet(lbl_1_bss_388, 0, 15); BoardPlayerPosGet(lbl_1_bss_388, &sp14); for(temp_r31=0; temp_r31<20; temp_r31++) { - sp38[temp_r31] = BoardModelCreate(0x7000A, NULL, 1); + sp38[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); sp2C.x = (sp14.x-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); sp2C.y = (sp14.y+1200.0f)+(temp_r31*130.0f)+((1.0f/255.0f)*(frand8()*60.0f)); sp2C.z = (sp14.z-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); @@ -603,11 +603,11 @@ s32 fn_1_D8C4(void) s16 temp_r22; u32 temp_r21; - fn_1_121C(0x130009); + fn_1_121C(MAKE_MESSID(0x13, 0x09)); temp_r29 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); BoardModelPosGet(lbl_1_bss_30[3], &sp40); for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14[temp_r31] = BoardModelCreate(0x70000, NULL, 1); + sp14[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); BoardModelLayerSet(sp14[temp_r31], 2); for(temp_r28=0; temp_r28link_cnt; temp_r28++) { temp_r21 = (BoardSpaceFlagGet(0, temp_r29->link[temp_r28]) & 0xE) >> 1; @@ -627,9 +627,9 @@ s32 fn_1_D8C4(void) BoardModelScaleSetV(sp14[temp_r31], &sp1C); } temp_r25 = fn_1_E2AC(); - HuWinMesMaxSizeGet(1, spC, 0x13001E); + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x13, 0x1E)); temp_r30 = HuWinCreate(-10000, 356, spC[0], spC[1], 0); - HuWinMesSet(temp_r30, 0x13001E); + HuWinMesSet(temp_r30, MAKE_MESSID(0x13, 0x1E)); HuWinBGTPLvlSet(temp_r30, 0); HuWinMesSpeedSet(temp_r30, 0); temp_r23 = GWPlayer[lbl_1_bss_388].port; @@ -811,4 +811,4 @@ void fn_1_E41C(void) while(lbl_1_bss_38C) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/w02Dll/shuffleboard.c b/src/REL/w02Dll/shuffleboard.c index 2d3d0ff9..3443f20d 100644 --- a/src/REL/w02Dll/shuffleboard.c +++ b/src/REL/w02Dll/shuffleboard.c @@ -25,25 +25,25 @@ s16 lbl_1_bss_1AC; Vec lbl_1_bss_1A0; s32 lbl_1_data_490[8] = { - 0x0076002E, - 0x0076002F, - 0x00760030, - 0x00760031, - 0x00760032, - 0x00760033, - 0x00760034, - 0x00760035 + DATA_MAKE_NUM(DATADIR_W02, 0x2E), + DATA_MAKE_NUM(DATADIR_W02, 0x2F), + DATA_MAKE_NUM(DATADIR_W02, 0x30), + DATA_MAKE_NUM(DATADIR_W02, 0x31), + DATA_MAKE_NUM(DATADIR_W02, 0x32), + DATA_MAKE_NUM(DATADIR_W02, 0x33), + DATA_MAKE_NUM(DATADIR_W02, 0x34), + DATA_MAKE_NUM(DATADIR_W02, 0x35) }; s32 lbl_1_data_4B0[8] = { - 0x00760026, - 0x00760027, - 0x00760028, - 0x00760029, - 0x0076002A, - 0x0076002B, - 0x0076002C, - 0x0076002D + DATA_MAKE_NUM(DATADIR_W02, 0x26), + DATA_MAKE_NUM(DATADIR_W02, 0x27), + DATA_MAKE_NUM(DATADIR_W02, 0x28), + DATA_MAKE_NUM(DATADIR_W02, 0x29), + DATA_MAKE_NUM(DATADIR_W02, 0x2A), + DATA_MAKE_NUM(DATADIR_W02, 0x2B), + DATA_MAKE_NUM(DATADIR_W02, 0x2C), + DATA_MAKE_NUM(DATADIR_W02, 0x2D) }; s32 fn_1_9250(void) @@ -135,9 +135,9 @@ void fn_1_94C0(void) BoardCameraRotSet(-10, -sp10.y); BoardCameraZoomSet(900); BoardStatusShowSetAll(0); - HuWinMesMaxSizeGet(1, sp8, 0x13001C); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1C)); lbl_1_bss_1AC = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); - HuWinMesSet(lbl_1_bss_1AC, 0x13001C); + HuWinMesSet(lbl_1_bss_1AC, MAKE_MESSID(0x13, 0x1C)); HuWinBGTPLvlSet(lbl_1_bss_1AC, 0); HuWinMesSpeedSet(lbl_1_bss_1AC, 0); fn_1_9EC4(); @@ -238,7 +238,7 @@ void fn_1_9EC4(void) s32 temp_r31; s32 temp_r30; for(temp_r31=0; temp_r31<15; temp_r31++) { - lbl_1_bss_34C[temp_r31] = BoardModelCreate(0x7000A, NULL, 1); + lbl_1_bss_34C[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); BoardModelVisibilitySet(lbl_1_bss_34C[temp_r31], 0); lbl_1_bss_1C4[temp_r31] = 1; } @@ -582,4 +582,4 @@ void fn_1_BB30(void) HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index cfc9a13a..e71f2139 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -1,21 +1,21 @@ #include "REL/w03Dll.h" -#include "game/data.h" #include "game/board/main.h" -#include "game/board/space.h" -#include "game/board/player.h" #include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" #include "game/board/window.h" +#include "game/data.h" -#include "game/hsfman.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/pad.h" #include "game/wipe.h" -//structs +// structs typedef struct w03UnkStruct5 { - /* 0x00 */ struct { + /* 0x00 */ struct { u8 unk00_bit0 : 1; u8 unk00_bit1 : 2; u8 unk00_bit3 : 1; @@ -27,21 +27,21 @@ typedef struct w03UnkStruct5 { } w03UnkStruct5; typedef struct w03UnkStruct4 { - /* 0x00 */ struct { + /* 0x00 */ struct { u8 unk00_bit0 : 1; - }; + }; } w03UnkStruct4; typedef struct w03StructUnk3 { -/* 0x00 */ s16 unk_00; -/* 0x02 */ s16 model; -/* 0x04 */ f32 unk_04; -/* 0x08 */ Vec unk_08; -/* 0x14 */ Vec unk_14; + /* 0x00 */ s16 unk_00; + /* 0x02 */ s16 model; + /* 0x04 */ f32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ Vec unk_14; } w03StructUnk3; typedef struct w03StructUnk2 { -/* 0x00 */ struct { + /* 0x00 */ struct { u8 unkbit_00 : 1; u8 unkbit_01 : 2; u8 unkbit_03 : 1; @@ -52,10 +52,10 @@ typedef struct w03StructUnk2 { u8 unk_03; s16 model; char unk_06[2]; - w03StructUnk3* unk_08; + w03StructUnk3 *unk_08; } w03StructUnk2; -//function signatures +// function signatures void fn_1_313C(void); void fn_1_3218(void); void fn_1_3304(void); @@ -67,44 +67,40 @@ void fn_1_3F5C(s32); void fn_1_4354(s32); void fn_1_48EC(s32); void fn_1_4A9C(void); -void fn_1_50D4(omObjData* arg0); +void fn_1_50D4(omObjData *arg0); void fn_1_5838(s32); -void fn_1_5AC8(omObjData* arg0); -void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1); -void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1); -f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1); +void fn_1_5AC8(omObjData *arg0); +void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1); +void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1); +f32 fn_1_61A4(omObjData *arg0, w03UnkStruct5 *arg1); void fn_1_629C(s8 arg0); s32 fn_1_62D0(void); void fn_1_62FC(void); -//bss +// bss float lbl_1_bss_80[20][2]; s8 lbl_1_bss_7D; s8 lbl_1_bss_7C; omObjData *lbl_1_bss_78; omObjData *lbl_1_bss_74; -Process* lbl_1_bss_70; +Process *lbl_1_bss_70; -//data +// data s16 lbl_1_data_310 = -1; s16 lbl_1_data_312 = -1; s16 lbl_1_data_314 = -1; s16 lbl_1_data_316 = -1; -s32 lbl_1_data_318[] = { - DATA_MAKE_NUM(DATADIR_W03, 0x0016), - DATA_MAKE_NUM(DATADIR_W03, 0x0017), - DATA_MAKE_NUM(DATADIR_W03, 0x0018), - DATA_MAKE_NUM(DATADIR_W03, 0x0019), - DATA_MAKE_NUM(DATADIR_W03, 0x001A), - DATA_NUM_LISTEND -}; +s32 lbl_1_data_318[] = { DATA_MAKE_NUM(DATADIR_W03, 0x0016), DATA_MAKE_NUM(DATADIR_W03, 0x0017), DATA_MAKE_NUM(DATADIR_W03, 0x0018), + DATA_MAKE_NUM(DATADIR_W03, 0x0019), DATA_MAKE_NUM(DATADIR_W03, 0x001A), DATA_NUM_LISTEND }; -void fn_1_3058(void) { - lbl_1_data_310 = BoardModelCreate(0x770015, lbl_1_data_318, 0); +void fn_1_3058(void) +{ + lbl_1_data_310 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x15), lbl_1_data_318, 0); fn_1_3304(); } -s32 fn_1_309C(void) { +s32 fn_1_309C(void) +{ BoardRollDispSet(0); lbl_1_bss_70 = HuPrcChildCreate(fn_1_313C, 0x2003U, 0x2000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_70, fn_1_3218); @@ -112,12 +108,13 @@ s32 fn_1_309C(void) { while (lbl_1_bss_70) { HuPrcVSleep(); } - + BoardRollDispSet(1); return lbl_1_bss_7C; } -void fn_1_313C(void) { +void fn_1_313C(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -138,8 +135,8 @@ void fn_1_313C(void) { HuPrcEnd(); } - -void fn_1_3218(void) { +void fn_1_3218(void) +{ if (lbl_1_data_316 != -1) { HuWinKill(lbl_1_data_316); lbl_1_data_316 = -1; @@ -154,20 +151,21 @@ void fn_1_3218(void) { BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_312); lbl_1_data_312 = -1; } - + lbl_1_bss_0->unk3 = 0; lbl_1_bss_70 = 0; } - -void fn_1_3304(void) { +void fn_1_3304(void) +{ Vec sp8; f32 temp_f31; s32 var_r31; if (lbl_1_bss_0->unk1 != 0) { var_r31 = BoardSpaceFlagSearch(0, 0x4000); - } else { + } + else { var_r31 = BoardSpaceFlagSearch(0, 0x8000); } @@ -181,7 +179,8 @@ void fn_1_3304(void) { BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); } -s32 fn_1_3478(s32 arg0) { +s32 fn_1_3478(s32 arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -214,20 +213,20 @@ s32 fn_1_3478(s32 arg0) { PSVECSubtract(&sp38, &sp2C, &sp20); float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f; BoardPlayerMotBlendSet(arg0, (float_temp), 0xF); - + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - + BoardPlayerIdleSet(arg0); HuAudFXPlay(0x447); BoardModelMotionShiftSet(lbl_1_data_310, 4, 0.0f, 5.0f, 0); HuPrcSleep(6); - + while (BoardModelMotionEndCheck(lbl_1_data_310) == 0) { HuPrcVSleep(); } - + BoardModelMotionShiftSet(lbl_1_data_310, 1, 0.0f, 5.0f, 0x40000001); temp_r26 = BoardPlayerGetCharMess(arg0); BoardWinCreate(2, MAKE_MESSID(22, 16), 8); @@ -245,26 +244,26 @@ s32 fn_1_3478(s32 arg0) { while (var_r29 == 0) { BoardWinCreateChoice(2, MAKE_MESSID(22, 17), 8, 0); BoardWinAttrSet(0x10); - + if (GWPlayer[arg0].com != 0) { fn_1_4354(arg0); } - + BoardWinWait(); BoardWinKill(); switch (BoardWinChoiceGet()) { - case 0: - var_r29 = 1; - break; - case 2: - BoardViewMapExec(arg0); - break; - default: - case 1: - BoardWinCreate(2, MAKE_MESSID(22, 20), 8); - BoardWinWait(); - BoardWinKill(); - return 0; + case 0: + var_r29 = 1; + break; + case 2: + BoardViewMapExec(arg0); + break; + default: + case 1: + BoardWinCreate(2, MAKE_MESSID(22, 20), 8); + BoardWinWait(); + BoardWinKill(); + return 0; } } @@ -273,7 +272,7 @@ s32 fn_1_3478(s32 arg0) { for (j = 0; j < 5; j++) { BoardPlayerCoinsAdd(arg0, -1); HuAudFXPlay(14); - HuPrcSleep(6); + HuPrcSleep(6); } HuAudFXPlay(15); @@ -281,7 +280,8 @@ s32 fn_1_3478(s32 arg0) { return 1; } -void fn_1_3814(s32 arg0) { +void fn_1_3814(s32 arg0) +{ Vec sp14; Vec sp8; f32 temp; @@ -289,11 +289,11 @@ void fn_1_3814(s32 arg0) { BoardModelMotionShiftSet(lbl_1_data_310, 2, 0.0f, 10.0f, 0x40000001); temp = (180.0f + BoardPlayerRotYGet(arg0)); BoardPlayerMotBlendSet(arg0, temp, 0xF); - + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - + BoardCameraViewSet(1); BoardCameraTargetPlayerSet(arg0); @@ -310,18 +310,21 @@ void fn_1_3814(s32 arg0) { BoardCameraMotionWait(); } -void fn_1_3968(s32 arg0) { +void fn_1_3968(s32 arg0) +{ s32 var_r29 = 0; s32 var_r28 = 0; - s32 sp48[] = {0x005F0065, 0x001A0065, 0x006D0065, 0x008A0065, 0x00850065, 0x00110065, 0x000D0065, 0x00810065}; + s32 sp48[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x65), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x65), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x65), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x65), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x65), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x65), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x65), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x65) }; Vec sp3C; Vec sp30; Vec sp24; Vec sp18; - s32 sp10[2] = {0x00770013, 0x00770014}; + s32 sp10[2] = { 0x00770013, 0x00770014 }; f32 spC; s16 sp8; - + f32 temp_f30; f32 temp_f28; f32 temp_f31; @@ -332,7 +335,7 @@ void fn_1_3968(s32 arg0) { lbl_1_data_314 = BoardModelCreate(sp10[lbl_1_bss_0->unk1], NULL, 0); character = GWPlayer[arg0].character; lbl_1_data_312 = BoardPlayerMotionCreate(arg0, sp48[character]); - + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_310), "itemhook_oya", &sp3C); BoardPlayerPosGet(arg0, &sp30); temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30); @@ -341,13 +344,13 @@ void fn_1_3968(s32 arg0) { PSVECScale(&sp24, &sp24, temp_f30 / 45.0f); BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0); HuPrcSleep(5); - + spC = BoardPlayerRotYGet(arg0); temp_f27 = 180.0f + spC; var_r29 = 0; sp8 = 0; temp_f28 = 40.0f; - + while (1) { temp_f31 = __OSs16tof32(&sp8); sp24.y = temp_f28 + (-0.08166667f * (0.75f * (temp_f31 * temp_f31))); @@ -359,16 +362,17 @@ void fn_1_3968(s32 arg0) { sp30.x = sp3C.x; sp30.z = sp3C.z; } - + if (var_r29 == 0) { if (sp3C.y < sp30.y) { var_r29 = 1; } - } else { + } + else { BoardDAngleCalcRange(&spC, temp_f27, 5.142857f); BoardPlayerRotYSet(arg0, spC); } - + if (sp30.y <= sp3C.y && var_r29 != 0) { sp30.y = sp3C.y; break; @@ -376,39 +380,40 @@ void fn_1_3968(s32 arg0) { BoardPlayerPosSetV(arg0, &sp30); HuPrcVSleep(); - sp8 += 1; + sp8 += 1; } - + BoardMusStart(1, 0x18, 0x7F, 0); BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f); - - - BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0)); + + BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0)); BoardPlayerMotionStart(arg0, lbl_1_data_312, 0x40000001); HuAudFXPlay(0x44F); BoardModelMotionShiftSet(lbl_1_data_310, 5, 0.0f, 5.0f, 0); - + sp18.x = -15.0f; sp18.y = 180.0f; sp18.z = 0.0f; - + BoardCameraMotionStartEx(lbl_1_data_310, &sp18, NULL, 4000.0f, -1.0f, 336); - - for (var_r28 = 0, sp8 = 0; ; sp8++) { + + for (var_r28 = 0, sp8 = 0;; sp8++) { if (var_r28 == 0) { if (sp8 == 0x78U) { WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); var_r28 = 1; } - } else if (WipeStatGet() == 0) { + } + else if (WipeStatGet() == 0) { break; } HuPrcVSleep(); } } -void fn_1_3E88(s32 arg0) { +void fn_1_3E88(s32 arg0) +{ lbl_1_bss_7D = 0; fn_1_48EC(arg0); fn_1_5838(arg0); @@ -433,7 +438,8 @@ void fn_1_3E88(s32 arg0) { BoardAudSeqPause(0, 0, 0x3E8); } -void fn_1_3F5C(s32 arg0) { +void fn_1_3F5C(s32 arg0) +{ Mtx sp38; Vec sp2C; Vec sp20; @@ -447,7 +453,8 @@ void fn_1_3F5C(s32 arg0) { if (lbl_1_bss_0->unk1 != 0) { lbl_1_bss_0->unk1 = 0; var_r30 = BoardSpaceFlagSearch(0, 0x8000); - } else { + } + else { lbl_1_bss_0->unk1 = 1; var_r30 = BoardSpaceFlagSearch(0, 0x4000); } @@ -458,7 +465,8 @@ void fn_1_3F5C(s32 arg0) { if (lbl_1_bss_0->unk1 != 0) { var_r31 = BoardSpaceFlagSearch(0, 0x4000); - } else { + } + else { var_r31 = BoardSpaceFlagSearch(0, 0x8000); } @@ -506,19 +514,21 @@ void fn_1_3F5C(s32 arg0) { BoardWinKill(); } -void fn_1_4354(s32 arg0) { +void fn_1_4354(s32 arg0) +{ s32 sp8; s32 starPos; s32 var_r30; var_r30 = 0; starPos = GWSystem.star_pos; - + if (lbl_1_bss_0->unk1 != 0) { if ((starPos == 1) || (starPos == 2) || (starPos == 3) || (starPos == 4)) { var_r30 = 1; } - } else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) { + } + else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) { var_r30 = 1; } @@ -534,12 +544,10 @@ void fn_1_4354(s32 arg0) { BoardComKeySetRight(); } -char *lbl_1_data_34C[] = { - "jyanA", - "jyanB" -}; +char *lbl_1_data_34C[] = { "jyanA", "jyanB" }; -void fn_1_4424(w03StructUnk2* arg0) { +void fn_1_4424(w03StructUnk2 *arg0) +{ Mtx sp108; Mtx spD8; Mtx spA8; @@ -562,9 +570,9 @@ void fn_1_4424(w03StructUnk2* arg0) { f32 sp10; f32 sp10_2; s16 i; - char* temp_r22; - w03StructUnk3* temp_r27; - ModelData* temp_r28; + char *temp_r22; + w03StructUnk3 *temp_r27; + ModelData *temp_r28; memset(&lbl_1_bss_80, 0, 0xA0); sp48.x = sp54.x = 0.0f; @@ -576,7 +584,8 @@ void fn_1_4424(w03StructUnk2* arg0) { if (lbl_1_bss_0->unk1 != 0) { PSVECSubtract(&sp6C, &sp60, &sp3C); - } else { + } + else { PSVECSubtract(&sp60, &sp6C, &sp3C); } @@ -595,21 +604,21 @@ void fn_1_4424(w03StructUnk2* arg0) { for (i = var_r25 = 0; i < 20;) { Hu3DMotionExec(temp_r23, temp_r28->unk_08, temp_r28->unk_64, 0); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp54); - temp_r28->unk_64 = (f32) (temp_r28->unk_64 + temp_r28->unk_68); + temp_r28->unk_64 = (f32)(temp_r28->unk_64 + temp_r28->unk_68); if (temp_r28->unk_64 > 400.0f) { break; } - - if (var_r25 % 4 == 0 && ((s16) var_r25 != 0)) { + + if (var_r25 % 4 == 0 && ((s16)var_r25 != 0)) { temp_r27 = &arg0->unk_08[i]; temp_r27->unk_00 = 1; temp_f30 = (0.5f - BoardRandFloat()) * 90; OSf32tos16(&temp_f30, &sp8); sp8 = (sp8 / 10) * 10; OSs16tof32(&sp8, &temp_f30); - lbl_1_bss_80[i+1][0] = temp_f30; - lbl_1_bss_80[i+1][1] = temp_r28->unk_64; + lbl_1_bss_80[i + 1][0] = temp_f30; + lbl_1_bss_80[i + 1][1] = temp_r28->unk_64; sp30 = sp48; sp18 = sp54; BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30); @@ -632,12 +641,13 @@ void fn_1_4424(w03StructUnk2* arg0) { arg0->unk_03 = i; } -void fn_1_48EC(s32 arg0) { +void fn_1_48EC(s32 arg0) +{ Vec spC; - omObjData* obj; + omObjData *obj; s32 i; - w03StructUnk2* temp_r31; - w03StructUnk3* temp_r30; + w03StructUnk2 *temp_r31; + w03StructUnk3 *temp_r30; obj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_50D4); lbl_1_bss_74 = obj; @@ -648,9 +658,9 @@ void fn_1_48EC(s32 arg0) { temp_r31->unkbit_04 = 0; temp_r31->unk_02 = -1; temp_r31->unkbit_01 = arg0; - temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, 0x10000000U); + temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, MEMORY_DEFAULT_NUM); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &spC); - temp_r31->model = BoardModelCreate(0x770007, NULL, 0); + temp_r31->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x07), NULL, 0); BoardModelVisibilitySet(temp_r31->model, 0); BoardModelPosSetV(temp_r31->model, &spC); BoardModelLayerSet(temp_r31->model, 2U); @@ -658,24 +668,26 @@ void fn_1_48EC(s32 arg0) { for (i = 0; i < 80; i++) { temp_r30 = &temp_r31->unk_08[i]; - temp_r30->model = BoardModelCreate(0x70009, 0, 1); + temp_r30->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x09), 0, 1); BoardModelVisibilitySet(temp_r30->model, 0); - BoardModelMotionStart(temp_r30->model, 0, 0x40000001U); + BoardModelMotionStart(temp_r30->model, 0, 0x40000001U); } - + fn_1_4424(temp_r31); } -void fn_1_4A9C(void) { +void fn_1_4A9C(void) +{ OM_GET_WORK_PTR(lbl_1_bss_74, w03UnkStruct4)->unk00_bit0 = 1; } -void fn_1_4ABC(w03StructUnk2* arg0) { +void fn_1_4ABC(w03StructUnk2 *arg0) +{ Vec sp8; f32 temp_f31; - w03StructUnk3* temp_r31; + w03StructUnk3 *temp_r31; s32 i; - + BoardModelPosGet(lbl_1_data_310, &sp8); sp8.y += 250.0f; @@ -691,10 +703,10 @@ void fn_1_4ABC(w03StructUnk2* arg0) { HuAudFXPlay(7); } BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08); - } + } } - //reg alloc hack + // reg alloc hack (void)i; (void)i; @@ -710,22 +722,25 @@ void fn_1_4ABC(w03StructUnk2* arg0) { if (temp_r31->unk_08.y < -300.0f) { temp_r31->unk_00 = -1; BoardModelVisibilitySet(temp_r31->model, 0); - } else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) { + } + else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) { temp_r31->unk_00 = -1; BoardModelVisibilitySet(temp_r31->model, 0); BoardPlayerCoinsAdd(arg0->unkbit_01, 1); CharModelLayerSetAll(2); CharModelCoinEffectCreate(1, &temp_r31->unk_08); HuAudFXPlay(7); - } else { + } + else { BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08); } - } + } } } -s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) { - w03StructUnk2* temp_r31; +s32 fn_1_4D0C(w03StructUnk3 **arg0, s16 *arg1) +{ + w03StructUnk2 *temp_r31; if (!(lbl_1_bss_74)) { return 0; @@ -737,13 +752,14 @@ s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) { return 1; } -void fn_1_4D60(w03StructUnk2* arg0) { +void fn_1_4D60(w03StructUnk2 *arg0) +{ Vec sp8; f32 temp_f31; f32 temp_f30; s32 i; s32 j; - w03StructUnk3* temp_r31; + w03StructUnk3 *temp_r31; if (arg0->unk_02 == 1) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &sp8); @@ -769,20 +785,23 @@ void fn_1_4D60(w03StructUnk2* arg0) { } } -void fn_1_4F24(w03StructUnk2* arg0) { +void fn_1_4F24(w03StructUnk2 *arg0) +{ s32 var_r30 = 0; - s32 sp8[4] = {5, 10, 30, 40}; + s32 sp8[4] = { 5, 10, 30, 40 }; s32 temp_r29; s32 temp_r28; - + if (arg0->unk_02 == -1) { if (GWTeamGet()) { if (GWPlayer[arg0->unkbit_01].rank == 0) { var_r30 = 5; - } else if (GWPlayer[arg0->unkbit_01].rank == 1) { + } + else if (GWPlayer[arg0->unkbit_01].rank == 1) { var_r30 = 20; } - } else { + } + else { var_r30 = sp8[GWPlayer[arg0->unkbit_01].rank]; } @@ -792,10 +811,12 @@ void fn_1_4F24(w03StructUnk2* arg0) { if (temp_r29 < var_r30) { if (temp_r28 < 30) { arg0->unk_02 = 2; - } else { + } + else { arg0->unk_02 = 1; } - } else { + } + else { arg0->unk_02 = 0; } @@ -805,12 +826,13 @@ void fn_1_4F24(w03StructUnk2* arg0) { } } -void fn_1_50D4(omObjData* arg0) { +void fn_1_50D4(omObjData *arg0) +{ Vec sp50; Vec sp44; Vec sp38; - PlayerState* sp18; - PlayerState* sp14; + PlayerState *sp18; + PlayerState *sp14; s16 sp10[2]; s16 spC[2]; f32 temp_f31; @@ -819,12 +841,12 @@ void fn_1_50D4(omObjData* arg0) { s32 i, j, k; s32 temp_r22; s32 temp_r23; - w03StructUnk3* temp_r30; - w03StructUnk2* temp_r31; - w03StructUnk3* temp; + w03StructUnk3 *temp_r30; + w03StructUnk2 *temp_r31; + w03StructUnk3 *temp; temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2); - + if ((temp_r31->unkbit_00 != 0) || (BoardIsKill() != 0)) { for (i = 0; i < 80; i++) { temp = &temp_r31->unk_08[i]; @@ -834,28 +856,26 @@ void fn_1_50D4(omObjData* arg0) { for (i = 0; i < 4; i++) { BoardModelVisibilitySet(BoardPlayerModelGet(i), 1); } - + BoardModelKill(temp_r31->model); HuMemDirectFree(temp_r31->unk_08); lbl_1_bss_74 = 0; omDelObjEx(HuPrcCurrentGet(), arg0); return; } - + if (lbl_1_data_314 != -1) { temp_f31 = BoardModelMotionTimeGet(lbl_1_data_314); if (temp_r31->unk_01 == 0) { - if ((lbl_1_bss_0->unk1 != 0) && - ((temp_f31 >= 212.0f)) || - (lbl_1_bss_0->unk1 == 0) && - ((temp_f31 >= 86.0f))) { - + if ((lbl_1_bss_0->unk1 != 0) && ((temp_f31 >= 212.0f)) || (lbl_1_bss_0->unk1 == 0) && ((temp_f31 >= 86.0f))) { + temp_r31->unk_01 = 1; } - } else { + } + else { fn_1_4F24(temp_r31); } - + if (temp_r31->unk_01 != 0) { if (BoardModelMotionEndCheck(lbl_1_bss_C[2]) != 0) { BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001); @@ -865,12 +885,13 @@ void fn_1_50D4(omObjData* arg0) { BoardModelVisibilitySet(temp_r31->model, 0); } } - + if (BoardModelMotionTimeGet(lbl_1_bss_C[2]) >= 170.0f) { if (temp_r31->unkbit_04 == 0) { if (temp_r31->unkbit_03 == 0) { HuAudFXPlay(0x43C); - } else { + } + else { HuAudFXPlay(0x43D); } temp_r31->unkbit_04 = 1; @@ -878,16 +899,17 @@ void fn_1_50D4(omObjData* arg0) { if (temp_r31->unk_02 == 1) { omVibrate(GWSystem.player_curr, 0xC, 4, 2); fn_1_4D60(temp_r31); - } else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) { + } + else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) { omVibrate(GWSystem.player_curr, 0xC, 0xC, 0); BoardModelVisibilitySet(temp_r31->model, 1); BoardModelMotionStart(temp_r31->model, 0, 0); temp_r31->unkbit_03 = 1; } } - + fn_1_4ABC(temp_r31); - + for (i = 0; i < 4; i++) { if (i != GWSystem.player_curr) { BoardPlayerPosGet(i, &sp50); @@ -895,7 +917,8 @@ void fn_1_50D4(omObjData* arg0) { PSVECSubtract(&sp50, &sp44, &sp38); if (PSVECMag(&sp38) >= 2000.0f) { BoardModelVisibilitySet(BoardPlayerModelGet(i), 0); - } else { + } + else { BoardModelVisibilitySet(BoardPlayerModelGet(i), 1); } } @@ -903,11 +926,12 @@ void fn_1_50D4(omObjData* arg0) { } } -void fn_1_5838(s32 arg0) { +void fn_1_5838(s32 arg0) +{ Vec sp18; Vec spC; - omObjData* obj; - w03UnkStruct5* temp_r31; + omObjData *obj; + w03UnkStruct5 *temp_r31; obj = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, &fn_1_5AC8); lbl_1_bss_78 = obj; @@ -918,18 +942,18 @@ void fn_1_5838(s32 arg0) { temp_r31->unk00_bit3 = 0; switch (GWPlayer[temp_r31->unk00_bit1].diff) { - case 0: - temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat())); - break; - case 1: - temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat())); - break; - case 2: - temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat())); - break; - case 3: - temp_r31->unk_08 = 0.0f; - break; + case 0: + temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat())); + break; + case 1: + temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat())); + break; + case 2: + temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat())); + break; + case 3: + temp_r31->unk_08 = 0.0f; + break; } BoardCameraMoveSet(0); @@ -950,9 +974,10 @@ void fn_1_5838(s32 arg0) { BoardCameraTargetModelSet(-1); } -void fn_1_5AC8(omObjData* arg0) { +void fn_1_5AC8(omObjData *arg0) +{ s32 temp_r0; - w03UnkStruct5* temp_r31; + w03UnkStruct5 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, w03UnkStruct5); @@ -971,32 +996,29 @@ void fn_1_5AC8(omObjData* arg0) { } switch (temp_r31->unk00_bit4) { - case 1: - if (lbl_1_bss_7D != 0) { - fn_1_629C(2); - fn_1_62FC(); - BoardCameraTargetModelSet(lbl_1_data_310); - BoardCameraMoveSet(1); - - } - break; - case 2: - fn_1_5C5C(arg0, (w03UnkStruct5* ) temp_r31); - break; - case 3: - BoardCameraTargetModelSet(-1); - BoardCameraMoveSet(0); - temp_r31->unk00_bit0 = 1; - break; + case 1: + if (lbl_1_bss_7D != 0) { + fn_1_629C(2); + fn_1_62FC(); + BoardCameraTargetModelSet(lbl_1_data_310); + BoardCameraMoveSet(1); + } + break; + case 2: + fn_1_5C5C(arg0, (w03UnkStruct5 *)temp_r31); + break; + case 3: + BoardCameraTargetModelSet(-1); + BoardCameraMoveSet(0); + temp_r31->unk00_bit0 = 1; + break; } } -char *lbl_1_data_35C[] = { - "jyanA", - "jyanB" -}; +char *lbl_1_data_35C[] = { "jyanA", "jyanB" }; -void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { +void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1) +{ Mtx sp110; Mtx spE0; Mtx spB0; @@ -1009,8 +1031,8 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { Vec sp14; Vec sp8; s16 temp_r3; - char* temp_r27; - ModelData* temp_r30; + char *temp_r27; + ModelData *temp_r30; if (((WipeStatGet() == 0) && (arg1->unk00_bit3) || (BoardModelMotionEndCheck(lbl_1_data_314) != 0))) { fn_1_629C(3); @@ -1037,7 +1059,8 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { if (0.0f != temp_r30->unk_64) { PSVECSubtract(&sp38, &sp44, &sp2C); - } else { + } + else { sp2C.x = sp2C.y = sp2C.z = 0.0f; } @@ -1068,14 +1091,16 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { BoardCameraRotSet(-20.0f, (180.0 * (atan2(sp2C.x, sp2C.z) / M_PI))); } -void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) { +void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1) +{ f32 temp_f31 = 0.0f; f32 var_f30; f32 var_f29; if (GWPlayer[arg1->unk00_bit1].com == 0) { var_f30 = HuPadStkX[GWPlayer[arg1->unk00_bit1].port]; - } else { + } + else { var_f30 = fn_1_61A4(arg0, arg1); } @@ -1083,7 +1108,8 @@ void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) { if (temp_f31 < 0.0f) { var_f29 = -temp_f31; - } else { + } + else { var_f29 = temp_f31; } @@ -1095,13 +1121,14 @@ void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) { BoardDAngleCalcRange(&arg1->unk_04, temp_f31, 1.0f); } -f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) { - w03StructUnk3* sp8; +f32 fn_1_61A4(omObjData *arg0, w03UnkStruct5 *arg1) +{ + w03StructUnk3 *sp8; f32 temp_f31; s16 i; - w03StructUnk2* temp_r29; + w03StructUnk2 *temp_r29; s16 var_r28; - f32* temp_r31; + f32 *temp_r31; if (lbl_1_bss_74) { temp_r29 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2); @@ -1116,28 +1143,31 @@ f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) { temp_r31 = lbl_1_bss_80[i]; if ((temp_r31[1] < temp_f31) && (temp_r31[3] > temp_f31)) { return -1.5f * temp_r31[2]; - } + } } - + return 0.0f; } -void fn_1_629C(s8 arg0) { - w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); +void fn_1_629C(s8 arg0) +{ + w03UnkStruct5 *temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); temp_r31->unk00_bit4 = arg0; } -s32 fn_1_62D0(void) { - w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); +s32 fn_1_62D0(void) +{ + w03UnkStruct5 *temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); return temp_r31->unk00_bit4; } -void fn_1_62FC(void) { +void fn_1_62FC(void) +{ f32 widthHeight[2]; - s32 messageID = 0x000D0005; + s32 messageID = DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05); f32 x; f32 y; - + HuWinMesMaxSizeGet(1, widthHeight, messageID); x = -10000.0f; y = 392.0f; diff --git a/src/REL/w03Dll/main.c b/src/REL/w03Dll/main.c index 3127700f..a721d95b 100644 --- a/src/REL/w03Dll/main.c +++ b/src/REL/w03Dll/main.c @@ -125,24 +125,24 @@ void BoardCreate(void) { lbl_1_bss_0 = (w03State*)&GWSystem.board_data; lbl_1_bss_0->unk3 = 0; - BoardSpaceInit(0x770000); + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W03, 0x00)); - lbl_1_data_1E0 = BoardModelCreate(0x770001, NULL, 0); + lbl_1_data_1E0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x01), NULL, 0); fn_8006DDE8(lbl_1_data_1E0, -1.0f); BoardModelPosSet(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E0, 0, 0x40000001); - lbl_1_data_1E8 = BoardModelCreate(0x770003, NULL, 0); + lbl_1_data_1E8 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x03), NULL, 0); fn_8006DDE8(lbl_1_data_1E8, -1.0f); BoardModelPosSet(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f); BoardModelLayerSet(lbl_1_data_1E8, 2); - lbl_1_data_1E2 = BoardModelCreate(0x770002, NULL, 0); + lbl_1_data_1E2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_1E2, -1.0f); BoardModelPosSet(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E2, 0, 0x40000001); - lbl_1_data_1E4 = BoardModelCreate(0x77001B, lbl_1_data_20C, 0); + lbl_1_data_1E4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x1B), lbl_1_data_20C, 0); BoardModelPosSet(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E4, 1, 0x40000001); @@ -473,4 +473,4 @@ void fn_1_10E4(omObjData* arg0) { } HuAudFXListnerUpdate(&sp14, &sp8); -} \ No newline at end of file +} diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index fa2cb7dc..54c33285 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -1,17 +1,17 @@ -#include "dolphin.h" -#include "game/chrman.h" -#include "game/object.h" #include "REL/w03Dll.h" +#include "dolphin.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/space.h" -#include "game/minigame_seq.h" +#include "game/chrman.h" #include "game/hsfdraw.h" +#include "game/minigame_seq.h" +#include "game/object.h" #include "game/pad.h" -//structs -typedef struct someBits3 { //make sure this is defined correctly +// structs +typedef struct someBits3 { // make sure this is defined correctly /* 0x00 */ struct { u8 unk00_bit0 : 1; u8 unk00_bit1 : 4; @@ -42,58 +42,61 @@ typedef struct unkTemp2 { s8 unk4; char unk_05[3]; f32 unk8; - unkTemp* unk_0C; + unkTemp *unk_0C; } unkTemp2; -//function signatures +// function signatures void fn_1_7C98(void); void fn_1_7C38(void); s32 fn_1_7D18(s32 arg0); void fn_1_8140(s32 arg0); void fn_1_81E0(s32 arg0); -void fn_1_8530(omObjData* arg0); +void fn_1_8530(omObjData *arg0); void fn_1_84A8(s32 arg0); -void fn_1_8698(omObjData* arg0, someBits3* arg1); -void fn_1_8C08(omObjData* arg0, someBits3* arg1); -void fn_1_8E44(omObjData* arg0, someBits3* arg1); -void fn_1_9044(omObjData* arg0, someBits3* arg1); +void fn_1_8698(omObjData *arg0, someBits3 *arg1); +void fn_1_8C08(omObjData *arg0, someBits3 *arg1); +void fn_1_8E44(omObjData *arg0, someBits3 *arg1); +void fn_1_9044(omObjData *arg0, someBits3 *arg1); void fn_1_91B8(void); void fn_1_9230(s32 arg0); void fn_1_9384(void); void fn_1_9474(s32 arg0); void fn_1_97F8(s32 arg0); -void fn_1_9A1C(unkTemp2* arg0); +void fn_1_9A1C(unkTemp2 *arg0); -//data +// data s32 lbl_1_data_450 = -1; s16 lbl_1_data_454 = -1; s16 lbl_1_data_456 = -1; s16 lbl_1_data_458 = -1; -s32 lbl_1_data_45C[] = {0x00770021, 0x00770022, -1}; +s32 lbl_1_data_45C[] = { DATA_MAKE_NUM(DATADIR_W03, 0x21), DATA_MAKE_NUM(DATADIR_W03, 0x22), DATA_NUM_LISTEND }; -//BSS +// BSS char lbl_1_bss_150[0x30]; s16 lbl_1_bss_14E; s8 lbl_1_bss_14C; -omObjData* lbl_1_bss_148; -omObjData* lbl_1_bss_144; -Process* lbl_1_bss_140; +omObjData *lbl_1_bss_148; +omObjData *lbl_1_bss_144; +Process *lbl_1_bss_140; -void fn_1_7ABC(void) { - lbl_1_data_456 = BoardModelCreate(0x770020, lbl_1_data_45C, 0); +void fn_1_7ABC(void) +{ + lbl_1_data_456 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x20), lbl_1_data_45C, 0); BoardModelHookSet(lbl_1_bss_C[7], "phei", lbl_1_data_456); BoardModelMotionStart(lbl_1_data_456, 2, 0x40000002); BoardModelRotYSet(lbl_1_data_456, -45.0f); } -void fn_1_7B58(void) { +void fn_1_7B58(void) +{ if (lbl_1_data_456 != -1) { BoardModelKill(lbl_1_data_456); lbl_1_data_456 = -1; } } -void fn_1_7BA8(void) { +void fn_1_7BA8(void) +{ BoardRollDispSet(0); lbl_1_bss_140 = HuPrcChildCreate(&fn_1_7C98, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_140, &fn_1_7C38); @@ -103,7 +106,8 @@ void fn_1_7BA8(void) { BoardRollDispSet(1); } -void fn_1_7C38(void) { +void fn_1_7C38(void) +{ if (lbl_1_data_454 != -1) { HuWinKill(lbl_1_data_454); lbl_1_data_454 = -1; @@ -111,7 +115,8 @@ void fn_1_7C38(void) { lbl_1_bss_140 = 0; } -void fn_1_7C98(void) { +void fn_1_7C98(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -125,7 +130,8 @@ void fn_1_7C98(void) { HuPrcEnd(); } -s32 fn_1_7D18(s32 arg0) { +s32 fn_1_7D18(s32 arg0) +{ Point3d sp38; Point3d sp2C; Point3d sp20; @@ -136,7 +142,7 @@ s32 fn_1_7D18(s32 arg0) { s16 space; s16 temp_r28; f32 arctan; - + BoardWinCreateChoice(2, MAKE_MESSID(22, 21), 2, 0); if (GWPlayer[arg0].com != 0) { @@ -176,7 +182,8 @@ s32 fn_1_7D18(s32 arg0) { if (GWPlayer[arg0].character == 5) { var_f31 = 54.000004f; - } else { + } + else { var_f31 = 39.0f; } @@ -204,9 +211,10 @@ s32 fn_1_7D18(s32 arg0) { return 1; } -void fn_1_8140(s32 arg0) { +void fn_1_8140(s32 arg0) +{ s16 temp_r31; - + fn_1_81E0(arg0); BoardMusStart(1, 0x16, 0x7F, 0); temp_r31 = MGSeqStartCreate(); @@ -226,35 +234,36 @@ void fn_1_8140(s32 arg0) { } s32 lbl_1_data_470[] = { - 0x005F0066, - 0x001A0066, - 0x006D0066, - 0x008A0066, - 0x00850066, - 0x00110066, - 0x000D0066, - 0x00810066 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x66), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x66), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x66), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x66), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x66), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x66), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x66), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x66), }; s32 lbl_1_data_490[] = { - 0x005F0067, - 0x001A0067, - 0x006D0067, - 0x008A0067, - 0x00850067, - 0x00110067, - 0x000D0067, - 0x00810067 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x67), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x67), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x67), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x67), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x67), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x67), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x67), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x67), }; -void fn_1_81E0(s32 arg0) { +void fn_1_81E0(s32 arg0) +{ Point3d sp8; - omObjData* temp_r3; + omObjData *temp_r3; f32 temp_f31; s32 temp_r28; s32 temp_r5; s32 temp_r5_2; - someBits3* temp_r31; + someBits3 *temp_r31; temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_8530); lbl_1_bss_144 = temp_r3; @@ -273,7 +282,7 @@ void fn_1_81E0(s32 arg0) { temp_r31->unk_06[1] = BoardPlayerMotionCreate(arg0, lbl_1_data_470[temp_r28]); temp_r31->unk_06[2] = BoardPlayerMotionCreate(arg0, lbl_1_data_490[temp_r28]); temp_f31 = 0.3f; - temp_r31->unk_06[0] = BoardModelCreate(0x770009, NULL, 0); + temp_r31->unk_06[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x09), NULL, 0); BoardModelVisibilitySet(temp_r31->unk_06[0], 0); BoardPlayerPosGet(arg0, &sp8); BoardModelPosSetV(temp_r31->unk_06[0], &sp8); @@ -283,10 +292,11 @@ void fn_1_81E0(s32 arg0) { BoardModelMotionSpeedSet(lbl_1_data_456, temp_r3->trans.x); BoardPlayerMotionStart(arg0, temp_r31->unk_06[1], 0x40000001); BoardPlayerMotionSpeedSet(arg0, temp_r3->trans.x); - lbl_1_data_458 = BoardModelMotionCreate(lbl_1_bss_C[10], 0x770025); + lbl_1_data_458 = BoardModelMotionCreate(lbl_1_bss_C[10], DATA_MAKE_NUM(DATADIR_W03, 0x25)); } -void fn_1_8434(someBits3* arg0) { +void fn_1_8434(someBits3 *arg0) +{ if (arg0->unk_06[1] != -1) { BoardPlayerMotionKill(arg0->unk00_bit5, arg0->unk_06[1]); } @@ -298,9 +308,10 @@ void fn_1_8434(someBits3* arg0) { } } -void fn_1_84A8(s32 arg0) { - someBits3* temp_r31; - +void fn_1_84A8(s32 arg0) +{ + someBits3 *temp_r31; + if (lbl_1_bss_144) { temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_144, someBits3); temp_r31->unk00_bit1 = arg0; @@ -310,12 +321,13 @@ void fn_1_84A8(s32 arg0) { } } -void fn_1_8530(omObjData* arg0) { +void fn_1_8530(omObjData *arg0) +{ s32 temp_r0; - someBits3* temp_r31; + someBits3 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, someBits3); - + if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { if (temp_r31->unk_04 != -1) { MGSeqParamSet(temp_r31->unk_04, 2, -1); @@ -330,7 +342,7 @@ void fn_1_8530(omObjData* arg0) { BoardModelKill(temp_r31->unk_06[0]); } lbl_1_bss_144 = NULL; - + omDelObjEx(HuPrcCurrentGet(), arg0); return; } @@ -341,24 +353,25 @@ void fn_1_8530(omObjData* arg0) { } switch (temp_r31->unk00_bit1) { - case 0: - fn_1_8698(arg0, temp_r31); - return; - case 1: - fn_1_8C08(arg0, temp_r31); - return; - case 2: - fn_1_8E44(arg0, temp_r31); - return; - case 3: - fn_1_9044(arg0, temp_r31); - /* fallthrough */ - case 4: - break; + case 0: + fn_1_8698(arg0, temp_r31); + return; + case 1: + fn_1_8C08(arg0, temp_r31); + return; + case 2: + fn_1_8E44(arg0, temp_r31); + return; + case 3: + fn_1_9044(arg0, temp_r31); + /* fallthrough */ + case 4: + break; } } -void fn_1_8698(omObjData* arg0, someBits3* arg1) { +void fn_1_8698(omObjData *arg0, someBits3 *arg1) +{ s32 temp_r27; u32 var_r28; u32 var_r26; @@ -367,10 +380,12 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { if (arg1->unk3 != 0) { arg1->unk3--; - } else { + } + else { if (arg1->unk2 != 0) { arg1->unk2--; - } else { + } + else { MGSeqParamSet(arg1->unk_04, 2, -1); arg1->unk_04 = -1; arg1->unk00_bit1 = 1; @@ -384,7 +399,7 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { lbl_1_bss_14E = 30; } - OSu16tof32((u16*)&lbl_1_bss_14E, &arg0->rot.x); //?? + OSu16tof32((u16 *)&lbl_1_bss_14E, &arg0->rot.x); //?? BoardModelAttrReset(lbl_1_data_456, 0x40000002); BoardModelAttrReset(lbl_1_bss_C[7], 0x40000002); BoardModelAttrReset(lbl_1_bss_C[10], 0x40000002); @@ -407,35 +422,35 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { MGSeqParamSet(arg1->unk_04, 1, arg1->unk2); arg1->unk3 = 60; } - - + var_r26 = GWPlayer[arg1->unk00_bit5].port; var_r28 = 0; - + if ((GWPlayer[arg1->unk00_bit5].com) != 0) { temp_r27 = BoardRandMod(100); switch (GWPlayer[arg1->unk00_bit5].diff) { - case 0: - if (temp_r27 < 12) { + case 0: + if (temp_r27 < 12) { + var_r28 = 0x100; + } + break; + case 1: + if (temp_r27 < 22) { + var_r28 = 0x100; + } + break; + case 2: + if (temp_r27 < 50) { + var_r28 = 0x100; + } + break; + case 3: var_r28 = 0x100; - } - break; - case 1: - if (temp_r27 < 22) { - var_r28 = 0x100; - } - break; - case 2: - if (temp_r27 < 50) { - var_r28 = 0x100; - } - break; - case 3: - var_r28 = 0x100; - break; + break; } - } else { + } + else { var_r28 = HuPadBtnDown[var_r26] & 0x100; } @@ -450,7 +465,8 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { lbl_1_bss_14E += 1; BoardModelVisibilitySet(arg1->unk_06[0], 1); BoardModelRotYSet(arg1->unk_06[0], BoardPlayerRotYGet(arg1->unk00_bit5)); - } else { + } + else { arg0->trans.x *= 0.98f; arg0->trans.y = 0.0f; if (arg0->trans.x <= 1.0f) { @@ -477,15 +493,10 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { } s8 lbl_1_data_4B0 = -1; -s32 lbl_1_data_4B4[] = { - 0x00000440, - 0x00000441, - 0x00000442, - 0x00000443, - 0x00000444 -}; +s32 lbl_1_data_4B4[] = { 0x00000440, 0x00000441, 0x00000442, 0x00000443, 0x00000444 }; -void fn_1_8C08(omObjData* arg0, someBits3* arg1) { +void fn_1_8C08(omObjData *arg0, someBits3 *arg1) +{ Point3d spC; f32 temp_f31; f32 temp_f30; @@ -520,7 +531,8 @@ void fn_1_8C08(omObjData* arg0, someBits3* arg1) { BoardPlayerMotionTimeSet(arg1->unk00_bit5, 2.0f * temp_f30); } -void fn_1_8E44(omObjData* arg0, someBits3* arg1) { +void fn_1_8E44(omObjData *arg0, someBits3 *arg1) +{ Point3d sp8; f32 temp_f1; f32 temp_f31; @@ -558,7 +570,8 @@ void fn_1_8E44(omObjData* arg0, someBits3* arg1) { BoardModelPosSetV(lbl_1_data_456, &sp8); } -void fn_1_9044(omObjData* arg0, someBits3* arg1) { +void fn_1_9044(omObjData *arg0, someBits3 *arg1) +{ Vec sp8; BoardModelRotGet(lbl_1_data_456, &sp8); @@ -580,9 +593,10 @@ void fn_1_9044(omObjData* arg0, someBits3* arg1) { BoardModelRotSetV(lbl_1_data_456, &sp8); } -s8 lbl_1_data_4C8[] = {1, 5, 10, 15, 20, 20}; +s8 lbl_1_data_4C8[] = { 1, 5, 10, 15, 20, 20 }; -void fn_1_91B8(void) { +void fn_1_91B8(void) +{ s8 temp_r3; if (lbl_1_bss_14E == 0) { @@ -593,7 +607,8 @@ void fn_1_91B8(void) { lbl_1_bss_14C = lbl_1_data_4C8[temp_r3]; } -void fn_1_9230(s32 arg0) { +void fn_1_9230(s32 arg0) +{ Point3d sp20; Point3d sp14; Point3d sp8; @@ -620,20 +635,22 @@ void fn_1_9230(s32 arg0) { BoardCameraMotionWait(); } -void fn_1_9384(void) { +void fn_1_9384(void) +{ f32 widthHeight[2]; f32 x, y; - HuWinMesMaxSizeGet(1, widthHeight, 0x160019); + HuWinMesMaxSizeGet(1, widthHeight, MAKE_MESSID(0x16, 0x19)); x = -10000.0f; y = 288.0f; lbl_1_data_454 = HuWinCreate(x, y, widthHeight[0], widthHeight[1], 0); HuWinBGTPLvlSet(lbl_1_data_454, 0.0f); HuWinMesSpeedSet(lbl_1_data_454, 0); - HuWinMesSet(lbl_1_data_454, 0x160019U); + HuWinMesSet(lbl_1_data_454, MAKE_MESSID(0x16, 0x19)); } -void fn_1_9474(s32 arg0) { +void fn_1_9474(s32 arg0) +{ sprintf(lbl_1_bss_150, "%d", lbl_1_bss_14C); BoardWinCreate(2, MAKE_MESSID(22, 23), 2); BoardWinInsertMesSet((u32)lbl_1_bss_150, 4); @@ -664,14 +681,15 @@ void fn_1_9474(s32 arg0) { BoardModelMotionStart(lbl_1_bss_C[7], 0, 0x40000002); } -void fn_1_95B8(omObjData* arg0) { +void fn_1_95B8(omObjData *arg0) +{ f32 temp_f31; s32 var_r25; s32 var_r26; s32 var_r27; s32 var_r28; - unkTemp* var_r30; - unkTemp2* temp_r29; + unkTemp *var_r30; + unkTemp2 *temp_r29; s32 i; s32 temp; @@ -679,14 +697,14 @@ void fn_1_95B8(omObjData* arg0) { if ((temp_r29->unk00_bit0 != 0) || (BoardIsKill() != 0)) { fn_1_9A1C(temp_r29); - HuMemDirectFree((void*)temp_r29->unk_0C); + HuMemDirectFree((void *)temp_r29->unk_0C); lbl_1_bss_148 = 0; omDelObjEx(HuPrcCurrentGet(), arg0); return; } var_r30 = temp_r29->unk_0C; - + for (var_r27 = i = 0; i < 20; i++, var_r30++) { if (var_r30->unk0 == 0) { var_r27++; @@ -697,7 +715,7 @@ void fn_1_95B8(omObjData* arg0) { temp_r29->unk00_bit0 = 1; return; } - + var_r25 = 0; for (i = 0; i < 20; i++) { var_r30 = &temp_r29->unk_0C[i]; @@ -725,23 +743,23 @@ void fn_1_95B8(omObjData* arg0) { } } - -void fn_1_97F8(s32 arg0) { +void fn_1_97F8(s32 arg0) +{ Point3d sp8; f32 temp_f2; f32 var_f31; f64 temp_f1; - omObjData* temp_r3; + omObjData *temp_r3; s32 i; - unkTemp2* temp_r30; - unkTemp* temp_r31; + unkTemp2 *temp_r30; + unkTemp *temp_r31; temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_95B8); lbl_1_bss_148 = temp_r3; temp_r30 = OM_GET_WORK_PTR(temp_r3, unkTemp2); temp_r30->unk00_bit0 = 0; temp_r30->unk4 = arg0; - temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, 0x10000000); + temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, MEMORY_DEFAULT_NUM); BoardPlayerPosGet(arg0, &sp8); temp_r30->unk8 = (80.0f + sp8.y); memset(temp_r30->unk_0C, 0, 0x190); @@ -749,7 +767,8 @@ void fn_1_97F8(s32 arg0) { for (i = 0; i < lbl_1_bss_14C; i++) { if (i == 0) { var_f31 = 0.0f; - } else { + } + else { var_f31 = BoardRandFloat(); } temp_r31 = &temp_r30->unk_0C[i]; @@ -759,13 +778,14 @@ void fn_1_97F8(s32 arg0) { temp_r31->unk8.y = 600.0f + sp8.y + (500.0f * BoardRandFloat()); temp_r31->unk1 = 0; temp_r31->unk4 = BoardRandFloat() * 360.0f; - temp_r31->unk_02 = BoardModelCreate(0x7000A, NULL, 1); + temp_r31->unk_02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); } } -void fn_1_9A1C(unkTemp2* arg0) { +void fn_1_9A1C(unkTemp2 *arg0) +{ s32 i; - unkTemp* temp; + unkTemp *temp; for (i = 0; i < 20; i++) { temp = &arg0->unk_0C[i]; diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 2644f97b..0e0c6249 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -1,25 +1,25 @@ -#include "dolphin.h" #include "REL/executor.h" -#include "game/process.h" -#include "game/data.h" -#include "game/gamework_data.h" #include "REL/w03Dll.h" +#include "dolphin.h" +#include "dolphin/os/OSFastCast.h" +#include "ext_math.h" #include "game/board/main.h" #include "game/board/model.h" +#include "game/board/player.h" #include "game/board/space.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/sprite.h" -#include "game/board/player.h" -#include "math.h" -#include "game/hsfman.h" -#include "dolphin/os/OSFastCast.h" -#include "game/minigame_seq.h" -#include "game/hsfdraw.h" -#include "game/hsfmotion.h" #include "game/pad.h" -#include "game/frand.h" -#include "ext_math.h" +#include "game/process.h" +#include "game/sprite.h" +#include "math.h" typedef struct someBits { /* 0x00 */ struct { @@ -58,11 +58,11 @@ typedef struct w03UnkMG { /* 0x16 */ s16 unk_16; } w03UnkMG; -//external symbols +// external symbols extern u16 HuPadBtnDown[4]; -//function signatures +// function signatures s32 BoardVecDAngleCalcRange(float *value, float min, float range); void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix); @@ -70,23 +70,23 @@ void fn_1_BDAC(void); void fn_1_BC7C(s16 arg0); void fn_1_BBF8(void); s32 fn_1_BBC4(void); -void fn_1_BB74(s8* arg0); +void fn_1_BB74(s8 *arg0); s32 fn_1_BB48(void); void fn_1_B8E8(s32 arg0); -void fn_1_B748(omObjData* arg0, someBits2* arg1); -void fn_1_B688(omObjData* arg0, someBits2* arg1); -void fn_1_B4AC(omObjData* arg0, someBits2* arg1); -void fn_1_B350(omObjData* arg0); +void fn_1_B748(omObjData *arg0, someBits2 *arg1); +void fn_1_B688(omObjData *arg0, someBits2 *arg1); +void fn_1_B4AC(omObjData *arg0, someBits2 *arg1); +void fn_1_B350(omObjData *arg0); void fn_1_B0A4(s32 arg0); u32 fn_1_AF24(s32 arg0); -s32 fn_1_AE4C(s32 arg0, s8* arg1); +s32 fn_1_AE4C(s32 arg0, s8 *arg1); s32 fn_1_AE20(void); void fn_1_ACD8(s32 arg0); -void fn_1_ABD0(omObjData* arg0, someBits* arg1); -void fn_1_AB18(omObjData* arg0, someBits* arg1); +void fn_1_ABD0(omObjData *arg0, someBits *arg1); +void fn_1_AB18(omObjData *arg0, someBits *arg1); void fn_1_A8AC(s32 arg0); void fn_1_A7A0(s32 arg0); -void fn_1_A994(omObjData* arg0); +void fn_1_A994(omObjData *arg0); void fn_1_A5E0(s32 arg0); void fn_1_A6B0(void); void fn_1_A44C(s32 arg0); @@ -96,17 +96,15 @@ s32 fn_1_9CF4(s32 arg0); void fn_1_9F78(void); void fn_1_9FE4(void); -//data +// data s16 lbl_1_data_4D8 = -1; s16 lbl_1_data_4DA = -1; s16 lbl_1_data_4DC = -1; s32 lbl_1_data_4E0 = -1; s16 lbl_1_data_4E4 = -1; -s8 lbl_1_data_4E6[] = {1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0}; +s8 lbl_1_data_4E6[] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 }; -char* lbl_1_data_508[] = { - "item", "item1", "item2" -}; +char *lbl_1_data_508[] = { "item", "item1", "item2" }; s32 lbl_1_data_514[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), @@ -125,23 +123,23 @@ s32 lbl_1_data_514[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), }; -//BSS +// BSS s8 lbl_1_bss_194[3]; -AnimData* lbl_1_bss_190; +AnimData *lbl_1_bss_190; s8 lbl_1_bss_18C; -omObjData* lbl_1_bss_188; -omObjData* lbl_1_bss_184; -Process* lbl_1_bss_180; +omObjData *lbl_1_bss_188; +omObjData *lbl_1_bss_184; +Process *lbl_1_bss_180; -void fn_1_9A7C(void) { +void fn_1_9A7C(void) +{ fn_1_BBF8(); } -void fn_1_9A9C(void) { +void fn_1_9A9C(void) { } -} - -void fn_1_9AA0(void) { +void fn_1_9AA0(void) +{ BoardRollDispSet(0); lbl_1_bss_180 = HuPrcChildCreate(fn_1_9C8C, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_180, fn_1_9B30); @@ -153,7 +151,8 @@ void fn_1_9AA0(void) { BoardRollDispSet(1); } -void fn_1_9B30(void) { +void fn_1_9B30(void) +{ fn_1_BDAC(); if (lbl_1_bss_188) { @@ -173,7 +172,7 @@ void fn_1_9B30(void) { BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DC); lbl_1_data_4DC = -1; } - + if (lbl_1_data_4DA != -1) { BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DA); lbl_1_data_4DA = -1; @@ -187,7 +186,8 @@ void fn_1_9B30(void) { lbl_1_bss_180 = 0; } -void fn_1_9C8C(void) { +void fn_1_9C8C(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -201,7 +201,8 @@ void fn_1_9C8C(void) { HuPrcEnd(); } -s32 fn_1_9CF4(s32 arg0) { +s32 fn_1_9CF4(s32 arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -248,7 +249,7 @@ s32 fn_1_9CF4(s32 arg0) { BoardSpacePosGet(0, temp_r29, &sp38); PSVECSubtract(&sp38, &sp2C, &sp20); PSVECNormalize(&sp20, &sp20); - BoardPlayerRotYSet(arg0, (f32) (180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); + BoardPlayerRotYSet(arg0, (f32)(180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); while (GWPlayer[arg0].moving != 0) { @@ -264,12 +265,14 @@ s32 fn_1_9CF4(s32 arg0) { return 1; } -void fn_1_9F78(void) { - lbl_1_data_4DA = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770023); - lbl_1_data_4DC = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770024); +void fn_1_9F78(void) +{ + lbl_1_data_4DA = BoardModelMotionCreate(lbl_1_bss_C[11], DATA_MAKE_NUM(DATADIR_W03, 0x23)); + lbl_1_data_4DC = BoardModelMotionCreate(lbl_1_bss_C[11], DATA_MAKE_NUM(DATADIR_W03, 0x24)); } -void fn_1_9FE4(void) { +void fn_1_9FE4(void) +{ Vec sp30; Vec sp24; Vec sp18; @@ -340,7 +343,8 @@ void fn_1_9FE4(void) { BoardModelMotionShiftSet(lbl_1_bss_C[11], 1, 0.0f, 10.0, 0x40000001); } -void fn_1_A44C(s32 arg0) { +void fn_1_A44C(s32 arg0) +{ s16 temp_r30; s32 temp_r29; s32 temp_r28; @@ -391,7 +395,8 @@ void fn_1_A44C(s32 arg0) { BoardWinKill(); } -void fn_1_A5E0(s32 arg0) { +void fn_1_A5E0(s32 arg0) +{ Vec sp14; Vec sp8; s16 spaceCur; @@ -409,26 +414,28 @@ void fn_1_A5E0(s32 arg0) { BoardCameraMotionWait(); } -void fn_1_A6B0(void) { +void fn_1_A6B0(void) +{ f32 sp8[2]; f32 val1, val2; - HuWinMesMaxSizeGet(1, sp8, 0x16001F); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x16, 0x1F)); val1 = -10000.0f; val2 = 392.0f; lbl_1_data_4D8 = HuWinCreate(val1, val2, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(lbl_1_data_4D8, 0.0f); HuWinMesSpeedSet(lbl_1_data_4D8, 0); - HuWinMesSet(lbl_1_data_4D8, 0x16001F); + HuWinMesSet(lbl_1_data_4D8, MAKE_MESSID(0x16, 0x1F)); } -void fn_1_A7A0(s32 arg0) { - someBits* temp_r31; - omObjData* temp_r3; +void fn_1_A7A0(s32 arg0) +{ + someBits *temp_r31; + omObjData *temp_r3; - temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_A994); + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void *)fn_1_A994); lbl_1_bss_188 = temp_r3; - temp_r31 = (someBits*)&temp_r3->work[0]; + temp_r31 = (someBits *)&temp_r3->work[0]; temp_r31->unk00_bit0 = 0; temp_r31->unk00_bit6 = 0; temp_r31->unk00_bit4 = arg0; @@ -440,7 +447,8 @@ void fn_1_A7A0(s32 arg0) { lbl_1_bss_18C = fn_1_AE4C(arg0, lbl_1_bss_194); } -void fn_1_A8AC(s32 arg0) { +void fn_1_A8AC(s32 arg0) +{ Vec sp14; Vec sp8; f32 playerYRot; @@ -462,18 +470,19 @@ void fn_1_A8AC(s32 arg0) { } } -void fn_1_A994(omObjData* arg0) { +void fn_1_A994(omObjData *arg0) +{ s32 temp_r0; - someBits* temp_r31; + someBits *temp_r31; - temp_r31 = (someBits*)&lbl_1_bss_188->work[0]; - if ((temp_r31->unk00_bit0 != 0)|| (BoardIsKill() != 0)) { + temp_r31 = (someBits *)&lbl_1_bss_188->work[0]; + if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { if (temp_r31->unk4 != -1) { MGSeqParamSet(temp_r31->unk4, 2, -1U); temp_r31->unk4 = -1; } lbl_1_bss_188 = NULL; - + omDelObjEx(HuPrcCurrentGet(), arg0); return; } @@ -481,10 +490,12 @@ void fn_1_A994(omObjData* arg0) { if (temp_r31->unk00_bit6 == 0) { if (temp_r31->unk2 != 0) { temp_r31->unk2--; - } else { + } + else { if (temp_r31->unk1 != 0) { temp_r31->unk1--; - } else { + } + else { fn_1_ACD8(2); } MGSeqParamSet(temp_r31->unk4, 1, temp_r31->unk1); @@ -493,27 +504,29 @@ void fn_1_A994(omObjData* arg0) { } switch (temp_r31->unk00_bit1) { - case 1: - fn_1_AB18(arg0, temp_r31); - return; - case 2: - fn_1_ABD0(arg0, temp_r31); - return; - case 3: - if (BoardPlayerMotionEndCheck(temp_r31->unk00_bit4) != 0) { - temp_r31->unk00_bit0 = 1; - } - case 0: - break; + case 1: + fn_1_AB18(arg0, temp_r31); + return; + case 2: + fn_1_ABD0(arg0, temp_r31); + return; + case 3: + if (BoardPlayerMotionEndCheck(temp_r31->unk00_bit4) != 0) { + temp_r31->unk00_bit0 = 1; + } + case 0: + break; } } -void fn_1_AB18(omObjData* arg0, someBits* arg1) { +void fn_1_AB18(omObjData *arg0, someBits *arg1) +{ u32 var_r31 = 0; if (GWPlayer[arg1->unk00_bit4].com != 0) { var_r31 = fn_1_AF24(arg1->unk00_bit4); - } else { + } + else { var_r31 = HuPadBtnDown[GWPlayer[arg1->unk00_bit4].port]; } if (var_r31 == 0x100) { @@ -521,14 +534,15 @@ void fn_1_AB18(omObjData* arg0, someBits* arg1) { } } -//TODO properly use inlines -void fn_1_ABD0(omObjData* arg0, someBits* arg1) { +// TODO properly use inlines +void fn_1_ABD0(omObjData *arg0, someBits *arg1) +{ s16 boardModelID; - PlayerState* playerStateCopy; + PlayerState *playerStateCopy; s32 bit; - PlayerState* playerState; + PlayerState *playerState; s16 temp, temp2; - + bit = arg1->unk00_bit4; playerState = &GWPlayer[bit]; playerStateCopy = playerState; @@ -551,40 +565,43 @@ void fn_1_ABD0(omObjData* arg0, someBits* arg1) { } } -void fn_1_ACD8(s32 arg0) { - someBits* temp_r31; +void fn_1_ACD8(s32 arg0) +{ + someBits *temp_r31; - temp_r31 = (someBits*)&lbl_1_bss_188->work[0]; + temp_r31 = (someBits *)&lbl_1_bss_188->work[0]; temp_r31->unk00_bit1 = arg0; switch (arg0) { - case 0: - BoardPlayerIdleSet(temp_r31->unk00_bit4); - return; - case 2: - temp_r31->unk00_bit6 = 1; - if (lbl_1_data_4D8 != -1) { - HuWinKill(lbl_1_data_4D8); - lbl_1_data_4D8 = -1; - } - if (temp_r31->unk4 != -1) { - MGSeqParamSet(temp_r31->unk4, 2, -1U); - temp_r31->unk4 = -1; - } - BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0); - return; - case 3: - BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0); - break; + case 0: + BoardPlayerIdleSet(temp_r31->unk00_bit4); + return; + case 2: + temp_r31->unk00_bit6 = 1; + if (lbl_1_data_4D8 != -1) { + HuWinKill(lbl_1_data_4D8); + lbl_1_data_4D8 = -1; + } + if (temp_r31->unk4 != -1) { + MGSeqParamSet(temp_r31->unk4, 2, -1U); + temp_r31->unk4 = -1; + } + BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0); + return; + case 3: + BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0); + break; } } -s32 fn_1_AE20(void) { - someBits* temp_r31 = (someBits*)&lbl_1_bss_188->work[0]; +s32 fn_1_AE20(void) +{ + someBits *temp_r31 = (someBits *)&lbl_1_bss_188->work[0]; return temp_r31->unk00_bit1; } -s32 fn_1_AE4C(s32 arg0, s8* arg1) { +s32 fn_1_AE4C(s32 arg0, s8 *arg1) +{ s32 temp_r30; s32 temp_r29; s32 temp_r28; @@ -597,23 +614,29 @@ s32 fn_1_AE4C(s32 arg0, s8* arg1) { if (temp_r29 > temp_r28) { if (temp_r29 > temp_r30) { var_r31 = 0; - } else if (temp_r30 > temp_r28) { + } + else if (temp_r30 > temp_r28) { var_r31 = 2; - } else { + } + else { var_r31 = 1; } - } else if (temp_r28 > temp_r30) { + } + else if (temp_r28 > temp_r30) { var_r31 = 1; - } else if (temp_r30 > temp_r29) { + } + else if (temp_r30 > temp_r29) { var_r31 = 2; - } else { + } + else { var_r31 = 0; } return var_r31; } -u32 fn_1_AF24(s32 arg0) { +u32 fn_1_AF24(s32 arg0) +{ s32 spC; s32 sp8; s16 temp_r31; @@ -623,18 +646,18 @@ u32 fn_1_AF24(s32 arg0) { spC = 0; switch (GWPlayer[arg0].diff) { - case 3: - var_r30 = 0; - break; - case 2: - var_r30 = 5; - break; - case 1: - var_r30 = 15; - break; - case 0: - var_r30 = 40; - break; + case 3: + var_r30 = 0; + break; + case 2: + var_r30 = 5; + break; + case 1: + var_r30 = 15; + break; + case 0: + var_r30 = 40; + break; } if ((var_r30 != 0) && (BoardRandMod(100) < var_r30)) { return 0x100U; @@ -643,38 +666,39 @@ u32 fn_1_AF24(s32 arg0) { temp_r31 = BoardModelMotionTimeGet(lbl_1_bss_C[9]); switch (lbl_1_bss_18C) { - case 0: - if ((temp_r31 < 33) || (temp_r31 > 35)) { + case 0: + if ((temp_r31 < 33) || (temp_r31 > 35)) { + break; + } + return 0x100U; + case 1: + if (((temp_r31 >= 40) && (temp_r31 <= 42)) || ((temp_r31 >= 20) && (temp_r31 <= 22))) { + return 0x100U; + } + break; + case 2: + if (temp_r31 >= 50) { + return 0x100U; + } break; - } - return 0x100U; - case 1: - if (((temp_r31 >= 40) && (temp_r31 <= 42)) || ((temp_r31 >= 20) && (temp_r31 <= 22))) { - return 0x100U; - } - break; - case 2: - if (temp_r31 >= 50) { - return 0x100U; - } - break; } return 0; } -void fn_1_B0A4(s32 arg0) { +void fn_1_B0A4(s32 arg0) +{ Mtx sp18; s32 spC[3]; s32 j; s32 i; s32 var_r31_2; s32 temp_r29; - someBits2* temp_r30; - omObjData* temp_r3; + someBits2 *temp_r30; + omObjData *temp_r3; - temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, (void*)fn_1_B350); - lbl_1_bss_184 = (void*)temp_r3; - temp_r30 = (someBits2*)&temp_r3->work[0]; + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, (void *)fn_1_B350); + lbl_1_bss_184 = (void *)temp_r3; + temp_r30 = (someBits2 *)&temp_r3->work[0]; temp_r30->unk00_bit0 = 0; temp_r30->unk00_bit1 = 0; @@ -691,14 +715,15 @@ void fn_1_B0A4(s32 arg0) { if (spC[i] == -1) { continue; } - } else { + } + else { continue; } i++; } - + fn_1_BBF8(); - + for (i = 0; i < ARRAY_COUNT(spC); i++) { temp_r29 = spC[i]; temp_r30->unk3[i] = temp_r29; @@ -722,11 +747,12 @@ void fn_1_B0A4(s32 arg0) { } } -void fn_1_B350(omObjData* arg0) { +void fn_1_B350(omObjData *arg0) +{ s32 i; - someBits2* temp_r31; + someBits2 *temp_r31; - temp_r31 = (someBits2*)&arg0->work[0]; + temp_r31 = (someBits2 *)&arg0->work[0]; if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { BoardModelHookReset(lbl_1_bss_C[9]); @@ -740,27 +766,28 @@ void fn_1_B350(omObjData* arg0) { } switch (temp_r31->unk00_bit1) { - case 1: - if (!(BoardModelMotionTimeGet(lbl_1_bss_C[9]) < 20.0f)) { - BoardModelMotionStartEndSet(lbl_1_bss_C[9], 0x14, 0x3A); - fn_1_B8E8(0); + case 1: + if (!(BoardModelMotionTimeGet(lbl_1_bss_C[9]) < 20.0f)) { + BoardModelMotionStartEndSet(lbl_1_bss_C[9], 0x14, 0x3A); + fn_1_B8E8(0); + return; + } + case 0: + break; + case 2: + fn_1_B4AC(arg0, temp_r31); return; - } - case 0: - break; - case 2: - fn_1_B4AC(arg0, temp_r31); - return; - case 3: - fn_1_B688(arg0, temp_r31); - return; - case 4: - fn_1_B748(arg0, temp_r31); - break; + case 3: + fn_1_B688(arg0, temp_r31); + return; + case 4: + fn_1_B748(arg0, temp_r31); + break; } } -void fn_1_B4AC(omObjData* arg0, someBits2* arg1) { +void fn_1_B4AC(omObjData *arg0, someBits2 *arg1) +{ Point3d sp20; Point3d sp14; Point3d sp8; @@ -778,7 +805,7 @@ void fn_1_B4AC(omObjData* arg0, someBits2* arg1) { sp8 = sp20; arg1->unk2 = i; break; - } + } } HuAudFXPlay(0x30C); @@ -792,7 +819,8 @@ void fn_1_B4AC(omObjData* arg0, someBits2* arg1) { fn_1_BC7C(arg1->unk_06[arg1->unk2]); } -void fn_1_B688(omObjData* arg0, someBits2* arg1) { +void fn_1_B688(omObjData *arg0, someBits2 *arg1) +{ Point3d sp8; if (arg1->unk1-- != 0) { @@ -806,8 +834,9 @@ void fn_1_B688(omObjData* arg0, someBits2* arg1) { fn_1_B8E8(0); } - -void fn_1_B748(omObjData* arg0, someBits2* arg1) { + +void fn_1_B748(omObjData *arg0, someBits2 *arg1) +{ Vec sp14; Point3d sp8; f32 temp_f0; @@ -820,7 +849,7 @@ void fn_1_B748(omObjData* arg0, someBits2* arg1) { } if (arg1->unk1 < 90) { - OSu8tof32((u8*)&arg1->unk1, &temp_f0); + OSu8tof32((u8 *)&arg1->unk1, &temp_f0); BoardModelPosGet(temp_r29, &sp8); sp8.y += arg0->trans.y; BoardModelPosSetV(temp_r29, &sp8); @@ -840,76 +869,81 @@ void fn_1_B748(omObjData* arg0, someBits2* arg1) { fn_1_B8E8(0); } -void fn_1_B8E8(s32 arg0) { +void fn_1_B8E8(s32 arg0) +{ Point3d sp14; Point3d sp8; f32 temp_f31; - someBits2* temp_r31; + someBits2 *temp_r31; f32 temp; - temp_r31 = (someBits2*)&lbl_1_bss_184->work[0]; + temp_r31 = (someBits2 *)&lbl_1_bss_184->work[0]; temp_r31->unk00_bit1 = arg0; switch (arg0) { - case 1: - temp_f31 = 0.31666666f; - BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000001); - BoardModelMotionSpeedSet(lbl_1_bss_C[9], temp_f31); - BoardModelMotionTimeSet(lbl_1_bss_C[9], 8.0f); - return; - case 2: - temp_r31->unk00_bit6 = 1; - return; - case 3: - lbl_1_data_4E0 = HuAudFXPlay(0x35F); - BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); - BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); - temp = 50.0f + sp8.y; - lbl_1_bss_184->trans.x = (sp14.x - sp8.x) / 10.0f; - lbl_1_bss_184->trans.z = (sp14.z - sp8.z) / 10.0f; - lbl_1_bss_184->trans.y = (temp - sp8.y) / 10.0f; - temp_r31->unk1 = 10; - return; - case 4: - BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); - sp14.y += 30.000002f; - BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); - lbl_1_bss_184->trans.y = (sp14.y - sp8.y) / 22.0f; - temp_r31->unk1 = 0; + case 1: + temp_f31 = 0.31666666f; + BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_C[9], temp_f31); + BoardModelMotionTimeSet(lbl_1_bss_C[9], 8.0f); + return; + case 2: + temp_r31->unk00_bit6 = 1; + return; + case 3: + lbl_1_data_4E0 = HuAudFXPlay(0x35F); + BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); + BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); + temp = 50.0f + sp8.y; + lbl_1_bss_184->trans.x = (sp14.x - sp8.x) / 10.0f; + lbl_1_bss_184->trans.z = (sp14.z - sp8.z) / 10.0f; + lbl_1_bss_184->trans.y = (temp - sp8.y) / 10.0f; + temp_r31->unk1 = 10; + return; + case 4: + BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); + sp14.y += 30.000002f; + BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); + lbl_1_bss_184->trans.y = (sp14.y - sp8.y) / 22.0f; + temp_r31->unk1 = 0; } } -s32 fn_1_BB48(void) { - someBits2* temp = (someBits2*)&lbl_1_bss_184->work[0]; +s32 fn_1_BB48(void) +{ + someBits2 *temp = (someBits2 *)&lbl_1_bss_184->work[0]; return temp->unk00_bit1; } -void fn_1_BB74(s8* arg0) { - someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); +void fn_1_BB74(s8 *arg0) +{ + someBits2 *bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); s32 i; - + for (i = 0; i < ARRAY_COUNT(bits->unk3); i++) { arg0[i] = bits->unk3[i]; } } -s32 fn_1_BBC4(void) { - someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); +s32 fn_1_BBC4(void) +{ + someBits2 *bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); return bits->unk3[bits->unk2]; } -void fn_1_BBF8(void) { +void fn_1_BBF8(void) +{ BoardModelMotionStart(lbl_1_bss_C[9], 0, 0); BoardModelMotionSpeedSet(lbl_1_bss_C[9], 0.0f); BoardModelMotionTimeSet(lbl_1_bss_C[9], 0.0f); BoardModelAttrReset(lbl_1_bss_C[9], 0x40000004); } +void fn_1_BC7C(s16 arg0) +{ + ParticleData *particle; -void fn_1_BC7C(s16 arg0) { - ParticleData* particle; - - lbl_1_bss_190 = HuSprAnimReadFile(0x120000); + lbl_1_bss_190 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00)); HuSprAnimLock(lbl_1_bss_190); lbl_1_data_4E4 = Hu3DParticleCreate(lbl_1_bss_190, 100); Hu3DParticleHookSet(lbl_1_data_4E4, fn_1_BE30); @@ -921,7 +955,8 @@ void fn_1_BC7C(s16 arg0) { particle->unk_02 = arg0; } -void fn_1_BDAC(void) { +void fn_1_BDAC(void) +{ if (lbl_1_data_4E4 != -1) { Hu3DModelKill(lbl_1_data_4E4); lbl_1_data_4E4 = -1; @@ -932,12 +967,13 @@ void fn_1_BDAC(void) { } } -void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { +void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) +{ Point3d sp8; f32 temp_f30; f32 temp_f29; f32 temp_f31; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 i, j; if (particle->unk_34 == 0) { @@ -961,20 +997,20 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { } } if (j != particle->unk_30) { - temp_f30 = 360.0f * ((1.0f/255.0f) * frand8()); - temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f/255.0f) * frand8()))); + temp_f30 = 360.0f * ((1.0f / 255.0f) * frand8()); + temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk34.x = (sp8.x + (temp_f29 * sind(temp_f30))); var_r31->unk34.z = (sp8.z + (temp_f29 * cosd(temp_f30))); - var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f/255.0f) * frand8()))))); - var_r31->unk08.x = (0.5f + (3.0f * ((1.0f/255.0f) * frand8()))); - var_r31->unk08.y = (0.3f + (2.0f * ((1.0f/255.0f) * frand8()))); + var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f / 255.0f) * frand8()))))); + var_r31->unk08.x = (0.5f + (3.0f * ((1.0f / 255.0f) * frand8()))); + var_r31->unk08.y = (0.3f + (2.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk40.a = 180; - var_r31->unk2C = (15.0f * temp_f31); + var_r31->unk2C = (15.0f * temp_f31); } } var_r31 = particle->unk_48; - + for (i = 0; i < particle->unk_30; i++, var_r31++) { if (0.0f != var_r31->unk2C) { var_r31->unk34.y = (var_r31->unk34.y - var_r31->unk08.x); @@ -982,6 +1018,6 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { if (var_r31->unk2C <= 0.0f) { var_r31->unk2C = 0.0f; } - } + } } } diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index 99d0aeda..115c33dd 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -43,10 +43,10 @@ s16 lbl_1_data_388 = -1; s16 lbl_1_data_38A = -1; s16 lbl_1_data_38C = -1; s32 lbl_1_data_390[] = { - 0x00770026, - 0x00770027, - 0x00770028, - -1 + DATA_MAKE_NUM(DATADIR_W03, 0x26), + DATA_MAKE_NUM(DATADIR_W03, 0x27), + DATA_MAKE_NUM(DATADIR_W03, 0x28), + DATA_NUM_LISTEND }; void fn_1_63F4(s32 arg0) { @@ -70,8 +70,8 @@ void fn_1_6494(void) { Vec sp8; unkWorkStruct* temp_r31; - lbl_1_data_388 = BoardModelCreate(0x77000E, NULL, 0); - lbl_1_data_38C = BoardModelCreate(0x77000F, NULL, 0); + lbl_1_data_388 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0E), NULL, 0); + lbl_1_data_38C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0F), NULL, 0); lbl_1_data_38A = BoardModelCreate(0x2000D, &lbl_1_data_390[0], 0); BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001); BoardModelHookSet(lbl_1_data_38A, "itemhook_R", lbl_1_data_38C); diff --git a/src/REL/w03Dll/smoke.c b/src/REL/w03Dll/smoke.c index ae32fa76..0fcdeda3 100644 --- a/src/REL/w03Dll/smoke.c +++ b/src/REL/w03Dll/smoke.c @@ -31,7 +31,7 @@ void fn_1_785C(void) { lbl_1_bss_138[0] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0); temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138[0]->work[0]; for (i = 0; i < ARRAY_COUNT(temp_r31->unk_00); i++) { - temp_r31->unk_00[i] = BoardModelCreate(0x770008, NULL, 0); + temp_r31->unk_00[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x08), NULL, 0); temp_r29 = kemuri_strings[i]; if (0.0f == temp_r31->unk_0C) { diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index ac985685..82c73f4c 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -371,7 +371,7 @@ void fn_1_1ED4(s32 arg0) { Point3d spC; f32 sp8; - lbl_1_data_284 = BoardModelCreate(0x77000C, NULL, 0); + lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0C), NULL, 0); BoardModelVisibilitySet(lbl_1_data_284, 0); BoardModelVisibilitySet(lbl_1_bss_6C, 0); BoardModelPosGet(lbl_1_bss_6C, &spC); @@ -418,7 +418,7 @@ void fn_1_20E0(s32 arg0) { f32 var_f31; s32 i; - lbl_1_data_284 = BoardModelCreate(0x77000D, NULL, 0); + lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0D), NULL, 0); BoardModelVisibilitySet(lbl_1_data_284, 0); BoardModelVisibilitySet(lbl_1_bss_6C, 0); BoardModelPosGet(lbl_1_bss_6C, &spC); @@ -606,7 +606,7 @@ s32 fn_1_2930(s32 arg0) { void fn_1_2A40(void) { lbl_1_bss_30 = 0.0f; - lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, 0x10000000U); + lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM); lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44); Hu3DModelLayerSet(lbl_1_data_286, 3); } diff --git a/src/REL/w04Dll/boo_event.c b/src/REL/w04Dll/boo_event.c index 3a89e85b..3dadfc9d 100755 --- a/src/REL/w04Dll/boo_event.c +++ b/src/REL/w04Dll/boo_event.c @@ -163,7 +163,7 @@ static void fn_1_20EC(void) { } } for (i = 0; i < 3; i++) { - lbl_1_bss_F4[i] = BoardModelCreate(0x70000, NULL, 1); + lbl_1_bss_F4[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); BoardModelLayerSet(lbl_1_bss_F4[i], 2); BoardModelVisibilitySet(lbl_1_bss_F4[i], 0); } diff --git a/src/REL/w05Dll/dolphin.c b/src/REL/w05Dll/dolphin.c index 8115c637..14f7d66b 100644 --- a/src/REL/w05Dll/dolphin.c +++ b/src/REL/w05Dll/dolphin.c @@ -1,15 +1,15 @@ #include "REL/w05Dll.h" -#include "game/hsfdraw.h" #include "game/audio.h" -#include "game/objsub.h" -#include "game/frand.h" #include "game/chrman.h" +#include "game/frand.h" +#include "game/hsfdraw.h" +#include "game/objsub.h" +#include "game/board/audio.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/window.h" -#include "game/board/audio.h" // bss s16 lbl_1_bss_72[2]; @@ -20,44 +20,60 @@ s16 lbl_1_bss_58[6]; // data char *lbl_1_data_22C[6] = { "orange1", "orange2", "pine2", "pine1", "suika1", "suika2" }; -s32 lbl_1_data_244[6] = { 0x00790027, 0x00790028, 0x00790029, 0x0079002A, 0x0079002B, 0xFFFFFFFF }; +s32 lbl_1_data_244[6] = { + DATA_MAKE_NUM(DATADIR_W05, 0x27), + DATA_MAKE_NUM(DATADIR_W05, 0x28), + DATA_MAKE_NUM(DATADIR_W05, 0x29), + DATA_MAKE_NUM(DATADIR_W05, 0x2A), + DATA_MAKE_NUM(DATADIR_W05, 0x2B), + DATA_NUM_LISTEND, +}; Vec lbl_1_data_25C[6] = { - { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 90.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 180.0f, 0.0f }, - { 0.0f, 270.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, + { 0.0f, 270.0f, 0.0f }, { 0.0f, 90.0f, 0.0f }, }; Vec lbl_1_data_2A4[6] = { - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 300.0f, 0.0f }, - { 0.0f, 450.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 300.0f, 0.0f }, + { 0.0f, 450.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, }; s32 lbl_1_data_2EC[2] = { 0x76, 0x77 }; -s32 lbl_1_data_2F4[6] = { 0x0079002C, 0x0079002D, 0x0079002E, 0x0079002C, 0x0079002F, 0x00790030 }; +s32 lbl_1_data_2F4[6] = { + DATA_MAKE_NUM(DATADIR_W05, 0x2C), + DATA_MAKE_NUM(DATADIR_W05, 0x2D), + DATA_MAKE_NUM(DATADIR_W05, 0x2E), + DATA_MAKE_NUM(DATADIR_W05, 0x2C), + DATA_MAKE_NUM(DATADIR_W05, 0x2F), + DATA_MAKE_NUM(DATADIR_W05, 0x30), +}; -void fn_1_3F74(void) { +void fn_1_3F74(void) +{ s32 var_r31; BoardAudSeqPause(0, 1, 0x3E8); - + for (var_r31 = 0x3C; var_r31 != 0; var_r31--) { HuPrcVSleep(); } - + BoardMusStart(1, 0x24, 0x7F, 0); HuPrcEnd(); } -void fn_1_3FD8(void) { +void fn_1_3FD8(void) +{ s32 var_r31; BoardAudSeqFadeOut(1, 0x3E8); - + for (var_r31 = 0x3C; var_r31 != 0; var_r31--) { HuPrcVSleep(); } @@ -65,7 +81,8 @@ void fn_1_3FD8(void) { HuPrcEnd(); } -void fn_1_4034(s32 arg0) { +void fn_1_4034(s32 arg0) +{ Vec sp40; Vec sp34; Vec sp28; @@ -79,20 +96,20 @@ void fn_1_4034(s32 arg0) { s16 var_r30; s32 var_r27; BoardSpace *var_r25; - omObjData* temp_r24; + omObjData *temp_r24; BoardSpace *var_r28; s32 var_r31; s32 temp_r26; lbl_1_bss_68 = GWSystem.player_curr; sp10 = GWPlayer[lbl_1_bss_68].character; - + for (var_r31 = 0; var_r31 < 2; var_r31++) { lbl_1_bss_72[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_68, lbl_1_data_2EC[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_68].character]); } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { - lbl_1_bss_6C[var_r31] = BoardModelCreate(0x7000A, NULL, 1); + lbl_1_bss_6C[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); BoardModelAttrSet(lbl_1_bss_6C[var_r31], 0x40000001); BoardModelVisibilitySet(lbl_1_bss_6C[var_r31], 0); } @@ -118,7 +135,7 @@ void fn_1_4034(s32 arg0) { } BoardPlayerIdleSet(lbl_1_bss_68); HuPrcSleep(8); - lbl_1_bss_64 = BoardModelCreate(0x790026, lbl_1_data_244, 0); + lbl_1_bss_64 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x26), lbl_1_data_244, 0); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[arg0], &sp40); PSVECAdd(&sp40, &lbl_1_data_2A4[arg0], &sp40); BoardModelMotionStart(lbl_1_bss_64, 4, 0); @@ -126,7 +143,7 @@ void fn_1_4034(s32 arg0) { BoardModelPosSetV(lbl_1_bss_64, &sp40); BoardModelRotSetV(lbl_1_bss_64, &lbl_1_data_25C[arg0]); fn_1_66C0(0, &sp40); - + var_r30 = 0; while (BoardModelMotionTimeGet(lbl_1_bss_64) < BoardModelMotionMaxTimeGet(lbl_1_bss_64)) { if (BoardModelMotionTimeGet(lbl_1_bss_64) > 50.0f && var_r30 == 0) { @@ -157,7 +174,8 @@ void fn_1_4034(s32 arg0) { } if ((arg0 & 1) != 0) { var_r27 = arg0 - 1; - } else { + } + else { var_r27 = arg0 + 1; } Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[var_r27], &sp34); @@ -167,7 +185,7 @@ void fn_1_4034(s32 arg0) { while (fn_1_1208(lbl_1_bss_64, temp_f25, 10.0f) == 0) { HuPrcVSleep(); } - + BoardPlayerPosGet(lbl_1_bss_68, &sp28); var_f27 = sqrtf(((sp40.x - sp28.x) * (sp40.x - sp28.x)) + ((sp40.z - sp28.z) * (sp40.z - sp28.z))); PSVECSubtract(&sp40, &sp28, &sp1C); @@ -176,7 +194,7 @@ void fn_1_4034(s32 arg0) { BoardPlayerMotionStart(lbl_1_bss_68, 4, 0); var_f26 = 0.0f; temp_f22 = 15.0f; - + loop_37: sp1C.y = temp_f22 - (0.075f * (0.25f * (var_f26 * var_f26))); var_f26++; @@ -190,28 +208,30 @@ loop_37: if (sp28.y <= 20.0f + sp40.y) { sp28.y = 20.0f + sp40.y; - } else { + } + else { BoardPlayerPosSetV(lbl_1_bss_68, &sp28); HuPrcVSleep(); goto loop_37; } BoardPlayerPosSetV(lbl_1_bss_68, &sp28); BoardPlayerMotionStart(lbl_1_bss_68, lbl_1_bss_72[0], 0); - + while (fn_1_1208(BoardPlayerModelGet(lbl_1_bss_68), temp_f25, 10.0f) == 0) { HuPrcVSleep(); } - + while (BoardPlayerMotionEndCheck(lbl_1_bss_68) == 0) { HuPrcVSleep(); } - + BoardPlayerMotionStart(lbl_1_bss_68, lbl_1_bss_72[1], 0x40000001); HuPrcSleep(0x12); temp_r24->work[1] = 1; if (arg0 < 4) { fn_1_4EB4(arg0, temp_r26, &sp34); - } else { + } + else { fn_1_5794(arg0, temp_r26, &sp34); } BoardModelPosGet(lbl_1_bss_64, &sp40); @@ -222,7 +242,7 @@ loop_37: while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { HuPrcVSleep(); } - + fn_1_66C0(1, &sp40); BoardModelMotionShiftSet(lbl_1_bss_64, 5, 0.0f, 5.0f, 0); var_r30 = 0; @@ -272,7 +292,7 @@ loop_37: for (var_r31 = 0; var_r31 < 2; var_r31++) { BoardPlayerMotionKill(lbl_1_bss_68, lbl_1_bss_72[var_r31]); } - + fn_1_6670(); for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -280,7 +300,8 @@ loop_37: } } -void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { +void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -291,8 +312,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { f32 var_f22; f32 var_f24; f32 var_f28; - omObjData* temp_r30; - omObjData* temp_r29; + omObjData *temp_r30; + omObjData *temp_r29; s32 temp_r28; temp_f23 = 10.0f; @@ -315,7 +336,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { sp30.y += 20.0f; BoardPlayerPosSetV(lbl_1_bss_68, &sp30); break; - } else { + } + else { PSVECAdd(&sp3C, &sp24, &sp3C); BoardModelPosSetV(lbl_1_bss_64, &sp3C); sp30 = sp3C; @@ -336,17 +358,17 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { HuPrcVSleep(); } - + BoardPlayerPosGet(lbl_1_bss_68, &sp30); var_f28 = sqrtf(((sp3C.x - sp30.x) * (sp3C.x - sp30.x)) + ((sp3C.z - sp30.z) * (sp3C.z - sp30.z))); PSVECSubtract(&sp3C, &sp30, &sp24); PSVECNormalize(&sp24, &sp24); PSVECScale(&sp24, &sp24, var_f28 / 45.0f); BoardPlayerMotionStart(lbl_1_bss_68, 4, 0); - + var_f24 = 0.0f; temp_f19 = 15.0f; - + while (1) { sp24.y = temp_f19 - (0.075f * (0.25f * (var_f24 * var_f24))); var_f24++; @@ -359,7 +381,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { } if (sp30.y <= sp3C.y && sp24.y < 0.0f) { sp30.y = sp3C.y; - } else { + } + else { BoardPlayerPosSetV(lbl_1_bss_68, &sp30); HuPrcVSleep(); continue; @@ -369,7 +392,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { } } -void fn_1_5648(void) { +void fn_1_5648(void) +{ Vec sp8; s32 var_r31; @@ -391,7 +415,8 @@ void fn_1_5648(void) { } } -void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { +void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) +{ Vec sp64; Vec sp58; Vec sp4C; @@ -400,16 +425,16 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { Vec sp28; Vec sp1C; f32 sp18; - Process* temp_r23; + Process *temp_r23; f32 temp_f18; f32 temp_f22; f32 var_f27; f32 var_f23; f32 var_f28; - omObjData* temp_r27; - omObjData* var_r26; - omObjData* temp_r25; - omObjData* var_r24; + omObjData *temp_r27; + omObjData *var_r26; + omObjData *temp_r25; + omObjData *var_r24; s32 var_r28; s32 var_r29; s32 var_r30; @@ -429,7 +454,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { PSVECScale(&sp40, &sp40, temp_f22); if (arg0 == 5) { var_r29 = 0x96; - } else { + } + else { var_r29 = 0x5A; } var_f28 = 0.0f; @@ -442,7 +468,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { BoardModelPosGet(lbl_1_bss_64, &sp1C); temp_r27 = fn_1_66C0(4, &sp1C); temp_r25 = fn_1_66C0(5, &sp1C); - + while (1) { sp18 = BoardModelRotYGet(lbl_1_bss_64); sp58 = sp64; @@ -455,7 +481,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { sp4C.y += 20.0f; BoardPlayerPosSetV(lbl_1_bss_68, &sp4C); break; - } else { + } + else { PSVECAdd(&sp58, &sp40, &sp58); sp64 = sp58; if (var_r29 == 0) { @@ -469,24 +496,28 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { temp_r27->work[1] = 1; temp_r25->work[1] = 1; var_r30++; - } else if (var_r30 == 1 && var_f28 < -180.0f) { - HuAudFXStop(var_r28); - HuAudFXPlay(0x47D); - HuAudPlayerVoicePlay(lbl_1_bss_68, 0x125); - fn_1_66C0(3, &sp58); - var_r30++; - } else if ((var_r30 == 2) && (var_f28 < -360.0f)) { - var_r28 = HuAudFXPlay(0x47F); - HuAudFXPlay(0x481); - fn_1_66C0(3, &sp58); - var_r30++; - } else if ((var_r30 == 3) && (-540.0f == var_f28)) { + } + else if (var_r30 == 1 && var_f28 < -180.0f) { + HuAudFXStop(var_r28); + HuAudFXPlay(0x47D); + HuAudPlayerVoicePlay(lbl_1_bss_68, 0x125); + fn_1_66C0(3, &sp58); + var_r30++; + } + else if ((var_r30 == 2) && (var_f28 < -360.0f)) { + var_r28 = HuAudFXPlay(0x47F); + HuAudFXPlay(0x481); + fn_1_66C0(3, &sp58); + var_r30++; + } + else if ((var_r30 == 3) && (-540.0f == var_f28)) { var_r30++; BoardModelPosGet(lbl_1_bss_64, &sp1C); var_r26 = fn_1_66C0(4, &sp1C); var_r24 = fn_1_66C0(5, &sp1C); } - } else { + } + else { var_r29--; } BoardModelPosSetV(lbl_1_bss_64, &sp58); @@ -536,7 +567,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { if (sp4C.y <= sp58.y && sp40.y < 0.0f) { sp4C.y = sp58.y; break; - } else { + } + else { BoardPlayerPosSetV(lbl_1_bss_68, &sp4C); HuPrcVSleep(); } @@ -545,7 +577,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { HuPrcKill(temp_r23); } -void fn_1_62AC(s32 arg0, Vec* arg1) { +void fn_1_62AC(s32 arg0, Vec *arg1) +{ Vec sp34; Vec sp28; Vec sp1C; @@ -578,7 +611,8 @@ void fn_1_62AC(s32 arg0, Vec* arg1) { } } -void fn_1_64BC(void) { +void fn_1_64BC(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -602,7 +636,8 @@ void fn_1_64BC(void) { } } -void fn_1_65E8(void) { +void fn_1_65E8(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 6; var_r31++) { @@ -611,7 +646,8 @@ void fn_1_65E8(void) { } } -void fn_1_6670(void) { +void fn_1_6670(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 6; var_r31++) { @@ -619,9 +655,10 @@ void fn_1_6670(void) { } } -omObjData* fn_1_66C0(u32 arg0, Vec* arg1) { +omObjData *fn_1_66C0(u32 arg0, Vec *arg1) +{ Vec sp8; - omObjData* temp_r31; + omObjData *temp_r31; f32 temp_f31; temp_r31 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_6914); @@ -665,7 +702,8 @@ omObjData* fn_1_66C0(u32 arg0, Vec* arg1) { return temp_r31; } -void fn_1_6914(omObjData* arg0) { +void fn_1_6914(omObjData *arg0) +{ Vec sp8; if (arg0->work[1] != 0) { @@ -680,7 +718,8 @@ void fn_1_6914(omObjData* arg0) { BoardModelKill(arg0->work[0]); omDelObjEx(boardObjMan, arg0); } - } else { + } + else { switch (arg0->work[2]) { case 0: case 1: diff --git a/src/REL/w05Dll/hotel.c b/src/REL/w05Dll/hotel.c index 73256443..f3a00e24 100644 --- a/src/REL/w05Dll/hotel.c +++ b/src/REL/w05Dll/hotel.c @@ -12,7 +12,8 @@ // data s32 lbl_1_data_150[5] = { - 0x790021, 0x790022, 0x790023, 0x790024, 0x790025, + DATA_MAKE_NUM(DATADIR_W05, 0x21), DATA_MAKE_NUM(DATADIR_W05, 0x22), DATA_MAKE_NUM(DATADIR_W05, 0x23), + DATA_MAKE_NUM(DATADIR_W05, 0x24), DATA_MAKE_NUM(DATADIR_W05, 0x25), }; s16 lbl_1_data_164 = 0xFFFF; @@ -36,7 +37,7 @@ void fn_1_14D0(void) { } u32 lbl_1_data_170[4] = { 0, 10, 25, 40 }; -s32 lbl_1_data_180 = 0x79000C; +s32 lbl_1_data_180 = DATA_MAKE_NUM(DATADIR_W05, 0x0C); s16 fn_1_14FC(void) { s16 var_r31; @@ -112,10 +113,10 @@ void fn_1_155C(void) { sprintf(sp18, "%d", lbl_1_bss_0->unk_00); if (var_r30 > 0) { if (var_r30 >= 5) { - var_r27 = 0x270001; + var_r27 = MAKE_MESSID(0x27, 0x01); var_r30 = 5; } else { - var_r27 = 0x270002; + var_r27 = MAKE_MESSID(0x27, 0x02); } sprintf(sp8, "%d", var_r30); BoardWinCreate(2, var_r27, 7); @@ -198,7 +199,10 @@ void fn_1_155C(void) { BoardRollDispSet(1); } -s32 lbl_1_data_188[4] = { 0x79000C, 0x79000E, 0x79000F, 0x790010 }; +s32 lbl_1_data_188[4] = { + DATA_MAKE_NUM(DATADIR_W05, 0x0C), DATA_MAKE_NUM(DATADIR_W05, 0x0E), + DATA_MAKE_NUM(DATADIR_W05, 0x0F),DATA_MAKE_NUM(DATADIR_W05, 0x10) +}; s32 lbl_1_data_198[2] = { 28, 25 }; void fn_1_1E44(void) { @@ -279,7 +283,7 @@ void fn_1_1E44(void) { BoardWinWait(); BoardWinKill(); } else { - temp_r3 = BoardModelCreate(0x790004, NULL, 0); + temp_r3 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x04), NULL, 0); BoardModelVisibilitySet(temp_r3, 0); BoardModelLayerSet(temp_r3, 2U); if (lbl_1_bss_0->unk_00 > BoardPlayerCoinsGet(lbl_1_bss_28)) { diff --git a/src/REL/w05Dll/main.c b/src/REL/w05Dll/main.c index 6c45d892..b17d72a1 100644 --- a/src/REL/w05Dll/main.c +++ b/src/REL/w05Dll/main.c @@ -1,8 +1,9 @@ #include "REL/w05Dll.h" -#include "game/gamework_data.h" #include "game/chrman.h" #include "game/frand.h" +#include "game/gamework_data.h" + #include "game/board/audio.h" #include "game/board/boo_house.h" @@ -17,68 +18,50 @@ // data BoardMapObject lbl_1_data_0[7] = { - { { 3300.0f, 100.0f, -900.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x790011 - }, - { { -2550.0f, 0.0f, 1350.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x790014 - }, - { { -3000.0f, 100.0f, -1050.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79001A - }, - { { 2100.0f, 100.0f, -450.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79001B - }, - { { -450.0f, 100.0f, -750.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79000A - }, - { { -2710.0f, 0.0f, 1315.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79000A - }, - { { 3055.0f, 100.0f, -815.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79000A - }, + { { 3300.0f, 100.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x11) }, + { { -2550.0f, 0.0f, 1350.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x14) }, + { { -3000.0f, 100.0f, -1050.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x1A) }, + { { 2100.0f, 100.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x1B) }, + { { -450.0f, 100.0f, -750.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) }, + { { -2710.0f, 0.0f, 1315.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) }, + { { 3055.0f, 100.0f, -815.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) }, }; s16 lbl_1_data_118 = 0xFFFF; s16 lbl_1_data_11A = 0xFFFF; s16 lbl_1_data_11C = 0xFFFF; s16 lbl_1_data_11E = 0xFFFF; s16 lbl_1_data_120 = 0xFFFF; -s32 lbl_1_data_124[8] = {0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, 0x850000, 0x110000, 0xD0000, 0x810000}; -s32 lbl_1_data_144[2] = {0x790006, 0xFFFFFFFF}; +s32 lbl_1_data_124[8] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), +}; +s32 lbl_1_data_144[2] = { DATA_MAKE_NUM(DATADIR_W05, 0x06), DATA_NUM_LISTEND }; s32 lbl_1_data_14C = 0xFFFFFFFF; // bss s16 lbl_1_bss_14[7]; -s32* lbl_1_bss_10; +s32 *lbl_1_bss_10; s16 lbl_1_bss_8[4]; -Process* lbl_1_bss_4; -bitcopy* lbl_1_bss_0; +Process *lbl_1_bss_4; +bitcopy *lbl_1_bss_0; -void BoardCreate(void) { +void BoardCreate(void) +{ s32 sp8; s32 var_r31; - BoardMapObject* temp_r30; + BoardMapObject *temp_r30; sp8 = GWBoardGet(); - lbl_1_bss_0 = (bitcopy*) GWSystem.board_data; - BoardSpaceInit(0x790000); - lbl_1_data_118 = BoardModelCreate(0x790001, NULL, 0); - lbl_1_data_120 = BoardModelCreate(0x790002, NULL, 0); + lbl_1_bss_0 = (bitcopy *)GWSystem.board_data; + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W05, 0x00)); + lbl_1_data_118 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x01), NULL, 0); + lbl_1_data_120 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_118, -1.0f); BoardModelPosSet(lbl_1_data_118, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_118, 0, 0x40000001); @@ -88,23 +71,24 @@ void BoardCreate(void) { BoardModelMotionStart(lbl_1_data_120, 0, 0x40000001); BoardModelMotionSpeedSet(lbl_1_data_120, 1.0f); BoardModelLayerSet(lbl_1_data_120, 1); - lbl_1_data_11A = BoardModelCreate(0x790003, NULL, 0); + lbl_1_data_11A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x03), NULL, 0); fn_8006DDE8(lbl_1_data_11A, -1.0f); BoardModelPosSet(lbl_1_data_11A, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_11A, 0, 0x40000001); - lbl_1_data_11C = BoardModelCreate(0x790005, lbl_1_data_144, 0); + lbl_1_data_11C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x05), lbl_1_data_144, 0); BoardModelPosSet(lbl_1_data_11C, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_11C, 1, 0x40000001); lbl_1_data_11E = BoardModelCreate(0x2001C, &lbl_1_data_14C, 0); BoardModelMotionStart(lbl_1_data_11E, 1, 0x40000001); BoardLightHookSet(&fn_1_744, &fn_1_788); - + for (var_r31 = 0; var_r31 < 7; var_r31++) { temp_r30 = &lbl_1_data_0[var_r31]; if (temp_r30->data_num != -1) { if ((var_r31 == 4) || (var_r31 == 5) || (var_r31 == 6)) { lbl_1_bss_10 = &lbl_1_data_14C; - } else { + } + else { lbl_1_bss_10 = NULL; } lbl_1_bss_14[var_r31] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_10, 0); @@ -129,7 +113,8 @@ void BoardCreate(void) { BoardLotteryHostSet(lbl_1_data_11E); } -void BoardDestroy(void) { +void BoardDestroy(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 7; var_r31++) { @@ -161,20 +146,21 @@ void BoardDestroy(void) { BoardSpaceDestroy(); } -void fn_1_744(void) { +void fn_1_744(void) +{ s16 var_r31 = BoardModelIDGet(lbl_1_data_118); Hu3DModelLightInfoSet(var_r31, 1); } -void fn_1_788(void) { -} +void fn_1_788(void) { } -s32 fn_1_78C(void) { +s32 fn_1_78C(void) +{ s32 var_r30 = GWSystem.player_curr; s32 var_r29 = GWPlayer[var_r30].space_curr; s32 var_r28; u32 temp_r3; - + temp_r3 = BoardSpaceFlagGet(0, var_r29); if ((temp_r3 & 2) != 0) { fn_1_1E44(); @@ -186,9 +172,10 @@ s32 fn_1_78C(void) { } } -s32 fn_1_82C(void) { +s32 fn_1_82C(void) +{ s32 temp_r30; - BoardSpace* temp_r3; + BoardSpace *temp_r3; temp_r30 = GWSystem.player_curr; temp_r3 = BoardSpaceGet(0, GWPlayer[temp_r30].space_curr); @@ -213,15 +200,16 @@ s32 fn_1_82C(void) { return 0; } -void fn_1_92C(void) { +void fn_1_92C(void) +{ fn_1_6B28(); fn_1_9680(); } -void fn_1_950(void) { -} +void fn_1_950(void) { } -void fn_1_954(void) { +void fn_1_954(void) +{ Vec sp14; Vec sp8; s32 var_r26; @@ -239,7 +227,7 @@ void fn_1_954(void) { HuPrcEnd(); } lbl_1_bss_8[0] = 0; - + for (var_r31 = 1; var_r31 < 3;) { lbl_1_bss_8[var_r31] = (u32)frandmod(0xE); if ((lbl_1_bss_8[var_r31] == 0xA) || (lbl_1_bss_8[var_r31] == 0xD)) { @@ -260,7 +248,8 @@ void fn_1_954(void) { if (GWPlayer[temp_r30].com != 0) { if (BoardComPreferItemCheck(temp_r30, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -297,7 +286,7 @@ void fn_1_954(void) { temp_r27 = GWPlayer[temp_r30].space_curr; var_r26 = BoardSpaceLinkFlagSearch(0, temp_r27, 0x02000000); BoardPlayerMoveBetween(temp_r30, temp_r27, var_r26); - + while (GWPlayer[temp_r30].moving != 0) { HuPrcVSleep(); } @@ -314,28 +303,32 @@ void fn_1_954(void) { HuPrcEnd(); } -void fn_1_D4C(void) { +void fn_1_D4C(void) +{ BoardWinKill(); CharModelDataClose(-1); lbl_1_bss_4 = NULL; } -void fn_1_D84(void) { +void fn_1_D84(void) +{ lbl_1_bss_4 = HuPrcChildCreate(fn_1_954, 0x2003U, 0x3000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_D4C); - + while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } } -void fn_1_E04(void) { +void fn_1_E04(void) +{ HuPrcSleep(0x3C); BoardMusStart(1, 0x23, 0x7F, 0); HuPrcEnd(); } -void fn_1_E40(void) { +void fn_1_E40(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -350,7 +343,8 @@ void fn_1_E40(void) { if (GWPlayer[temp_r31].com != 0) { if (frandBool() != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -363,7 +357,7 @@ void fn_1_E40(void) { BoardWinWait(); BoardWinKill(); BoardMGExit(); - + while (BoardMGDoneFlagGet() != 1) { HuPrcVSleep(); } @@ -399,7 +393,8 @@ void fn_1_E40(void) { BoardPlayerMotionStart(temp_r31, 1, 0x40000001); } -s32 fn_1_1114(void) { +s32 fn_1_1114(void) +{ u32 temp_r31; s16 var_r30 = GWPlayer[GWSystem.player_curr].space_curr; @@ -412,13 +407,15 @@ s32 fn_1_1114(void) { while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } - } else if ((temp_r31 & 0x400000) != 0) { + } + else if ((temp_r31 & 0x400000) != 0) { fn_1_E40(); } BoardRollDispSet(1); } -s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) { +s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) +{ f32 var_f29; f32 var_f31; s32 var_r31; @@ -440,12 +437,15 @@ s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) { if (var_f29 < 180.0f) { if (var_f29 > arg9) { var_f31 = var_f31 + arg9; - } else { + } + else { var_f31 = arg8; } - } else if ((360.0f - var_f29) > arg9) { + } + else if ((360.0f - var_f29) > arg9) { var_f31 = var_f31 - arg9; - } else { + } + else { var_f31 = arg8; } if (var_f31 < 0.0f) { @@ -455,7 +455,8 @@ s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) { var_f31 -= 360.0f; } BoardModelRotYSet(arg0, var_f31); - } else { + } + else { var_r31 = 1; } return var_r31; diff --git a/src/REL/w05Dll/mg_coin.c b/src/REL/w05Dll/mg_coin.c index f9fcb606..7818996c 100644 --- a/src/REL/w05Dll/mg_coin.c +++ b/src/REL/w05Dll/mg_coin.c @@ -1,25 +1,27 @@ #include "REL/w05Dll.h" -#include "game/hsfdraw.h" #include "game/audio.h" -#include "game/objsub.h" -#include "game/frand.h" #include "game/chrman.h" -#include "game/pad.h" +#include "game/frand.h" +#include "game/hsfdraw.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" + +#include "game/board/audio.h" #include "game/board/model.h" #include "game/board/window.h" -#include "game/board/audio.h" + s16 lbl_1_bss_102[3]; s16 lbl_1_bss_100; s16 lbl_1_bss_FE; s16 lbl_1_bss_D6[20]; s16 lbl_1_bss_D4; -omObjData* lbl_1_bss_D0; -omObjData* lbl_1_bss_CC; -omObjData* lbl_1_bss_C8; +omObjData *lbl_1_bss_D0; +omObjData *lbl_1_bss_CC; +omObjData *lbl_1_bss_C8; s16 lbl_1_bss_C6; s16 lbl_1_bss_C4; s16 lbl_1_bss_C2; @@ -29,14 +31,16 @@ s32 lbl_1_bss_B8; char *lbl_1_data_464[3] = { "gyoei", "gyoei1", "gyoei2" }; s32 lbl_1_data_470[3] = { 0x7B, 0x7C, 0x7D }; -s32 lbl_1_data_47C[3] = { 0x00790016, 0x00790017, 0x00790018 }; +s32 lbl_1_data_47C[3] = { DATA_MAKE_NUM(DATADIR_W05, 0x16), DATA_MAKE_NUM(DATADIR_W05, 0x17), DATA_MAKE_NUM(DATADIR_W05, 0x18) }; char *lbl_1_data_494[3] = { "uo", "uo1", "uo2" }; -void fn_1_9680(void) { +void fn_1_9680(void) +{ BoardModelAttrSet(lbl_1_bss_14[1], 0x40000002U); } -void fn_1_96B4(void) { +void fn_1_96B4(void) +{ BoardModelAttrReset(lbl_1_bss_14[1], 0x40000002); BoardModelMotionTimeSet(lbl_1_bss_14[1], 0.0f); @@ -47,58 +51,63 @@ void fn_1_96B4(void) { BoardModelMotionStartEndSet(lbl_1_bss_14[1], 0x3C, 0x64); } -void fn_1_9760(void) { +void fn_1_9760(void) +{ BoardModelAttrReset(lbl_1_bss_14[1], 0x40000001); BoardModelMotionStartEndSet(lbl_1_bss_14[1], 0, 0xA0); } -void fn_1_97AC(void) { +void fn_1_97AC(void) +{ Vec sp8; s32 var_r31; lbl_1_bss_C0 = GWSystem.player_curr; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { lbl_1_bss_102[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_C0, lbl_1_data_470[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_C0].character]); } sp8.x = sp8.y = sp8.z = 1.0f; - lbl_1_bss_100 = BoardModelCreate(0x790015, NULL, 0); + lbl_1_bss_100 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x15), NULL, 0); BoardModelScaleSetV(lbl_1_bss_100, &sp8); BoardModelVisibilitySet(lbl_1_bss_100, 0); - lbl_1_bss_D4 = BoardModelCreate(0x79002C, NULL, 0); + lbl_1_bss_D4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x2C), NULL, 0); BoardModelVisibilitySet(lbl_1_bss_D4, 0); lbl_1_bss_C2 = frandmod(3U); lbl_1_bss_FE = BoardModelCreate(lbl_1_data_47C[lbl_1_bss_C2], NULL, 0); BoardModelVisibilitySet(lbl_1_bss_FE, 0); - + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { - lbl_1_bss_D6[var_r31] = BoardModelCreate(0x7000A, NULL, 1); + lbl_1_bss_D6[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); BoardModelVisibilitySet(lbl_1_bss_D6[var_r31], 0); } - BoardPlayerPostTurnHookSet(lbl_1_bss_C0, (s32 (*)())fn_1_9B74); + BoardPlayerPostTurnHookSet(lbl_1_bss_C0, (s32(*)())fn_1_9B74); lbl_1_bss_CC = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_9A68); lbl_1_bss_D0 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_9C24); lbl_1_bss_C6 = 0; lbl_1_bss_C4 = 0; } -void fn_1_9A68(omObjData* arg0) { +void fn_1_9A68(omObjData *arg0) +{ if ((lbl_1_bss_C4 != 0) && (BoardMGDoneFlagGet() == 1)) { fn_1_9AF0(); omDelObjEx(boardObjMan, arg0); } } -void fn_1_9AC0(void) { +void fn_1_9AC0(void) +{ lbl_1_bss_C4 = 1; BoardMGExit(); } -void fn_1_9AF0(void) { +void fn_1_9AF0(void) +{ s32 var_r31; omDelObjEx(boardObjMan, lbl_1_bss_D0); - + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { BoardModelKill(lbl_1_bss_D6[var_r31]); } @@ -106,7 +115,8 @@ void fn_1_9AF0(void) { BoardMGDoneFlagSet(0); } -void fn_1_9B74(void) { +void fn_1_9B74(void) +{ HsfObject *var_r31; omDelObjEx(boardObjMan, lbl_1_bss_C8); BoardModelKill(lbl_1_bss_FE); @@ -115,7 +125,8 @@ void fn_1_9B74(void) { BoardModelAttrReset(lbl_1_bss_14[1], 0x40000004); } -void fn_1_9C24(omObjData* arg0) { +void fn_1_9C24(omObjData *arg0) +{ if (arg0->work[0] == 0) { arg0->work[0] = MGSeqCreate(3, 0); return; @@ -125,7 +136,8 @@ void fn_1_9C24(omObjData* arg0) { } } -void fn_1_9C98(dataCopy2* arg0) { +void fn_1_9C98(dataCopy2 *arg0) +{ Vec sp8; Vec temp_r4; @@ -134,21 +146,22 @@ void fn_1_9C98(dataCopy2* arg0) { BoardModelPosSetV(arg0->unk_0A, &sp8); } -void fn_1_9D0C(omObjData* arg0) { +void fn_1_9D0C(omObjData *arg0) +{ Vec sp1C; Vec sp10; f32 sp8[2]; s32 var_r30; - dataCopy2* temp_r31; + dataCopy2 *temp_r31; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, 0x10000000); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM); temp_r31 = arg0->data; temp_r31->unk_02 = 5; temp_r31->unk_04 = 0x3C; temp_r31->unk_00 = MGSeqCreate(1, temp_r31->unk_02, 0x120, 0x40); - HuWinMesMaxSizeGet(1, sp8, 0x27000E); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x27, 0x0E)); temp_r31->unk_06 = HuWinCreate(-10000.0f, 368.0f, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk_06, 0x27000E); + HuWinMesSet(temp_r31->unk_06, MAKE_MESSID(0x27, 0x0E)); HuWinBGTPLvlSet(temp_r31->unk_06, 0.0f); HuWinMesSpeedSet(temp_r31->unk_06, 0); temp_r31->unk_08 = 1; @@ -158,7 +171,7 @@ void fn_1_9D0C(omObjData* arg0) { for (var_r30 = 0; var_r30 < 3; var_r30++) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), lbl_1_data_494[var_r30], &temp_r31->unk_0C[var_r30]); } - temp_r31->unk_0A = BoardModelCreate(0x790019, NULL, 0); + temp_r31->unk_0A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x19), NULL, 0); BoardModelAttrSet(temp_r31->unk_0A, 0x40000001); sp1C.x = sp1C.y = sp1C.z = 1.5f; BoardModelScaleSetV(temp_r31->unk_0A, &sp1C); @@ -168,7 +181,8 @@ void fn_1_9D0C(omObjData* arg0) { arg0->func = fn_1_9F24; } -void fn_1_9F24(omObjData* arg0) { +void fn_1_9F24(omObjData *arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -176,7 +190,7 @@ void fn_1_9F24(omObjData* arg0) { s16 sp8; f32 var_f31; u16 temp_r29; - dataCopy2* temp_r31; + dataCopy2 *temp_r31; temp_r31 = arg0->data; if (--temp_r31->unk_04 == 0) { @@ -189,7 +203,8 @@ void fn_1_9F24(omObjData* arg0) { temp_r29 = GWPlayer[lbl_1_bss_C0].port; if (GWPlayer[lbl_1_bss_C0].com != 0) { fn_1_B2B0(arg0, &spA, &sp8); - } else { + } + else { sp8 = HuPadDStkRep[temp_r29]; spA = HuPadBtnDown[temp_r29]; } @@ -201,10 +216,12 @@ void fn_1_9F24(omObjData* arg0) { BoardPlayerMotionStart(lbl_1_bss_C0, lbl_1_bss_102[0], 0); BoardPlayerMotionSpeedSet(lbl_1_bss_C0, 0.5f); arg0->func = fn_1_A224; - } else if ((temp_r31->unk_08 != 0) && ((sp8 & 1) != 0)) { + } + else if ((temp_r31->unk_08 != 0) && ((sp8 & 1) != 0)) { HuAudFXPlay(0); temp_r31->unk_08--; - } else if ((temp_r31->unk_08 != 2) && ((sp8 & 2) != 0)) { + } + else if ((temp_r31->unk_08 != 2) && ((sp8 & 2) != 0)) { HuAudFXPlay(0); temp_r31->unk_08++; } @@ -216,7 +233,8 @@ void fn_1_9F24(omObjData* arg0) { BoardModelPosSetV(temp_r31->unk_0A, &spC); } -void fn_1_A224(omObjData* arg0) { +void fn_1_A224(omObjData *arg0) +{ Vec sp14; Vec sp8; f32 temp_f31; @@ -239,21 +257,22 @@ void fn_1_A224(omObjData* arg0) { BoardPlayerMotionStart(lbl_1_bss_C0, lbl_1_bss_102[1], 0); BoardPlayerMotionSpeedSet(lbl_1_bss_C0, 0.5f); switch (lbl_1_bss_C2) { - case 0: - omVibrate(lbl_1_bss_C0, 0x7FFF, 0xC, 0); - break; - case 1: - omVibrate(lbl_1_bss_C0, 0x7FFF, 4, 2); - break; - case 2: - omVibrate(lbl_1_bss_C0, 0x7FFF, 6, 6); - break; + case 0: + omVibrate(lbl_1_bss_C0, 0x7FFF, 0xC, 0); + break; + case 1: + omVibrate(lbl_1_bss_C0, 0x7FFF, 4, 2); + break; + case 2: + omVibrate(lbl_1_bss_C0, 0x7FFF, 6, 6); + break; } arg0->func = fn_1_A4F8; } } -void fn_1_A4F8(omObjData* arg0) { +void fn_1_A4F8(omObjData *arg0) +{ f32 temp_f31; temp_f31 = BoardPlayerMotionMaxTimeGet(lbl_1_bss_C0); @@ -264,13 +283,14 @@ void fn_1_A4F8(omObjData* arg0) { } } -void fn_1_A5B0(omObjData* arg0) { +void fn_1_A5B0(omObjData *arg0) +{ Vec sp14; Vec sp8; - HsfObject* temp_r28; - dataCopy2* temp_r30; - omObjData* temp_r29; - Vec* temp_r31; + HsfObject *temp_r28; + dataCopy2 *temp_r30; + omObjData *temp_r29; + Vec *temp_r31; f32 temp_f30; f32 var_f31; @@ -295,7 +315,7 @@ void fn_1_A5B0(omObjData* arg0) { BoardModelVisibilitySet(lbl_1_bss_D4, 1); BoardModelMotionTimeSet(lbl_1_bss_D4, 110.0f); lbl_1_bss_C8 = temp_r29 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3C4); - temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000); + temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); temp_r31 = temp_r29->data; lbl_1_bss_C8->work[1] = 1; Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), "fish", &sp14); @@ -323,7 +343,8 @@ void fn_1_A5B0(omObjData* arg0) { BoardModelMotionSpeedSet(lbl_1_bss_100, var_f31); } -void fn_1_A990(omObjData* arg0) { +void fn_1_A990(omObjData *arg0) +{ Vec sp8; Process *var_r31; @@ -344,9 +365,10 @@ void fn_1_A990(omObjData* arg0) { } s16 lbl_1_data_4B2[3] = { 20, 10, 5 }; -s32 lbl_1_data_4B8[3] = { 0x00270013, 0x00270014, 0x00270015 }; +s32 lbl_1_data_4B8[3] = { MAKE_MESSID(0x27, 0x13), MAKE_MESSID(0x27, 0x14), MAKE_MESSID(0x27, 0x15) }; -void fn_1_AB24(void) { +void fn_1_AB24(void) +{ Vec sp124[20]; Vec sp34[20]; Vec sp28; @@ -359,7 +381,7 @@ void fn_1_AB24(void) { s32 var_r29; s32 var_r31; f32 var_f30; - Vec* temp_r4; + Vec *temp_r4; temp_r30 = HuPrcCurrentGet()->user_data; spC = temp_r30->data; @@ -367,7 +389,7 @@ void fn_1_AB24(void) { BoardModelPosGet(lbl_1_bss_14[5], &sp1C); var_f30 = (180.0 * (atan2((sp1C.z - sp28.z), (sp1C.x - sp28.x)) / M_PI)); BoardPlayerMotBlendSet(lbl_1_bss_C0, var_f30, 0xF); - + while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) { HuPrcVSleep(); } @@ -381,12 +403,12 @@ void fn_1_AB24(void) { BoardWinWait(); BoardWinKill(); BoardPlayerMotBlendSet(lbl_1_bss_C0, 0, 0xF); - + while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) { HuPrcVSleep(); } BoardPlayerPosGet(lbl_1_bss_C0, &sp28); - + for (var_r31 = 0; var_r31 < lbl_1_bss_C6; var_r31++) { BoardModelVisibilitySet(lbl_1_bss_D6[var_r31], 1); sp124[var_r31] = sp28; @@ -400,7 +422,7 @@ void fn_1_AB24(void) { } var_f31 = -1.0f; var_r29 = 0; - + while (1) { for (var_r31 = 0; var_r31 < lbl_1_bss_C6; var_r31++) { if (var_r31 >= var_r29) { @@ -429,11 +451,12 @@ void fn_1_AB24(void) { if (var_r29 == lbl_1_bss_C6) { BoardPlayerMotionShiftSet(lbl_1_bss_C0, 7, 0.0f, 10.0f, 0); break; - } else { + } + else { HuPrcVSleep(); } } - + while (BoardPlayerMotionEndCheck(lbl_1_bss_C0) == 0) { HuPrcVSleep(); } @@ -444,7 +467,8 @@ void fn_1_AB24(void) { HuPrcEnd(); } -void fn_1_B214(omObjData* arg0) { +void fn_1_B214(omObjData *arg0) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -456,8 +480,9 @@ void fn_1_B214(omObjData* arg0) { omDelObjEx(boardObjMan, arg0); } -void fn_1_B2B0(omObjData* arg0, u16* arg1, s16* arg2) { - dataCopy2* temp_r31; +void fn_1_B2B0(omObjData *arg0, u16 *arg1, s16 *arg2) +{ + dataCopy2 *temp_r31; temp_r31 = arg0->data; *arg1 = 0; @@ -490,7 +515,8 @@ void fn_1_B2B0(omObjData* arg0, u16* arg1, s16* arg2) { *arg2 = 2; } -void fn_1_B3C4(omObjData* arg0) { +void fn_1_B3C4(omObjData *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -526,9 +552,10 @@ void fn_1_B3C4(omObjData* arg0) { if ((0.0f == BoardModelMotionTimeGet(lbl_1_bss_FE)) && (arg0->work[1] != 0)) { HuAudFXPlay(0x484); } - } else { + } + else { arg0->work[0] += 1; } BoardModelPosSetV(lbl_1_bss_FE, &sp20); } -} \ No newline at end of file +} diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index 92c0f959..f0cfd6a2 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -1,16 +1,16 @@ #include "REL/w05Dll.h" -#include "game/hsfdraw.h" #include "game/audio.h" -#include "game/objsub.h" -#include "game/frand.h" #include "game/chrman.h" -#include "game/pad.h" +#include "game/frand.h" +#include "game/hsfdraw.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/board/audio.h" #include "game/board/model.h" #include "game/board/window.h" -#include "game/board/audio.h" // data s32 lbl_1_data_310[2] = { 0x79, 0x7A }; @@ -24,22 +24,23 @@ s16 lbl_1_bss_A4[3]; s16 lbl_1_bss_A2; s16 lbl_1_bss_9E[2]; s16 lbl_1_bss_9C; -Process* lbl_1_bss_98; -omObjData* lbl_1_bss_94; -omObjData* lbl_1_bss_90; -omObjData* lbl_1_bss_8C; +Process *lbl_1_bss_98; +omObjData *lbl_1_bss_94; +omObjData *lbl_1_bss_90; +omObjData *lbl_1_bss_8C; s32 lbl_1_bss_88; s32 lbl_1_bss_7C[3]; -AnimData* lbl_1_bss_78; +AnimData *lbl_1_bss_78; - -void fn_1_6B28(void) { +void fn_1_6B28(void) +{ BoardModelAttrSet(*lbl_1_bss_14, 0x40000002U); lbl_1_bss_98 = NULL; lbl_1_bss_78 = NULL; } -void fn_1_6B7C(void) { +void fn_1_6B7C(void) +{ Vec sp1C; Vec sp10; s32 spC; @@ -51,7 +52,7 @@ void fn_1_6B7C(void) { for (var_r31 = 0; var_r31 < 2; var_r31++) { lbl_1_bss_9E[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_B6, lbl_1_data_310[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_B6].character]); } - lbl_1_bss_A2 = BoardModelCreate(0x790013, NULL, 0); + lbl_1_bss_A2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x13), NULL, 0); BoardModelVisibilitySet(lbl_1_bss_A2, 0); sp1C.x = sp1C.y = sp1C.z = 3.33333f; BoardModelScaleSetV(lbl_1_bss_A2, &sp1C); @@ -63,11 +64,11 @@ void fn_1_6B7C(void) { HuPrcVSleep(); } BoardPlayerMotBlendSet(lbl_1_bss_B6, 0, 0xF); - + while (BoardPlayerMotBlendCheck(lbl_1_bss_B6) == 0) { HuPrcVSleep(); } - + HuPrcSleep(0x3C); BoardAudSeqPause(0, 1, 0x3E8); HuAudFXPlay(0x30D); @@ -94,14 +95,14 @@ void fn_1_6B7C(void) { BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002); omVibrate(lbl_1_bss_B6, 0x7FFF, 6, 6); HuAudFXPlay(0x492); - + while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 90.0f) { HuPrcVSleep(); } BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f); HuPadRumbleStop(GWPlayer[lbl_1_bss_B6].port); BoardModelHookReset(lbl_1_bss_14[0]); - + for (var_r31 = 0; var_r31 < 3; var_r31++) { BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]); } @@ -111,15 +112,16 @@ void fn_1_6B7C(void) { lbl_1_bss_94 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_7284); lbl_1_bss_8C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_78A0); lbl_1_bss_90 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL); - lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, 0x10000000U); + lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, MEMORY_DEFAULT_NUM); if (lbl_1_bss_78 == NULL) { - lbl_1_bss_78 = HuSprAnimRead(HuDataSelHeapReadNum(0x120000, 0x10000000, HEAP_DATA)); + lbl_1_bss_78 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00)); HuSprAnimLock(lbl_1_bss_78); } lbl_1_bss_9C = 0; } -void fn_1_7284(omObjData* arg0) { +void fn_1_7284(omObjData *arg0) +{ if ((lbl_1_bss_9C != 0) && (BoardMGDoneFlagGet() == 1)) { fn_1_77B0(); fn_1_7314(); @@ -128,12 +130,14 @@ void fn_1_7284(omObjData* arg0) { } } -void fn_1_72E4(void) { +void fn_1_72E4(void) +{ lbl_1_bss_9C = 1; BoardMGExit(); } -void fn_1_7314(void) { +void fn_1_7314(void) +{ s32 var_r31; BoardModelHookReset(lbl_1_bss_14[0]); @@ -148,12 +152,14 @@ void fn_1_7314(void) { } } -void fn_1_73C0(void) { +void fn_1_73C0(void) +{ omDelObjEx(boardObjMan, lbl_1_bss_90); BoardMGDoneFlagSet(0); } -void fn_1_7400(void) { +void fn_1_7400(void) +{ while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 30.0f) { HuPrcVSleep(); @@ -162,42 +168,42 @@ void fn_1_7400(void) { BoardModelMotionTimeSet(lbl_1_bss_14[0], 30.0f); lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x1000, 0); HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC); - lbl_1_bss_98->user_data = (void* )7; + lbl_1_bss_98->user_data = (void *)7; HuPrcEnd(); } s32 lbl_1_data_350[14] = { - 0x0007006D, 0x0007006E, 0x0007006F, 0x00070070, - 0x00070071, 0x00070072, 0x00070073, 0x00070074, - 0x00070076, 0x00070077, 0x00070078, 0x00070079, - 0x0007007A, 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73), + DATA_MAKE_NUM(DATADIR_BOARD, 0x74), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), }; -s16 lbl_1_data_388[92] = { - 0, 1, -1, 2, 0, -1, 1, 2, - 0, -1, 2, 1, 0, 2, -1, 1, - 0, 2, 1, -1, 1, 2, -1, 0, - 1, 2, 0, -1, 1, -1, 0, 2, - 1, -1, 2, 0, 1, 0, 2, -1, - 1, 0, -1, 2, 2, -1, 0, 1, - 2, -1, 1, 0, 2, 0, 1, -1, - 2, 0, -1, 1, 2, 1, -1, 0, - 2, 1, 0, -1, -1, 0, 1, 2, - -1, 0, 2, 1, -1, 1, 2, 0, - -1, 1, 0, 2, -1, 2, 0, 1, - -1, 2, 1, 0 -}; +s16 lbl_1_data_388[92] = { 0, 1, -1, 2, 0, -1, 1, 2, 0, -1, 2, 1, 0, 2, -1, 1, 0, 2, 1, -1, 1, 2, -1, 0, 1, 2, 0, -1, 1, -1, 0, 2, 1, -1, 2, 0, 1, 0, + 2, -1, 1, 0, -1, 2, 2, -1, 0, 1, 2, -1, 1, 0, 2, 0, 1, -1, 2, 0, -1, 1, 2, 1, -1, 0, 2, 1, 0, -1, -1, 0, 1, 2, -1, 0, 2, 1, -1, 1, 2, 0, -1, 1, 0, + 2, -1, 2, 0, 1, -1, 2, 1, 0 }; -f32 lbl_1_data_440[3] = {-90.0f, 0.0f, 90.0f}; +f32 lbl_1_data_440[3] = { -90.0f, 0.0f, 90.0f }; -void fn_1_74D0(s16 arg0[3]) { +void fn_1_74D0(s16 arg0[3]) +{ f32 temp_f31; s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { lbl_1_bss_B0[var_r31] = arg0[var_r31]; } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { lbl_1_bss_A4[var_r31] = BoardModelCreate(lbl_1_data_350[lbl_1_bss_B0[var_r31]], NULL, 0); if (lbl_1_bss_B0[var_r31] == 0xB) { @@ -214,12 +220,12 @@ void fn_1_74D0(s16 arg0[3]) { } for (var_r31 = 0; var_r31 < 3; var_r31++) { - lbl_1_bss_AA[var_r31] = BoardModelCreate(0x790012, NULL, 1); + lbl_1_bss_AA[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x12), NULL, 1); BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]); BoardModelAttrSet(lbl_1_bss_AA[var_r31], 0x40000002); BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f); } - + HuAudFXPlay(0x488); BoardModelMotionTimeSet(lbl_1_bss_14[0], 0.0f); BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0, 0x1E); @@ -227,7 +233,8 @@ void fn_1_74D0(s16 arg0[3]) { HuPrcCreate(fn_1_7400, 0x2004, 0x1000, 0); } -void fn_1_77B0(void) { +void fn_1_77B0(void) +{ HuAudFXPlay(0x489); BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0x5A, 0x78); BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f); @@ -243,7 +250,8 @@ void fn_1_77B0(void) { } } -void fn_1_78A0(omObjData* arg0) { +void fn_1_78A0(omObjData *arg0) +{ if (arg0->work[0] == 0) { arg0->work[0] = MGSeqCreate(3, 0); return; @@ -254,7 +262,8 @@ void fn_1_78A0(omObjData* arg0) { } } -void fn_1_7928(omObjData* arg0) { +void fn_1_7928(omObjData *arg0) +{ Process *temp; if (((u32)lbl_1_bss_98->user_data & 0x10) != 0) { temp = HuPrcCreate(fn_1_799C, 0x2004, 0x1800, 0); @@ -263,7 +272,8 @@ void fn_1_7928(omObjData* arg0) { } } -void fn_1_799C(void) { +void fn_1_799C(void) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -275,7 +285,7 @@ void fn_1_799C(void) { s32 temp_r31; s32 var_r28; s32 var_r29; - omObjData* temp_r30; + omObjData *temp_r30; temp_r30 = HuPrcCurrentGet()->user_data; BoardPlayerPosGet(lbl_1_bss_B6, &sp2C); @@ -285,7 +295,7 @@ void fn_1_799C(void) { PSVECSubtract(&sp2C, &sp20, &sp14); temp_f30 = PSVECMag(&sp14); PSVECScale(&sp14, &sp14, 0.016666668); - + for (var_r29 = 0; var_r29 < 0x3C; var_r29++) { BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20); PSVECAdd(&sp20, &sp14, &sp20); @@ -344,7 +354,7 @@ void fn_1_799C(void) { HuPrcVSleep(); } HuPrcSleep(0x1E); - + while (HuAudSStreamStatGet(temp_r27) != 0) { HuPrcVSleep(); } @@ -356,13 +366,15 @@ void fn_1_799C(void) { HuPrcEnd(); } -void fn_1_7E4C(omObjData* arg0) { +void fn_1_7E4C(omObjData *arg0) +{ lbl_1_bss_9C = 1; BoardMGExit(); omDelObjEx(boardObjMan, arg0); } -void fn_1_7E94(dataCopy* arg0) { +void fn_1_7E94(dataCopy *arg0) +{ if (--arg0->unk_02 == 0) { arg0->unk_02 = 0x3C; if (--arg0->unk_00 >= 0) { @@ -371,19 +383,20 @@ void fn_1_7E94(dataCopy* arg0) { } } -void fn_1_7F04(omObjData* arg0) { +void fn_1_7F04(omObjData *arg0) +{ f32 sp8[2]; s32 var_r30; s32 var_r28; - dataCopy* temp_r31; + dataCopy *temp_r31; temp_r31 = arg0->data; temp_r31->unk_00 = 5; temp_r31->unk_02 = 0x3C; temp_r31->unk_04 = MGSeqCreate(1, temp_r31->unk_00, 0x120, 0x40); - HuWinMesMaxSizeGet(1, sp8, 0x27000E); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x27, 0x0E)); temp_r31->unk_06 = HuWinCreate(-10000.0f, 344.0f, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk_06, 0x27000E); + HuWinMesSet(temp_r31->unk_06, MAKE_MESSID(0x27, 0x0E)); HuWinBGTPLvlSet(temp_r31->unk_06, 0.0f); HuWinMesSpeedSet(temp_r31->unk_06, 0); temp_r31->unk_08 = 1; @@ -409,26 +422,28 @@ void fn_1_7F04(omObjData* arg0) { arg0->func = fn_1_80D8; } -void fn_1_80D8(omObjData* arg0) { +void fn_1_80D8(omObjData *arg0) +{ s32 sp10; s32 spC; s32 sp8; f32 var_f31; s32 temp_r30; s32 var_r29; - dataCopy* temp_r31; + dataCopy *temp_r31; temp_r31 = arg0->data; fn_1_7E94(temp_r31); temp_r30 = GWPlayer[lbl_1_bss_B6].port; if (GWPlayer[lbl_1_bss_B6].com != 0) { fn_1_8798(temp_r31, &sp10, &spC, &sp8); - } else { + } + else { sp10 = HuPadStkX[temp_r30]; spC = HuPadStkY[temp_r30]; sp8 = HuPadBtnDown[temp_r30]; } - + if (((sp8 & 0x100) != 0) || (temp_r31->unk_00 < 0)) { MGSeqParamSet(temp_r31->unk_04, 2, -1); HuWinKill(temp_r31->unk_06); @@ -442,12 +457,14 @@ void fn_1_80D8(omObjData* arg0) { if (var_f31 < 0.0f) { var_f31 += 360.0f; } - + if ((var_f31 > 170.0f) && (var_f31 < 190.0f)) { var_r29 = 0; - } else if ((var_f31 > 260.0f) && (var_f31 < 280.0f)) { + } + else if ((var_f31 > 260.0f) && (var_f31 < 280.0f)) { var_r29 = 1; - } else if ((var_f31 < 10.0f) || (var_f31 > 350.0f)) { + } + else if ((var_f31 < 10.0f) || (var_f31 > 350.0f)) { var_r29 = 2; } if (var_r29 != -1) { @@ -457,9 +474,10 @@ void fn_1_80D8(omObjData* arg0) { } } -void fn_1_8410(omObjData* arg0) { +void fn_1_8410(omObjData *arg0) +{ s32 temp_r30; - dataCopy* temp_r31; + dataCopy *temp_r31; temp_r31 = arg0->data; if (BoardPlayerMotionTimeGet(lbl_1_bss_B6) >= 30.0f) { @@ -470,13 +488,14 @@ void fn_1_8410(omObjData* arg0) { temp_r30 |= 0x1C0; lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x4000, 0); HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC); - lbl_1_bss_98->user_data = (void*)temp_r30; + lbl_1_bss_98->user_data = (void *)temp_r30; lbl_1_bss_8C->work[0] = temp_r31->unk_08; arg0->func = fn_1_850C; } } -void fn_1_850C(omObjData* arg0) { +void fn_1_850C(omObjData *arg0) +{ Vec sp14; Vec sp8; f32 temp_f31; @@ -495,7 +514,8 @@ void fn_1_850C(omObjData* arg0) { } } -void fn_1_8668(omObjData* arg0) { +void fn_1_8668(omObjData *arg0) +{ s32 var_r30; if (arg0->work[0] == 0) { @@ -504,7 +524,7 @@ void fn_1_8668(omObjData* arg0) { arg0->func = NULL; lbl_1_bss_8C->func = fn_1_7928; BoardModelKill(lbl_1_bss_A2); - + for (var_r30 = 0; var_r30 < 2; var_r30++) { BoardPlayerMotionKill(lbl_1_bss_B6, lbl_1_bss_9E[var_r30]); } @@ -513,7 +533,8 @@ void fn_1_8668(omObjData* arg0) { arg0->work[0] -= 1; } -void fn_1_8798(dataCopy* arg0, s32* arg1, s32* arg2, s32* arg3) { +void fn_1_8798(dataCopy *arg0, s32 *arg1, s32 *arg2, s32 *arg3) +{ *arg1 = *arg2 = *arg3 = 0; if (arg0->unk_10 != 0) { arg0->unk_10 -= 1; @@ -532,17 +553,19 @@ void fn_1_8798(dataCopy* arg0, s32* arg1, s32* arg2, s32* arg3) { *arg2 = (frandBool() * 0x8C) - 0x46; } -void* fn_1_8884(void) { +void *fn_1_8884(void) +{ if (lbl_1_bss_98 == NULL) { return NULL; } return lbl_1_bss_98->user_data; } -void fn_1_88B8(void) { +void fn_1_88B8(void) +{ s32 userData = (s32)lbl_1_bss_98->user_data; userData |= 8; - lbl_1_bss_98->user_data = (void* ) (userData); + lbl_1_bss_98->user_data = (void *)(userData); while (((u32)fn_1_8884() & 0x20) == 0) { HuPrcVSleep(); @@ -551,7 +574,8 @@ void fn_1_88B8(void) { lbl_1_bss_98 = NULL; } -void fn_1_896C(void) { +void fn_1_896C(void) +{ Vec sp18; Vec spC; f32 sp8; @@ -565,7 +589,7 @@ void fn_1_896C(void) { ParticleData *var_r27; temp_r30 = (u32)HuPrcCurrentGet()->user_data; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { @@ -573,7 +597,8 @@ void fn_1_896C(void) { if ((temp_r30 & 0x80) != 0) { BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0, 0x28); BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 0.0f); - } else { + } + else { BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0xA, 0x28); BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f); } @@ -581,11 +606,12 @@ void fn_1_896C(void) { } if ((temp_r30 & 0x80) != 0) { HuPrcSleep(0x19); - } else { + } + else { HuPrcSleep(0xF); } spC.x = spC.y = spC.z = 0.0f; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { @@ -606,7 +632,8 @@ void fn_1_896C(void) { if ((temp_r30 & 0x100) != 0) { lbl_1_bss_88 = HuAudFXPlay(0x35F); HuAudFXPlay(0x310); - } else { + } + else { HuAudFXPlay(0x362); } } @@ -614,7 +641,7 @@ void fn_1_896C(void) { temp_f29 = 150.0f + sp18.y; sp8 = 0.0f; var_f31 = 12.0f; - + while (1) { for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); @@ -626,7 +653,7 @@ void fn_1_896C(void) { } spC.x = spC.y = spC.z = sp8; - BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //! + BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec *)&sp8); //! BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18); sp18.y += var_f31; if (sp18.y >= temp_f29) { @@ -639,7 +666,8 @@ void fn_1_896C(void) { var_f31 *= 0.95f; if (var_r28 > 0) { HuPrcVSleep(); - } else { + } + else { break; } } @@ -650,12 +678,12 @@ void fn_1_896C(void) { BoardModelScaleSetV(lbl_1_bss_A4[var_r31], &spC); } } - temp_r30 = (u32) HuPrcCurrentGet()->user_data | 0x10; - HuPrcCurrentGet()->user_data = (void*)temp_r30; + temp_r30 = (u32)HuPrcCurrentGet()->user_data | 0x10; + HuPrcCurrentGet()->user_data = (void *)temp_r30; var_f30 = 0.0f; while (1) { - temp_r30 = (u32) HuPrcCurrentGet()->user_data; + temp_r30 = (u32)HuPrcCurrentGet()->user_data; if ((temp_r30 & 8) == 0) { for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); @@ -670,7 +698,8 @@ void fn_1_896C(void) { var_f30 -= 360.0f; } HuPrcVSleep(); - } else { + } + else { break; } } @@ -689,7 +718,7 @@ void fn_1_896C(void) { sp8 = 0.0f; } spC.x = spC.y = spC.z = sp8; - BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //! + BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec *)&sp8); //! BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18); sp18.y += var_f31; if (sp18.y <= (temp_f29 - 150.0f)) { @@ -704,11 +733,12 @@ void fn_1_896C(void) { var_f31 *= 0.98f; if (var_r28 > 0) { HuPrcVSleep(); - } else { + } + else { break; } } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { @@ -719,13 +749,14 @@ void fn_1_896C(void) { } temp_r30 = (u32)HuPrcCurrentGet()->user_data; temp_r30 |= 0x20; - HuPrcCurrentGet()->user_data = (void*)temp_r30; + HuPrcCurrentGet()->user_data = (void *)temp_r30; while (1) { HuPrcVSleep(); } } -void fn_1_91DC(void) { +void fn_1_91DC(void) +{ u32 temp_r30; s32 var_r29; s32 var_r31; @@ -741,9 +772,10 @@ void fn_1_91DC(void) { } } -void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { +void fn_1_9268(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ Vec sp8; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; f32 temp_f30; f32 temp_f29; f32 temp_f31; @@ -761,12 +793,13 @@ void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { BoardModelScaleGet(particle->unk_02, &sp8); temp_f31 = sp8.x; BoardModelPosGet(particle->unk_02, &sp8); - + for (var_r29 = 0; var_r29 < 0x16; var_r29++) { var_r31 = particle->unk_48; for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk2C == 0.0f) break; + if (var_r31->unk2C == 0.0f) + break; } if (var_r28 != particle->unk_30) { temp_f30 = 360.0f * (0.003921569f * (s32)(frand() & 0xFF)); @@ -790,4 +823,4 @@ void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } } -} \ No newline at end of file +} diff --git a/src/REL/w05Dll/monkey.c b/src/REL/w05Dll/monkey.c index fb7e8efc..52c6f9db 100644 --- a/src/REL/w05Dll/monkey.c +++ b/src/REL/w05Dll/monkey.c @@ -7,7 +7,7 @@ #include "game/board/player.h" // data -s32 lbl_1_data_1A8[3] = { 0x0079001F, 0x00790020, 0xFFFFFFFF }; +s32 lbl_1_data_1A8[3] = { DATA_MAKE_NUM(DATADIR_W05, 0x1F), DATA_MAKE_NUM(DATADIR_W05, 0x20), DATA_NUM_LISTEND }; char *lbl_1_data_1C4[2] = { "monkyA", "monkyB"}; s32 lbl_1_data_1CC[3] = { 0x78, 0x6F, 0x70 }; @@ -29,7 +29,7 @@ void fn_1_2B40(void) { BoardModelMotionTimeSet(lbl_1_bss_14[3], 0.0f); for (var_r31 = 0; var_r31 < 2; var_r31++) { - lbl_1_bss_4E[var_r31] = BoardModelCreate(0x79001E, lbl_1_data_1A8, 0); + lbl_1_bss_4E[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1E), lbl_1_data_1A8, 0); BoardModelAttrSet(lbl_1_bss_4E[var_r31], 0x40000001); } BoardModelHookSet(lbl_1_bss_14[2], lbl_1_data_1C4[0], lbl_1_bss_4E[0]); @@ -53,8 +53,8 @@ void fn_1_2C7C(s32 arg0) { BoardModelPosGet(lbl_1_bss_4A, &lbl_1_bss_38); lbl_1_bss_38.x -= 140.0f; } - lbl_1_bss_44[0] = BoardModelCreate(0x79001C, NULL, 0); - lbl_1_bss_44[1] = BoardModelCreate(0x79001D, NULL, 0); + lbl_1_bss_44[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1C), NULL, 0); + lbl_1_bss_44[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1D), NULL, 0); BoardModelVisibilitySet(lbl_1_bss_44[0], 0); BoardModelVisibilitySet(lbl_1_bss_44[1], 0); BoardModelAttrSet(lbl_1_bss_44[0], 0x40000001); diff --git a/src/REL/w06Dll/bowser.c b/src/REL/w06Dll/bowser.c index 5b05c367..c9215a5d 100755 --- a/src/REL/w06Dll/bowser.c +++ b/src/REL/w06Dll/bowser.c @@ -422,12 +422,12 @@ static void fn_1_9E5C(s32 arg0) { HuAudFXPlay(0x51); var_r30 = BoardPlayerCoinsGet(arg0); if (var_r30 != 0) { - var_r29 = 0x300003; + var_r29 = MAKE_MESSID(48, 3); var_r28 = -1; var_r30 = BoardPlayerCoinsGet(arg0) - (var_r30 >> 1); var_r25 = 8; } else { - var_r29 = 0x300005; + var_r29 = MAKE_MESSID(48, 5); var_r28 = 1; var_r30 = 50; var_r25 = 7; @@ -466,9 +466,9 @@ static void fn_1_9E5C(s32 arg0) { HuPrcVSleep(); } if (var_r28 == -1) { - var_r29 = 0x300004; + var_r29 = MAKE_MESSID(48, 4); } else { - var_r29 = 0x300006; + var_r29 = MAKE_MESSID(48, 6); } BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0); HuAudFXPlay(0x3A); @@ -801,7 +801,7 @@ static void fn_1_B27C(s32 arg0) { BoardMusStart(1, 6, 0x7F, 0); BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, 0); HuPrcSleep(8); - var_r29 = 0x300026; + var_r29 = MAKE_MESSID(48, 38); var_r27 = 50; BoardWinCreate(2, var_r29, 5); BoardWinWait(); @@ -820,7 +820,7 @@ static void fn_1_B27C(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - var_r29 = 0x300027; + var_r29 = MAKE_MESSID(48, 39); BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0); HuAudFXPlay(0x3A); BoardWinCreate(2, var_r29, 5); @@ -1222,7 +1222,7 @@ void fn_1_CD0C(void) { while (!BoardViewMoveCheck()) { HuPrcVSleep(); } - BoardWinCreate(3, 0x300001, -1); + BoardWinCreate(3, MAKE_MESSID(48, 1), -1); BoardWinWait(); BoardWinKill(); } diff --git a/src/REL/w10Dll/main.c b/src/REL/w10Dll/main.c index a9eaff17..0b8de21c 100644 --- a/src/REL/w10Dll/main.c +++ b/src/REL/w10Dll/main.c @@ -134,9 +134,9 @@ void BoardCreate(void) BoardBooHouseHostSet(boardBooHouseHostMdl); BoardShopHostSet(boardShopHostMdl); BoardLotteryHostSet(boardLotteryHostMdl); - HuWinMesMaxSizeGet(1, size, 0x2E003A); + HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x2E, 0x3A)); tutorialExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1); - HuWinMesSet(tutorialExitWin, 0x2E003A); + HuWinMesSet(tutorialExitWin, MAKE_MESSID(0x2E, 0x3A)); HuWinMesSpeedSet(tutorialExitWin, 0); HuWinPriSet(tutorialExitWin, 1); HuWinMesPalSet(tutorialExitWin, 7, 0, 0, 0); diff --git a/src/REL/w20Dll/main.c b/src/REL/w20Dll/main.c index f4c3829d..70592f07 100644 --- a/src/REL/w20Dll/main.c +++ b/src/REL/w20Dll/main.c @@ -17,14 +17,14 @@ s16 lbl_1_data_6 = 0xFFFF; s16 lbl_1_data_8 = 0xFFFF; s16 lbl_1_data_A = 0xFFFF; s32 lbl_1_data_C[] = { - 0x005F0000, - 0x001A0000, - 0x006D0000, - 0x008A0000, - 0x00850000, - 0x00110000, - 0x000D0000, - 0x00810000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), }; s32 unkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 42), -1 }; @@ -50,12 +50,12 @@ void BoardCreate(void) lbl_1_bss_0->unk_04 = 0; lbl_1_bss_0->unk_06 = 0; BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W20, 0)); - lbl_1_data_0 = BoardModelCreate(0x7C0001, NULL, 0); + lbl_1_data_0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W20, 0x01), NULL, 0); fn_8006DDE8(lbl_1_data_0, -1.0f); BoardModelPosSet(lbl_1_data_0, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_0, 0, 0x40000001); BoardModelMotionSpeedSet(lbl_1_data_0, 1.0f); - lbl_1_data_2 = BoardModelCreate(0x7C0002, NULL, 0); + lbl_1_data_2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W20, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_2, -1.0f); BoardModelPosSet(lbl_1_data_2, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_2, 0, 0x40000001); diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c index 4731b9f9..c2c073bd 100644 --- a/src/REL/ztardll/font.c +++ b/src/REL/ztardll/font.c @@ -3,17 +3,56 @@ #include "REL/ztardll.h" s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0x150000, 0x150001, 0x150002, 0x150003, 0x150004, 0x150005, 0x150006, 0x150007, 0x150008, 0x150009, 0x150000, 0x150000, - 0x150000, 0x15000A, 0x150000, 0x150000, 0x150000, 0x15000F, 0x150010, 0x150011, 0x150012, 0x150013, 0x150014, 0x150015, 0x150016, 0x150017, - 0x150018, 0x150019, 0x15001A, 0x15001B, 0x15001C, 0x15001D, 0x15001E, 0x15001F, 0x150020, 0x150021, 0x150022, 0x150023, 0x150024, 0x150025, - 0x150026, 0x150027, 0x150028, 0x15001D, 0x15000D, 0x15001D, 0x15001D, 0x15001D, 0x15001D, 0x150029, 0x15002A, 0x15002B, 0x15002C, 0x15002D, - 0x15002E, 0x15002F, 0x150030, 0x150031, 0x150032, 0x150033, 0x150034, 0x150035, 0x150036, 0x150037, 0x150038, 0x150039, 0x15003A, 0x15003B, - 0x15003C, 0x15003D, 0x15003E, 0x15003F, 0x150040, 0x150041, 0x150042, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x15000A, 0x15000E, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x15000B, 0x15000C, 0x150000, 0x150000 }; + 0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x03), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x04), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x05), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x06), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x07), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x08), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x09), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0F), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x10), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x11), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x12), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x13), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x14), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x15), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x16), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x17), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x18), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x19), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1B), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1E), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1F), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x20), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x21), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x22), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x23), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x24), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x25), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x26), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x27), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x28), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0D), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x29), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2A), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2D), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2F), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x30), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x31), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x32), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x33), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x34), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x35), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x36), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x37), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x38), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x39), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3C), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3F), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x40), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x41), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x42), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) }; s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) { diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 0bd3da51..2a32c2a5 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -120,7 +120,7 @@ void fn_1_424(void) var_r27 = 0; fn_1_7D6C(lbl_1_bss_68); HuPrcVSleep(); - HuDataDirClose(0x640000); + HuDataDirClose(DATADIR_MPEX); lbl_1_bss_5A = 0; if (mgQuitExtraF != 0) { mgQuitExtraF = 0; @@ -192,14 +192,14 @@ block_7: } loop_19: fn_1_11020(); - fn_1_11264(0x330024, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0x24), 0, 0); if (lbl_1_bss_5A == 0) { - fn_1_11264(0x330025, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1); } else { - fn_1_11264(0x33002A, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1); } - fn_1_11708(0x33008D); + fn_1_11708(MAKE_MESSID(0x33, 0x8D)); for (var_r31 = 0; var_r31 <= 0x0A; var_r31++) { var_f31 = var_r31 / 10.0; @@ -226,10 +226,10 @@ loop_19: HuPrcVSleep(); } if (lbl_1_bss_5A == 0) { - fn_1_11264(0x330025, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1); } else { - fn_1_11264(0x33002A, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1); } } } @@ -324,7 +324,7 @@ loop_19: HuPrcChildCreate(fn_1_7C00, 0x64, 0x2000, 0, lbl_1_bss_68); } fn_1_11020(); - fn_1_11264(0x33002C, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0x2C), 0, 0); var_r30 = fn_1_11390(0); if (var_r30 != -1) { if (var_r30 != 1) { @@ -392,7 +392,7 @@ void fn_1_1774(void) for (var_r30 = 0; var_r30 < 0x10; var_r30++) { sp8.unk_5A[var_r30] = sp8.unk_3A[var_r30] = -1; } - var_r29 = MessData_MesPtrGet(messDataPtr, 0x170021); + var_r29 = MessData_MesPtrGet(messDataPtr, MAKE_MESSID(0x17, 0x21)); for (var_r26 = var_r29; *var_r29 != 0; var_r29++) { if (*var_r29 == 0xA) { *var_r29 = 0x10; @@ -588,11 +588,11 @@ void fn_1_2350(void) fn_1_11020(); fn_1_11338(GWPlayerCfg[spC[0]].character, 0); fn_1_11338(GWPlayerCfg[spC[1]].character, 1); - fn_1_11264(0x3300A0, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0xA0), 0, 0); if (GWMGAvailGet(var_r31 + 0x191) == 0) { GWMGAvailSet(var_r31 + 0x191); GWGameStat.present[0x37] = 1; - fn_1_11264(0x330029, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0x29), 0, 0); } fn_1_111E0(); WipeCreate(2, 0, 0x1E); @@ -671,7 +671,7 @@ void fn_1_2350(void) HuSprTPLvlSet(lbl_1_bss_50, 2, var_r31 / 20.0); HuPrcVSleep(); } - fn_1_114EC(0x33004F, 1); + fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1); while (TRUE) { if ((*HuPadBtnDown & 0x100) != 0) { HuAudFXPlay(2); @@ -827,12 +827,12 @@ void fn_1_33B0(void) if (var_r28 != 0xFF) { if (var_r28 < 8) { lbl_1_bss_36[var_r31] = CharModelCreate(var_r28, 2); - lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, 0x5F0000); - lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, 0x5F0003); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); if (var_r31 < 2) { - lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, 0x5F0048); - lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, 0x5F0017); - lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, 0x5F0018); + lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); } CharModelVoiceEnableSet(GWPlayerCfg[spC[var_r31]].character, lbl_1_bss_E[var_r31][1], 0); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); @@ -966,7 +966,7 @@ void fn_1_4374(void) HuPrcVSleep(); } } - fn_1_114EC(0x33004F, 1); + fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1); while (TRUE) { if (HuPadBtnDown[0] & PAD_BUTTON_A) { HuAudFXPlay(2); @@ -1058,9 +1058,9 @@ void fn_1_4948(void) var_r30 = GWPlayerCfg[spC[var_r31]].character; if (var_r30 < 8) { lbl_1_bss_36[var_r31] = CharModelCreate(var_r30, 2); - lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, 0x5F0000); - lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, 0x5F0017); - lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, 0x5F0018); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } else { @@ -1236,7 +1236,7 @@ s32 fn_1_524C(s32 arg0) var_r24 = HuWinCreate(0.0f, 0.0f, 0x1E0, 0x28, 0); HuWinMesSpeedSet(var_r24, 0); HuWinBGTPLvlSet(var_r24, 0.0f); - HuWinMesSet(var_r24, 0x1A0020); + HuWinMesSet(var_r24, MAKE_MESSID(0x1A, 0x20)); var_r22 = &winData[var_r24]; HuWinPriSet(var_r24, 5); HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f); @@ -1393,7 +1393,7 @@ void fn_1_66F8(void) while (WipeStatGet() != 0) { HuPrcVSleep(); } - HuDataDirClose(0x160000); + HuDataDirClose(DATADIR_INSTPIC); while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c index c12887fe..4459c2e8 100644 --- a/src/REL/ztardll/select.c +++ b/src/REL/ztardll/select.c @@ -77,24 +77,24 @@ void fn_1_FD90(s32 arg0); extern s16 lbl_1_bss_4; s32 lbl_1_data_3C8[8] = { - 0x5F0000, - 0x1A0000, - 0x6D0000, - 0x8A0000, - 0x850000, - 0x110000, - 0xD0000, - 0x810000, + DATADIR_MARIOMOT, + DATADIR_LUIGIMOT, + DATADIR_PEACHMOT, + DATADIR_YOSHIMOT, + DATADIR_WARIOMOT, + DATADIR_DONKEYMOT, + DATADIR_DAISYMOT, + DATADIR_WALUIGIMOT, }; s32 lbl_1_data_3E8[8] = { - 0x5E0000, - 0x190000, - 0x6C0000, - 0x890000, - 0x840000, - 0x100000, - 0xC0000, - 0x800000, + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1, }; s32 lbl_1_bss_26C[0x1B]; @@ -164,9 +164,9 @@ s32 fn_1_7E0C(s32 arg0) var_r29 = -1; fn_1_A610(); fn_1_11020(); - fn_1_11264(0x1A0005, -1, -1); + fn_1_11264(MAKE_MESSID(0x1A, 0x05), -1, -1); fn_1_10FBC(1); - fn_1_11708(0x330091); + fn_1_11708(MAKE_MESSID(0x33, 0x91)); lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_AEE4; var_r29 = -1; while (TRUE) { @@ -179,7 +179,7 @@ s32 fn_1_7E0C(s32 arg0) } if (var_r29 != var_r30) { var_r29 = var_r30; - fn_1_11264(var_r30 + 0x1A001B, -1, 1); + fn_1_11264(var_r30 + MAKE_MESSID(0x1A, 0x1B), -1, 1); } if (lbl_1_bss_20C.unk_28 == 0) { if (HuPadBtnDown[0] & PAD_BUTTON_A) { @@ -253,12 +253,12 @@ s32 fn_1_8030(s32 arg0, s32 arg1) fn_1_11020(); fn_1_10FBC(1); if (arg1 == 1) { - fn_1_11264(0x1E005E, -1, -1); + fn_1_11264(MAKE_MESSID(0x1E, 0x5E), -1, -1); } else { - fn_1_11264(0x1A0009, -1, -1); + fn_1_11264(MAKE_MESSID(0x1A, 0x09), -1, -1); } - fn_1_11708(0x330092); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < var_r30; var_r31++) { if (lbl_1_bss_8C[var_r31].unk_50 == 0) { lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; @@ -352,15 +352,15 @@ s32 fn_1_8338(s32 arg0, s32 arg1) } } if (var_r26 == -1) { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } else { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } var_r26 = 1; - fn_1_11708(0x330092); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < arg1; var_r31++) { if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { var_r30 = var_r31; @@ -389,9 +389,9 @@ s32 fn_1_8338(s32 arg0, s32 arg1) } } lbl_1_bss_8C[var_r30].unk_04 = NULL; - fn_1_11264(0x1A0022, -1, 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x22), -1, 1); fn_1_10FBC(1); - fn_1_11708(0x330093); + fn_1_11708(MAKE_MESSID(0x33, 0x93)); var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); if (var_r29 == 1) { HuAudFXPlay(2); @@ -470,9 +470,9 @@ s32 fn_1_88A4(void) var_r26 = -1; fn_1_A8E8(); fn_1_11020(); - fn_1_11264(0x1A0005, -1, -1); + fn_1_11264(MAKE_MESSID(0x1A, 0x05), -1, -1); fn_1_10FBC(1); - fn_1_11708(0x330091); + fn_1_11708(MAKE_MESSID(0x33, 0x91)); lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_B468; while (TRUE) { fn_1_10FBC(1); @@ -484,7 +484,7 @@ s32 fn_1_88A4(void) } if (var_r26 != var_r30) { var_r26 = var_r30; - fn_1_11264(var_r30 + 0x330093, -1, 1); + fn_1_11264(var_r30 + MAKE_MESSID(0x33, 0x93), -1, 1); } if (lbl_1_bss_20C.unk_28 != 0) { continue; @@ -581,8 +581,8 @@ s32 fn_1_8B94(s32 arg0) } fn_1_11020(); fn_1_10FBC(1); - fn_1_11264(0x1A0009, -1, -1); - fn_1_11708(0x330092); + fn_1_11264(MAKE_MESSID(0x1A, 0x09), -1, -1); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < var_r30; var_r31++) { if (lbl_1_bss_8C[var_r31].unk_50 == 0) { lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; @@ -668,15 +668,15 @@ s32 fn_1_8E50(s32 arg0) } } if (var_r26 == -1) { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } else { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } var_r26 = 1; - fn_1_11708(0x330092); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < var_r28; var_r31++) { if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { var_r30 = var_r31; @@ -705,9 +705,9 @@ s32 fn_1_8E50(s32 arg0) } } lbl_1_bss_8C[var_r30].unk_04 = NULL; - fn_1_11264(0x1A0022, -1, 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x22), -1, 1); fn_1_10FBC(1); - fn_1_11708(0x330093); + fn_1_11708(MAKE_MESSID(0x33, 0x93)); var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); if (var_r29 == 1) { HuAudFXPlay(2); @@ -2947,7 +2947,7 @@ void fn_1_11020(void) void fn_1_111E0(void) { if (lbl_1_data_66C != -1) { - HuWinMesSet(lbl_1_data_66C, 0x250004); + HuWinMesSet(lbl_1_data_66C, MAKE_MESSID(0x25, 0x04)); HuWinExAnimOut(lbl_1_data_66C); HuWinExCleanup(lbl_1_data_66C); lbl_1_data_66C = -1; @@ -2993,7 +2993,7 @@ s32 fn_1_11390(s32 arg0) s32 var_r27; s32 var_r26; - HuWinMesMaxSizeGet(1, spC, 0x1E0035); + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x1E, 0x35)); var_r30 = spC[0]; var_r29 = spC[1]; var_r27 = 0x22C - var_r30; @@ -3003,9 +3003,9 @@ s32 fn_1_11390(s32 arg0) HuWinMesPalSet(var_r31, 7, 0, 0, 0); HuWinExAnimIn(var_r31); HuWinMesSpeedSet(var_r31, 0); - HuWinMesSet(var_r31, 0x1E0035); + HuWinMesSet(var_r31, MAKE_MESSID(0x1E, 0x35)); var_r28 = HuWinChoiceGet(var_r31, arg0); - HuWinMesSet(var_r31, 0x250004); + HuWinMesSet(var_r31, MAKE_MESSID(0x25, 0x04)); HuWinExAnimOut(var_r31); HuWinExCleanup(var_r31); diff --git a/src/game/board/block.c b/src/game/board/block.c index a3e73511..11e6ca9e 100644 --- a/src/game/board/block.c +++ b/src/game/board/block.c @@ -1,11 +1,11 @@ +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/star.h" +#include "game/board/window.h" #include "game/flag.h" #include "game/objsub.h" #include "game/process.h" -#include "game/board/main.h" -#include "game/board/player.h" -#include "game/board/model.h" -#include "game/board/star.h" -#include "game/board/window.h" #include "math.h" #define BLOCK_SPAWN 0 @@ -21,7 +21,7 @@ typedef struct { u8 opened : 1; u8 unk00_field5 : 1; }; - + s16 hit_y_velocity; s16 target_y_pos; } BlockWork; @@ -30,7 +30,7 @@ typedef struct { struct { u8 kill : 1; }; - + u8 lifetime; s8 model_index; s16 model; @@ -38,19 +38,19 @@ typedef struct { static void BlockProc(void); static void DestroyBlock(void); -static void ExecBlockObj(omObjData* arg0); +static void ExecBlockObj(omObjData *arg0); static void CreateBlockObj(s32 arg0); -static void DestroyBlockObj(BlockWork* unused0, omObjData* unused1); -static void SpawnBlock(BlockWork* arg0, omObjData* arg1); -static void HitBlock(BlockWork* arg0, omObjData* arg1); -static void OpenBlock(BlockWork* arg0, omObjData* arg1); +static void DestroyBlockObj(BlockWork *unused0, omObjData *unused1); +static void SpawnBlock(BlockWork *arg0, omObjData *arg1); +static void HitBlock(BlockWork *arg0, omObjData *arg1); +static void OpenBlock(BlockWork *arg0, omObjData *arg1); static void SetBlockOpen(void); static void SetBlockStop(void); static void WaitBlockHit(void); static void CreateCoinMdl(void); static void KillCoinMdl(void); static void PopupCoin(void); -static void PopupCoinExec(omObjData* arg0); +static void PopupCoinExec(omObjData *arg0); extern s8 boardTutorialBlockF; extern s8 boardTutorialBlockItem; @@ -62,37 +62,41 @@ static f32 rotMax; static f32 scaleAngle; static f32 rotY; -static omObjData* blockObj; -static Process* blockProc; +static omObjData *blockObj; +static Process *blockProc; static s16 coinMdl[10] = { -1, -1, -1, -1 }; static s32 coinF[10]; -s32 BoardBlockExec(s32 arg0) { +s32 BoardBlockExec(s32 arg0) +{ if (BoardPlayerSizeGet(arg0) == 2) { return 0; } - + blockProc = HuPrcChildCreate(BlockProc, 0x2003, 0x3800U, 0, boardMainProc); HuPrcDestructorSet2(blockProc, DestroyBlock); - + while (blockProc != NULL) { HuPrcVSleep(); } - + return 0; } -static void BlockProc(void) { - s32 sp14[8] = {0x005F0060, 0x001A0060, 0x006D0060, 0x008A0060, 0x00850060, 0x00110060, 0x000D0060, 0x00810060}; +static void BlockProc(void) +{ + s32 sp14[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x60), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x60), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x60), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x60), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x60), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x60) }; Point3d sp8; s32 var_r28; s32 i; s32 player; - BlockWork* work; - s32* temp_r4; + BlockWork *work; + s32 *temp_r4; s32 player_character; - + player = GWSystem.player_curr; player_character = GWPlayer[player].character; @@ -101,12 +105,12 @@ static void BlockProc(void) { BoardPlayerMotBlendSet(player, 0, 0xF); omVibrate(player, 12, 12, 0); CreateBlockObj(player); - + work = OM_GET_WORK_PTR(blockObj, BlockWork); while (work->state != BLOCK_HIT) { HuPrcVSleep(); } - + BoardCameraViewSet(3); BoardCameraMotionWait(); BoardWinCreate(0, 0x10000, -1); @@ -123,7 +127,7 @@ static void BlockProc(void) { HuPrcVSleep(); } BoardPlayerIdleSet(player); - + if (work->contains_star != 0) { SetBlockStop(); BoardModelPosGet(starMdl, &sp8); @@ -134,10 +138,11 @@ static void BlockProc(void) { if (_CheckFlag(FLAG_ID_MAKE(1, 11)) == 0) { BoardAudSeqPause(0, 0, 1000); } - } else { + } + else { for (i = 0; i < 0x14; i++) { WaitBlockHit(); - BoardPlayerMotionStart(player, (s32) jumpMot, 0); + BoardPlayerMotionStart(player, (s32)jumpMot, 0); BoardPlayerMotionSpeedSet(player, 2); while (BoardPlayerMotionTimeGet(player) < 4) { HuPrcVSleep(); @@ -152,29 +157,30 @@ static void BlockProc(void) { HuAudFXPlay(7); HuPrcVSleep(); } - + SetBlockStop(); } - + BoardWinCreate(0, work->contains_star != 0 ? MAKE_MESSID(1, 1) : MAKE_MESSID(1, 2), -1); BoardWinWait(); BoardWinKill(); KillCoinMdl(); work->kill = 1; - - BoardPlayerIdleSet((s32) player); + + BoardPlayerIdleSet((s32)player); HuPrcVSleep(); - + if ((_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) && work->contains_star == 0) { BoardTutorialHookExec(0x16, 0); } - + BoardCameraViewSet(2); BoardCameraMotionWait(); HuPrcEnd(); } -static void DestroyBlock(void) { +static void DestroyBlock(void) +{ if (jumpMot != -1) { BoardPlayerMotionKill(GWSystem.player_curr, jumpMot); jumpMot = -1; @@ -183,71 +189,74 @@ static void DestroyBlock(void) { blockProc = 0; } -static void CreateBlockObj(s32 arg0) { +static void CreateBlockObj(s32 arg0) +{ Point3d player_pos; - BlockWork* work; + BlockWork *work; s8 contains_star; - + BoardPlayerPosGet(arg0, &player_pos); - starMdl = BoardModelCreate(0x70004, NULL, 0); + starMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 4), NULL, 0); BoardModelVisibilitySet(starMdl, 0); BoardModelMotionSpeedSet(starMdl, 0); BoardModelLayerSet(starMdl, 2U); - + blockObj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, ExecBlockObj); - + work = OM_GET_WORK_PTR(blockObj, BlockWork); work->kill = 0; work->unk00_field2 = 0; work->opened = 0; work->unk00_field5 = 0; work->state = BLOCK_SPAWN; - + blockObj->trans.x = player_pos.x; blockObj->trans.y = 270 + player_pos.y; blockObj->trans.z = player_pos.z; - + blockObj->scale.x = blockObj->scale.y = blockObj->scale.z = 0.01; blockObj->rot.x = blockObj->rot.y = blockObj->rot.z = 0.0; - + scaleAngle = 0; rotY = 0; rotMax = 30; - + BoardModelVisibilitySet(starMdl, 1); - + if (BoardRandFloat() > 0.5f) { contains_star = 0; - } else { + } + else { contains_star = 1; } - + work->contains_star = contains_star; - + if (boardTutorialBlockF != 0) { work->contains_star = boardTutorialBlockItem; boardTutorialBlockF = 0; } - + HuAudFXPlay(0x302); - + if (work->contains_star == 0) { CreateCoinMdl(); } } -static void ExecBlockObj(omObjData* arg0) { - BlockWork* work; +static void ExecBlockObj(omObjData *arg0) +{ + BlockWork *work; work = OM_GET_WORK_PTR(arg0, BlockWork); - + if (work->kill != 0 || BoardIsKill() != 0) { DestroyBlockObj(work, arg0); blockObj = 0; omDelObjEx(HuPrcCurrentGet(), arg0); return; } - + switch (work->state) { case BLOCK_SPAWN: SpawnBlock(work, arg0); @@ -259,30 +268,33 @@ static void ExecBlockObj(omObjData* arg0) { OpenBlock(work, arg0); break; } - + if (work->unk00_field5 != 0) { BoardModelVisibilitySet(starMdl, 0); } - + BoardModelPosSet(starMdl, arg0->trans.x, arg0->trans.y, arg0->trans.z); BoardModelRotSet(starMdl, arg0->rot.x, arg0->rot.y, arg0->rot.z); BoardModelScaleSet(starMdl, arg0->scale.x, arg0->scale.y, arg0->scale.z); } -static void DestroyBlockObj(BlockWork* unused0, omObjData* unused1) { +static void DestroyBlockObj(BlockWork *unused0, omObjData *unused1) +{ if (starMdl != -1) { BoardModelKill(starMdl); starMdl = -1; } } -static void SpawnBlock(BlockWork* arg0, omObjData* arg1) { +static void SpawnBlock(BlockWork *arg0, omObjData *arg1) +{ if (scaleAngle < 90.0f) { scaleAngle += 3.75f; if (scaleAngle > 90.0f) { scaleAngle = 90.0f; } - } else { + } + else { rotMax *= 0.5f; if (rotMax < 0.8f) { rotY = 0.0f; @@ -291,31 +303,33 @@ static void SpawnBlock(BlockWork* arg0, omObjData* arg1) { arg0->state = BLOCK_HIT; } } - + if (rotY < 360.0f) { rotY += rotMax; if (rotY > 360.0f) { rotY = 360.0f; } } - + arg1->rot.y = rotY; arg1->scale.x = arg1->scale.y = arg1->scale.z = sin(M_PI * scaleAngle / 180.0); } -static void HitBlock(BlockWork* arg0, omObjData* arg1) { +static void HitBlock(BlockWork *arg0, omObjData *arg1) +{ float var_f30; arg0->hit_y_velocity += 3; if (arg0->hit_y_velocity > 0x168) { arg0->hit_y_velocity -= 0x168; } - + OSs16tof32(&arg0->hit_y_velocity, &var_f30); arg1->trans.y += 0.2f * sin((M_PI * var_f30) / 180.0); } -static void OpenBlock(BlockWork* arg0, omObjData* arg1) { +static void OpenBlock(BlockWork *arg0, omObjData *arg1) +{ f32 target_y_pos; if (arg0->opened == 0) { @@ -323,16 +337,17 @@ static void OpenBlock(BlockWork* arg0, omObjData* arg1) { HuAudFXPlay(0x33B); BoardModelMotionStart(starMdl, 0, 0); } - + if (arg0->unk00_field2 == 0) { OSf32tos16(&arg1->trans.y, &arg0->target_y_pos); - + arg1->trans.y += 80.0f; arg0->unk00_field2 = 1; - } else { + } + else { OSs16tof32(&arg0->target_y_pos, &target_y_pos); arg1->trans.y += -8.0f; - + if (arg1->trans.y < target_y_pos) { arg1->trans.y = target_y_pos; arg0->state = BLOCK_HIT; @@ -340,43 +355,48 @@ static void OpenBlock(BlockWork* arg0, omObjData* arg1) { } } -static void SetBlockOpen(void) { - BlockWork* work; +static void SetBlockOpen(void) +{ + BlockWork *work; work = OM_GET_WORK_PTR(blockObj, BlockWork); work->state = BLOCK_OPEN; } -static void SetBlockStop(void) { - BlockWork* work; +static void SetBlockStop(void) +{ + BlockWork *work; work = OM_GET_WORK_PTR(blockObj, BlockWork); work->unk00_field5 = 1; } -static void WaitBlockHit(void) { - BlockWork* work; +static void WaitBlockHit(void) +{ + BlockWork *work; work = OM_GET_WORK_PTR(blockObj, BlockWork); - + while (work->state != BLOCK_HIT) { HuPrcVSleep(); } } -static void CreateCoinMdl(void) { +static void CreateCoinMdl(void) +{ s32 i; - + for (i = 0; i < 10; i += 1) { - coinMdl[i] = BoardModelCreate(0x7000A, NULL, 1); + coinMdl[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); BoardModelVisibilitySet(coinMdl[i], 0); coinF[i] = 0; } } -static void KillCoinMdl(void) { +static void KillCoinMdl(void) +{ s32 i; - + for (i = 0; i < 0xA; i += 1) { if (coinMdl[i] != -1) { BoardModelKill(coinMdl[i]); @@ -386,77 +406,81 @@ static void KillCoinMdl(void) { } } -static inline s32 FindCoinModel(s16 *out_model) { +static inline s32 FindCoinModel(s16 *out_model) +{ s32 i; - + for (i = 0; i < 10; i++) { if (coinF[i] == 0) { *out_model = coinMdl[i]; return i; } } - + return -1; } -static void PopupCoin(void) { +static void PopupCoin(void) +{ Point3d star_pos; - omObjData* coinObj; + omObjData *coinObj; s32 model_index; s16 model; - CoinWork* work; - + CoinWork *work; + do { HuPrcVSleep(); model_index = FindCoinModel(&model); } while (model_index == -1); - + coinObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, PopupCoinExec); work = OM_GET_WORK_PTR(coinObj, CoinWork); - + work->kill = 0; work->lifetime = 10; work->model = model; work->model_index = model_index; - + coinObj->trans.x = 15.0f; coinObj->trans.y = 40.0f; - + BoardModelPosGet(starMdl, &star_pos); BoardModelPosSetV(work->model, &star_pos); BoardModelVisibilitySet(work->model, 1); } -static void PopupCoinExec(omObjData* obj) { +static void PopupCoinExec(omObjData *obj) +{ Point3d coin_pos; Point3d coin_rot; - CoinWork* work; + CoinWork *work; work = OM_GET_WORK_PTR(obj, CoinWork); - + if (work->kill != 0 || BoardIsKill() != 0) { BoardModelVisibilitySet(work->model, 0); coinF[work->model_index] = 0; omDelObjEx(HuPrcCurrentGet(), obj); return; } - + if (work->lifetime != 0) { work->lifetime -= 1; - } else { + } + else { work->kill = 1; return; } - + BoardModelPosGet(work->model, &coin_pos); coin_pos.y += obj->trans.y; BoardModelPosSetV(work->model, &coin_pos); BoardModelRotGet(work->model, &coin_rot); coin_rot.y += obj->trans.x; - + if (coin_rot.y > 360.0f) { coin_rot.y -= 360.0f; } - + BoardModelRotSetV(work->model, &coin_rot); } diff --git a/src/game/board/boo_house.c b/src/game/board/boo_house.c index b3197298..544eabd6 100644 --- a/src/game/board/boo_house.c +++ b/src/game/board/boo_house.c @@ -1,19 +1,18 @@ #include "game/board/boo_house.h" -#include "game/msm.h" -#include "game/hsfdraw.h" -#include "game/gamework_data.h" -#include "game/board/player.h" -#include "game/board/model.h" -#include "game/board/com.h" +#include "game/board/audio.h" #include "game/board/boo.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/star.h" #include "game/board/ui.h" #include "game/board/view.h" -#include "game/board/audio.h" -#include "game/board/main.h" -#include "game/board/star.h" -#include "game/board/player.h" #include "game/board/window.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/msm.h" #include "ext_math.h" @@ -22,34 +21,78 @@ static s16 houseMdl[6]; // data static s32 hostMesTbl[6][6] = { - { 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 }, - { 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 }, - { 0x70018, 0x70019, 0x7001A, 0x7001B, 0x7001C, 0x7001D }, - { 0x7001E, 0x7001F, 0x70020, 0x70021, 0x70022, 0x70023 }, - { 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 }, - { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x0C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x10), + DATA_MAKE_NUM(DATADIR_BOARD, 0x11), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x12), + DATA_MAKE_NUM(DATADIR_BOARD, 0x13), + DATA_MAKE_NUM(DATADIR_BOARD, 0x14), + DATA_MAKE_NUM(DATADIR_BOARD, 0x15), + DATA_MAKE_NUM(DATADIR_BOARD, 0x16), + DATA_MAKE_NUM(DATADIR_BOARD, 0x17), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x18), + DATA_MAKE_NUM(DATADIR_BOARD, 0x19), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1D), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x1E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x20), + DATA_MAKE_NUM(DATADIR_BOARD, 0x21), + DATA_MAKE_NUM(DATADIR_BOARD, 0x22), + DATA_MAKE_NUM(DATADIR_BOARD, 0x23), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x24), + DATA_MAKE_NUM(DATADIR_BOARD, 0x25), + DATA_MAKE_NUM(DATADIR_BOARD, 0x26), + DATA_MAKE_NUM(DATADIR_BOARD, 0x27), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x29), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x2A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + }, }; static BoardModelParam houseMdlTbl[6] = { - { 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90003, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x00), { 0, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x01), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x03), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x04), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x04), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x07), { 0, 1, 0, 0, 0 }, 0xFFFF }, }; static s32 booMotTbl[3] = { - 0x20013, 0x20016, 0xFFFFFFFF + DATA_MAKE_NUM(DATADIR_BGUEST, 0x13), + DATA_MAKE_NUM(DATADIR_BGUEST, 0x16), + DATA_NUM_LISTEND, }; -static s32 houseMotTbl[9][3] = { - { 0x20001, 0x20003, 0x20004 }, - { 0x20009, 0x2000B, 0x2000C }, - { 0x2000E, 0x20010, 0x20011 }, - { 0x20018, 0x2001A, 0x2001B }, - { 0x2001D, 0x2001F, 0x20020 }, - { 0x20022, 0x20024, 0x20025 }, - { 0x20018, 0x2001A, 0x2001B }, - { 0x20001, 0x20003, 0x20004 }, - { 0x20001, 0x20003, 0x20004 } +static s32 hostMotTbl[9][3] = { + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x0E), DATA_MAKE_NUM(DATADIR_BGUEST, 0x10), DATA_MAKE_NUM(DATADIR_BGUEST, 0x11) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x1D), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1F), DATA_MAKE_NUM(DATADIR_BGUEST, 0x20) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x22), DATA_MAKE_NUM(DATADIR_BGUEST, 0x24), DATA_MAKE_NUM(DATADIR_BGUEST, 0x25) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, }; // sbss @@ -58,16 +101,16 @@ static s8 stealTarget; static s8 comStarStealTarget; static s32 comCoinStealTarget; static s8 stealAmountStr[8]; -static Process* houseProc; +static Process *houseProc; // sdata static s16 houseShowMot = 0xFFFF; static s16 houseHideMot = 0xFFFF; static s16 ballMdl = 0xFFFF; static s16 booMdl = 0xFFFF; -static s16 lbl_801D37F8 = 0xFFFF; +static s16 smokeMdl = 0xFFFF; static s16 hostMdl = 0xFFFF; -static s16 houseMot[3] = { 0xFFFF, 0xFFFF, 0xFFFF }; +static s16 hostMot[3] = { 0xFFFF, 0xFFFF, 0xFFFF }; // determined functions static void ExecBooHouse(void); @@ -87,15 +130,18 @@ static void ApplyBooLight(void); static void SetBooBallPos(void); // FUNCTIONS // -void BoardBooHouseHostSet(s16 arg0) { +void BoardBooHouseHostSet(s16 arg0) +{ hostMdl = arg0; } -s16 BoardBooHouseHostGet(void) { +s16 BoardBooHouseHostGet(void) +{ return hostMdl; } -void BoardBooHouseCreate(void) { +void BoardBooHouseCreate(void) +{ Vec sp14; Vec sp8; @@ -107,17 +153,19 @@ void BoardBooHouseCreate(void) { if (hostMdl != -1) { BoardModelVisibilitySet(hostMdl, 0); } - HuDataDirClose(0x90000); + HuDataDirClose(DATADIR_BYOKODORI); } -void BoardBooHouseKill(void) { +void BoardBooHouseKill(void) +{ if (houseMdl[0] != -1) { BoardModelKill(houseMdl[0]); houseMdl[0] = -1; } } -void BoardBooHouseExec(s32 arg0) { +void BoardBooHouseExec(s32 arg0) +{ currPlayer = arg0; if (BoardPlayerSizeGet(currPlayer) != 2) { BoardRollDispSet(0); @@ -130,7 +178,8 @@ void BoardBooHouseExec(s32 arg0) { } } -static void ExecBooHouse(void) { +static void ExecBooHouse(void) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -145,7 +194,7 @@ static void ExecBooHouse(void) { s32 var_r26; _SetFlag(0x10018); - var_r28 = BoardDataDirReadAsync(0x90000); + var_r28 = BoardDataDirReadAsync(DATADIR_BYOKODORI); var_r30 = GWPlayer[currPlayer].space_curr; BoardPlayerIdleSet(currPlayer); if (BoardPlayerCoinsGet(currPlayer) < 5) { @@ -159,7 +208,8 @@ static void ExecBooHouse(void) { if (GWPlayer[currPlayer].com != 0) { if (BoardBooComUseCheck(currPlayer) != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -168,13 +218,13 @@ static void ExecBooHouse(void) { BoardDataAsyncWait(var_r28); HuPrcEnd(); } - + for (var_r26 = var_r31 = 0; var_r31 < 4; var_r31++) { if (currPlayer != var_r31) { var_r26 += GWStarsGet(var_r31); } } - + for (var_r27 = var_r31 = 0; var_r31 < 4; var_r31++) { if (currPlayer != var_r31) { var_r27 += BoardPlayerCoinsGet(var_r31); @@ -203,7 +253,7 @@ static void ExecBooHouse(void) { BoardPlayerMoveBetween(currPlayer, var_r30, temp_r29); BoardPlayerIdleSet(currPlayer); BoardMusStart(1, 1, 0x7F, 0); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001); BoardWinCreate(2, hostMesTbl[GWBoardGet()][0], BoardWinPortraitGet()); BoardWinWait(); @@ -245,7 +295,7 @@ repeatWindowView: BoardStatusShowSet(currPlayer, 0); HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001); CloseBooHouse(); BoardCameraViewSet(1); BoardCameraRotSet(0.0f, 0.0f); @@ -259,13 +309,14 @@ repeatWindowView: HuPrcEnd(); } -static void DestroyBooHouse(void) { +static void DestroyBooHouse(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { - if (houseMot[var_r31] != -1) { - BoardModelMotionKill(BoardBooHouseHostGet(), houseMot[var_r31]); - houseMot[var_r31] = -1; + if (hostMot[var_r31] != -1) { + BoardModelMotionKill(BoardBooHouseHostGet(), hostMot[var_r31]); + hostMot[var_r31] = -1; } } if (houseShowMot != -1) { @@ -278,12 +329,13 @@ static void DestroyBooHouse(void) { } BoardWinKill(); KillBooHouseModel(); - HuDataDirClose(0x90000); + HuDataDirClose(DATADIR_BYOKODORI); _ClearFlag(0x10018); houseProc = 0; } -static void PickComStealType(s32 arg0) { +static void PickComStealType(s32 arg0) +{ s32 var_r31; s32 var_r30; s32 var_r28; @@ -297,10 +349,11 @@ static void PickComStealType(s32 arg0) { } if (BoardPlayerCoinsGet(arg0) >= 0x32) { for (var_r31 = 0; var_r31 < 4; var_r31++) { - if ((var_r31 != arg0) && (GWStarsGet(var_r31) != 0) && (((s32) GWSystem.team == 0) || (var_r31 != BoardPlayerSameTeamFind(arg0)))) { + if ((var_r31 != arg0) && (GWStarsGet(var_r31) != 0) && (((s32)GWSystem.team == 0) || (var_r31 != BoardPlayerSameTeamFind(arg0)))) { if (var_r30 != 0) { BoardComKeySetDown(); - } else { + } + else { BoardComKeySetUp(); } return; @@ -310,7 +363,8 @@ static void PickComStealType(s32 arg0) { BoardComKeySetUp(); } -static void OpenBooHouse(void) { +static void OpenBooHouse(void) +{ s16 temp_r31; s32 temp_r5; s32 var_r30; @@ -318,11 +372,11 @@ static void OpenBooHouse(void) { ballMdl = BoardBooCreate(currPlayer, 0); temp_r31 = BoardBooHouseHostGet(); BoardModelMotionStart(temp_r31, 1, 0x40000001); - + for (var_r30 = 0; var_r30 < 3; var_r30++) { - houseMot[var_r30] = BoardModelMotionCreate(temp_r31, houseMotTbl[GWBoardGet()][var_r30]); + hostMot[var_r30] = BoardModelMotionCreate(temp_r31, hostMotTbl[GWBoardGet()][var_r30]); } - BoardModelMotionStart(temp_r31, houseMot[0], 0x40000001); + BoardModelMotionStart(temp_r31, hostMot[0], 0x40000001); BoardModelVisibilitySet(temp_r31, 1); HuAudFXPlay(0x337); HuAudFXPlay(0x344); @@ -337,7 +391,8 @@ static void OpenBooHouse(void) { BoardModelHookSet(houseMdl[0], "yoko06", temp_r31); if (GWBoardGet() == BOARD_ID_MAIN6) { BoardModelPosSet(temp_r31, 0.0f, 0.0f, -25.0f); - } else { + } + else { BoardModelPosSet(temp_r31, 0.0f, 0.0f, 0.0f); } BoardModelMotionStart(houseMdl[3], 0, 0x40000001); @@ -346,9 +401,9 @@ static void OpenBooHouse(void) { BoardModelMotionStart(booMdl, 1, 0x40000001); BoardModelVisibilitySet(booMdl, 1); BoardModelHookSet(houseMdl[0], "yoko8", booMdl); - lbl_801D37F8 = BoardModelCreate(0x90008, NULL, 0); - BoardModelVisibilitySet(lbl_801D37F8, 0); - BoardModelLayerSet(lbl_801D37F8, 2); + smokeMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x08), NULL, 0); + BoardModelVisibilitySet(smokeMdl, 0); + BoardModelLayerSet(smokeMdl, 2); BoardModelMotionStart(houseMdl[1], 0, 0x40000001); while (BoardModelMotionTimeGet(houseMdl[0]) < 90.0f) { @@ -358,16 +413,17 @@ static void OpenBooHouse(void) { BoardModelMotionShiftSet(houseMdl[1], houseHideMot, 0.0f, 10.0f, 0x40000001); BoardModelHookObjReset(houseMdl[0], "yoko02"); SetBooBallPos(); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[2], 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[2], 0.0f, 10.0f, 0); } -static void CloseBooHouse(void) { +static void CloseBooHouse(void) +{ BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f); BoardModelHookSet(houseMdl[0], "yoko02", ballMdl); BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0); BoardModelMotionShiftSet(houseMdl[0], 0, 90.0f, 10.0f, 0); HuPrcSleep(0xA); - + while (BoardModelMotionShiftIDGet(houseMdl[0]) != -1) { HuPrcVSleep(); } @@ -376,7 +432,7 @@ static void CloseBooHouse(void) { } HuAudFXPlay(0x336); BoardAudSeqFadeOut(1, 0x3E8); - + while (BoardModelMotionEndCheck(houseMdl[0]) == 0) { HuPrcVSleep(); } @@ -385,7 +441,8 @@ static void CloseBooHouse(void) { ballMdl = -1; } -static void CreateBooHouseModel(void) { +static void CreateBooHouseModel(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 6; var_r31++) { @@ -393,11 +450,12 @@ static void CreateBooHouseModel(void) { houseMdl[var_r31] = BoardModelCreateParam(&houseMdlTbl[var_r31], 0, 0); } } - houseShowMot = BoardModelMotionCreate(houseMdl[0], 0x90009); - houseHideMot = BoardModelMotionCreate(houseMdl[1], 0x9000A); + houseShowMot = BoardModelMotionCreate(houseMdl[0], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x09)); + houseHideMot = BoardModelMotionCreate(houseMdl[1], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x0A)); } -static void KillBooHouseModel(void) { +static void KillBooHouseModel(void) +{ s32 temp_r4; s32 var_r31; @@ -411,28 +469,29 @@ static void KillBooHouseModel(void) { BoardModelKill(booMdl); booMdl = -1; } - if (lbl_801D37F8 != -1) { - BoardModelKill(lbl_801D37F8); - lbl_801D37F8 = -1; + if (smokeMdl != -1) { + BoardModelKill(smokeMdl); + smokeMdl = -1; } BoardModelVisibilitySet(BoardBooHouseHostGet(), 0); } -static void ExecNullSteal(void) { +static void ExecNullSteal(void) +{ HuAudFXPlay(0x4C); BoardWinCreate(2, hostMesTbl[GWBoardGet()][5], BoardWinPortraitGet()); BoardWinWait(); BoardWinKill(); } -static void ExecStarSteal(void) { +static void ExecStarSteal(void) +{ Vec sp14; Vec sp8; s32 temp_r29; s32 var_r30; s32 var_r31; - for (var_r30 = 0; var_r30 < 0x32; var_r30++) { BoardPlayerCoinsAdd(currPlayer, -1); HuAudFXPlay(0xE); @@ -444,16 +503,16 @@ static void ExecStarSteal(void) { BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(0); - + while (BoardPickerDoneCheck() == 0) { HuPrcVSleep(); } HuAudFXPlay(0x4C); Hu3DModelObjPosGet(BoardModelIDGet(houseMdl[0]), "yoko8", &sp14); sp14.y += 20.0f; - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); - BoardModelPosSetV(lbl_801D37F8, &sp14); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); + BoardModelPosSetV(smokeMdl, &sp14); HuPrcSleep(5); for (var_r31 = 0xFF; var_r31 > 0; var_r31 -= 0x33) { @@ -464,11 +523,11 @@ static void ExecStarSteal(void) { HuPrcVSleep(); } BoardModelVisibilitySet(booMdl, 0); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); BoardCameraMotionStartEx(ballMdl, NULL, NULL, 325.0f, -1.0f, 0x15); temp_r29 = BoardBooStealMain(); sp8.x = 0.0f; @@ -479,11 +538,11 @@ static void ExecStarSteal(void) { if (temp_r29 == 0) { BoardModelMotionStart(booMdl, 2, 0x40000001); } - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); HuPrcSleep(0xB); BoardModelVisibilitySet(booMdl, 1); - + for (var_r31 = 0; var_r31 < 0xFF; var_r31 += 0x33) { if (var_r31 > 0xFF) { var_r31 = 0xFF; @@ -492,21 +551,21 @@ static void ExecStarSteal(void) { HuPrcVSleep(); } BoardModelAlphaSet(booMdl, -1); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); } -static void ExecCoinSteal(void) { +static void ExecCoinSteal(void) +{ Vec sp14; Vec sp8; s32 temp_r29; s32 var_r30; s32 var_r31; - for (var_r30 = 0; var_r30 < 5; var_r30++) { BoardPlayerCoinsAdd(currPlayer, -1); HuAudFXPlay(0xE); @@ -518,16 +577,16 @@ static void ExecCoinSteal(void) { BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(0); - + while (BoardPickerDoneCheck() == 0) { HuPrcVSleep(); } HuAudFXPlay(0x4C); Hu3DModelObjPosGet(BoardModelIDGet(houseMdl[0]), "yoko8", &sp14); sp14.y += 20.0f; - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); - BoardModelPosSetV(lbl_801D37F8, &sp14); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); + BoardModelPosSetV(smokeMdl, &sp14); HuPrcSleep(5); for (var_r31 = 0xFF; var_r31 > 0; var_r31 -= 0x33) { @@ -538,11 +597,11 @@ static void ExecCoinSteal(void) { HuPrcVSleep(); } BoardModelVisibilitySet(booMdl, 0); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); BoardCameraMotionStartEx(ballMdl, NULL, NULL, 325.0f, -1.0f, 0x15); temp_r29 = BoardBooStealMain(); sp8.x = 0.0f; @@ -553,11 +612,11 @@ static void ExecCoinSteal(void) { if (temp_r29 == 0) { BoardModelMotionStart(booMdl, 2, 0x40000001); } - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); HuPrcSleep(0xB); BoardModelVisibilitySet(booMdl, 1); - + for (var_r31 = 0; var_r31 < 0xFF; var_r31 += 0x33) { if (var_r31 > 0xFF) { var_r31 = 0xFF; @@ -566,14 +625,15 @@ static void ExecCoinSteal(void) { HuPrcVSleep(); } BoardModelAlphaSet(booMdl, -1); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); } -void ApplySteal(void) { +void ApplySteal(void) +{ s16 spA; s16 sp8; s32 temp_r30; @@ -589,7 +649,7 @@ void ApplySteal(void) { BoardModelAlphaSet(booMdl, 0xFF); var_f31 = BoardDAngleCalc(180.0f + BoardPlayerRotYGet(currPlayer)); BoardPlayerMotBlendSet(currPlayer, var_f31, 0xF); - + while (BoardPlayerMotBlendCheck(currPlayer) == 0) { HuPrcVSleep(); } @@ -597,9 +657,11 @@ void ApplySteal(void) { var_r31 = BoardBooStealValueGet(&spA, &sp8); if (var_r31 == 0) { ApplyBooLight(); - } else if (stealTarget == 0) { + } + else if (stealTarget == 0) { ApplyCoinSteal(spA, sp8); - } else { + } + else { ApplyStarSteal(); } BoardWinCreate(2, hostMesTbl[GWBoardGet()][4], BoardWinPortraitGet()); @@ -607,31 +669,36 @@ void ApplySteal(void) { BoardWinKill(); } -void ApplyCoinSteal(s16 arg0, s16 arg1) { +void ApplyCoinSteal(s16 arg0, s16 arg1) +{ u32 var_r31; s32 var_r30; - if ((s16) arg1 == 0) { - var_r31 = 0x70009; - } else if ((s16) arg1 < 3) { - var_r31 = 0x70008; - } else if ((s16) arg1 < 6) { - var_r31 = 0x70007; - } else if ((s16) arg1 < 8) { - var_r31 = 0x70006; - } else { - var_r31 = 0x70005; + if ((s16)arg1 == 0) { + var_r31 = MAKE_MESSID(7, 9); + } + else if ((s16)arg1 < 3) { + var_r31 = MAKE_MESSID(7, 8); + } + else if ((s16)arg1 < 6) { + var_r31 = MAKE_MESSID(7, 7); + } + else if ((s16)arg1 < 8) { + var_r31 = MAKE_MESSID(7, 6); + } + else { + var_r31 = MAKE_MESSID(7, 5); } sprintf(&stealAmountStr, "%d", arg0); HuAudFXPlay(0x4B); BoardWinCreate(2, var_r31, 3); - BoardWinInsertMesSet((s32) &stealAmountStr, 0); + BoardWinInsertMesSet((s32)&stealAmountStr, 0); BoardWinWait(); BoardWinKill(); BoardStatusShowSetForce(currPlayer); BoardStatusShowSet(currPlayer, 1); BoardPlayerMotionShiftSet(currPlayer, 7, 0.0f, 8.0f, 0); - + for (var_r30 = 0; var_r30 < arg0; var_r30++) { BoardPlayerCoinsAdd(currPlayer, 1); HuAudFXPlay(0xE); @@ -641,7 +708,8 @@ void ApplyCoinSteal(s16 arg0, s16 arg1) { BoardPlayerMotionEndWait(currPlayer); } -void ApplyStarSteal(void) { +void ApplyStarSteal(void) +{ s32 temp_r31; HuAudFXPlay(0x4C); @@ -660,7 +728,7 @@ void ApplyStarSteal(void) { HuPrcSleep(0xA); temp_r31 = HuAudSStreamPlay(6); BoardPlayerMotionEndWait(currPlayer); - + while (msmStreamGetStatus(temp_r31) != 0) { HuPrcVSleep(); } @@ -669,7 +737,8 @@ void ApplyStarSteal(void) { BoardPlayerVoiceEnableSet(currPlayer, 7, 1); } -void ApplyBooLight(void) { +void ApplyBooLight(void) +{ BoardWinCreate(2, MAKE_MESSID(7, 11), 3); BoardWinWait(); BoardWinKill(); @@ -679,7 +748,8 @@ void ApplyBooLight(void) { } } -void SetBooBallPos(void) { +void SetBooBallPos(void) +{ Mtx sp14; Vec sp8; s16 var_r31; @@ -690,7 +760,8 @@ void SetBooBallPos(void) { BoardModelPosSetV(ballMdl, &sp8); } -s32 BoardBooComUseCheck(s32 arg0) { +s32 BoardBooComUseCheck(s32 arg0) +{ s32 var_r31; u32 var_r30; s32 var_r29; @@ -703,23 +774,23 @@ s32 BoardBooComUseCheck(s32 arg0) { comStarStealTarget = comCoinStealTarget = -1; var_r26 = var_r27 = -1; switch (GWPlayer[arg0].diff) { - case 0: - var_r30 = 0x5F; - break; - case 1: - var_r30 = 0x32; - break; - case 2: - var_r30 = 5; - break; - case 3: - var_r30 = 0; - break; + case 0: + var_r30 = 0x5F; + break; + case 1: + var_r30 = 0x32; + break; + case 2: + var_r30 = 5; + break; + case 3: + var_r30 = 0; + break; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { if (var_r31 != arg0) { - if ((s32) GWSystem.team == 0 || var_r31 != BoardPlayerSameTeamFind(arg0)) { + if ((s32)GWSystem.team == 0 || var_r31 != BoardPlayerSameTeamFind(arg0)) { if (BoardPlayerItemFind(var_r31, 8) == -1 || BoardRandMod(0x64) < var_r30) { var_r29 = BoardPlayerCoinsGet(var_r31); var_r28 = GWStarsGet(var_r31); @@ -731,7 +802,7 @@ s32 BoardBooComUseCheck(s32 arg0) { } if (var_r26 < var_r28) { var_r26 = var_r28; - comStarStealTarget = (s8) var_r31; + comStarStealTarget = (s8)var_r31; } } } @@ -745,7 +816,8 @@ s32 BoardBooComUseCheck(s32 arg0) { return 1; } -void BoardBooHouseTutorialExec(void) { +void BoardBooHouseTutorialExec(void) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -759,7 +831,7 @@ void BoardBooHouseTutorialExec(void) { s32 var_r31; s32 var_r30; - temp_r27 = BoardDataDirReadAsync(0x90000); + temp_r27 = BoardDataDirReadAsync(DATADIR_BYOKODORI); temp_r29 = BoardSpaceFlagSearch(0, 0x08000000); BoardDataAsyncWait(temp_r27); temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r29, 0x02000000); @@ -775,22 +847,22 @@ void BoardBooHouseTutorialExec(void) { sp8.y = 150.0f; sp8.z = 0.0f; BoardCameraMotionStartEx(houseMdl[0], &sp14, &sp8, 1370.0f, -1.0f, 0x15); - + for (var_r31 = 0; var_r31 < 6; var_r31++) { if (var_r31 != 0) { houseMdl[var_r31] = BoardModelCreateParam(&houseMdlTbl[var_r31], NULL, NULL); } } - houseShowMot = BoardModelMotionCreate(houseMdl[0], 0x90009); - houseHideMot = BoardModelMotionCreate(houseMdl[1], 0x9000A); + houseShowMot = BoardModelMotionCreate(houseMdl[0], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x09)); + houseHideMot = BoardModelMotionCreate(houseMdl[1], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x0A)); OpenBooHouse(); - + while (BoardModelMotionEndCheck(BoardBooHouseHostGet()) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001); BoardTutorialHookExec(0x1C, 0); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001); BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f); BoardModelHookSet(houseMdl[0], "yoko02", ballMdl); BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0); @@ -810,7 +882,7 @@ void BoardBooHouseTutorialExec(void) { BoardModelHookReset(houseMdl[0]); BoardBooKill(); ballMdl = -1; - + for (var_r30 = 1; var_r30 < 6; var_r30++) { if (houseMdl[var_r30] != -1) { BoardModelKill(houseMdl[var_r30]); @@ -821,9 +893,9 @@ void BoardBooHouseTutorialExec(void) { BoardModelKill(booMdl); booMdl = -1; } - if (lbl_801D37F8 != -1) { - BoardModelKill(lbl_801D37F8); - lbl_801D37F8 = -1; + if (smokeMdl != -1) { + BoardModelKill(smokeMdl); + smokeMdl = -1; } BoardModelVisibilitySet(BoardBooHouseHostGet(), 0); } diff --git a/src/game/board/bowser.c b/src/game/board/bowser.c index adecec98..e228ccb9 100644 --- a/src/game/board/bowser.c +++ b/src/game/board/bowser.c @@ -406,9 +406,9 @@ static void ExecBowserGame(void) 437 }; s32 messLoss[3] = { - 0x30009, - 0x3000C, - 0x3000E + MAKE_MESSID(3, 9), + MAKE_MESSID(3, 12), + MAKE_MESSID(3, 14) }; s32 mg; s32 mess; @@ -459,9 +459,9 @@ static void ExecBowserGame(void) static void DoMGReturnEffect(void) { s32 messTbl[3] = { - 0x3000A, - 0x3000D, - 0x3000F + MAKE_MESSID(3, 10), + MAKE_MESSID(3, 13), + MAKE_MESSID(3, 15) }; s32 player; s32 coin; @@ -1512,10 +1512,10 @@ static void MiniBowserTake(void) delay = 6; } if(BoardPlayerCoinsGet(eventPlayer) != 0) { - mess = 0x30001; + mess = MAKE_MESSID(3, 1); coin_inc = -1; } else { - mess = 0x30003; + mess = MAKE_MESSID(3, 3); steal = 10; coin_inc = 1; } @@ -1584,10 +1584,10 @@ static void MiniBowserTakeAll(void) coin_total += BoardPlayerCoinsGet(j); } if(coin_total != 0) { - mess = 0x30004; + mess = MAKE_MESSID(3, 4); coin_inc = -1; } else { - mess = 0x30005; + mess = MAKE_MESSID(3, 5); steal = 10; coin_inc = 1; } @@ -1813,4 +1813,4 @@ static void WaitMiniBowserMotion(void) while(!BoardModelMotionEndCheck(models[0])) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/game/board/char_wheel.c b/src/game/board/char_wheel.c index e155fa5f..380fc7bc 100755 --- a/src/game/board/char_wheel.c +++ b/src/game/board/char_wheel.c @@ -53,16 +53,16 @@ static s16 wheelSprGrp = -1; static s32 wheelFXStat = -1; static s32 wheelSprTbl[] = { - 0x00070036, - 0x00070038, - 0x00070038, - 0x00070038, - 0x00070037, - 0x00070037, - 0x00070037, - 0x00070037, - 0x0007003A, - 0x00070039 + DATA_MAKE_NUM(DATADIR_BOARD, 0x36), + DATA_MAKE_NUM(DATADIR_BOARD, 0x38), + DATA_MAKE_NUM(DATADIR_BOARD, 0x38), + DATA_MAKE_NUM(DATADIR_BOARD, 0x38), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x39) }; static s8 wheelSprPrio[] = { @@ -74,14 +74,14 @@ static s8 wheelSprPrio[] = { }; static s32 wheelCharIconTbl[] = { - 0x0007003B, - 0x0007003C, - 0x0007003D, - 0x0007003E, - 0x0007003F, - 0x00070040, - 0x00070041, - 0x00070042 + DATA_MAKE_NUM(DATADIR_BOARD, 0x3B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x40), + DATA_MAKE_NUM(DATADIR_BOARD, 0x41), + DATA_MAKE_NUM(DATADIR_BOARD, 0x42) }; s32 BoardCharWheelInit(s32 arg0, s32 arg1) { diff --git a/src/game/board/fortune.c b/src/game/board/fortune.c index a5267bb6..86294638 100644 --- a/src/game/board/fortune.c +++ b/src/game/board/fortune.c @@ -21,12 +21,12 @@ typedef struct platform_work { } PlatformWork; static u32 comPrizeMessTbl[] = { - 0x1C0009, - 0x1C000A, - 0x1C000B, - 0x1C000D, - 0x1C000C, - 0x1C000E + MAKE_MESSID(0x1C, 0x09), + MAKE_MESSID(0x1C, 0x0A), + MAKE_MESSID(0x1C, 0x0B), + MAKE_MESSID(0x1C, 0x0D), + MAKE_MESSID(0x1C, 0x0C), + MAKE_MESSID(0x1C, 0x0E) }; static s8 currPlayer; @@ -280,20 +280,20 @@ static void ExecComFortuneWin(void) mess_player2 = BoardPlayerGetCharMess(comPlayer2); mess_prize = comPrizeMessTbl[comPrize]; if(comPrize == 0 || comPrize == 5 || comPrize == 3) { - mess_main = 0x1C0012; + mess_main = MAKE_MESSID(0x1C, 0x12); } else { if(comPrize == 2) { if(comCoin == 0) { - mess_main = 0x1C0013; + mess_main = MAKE_MESSID(0x1C, 0x13); } else { - mess_main = 0x1C0011; + mess_main = MAKE_MESSID(0x1C, 0x11); } } else { if(comPrize == 1 || comPrize == 4) { if(comStar == 0) { - mess_main = 0x1C0014; + mess_main = MAKE_MESSID(0x1C, 0x14); } else { - mess_main = 0x1C0011; + mess_main = MAKE_MESSID(0x1C, 0x11); } } } @@ -405,4 +405,4 @@ static void ComFortuneSwapStar(s32 player1, s32 player2) temp = GWStarsGet(player1); GWStarsSet(player1, GWStarsGet(player2)); GWStarsSet(player2, temp); -} \ No newline at end of file +} diff --git a/src/game/board/last5.c b/src/game/board/last5.c index 890a6eb5..8e6a809c 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -113,12 +113,12 @@ static s32 hostMotTbl[][8] = { }; static s32 messBaseTbl[] = { - 0xE0000, - 0xE0018, - 0xE0030, - 0xE0048, - 0xE0060, - 0xE0078, + MAKE_MESSID(14, 0), + MAKE_MESSID(14, 24), + MAKE_MESSID(14, 48), + MAKE_MESSID(14, 72), + MAKE_MESSID(14, 96), + MAKE_MESSID(14, 120), 0, 0, 0, @@ -566,7 +566,7 @@ static void Last5Main(void) HuPrcVSleep(); } BoardStatusItemSet(0); - temp_r24 = 0xE0090+GWBoardGet(); + temp_r24 = MAKE_MESSID(14, 144) + GWBoardGet(); BoardWinCreate(2, temp_r24, BoardWinPortraitGetStar()); BoardWinWait(); for(temp_r31=0; temp_r31<2; temp_r31++) { @@ -1578,7 +1578,7 @@ static s32 CheckHostMove(void) static void CreateStopWin(void) { - s32 mess = 0x120011; + s32 mess = MAKE_MESSID(0x12, 0x11); float size[2]; float pos_x, pos_y; HuWinMesMaxSizeGet(1, size, mess); @@ -1986,4 +1986,4 @@ static void UpdateTeamResult(omObjData *object) HuSprGrpPosSet(work->group[0], object->trans.x, object->trans.y); HuSprGrpPosSet(work->group[1], object->rot.x, object->rot.y); } -} \ No newline at end of file +} diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 82e6b55b..23e10108 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -53,10 +53,10 @@ static s16 mgPlay4P[8]; // data static s32 mgSetupSprTbl[13] = { - 0x0007004B, 0x0007004C, 0x0007004D, 0x0007004E, - 0x0007004F, 0x00070052, 0x00070050, 0x00070051, - 0x00070053, 0x00070054, 0x00070055, 0x00070068, - 0x00070056 + DATA_MAKE_NUM(DATADIR_BOARD, 0x4B), DATA_MAKE_NUM(DATADIR_BOARD, 0x4C), DATA_MAKE_NUM(DATADIR_BOARD, 0x4D), DATA_MAKE_NUM(DATADIR_BOARD, 0x4E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x4F), DATA_MAKE_NUM(DATADIR_BOARD, 0x52), DATA_MAKE_NUM(DATADIR_BOARD, 0x50), DATA_MAKE_NUM(DATADIR_BOARD, 0x51), + DATA_MAKE_NUM(DATADIR_BOARD, 0x53), DATA_MAKE_NUM(DATADIR_BOARD, 0x54), DATA_MAKE_NUM(DATADIR_BOARD, 0x55), DATA_MAKE_NUM(DATADIR_BOARD, 0x68), + DATA_MAKE_NUM(DATADIR_BOARD, 0x56) }; static Vec statusLayout4P[4] = { { 170.0f, 244.0f, 0.0f }, @@ -77,9 +77,9 @@ static Vec statusLayout2Vs2[4] = { { 406.0f, 348.0f, 0.0f }, }; static s32 luckyMessTbl[9] = { - 0x00140000, 0x00140005, 0x0014000A, 0x0014000F, - 0x00140014, 0x00140019, 0x00140000, 0x00140000, - 0x00140000 + MAKE_MESSID(0x14, 0x00), MAKE_MESSID(0x14, 0x05), MAKE_MESSID(0x14, 0x0A), MAKE_MESSID(0x14, 0x0F), + MAKE_MESSID(0x14, 0x14), MAKE_MESSID(0x14, 0x19), MAKE_MESSID(0x14, 0x00), MAKE_MESSID(0x14, 0x00), + MAKE_MESSID(0x14, 0x00) }; // sbss @@ -145,9 +145,9 @@ static inline s32 setupObjGet(void) { static void ExecMGSetup(void) { s32 sp60[9] = { - 0x750000, 0x760000, 0x770000, - 0x780000, 0x790000, 0x7A0000, - 0x7B0000, 0x7C0000, 0x7D0000 + DATADIR_W01, DATADIR_W02, DATADIR_W03, + DATADIR_W04, DATADIR_W05, DATADIR_W06, + DATADIR_W10, DATADIR_W20, DATADIR_W21 }; Vec sp54; u16 var_r24; @@ -255,8 +255,8 @@ static void ExecMGSetup(void) { while (setupObjGet() != 7) { HuPrcVSleep(); } - HuDataDirClose(0x70000); - HuDataDirClose(0x20000); + HuDataDirClose(DATADIR_BOARD); + HuDataDirClose(DATADIR_BGUEST); HuDataDirClose(sp60[GWBoardGet()]); HuPrcSleep(2); if (_CheckFlag(FLAG_ID_MAKE(0, 11)) != 0) { @@ -319,8 +319,8 @@ static void DetermineMGList(bitcopy* arg0) { } } mgListAll[var_r24] = -1; - temp_r26 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 4, 0x10000000U); - temp_r25 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 2, 0x10000000U); + temp_r26 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 4, MEMORY_DEFAULT_NUM); + temp_r25 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 2, MEMORY_DEFAULT_NUM); var_r31 = mgInfoTbl; for (var_r29 = var_r30 = 0; var_r30 < var_r27; var_r30++, var_r31++) { @@ -630,7 +630,7 @@ static void CreateMGSetup(void) { temp_r29->unk_02 = 0; temp_r29->unk_03 = 0; temp_r29->unk_04 = 0; - temp_r28->unk_0C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x154, 0x10000000U); + temp_r28->unk_0C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x154, MEMORY_DEFAULT_NUM); temp_r31 = temp_r28->unk_0C; temp_r31->unk_00[0] = HuSprGrpCreate(0xD); @@ -1066,7 +1066,7 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { if (activeMG[var_r23].unk_03 != 0) { sp14 = activeMG[var_r23].unk_04; } else { - sp14 = 0x90001; + sp14 = MAKE_MESSID(9, 1); } HuWinMesSet(temp_r3, sp14); activeMG[var_r23].unk_00 = temp_r3; diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c index 5bbe9a22..57aa85d6 100644 --- a/src/game/board/mushroom.c +++ b/src/game/board/mushroom.c @@ -161,9 +161,9 @@ static void MushroomMain(void) { WaitItemGive(); if (itemResult != 0) { - var_r27 = 0x50001; + var_r27 = MAKE_MESSID(5, 1); } else { - var_r27 = 0x50002; + var_r27 = MAKE_MESSID(5, 2); } BoardPlayerMotionShiftSet(curPlayer, 0xC, 0.0f, 4.0f, 0); @@ -341,7 +341,7 @@ static void CenterBox(ItemGiveWork2* arg0, omObjData* arg1) { static void InitBox(s32 arg0) { Vec sp10; - s32 sp8[2] = {0x0007006D, 0x0007006E}; + s32 sp8[2] = {DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), DATA_MAKE_NUM(DATADIR_BOARD, 0x6E)}; s32 var_r29; s32 var_r28; s32 var_r27; @@ -367,7 +367,7 @@ static void InitBox(s32 arg0) { boxObj[i]->rot.x = 0.0f; boxObj[i]->rot.y = 180.0f; boxObj[i]->rot.z = 0.0f; - temp_r31->unk_02 = BoardModelCreate(0x70005, NULL, 0); + temp_r31->unk_02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 5), NULL, 0); BoardModelPosSet(temp_r31->unk_02, boxObj[i]->trans.x, boxObj[i]->trans.y, boxObj[i]->trans.z); BoardModelMotionSpeedSet(temp_r31->unk_02, 0.0f); BoardModelLayerSet(temp_r31->unk_02, 2U); @@ -558,4 +558,4 @@ static void WaitItemGive(void) { while (temp_r31->unk00_field2 != 1) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/game/board/player.c b/src/game/board/player.c index 76863368..e1388143 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -1,53 +1,52 @@ #include "game/board/player.h" -#include "game/chrman.h" -#include "game/objsub.h" -#include "game/hsfman.h" +#include "ext_math.h" +#include "game/board/audio.h" +#include "game/board/basic_space.h" #include "game/board/com.h" +#include "game/board/item.h" #include "game/board/main.h" +#include "game/board/model.h" #include "game/board/roll.h" #include "game/board/space.h" #include "game/board/tutorial.h" #include "game/board/ui.h" #include "game/board/view.h" -#include "game/board/model.h" -#include "game/board/item.h" -#include "game/board/basic_space.h" -#include "game/board/audio.h" +#include "game/chrman.h" +#include "game/hsfman.h" +#include "game/objsub.h" #include "game/pad.h" -#include "stdlib.h" #include "math.h" -#include "ext_math.h" +#include "stdlib.h" static void InitJunction(s32, s32, f32); -static void UpdateJunctionGfx(omObjData*); +static void UpdateJunctionGfx(omObjData *); static void StopJunctionPlayer(s32); static void RestoreJunction(f32, s32); -static s32 GetDefaultDirection(f32, f32*, s32); -static s32 DoDebugMove(s32, s16*); -static s32 ExecJunction(s32, s16*); +static s32 GetDefaultDirection(f32, f32 *, s32); +static s32 DoDebugMove(s32, s16 *); +static s32 ExecJunction(s32, s16 *); -static void PlayerPosLerpFunc(omObjData*); -static void DiceJumpFunc(omObjData*); +static void PlayerPosLerpFunc(omObjData *); +static void DiceJumpFunc(omObjData *); -static void UpdateRollSprite(omObjData*); -static void UpdateRoll(omObjData*); -static void MoveAwayObjFunc(omObjData*); +static void UpdateRollSprite(omObjData *); +static void UpdateRoll(omObjData *); +static void MoveAwayObjFunc(omObjData *); -static void MoveAwayObjFunc(omObjData*); -static void UpdateBowserSuit(omObjData*); +static void MoveAwayObjFunc(omObjData *); +static void UpdateBowserSuit(omObjData *); static void MegaSquishFunc(omObjData *object); - static s32 DoSparkSpace(s32 player, s32 pause_cam); static void RemoveSparkSpace(s32 player); static void SetPlayerSizeAuto(s32 player); static s32 MegaPlayerPassFunc(s32 player, s32 space); static s32 MegaExecJump(s32 player, s32 space); -//TODO: Give better name +// TODO: Give better name typedef struct bitcopy { struct { u8 field00_bit0 : 1; @@ -71,30 +70,23 @@ static s16 playerMot[4]; static s8 itemPrev; static s8 moveAwayPlayer[4]; static s16 junctionArrowRot[4]; -static omObjData* moveAwayObj; -static omObjData* rollObj; -static omObjData* junctionObj; +static omObjData *moveAwayObj; +static omObjData *rollObj; +static omObjData *junctionObj; static s32 junctionMask; -static omObjData* bowserSuitObj; +static omObjData *bowserSuitObj; static s32 megaDoubleDiceF; static s16 suitMdl = -1; static s16 suitPlayerMdl = -1; static s16 suitCurrMot = -1; -static omObjData* diceJumpObj[4] = {0, 0, 0, 0}; -static omObjData* motDoneF[4] = {0, 0, 0, 0}; -static s16 bowserSuitMot[5] = {-1, -1, -1, -1, -1}; -static char* eyeMatTbl[8][2] = { - { "eye1", "eye2" }, - { "eye1", "eye2" }, - { "mat14", "mat16" }, - { "eye1", "eye2" }, - { "Clswario_eye_l1_AUTO14", "Clswario_eye_l1_AUTO15" }, - { "m_donkey_eye4", "m_donkey_eye5" }, - { "mat65", "mat66" }, - { "Clswaluigi_eye_l1_AUTO1", "Clswaluigi_eye_l1_AUTO2" } -}; +static omObjData *diceJumpObj[4] = { 0, 0, 0, 0 }; +static omObjData *motDoneF[4] = { 0, 0, 0, 0 }; +static s16 bowserSuitMot[5] = { -1, -1, -1, -1, -1 }; +static char *eyeMatTbl[8][2] + = { { "eye1", "eye2" }, { "eye1", "eye2" }, { "mat14", "mat16" }, { "eye1", "eye2" }, { "Clswario_eye_l1_AUTO14", "Clswario_eye_l1_AUTO15" }, + { "m_donkey_eye4", "m_donkey_eye5" }, { "mat65", "mat66" }, { "Clswaluigi_eye_l1_AUTO1", "Clswaluigi_eye_l1_AUTO2" } }; s32 lbl_8013997C[] = { 0x10D, @@ -108,81 +100,127 @@ s32 lbl_8013997C[] = { }; static s32 boardMotTbl[] = { - 0x5F0035, 0x1A0035, 0x6D0035, 0x8A0035, - 0x850035, 0x110035, 0x0D0035, 0x810035, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x35), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x35), }; static s32 boardMotRevTbl[] = { - 0x5F0036, 0x1A0036, 0x6D0036, 0x8A0036, - 0x850036, 0x110036, 0x0D0036, 0x810036, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x36), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x36), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x36), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x36), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x36), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x36), }; static s32 bowserSuitCharMdlTbl[] = { - 0x40000, 0x40003, 0x40006, 0x40009, - 0x4000C, 0x4000F, 0x40012, 0x40015, + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x00), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x03), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x06), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x09), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x0C), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x0F), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x12), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x15), }; -static s32 bowserSuitMotTbl[] = { - 0x40019, 0x4001A, 0x4001B, 0x4001E, - 0x4001F -}; +static s32 bowserSuitMotTbl[] = { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1A), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1B), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1E), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1F) }; static s32 sparkMotTbl[] = { - 0x70095, 0x70096, 0x70097, 0x70098, - 0x70099, 0x7009A, 0x7009B, 0x7009C, + DATA_MAKE_NUM(DATADIR_BOARD, 0x95), + DATA_MAKE_NUM(DATADIR_BOARD, 0x96), + DATA_MAKE_NUM(DATADIR_BOARD, 0x97), + DATA_MAKE_NUM(DATADIR_BOARD, 0x98), + DATA_MAKE_NUM(DATADIR_BOARD, 0x99), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9C), }; static s32 boardSparkSfxTbl[] = { - 0x128, 0x168, 0x1A8, 0x1E8, - 0x228, 0x268, 0x2A8, 0x2E8, + 0x128, + 0x168, + 0x1A8, + 0x1E8, + 0x228, + 0x268, + 0x2A8, + 0x2E8, }; static s32 boardSparkSfxTblAlt[] = { - 0x123, 0x163, 0x1A3, 0x1E3, - 0x223, 0x263, 0x2A3, 0x2E3, + 0x123, + 0x163, + 0x1A3, + 0x1E3, + 0x223, + 0x263, + 0x2A3, + 0x2E3, }; static omObjData *megaSquishObj[4] = {}; static s32 megaSquishSfxTbl[] = { - 0x128, 0x168, 0x1A8, 0x1E8, - 0x228, 0x268, 0x2A8, 0x2E8, + 0x128, + 0x168, + 0x1A8, + 0x1E8, + 0x228, + 0x268, + 0x2A8, + 0x2E8, }; -s32 BoardItemPrevGet(void) { +s32 BoardItemPrevGet(void) +{ return itemPrev; } -void BoardItemPrevSet(s32 type) { +void BoardItemPrevSet(s32 type) +{ itemPrev = type; } -s32 BoardPlayerGetCharMess(s32 player) { - s32 charMess[8] = {0, 1, 2, 3, 4, 5, 6, 7}; - +s32 BoardPlayerGetCharMess(s32 player) +{ + s32 charMess[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + return charMess[GWPlayer[player].character]; } -char* BoardPlayerGetCharName(s32 player) { - char* charNames[8] = {"Mario", "Luigi", "Peach", "Yoshi", "Wario", "Donky", "Daisy", "Waluigi"}; +char *BoardPlayerGetCharName(s32 player) +{ + char *charNames[8] = { "Mario", "Luigi", "Peach", "Yoshi", "Wario", "Donky", "Daisy", "Waluigi" }; return charNames[GWPlayer[player].character]; } -s32 BoardPlayerIsAllCom(void) { +s32 BoardPlayerIsAllCom(void) +{ if ((GWPlayer[0].com != 0) && (GWPlayer[1].com != 0) && (GWPlayer[2].com != 0) && (GWPlayer[3].com != 0)) { return 1; } return 0; } -void BoardPlayerInit(void) { +void BoardPlayerInit(void) +{ s32 temp_r30; s32 var_r31; if (BoardStartCheck() == 0) { GWSystem.player_curr = 0; temp_r30 = BoardSpaceFlagPosGet(0, 0x80000000, 0); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { GWPlayer[var_r31].space_curr = temp_r30; BoardPlayerCornerPosSet(var_r31); @@ -194,7 +232,7 @@ void BoardPlayerInit(void) { } return; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { BoardPlayerCornerPosSet(var_r31); if (BoardPlayerAutoSizeGet(var_r31) != 0) { @@ -204,7 +242,8 @@ void BoardPlayerInit(void) { } } -void BoardPlayerModelInit(void) { +void BoardPlayerModelInit(void) +{ s32 sp64[14]; s32 var_r31; s32 var_r30; @@ -213,12 +252,16 @@ void BoardPlayerModelInit(void) { s32 temp_r24; s16 temp_r3; s32 temp_r4; - PlayerState* temp_r27; + PlayerState *temp_r27; - s32 ro0[8] = { 0x5E0000, 0x190000, 0x6C0000, 0x890000, 0x840000, 0x100000, 0xC0000, 0x800000 }; - s32 ro1[8] = { 0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, 0x850000, 0x110000, 0xD0000, 0x810000 }; + s32 ro0[8] = { DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0x00), DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0x00), DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0), DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0x00) }; + s32 ro1[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00) }; u16 ro2[13] = { 0, 2, 3, 5, 6, 22, 23, 24, 27, 31, 47, 72, 73 }; - + memset(&boardPlayerMdl, 0, 8); suitMdl = -1; suitPlayerMdl = -1; @@ -239,7 +282,7 @@ void BoardPlayerModelInit(void) { temp_r27->player_idx = var_r31; GWPlayer[var_r31].character = temp_r29; GWPlayerCfg[var_r31].character = temp_r29; - + for (var_r30 = 0; var_r30 < 0xD; var_r30++) { sp64[var_r30] = ro1[temp_r29] | ro2[var_r30]; } @@ -250,7 +293,7 @@ void BoardPlayerModelInit(void) { playerMot[var_r31] = 1; BoardModelMotionStart(temp_r3, playerMot[var_r31], 0x40000001); if (BoardStartCheck() == 0) { - + for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r27->items[var_r30] = -1; } @@ -275,10 +318,11 @@ void BoardPlayerModelInit(void) { CharModelLayerSetAll(2); } -void BoardPlayerModelKill(void) { +void BoardPlayerModelKill(void) +{ s32 var_r31; - PlayerState* temp_r30; - PlayerState* temp_r29; + PlayerState *temp_r30; + PlayerState *temp_r29; for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = BoardPlayerGet(var_r31); @@ -294,28 +338,34 @@ void BoardPlayerModelKill(void) { } } -void BoardPlayerLayerSet(s32 arg0, s32 arg1) { +void BoardPlayerLayerSet(s32 arg0, s32 arg1) +{ BoardModelLayerSet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerCameraSet(s32 arg0, u16 arg1) { +void BoardPlayerCameraSet(s32 arg0, u16 arg1) +{ BoardModelCameraSet(BoardPlayerModelGet(arg0), arg1); } -void fn_80062A40(s32 arg0, f32 arg8) { +void fn_80062A40(s32 arg0, f32 arg8) +{ fn_8006DDE8(BoardPlayerModelGet(arg0), arg8); } -void BoardPlayerExistCheck(s32 arg0, s32 arg1) { +void BoardPlayerExistCheck(s32 arg0, s32 arg1) +{ if (arg1 == 0) { BoardModelExistCheck(BoardPlayerModelGet(arg0), 0); - } else { + } + else { BoardModelExistCheck(BoardPlayerModelGet(arg0), 1); } } -s32 BoardPlayerItemAdd(s32 arg0, s32 arg1) { - PlayerState* var_r30; +s32 BoardPlayerItemAdd(s32 arg0, s32 arg1) +{ + PlayerState *var_r30; s32 var_r29; s32 var_r31; @@ -333,9 +383,10 @@ s32 BoardPlayerItemAdd(s32 arg0, s32 arg1) { return var_r29; } -s32 BoardPlayerItemRemove(s32 arg0, s32 arg1) { +s32 BoardPlayerItemRemove(s32 arg0, s32 arg1) +{ s32 temp_r29; - PlayerState* temp_r28; + PlayerState *temp_r28; temp_r28 = BoardPlayerGet(arg0); temp_r29 = temp_r28->items[arg1]; @@ -354,7 +405,8 @@ s32 BoardPlayerItemRemove(s32 arg0, s32 arg1) { return temp_r29; } -s32 BoardPlayerItemFind(s32 arg0, s32 arg1) { +s32 BoardPlayerItemFind(s32 arg0, s32 arg1) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -362,11 +414,12 @@ s32 BoardPlayerItemFind(s32 arg0, s32 arg1) { return var_r31; } } - + return -1; } -s32 BoardPlayerItemCount(s32 arg0) { +s32 BoardPlayerItemCount(s32 arg0) +{ s32 var_r30; s32 var_r31; @@ -375,18 +428,20 @@ s32 BoardPlayerItemCount(s32 arg0) { var_r30++; } } - + return var_r30; } -void BoardPlayerCornerPosSet(s32 arg0) { +void BoardPlayerCornerPosSet(s32 arg0) +{ Vec sp8; BoardPlayerCornerPosGet(arg0, &sp8); BoardPlayerPosSetV(arg0, &sp8); } -void BoardPlayerCornerPosGet(s32 arg0, Vec* arg1) { +void BoardPlayerCornerPosGet(s32 arg0, Vec *arg1) +{ s32 var_r31; s32 var_r30; s32 var_r29; @@ -399,7 +454,8 @@ void BoardPlayerCornerPosGet(s32 arg0, Vec* arg1) { var_r31 = 0; } for (var_r30 = 0, var_r29 = var_r30; var_r30 < 4; var_r31 = (var_r31 + 1) & 3, var_r30++) { - if (var_r31 == arg0) break; + if (var_r31 == arg0) + break; if (temp_r28 == GWPlayer[var_r31].space_curr) { var_r29 += 1; } @@ -408,15 +464,18 @@ void BoardPlayerCornerPosGet(s32 arg0, Vec* arg1) { } } -void BoardPlayerAmbSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerAmbSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelAmbSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); } -void BoardPlayerMtxSet(s32 arg0, Mtx *arg1) { +void BoardPlayerMtxSet(s32 arg0, Mtx *arg1) +{ BoardModelMtxSet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerPosSetV(s32 arg0, Vec* arg1) { +void BoardPlayerPosSetV(s32 arg0, Vec *arg1) +{ BoardModelPosSetV(BoardPlayerModelGet(arg0), arg1); if (GWPlayer[arg0].bowser_suit != 0) { @@ -424,19 +483,22 @@ void BoardPlayerPosSetV(s32 arg0, Vec* arg1) { } } -void BoardPlayerPosSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerPosSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelPosSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); - + if (GWPlayer[arg0].bowser_suit != 0) { BoardModelPosSet(suitMdl, arg8, arg9, argA); } } -void BoardPlayerPosGet(s32 arg0, Vec* arg1) { +void BoardPlayerPosGet(s32 arg0, Vec *arg1) +{ BoardModelPosGet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerRotSetV(s32 arg0, Vec* arg1) { +void BoardPlayerRotSetV(s32 arg0, Vec *arg1) +{ BoardModelRotSetV(BoardPlayerModelGet(arg0), arg1); if (GWPlayer[arg0].bowser_suit != 0) { @@ -444,19 +506,22 @@ void BoardPlayerRotSetV(s32 arg0, Vec* arg1) { } } -void BoardPlayerRotSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerRotSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelRotSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); - + if (GWPlayer[arg0].bowser_suit != 0) { BoardModelRotSet(suitMdl, arg8, arg9, argA); } } -void BoardPlayerRotGet(s32 arg0, Vec* arg1) { +void BoardPlayerRotGet(s32 arg0, Vec *arg1) +{ BoardModelRotGet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerRotYSet(s32 arg0, f32 arg8) { +void BoardPlayerRotYSet(s32 arg0, f32 arg8) +{ if (arg8 < 0.0f) { arg8 += 360.0f; } @@ -469,64 +534,75 @@ void BoardPlayerRotYSet(s32 arg0, f32 arg8) { } } -f32 BoardPlayerRotYGet(s32 arg0) { +f32 BoardPlayerRotYGet(s32 arg0) +{ f32 var_f31; if (GWPlayer[arg0].bowser_suit != 0) { var_f31 = BoardModelRotYGet(suitMdl); - } else { + } + else { var_f31 = BoardModelRotYGet(BoardPlayerModelGet(arg0)); } return var_f31; } -void BoardPlayerScaleSetV(s32 arg0, Vec* arg1) { +void BoardPlayerScaleSetV(s32 arg0, Vec *arg1) +{ BoardModelScaleSetV(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerScaleSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerScaleSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelScaleSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); } -void BoardPlayerScaleGet(s32 arg0, Vec *arg1) { +void BoardPlayerScaleGet(s32 arg0, Vec *arg1) +{ BoardModelScaleGet(BoardPlayerModelGet(arg0), arg1); } -s16 BoardPlayerCurrMotionGet(s32 arg0) { - PlayerState* player = BoardPlayerGet(arg0); - +s16 BoardPlayerCurrMotionGet(s32 arg0) +{ + PlayerState *player = BoardPlayerGet(arg0); + return playerMot[player->player_idx]; } -void BoardPlayerVoiceEnableSet(s32 arg0, s32 arg1, s32 arg2) { +void BoardPlayerVoiceEnableSet(s32 arg0, s32 arg1, s32 arg2) +{ BoardModelVoiceEnableSet(BoardPlayerModelGet(arg0), arg1, arg2); } -s32 BoardPlayerMotionCreate(s32 arg0, s32 arg1) { +s32 BoardPlayerMotionCreate(s32 arg0, s32 arg1) +{ return BoardModelMotionCreate(BoardPlayerModelGet(arg0), arg1); } -s32 BoardPlayerMotionKill(s32 arg0, s32 arg1) { +s32 BoardPlayerMotionKill(s32 arg0, s32 arg1) +{ return BoardModelMotionKill(BoardPlayerModelGet(arg0), arg1); } -s32 BoardPlayerMotionEndCheck(s32 arg0) { +s32 BoardPlayerMotionEndCheck(s32 arg0) +{ return BoardModelMotionEndCheck(BoardPlayerModelGet(arg0)); } -void BoardPlayerMotionEndWait(s32 arg0) { +void BoardPlayerMotionEndWait(s32 arg0) +{ while (BoardModelMotionEndCheck(BoardPlayerModelGet(arg0)) == 0) { HuPrcVSleep(); } } -void BoardPlayerMotionStart(s32 arg0, s32 arg1, s32 arg2) { - PlayerState* player; +void BoardPlayerMotionStart(s32 arg0, s32 arg1, s32 arg2) +{ + PlayerState *player; s32 temp_r29; - + player = BoardPlayerGet(arg0); - if (arg1 == 0) { - } + if (arg1 == 0) { } if (arg1 != playerMot[player->player_idx]) { temp_r29 = BoardModelMotionStart(BoardPlayerModelGet(arg0), arg1, arg2); if (temp_r29 == 0) { @@ -535,14 +611,13 @@ void BoardPlayerMotionStart(s32 arg0, s32 arg1, s32 arg2) { } } -void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, u32 arg2) { - s32 temp_r29; - PlayerState* player; - - +void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, u32 arg2) +{ + s32 temp_r29; + PlayerState *player; + player = BoardPlayerGet(arg0); - if (arg1 == 0) { - } + if (arg1 == 0) { } if (arg1 != playerMot[player->player_idx]) { temp_r29 = BoardModelMotionShiftSet(BoardPlayerModelGet(arg0), arg1, arg8, arg9, arg2); if (temp_r29 == 0) { @@ -551,44 +626,54 @@ void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, u32 arg2) } } -void BoardPlayerMotionSpeedSet(s32 arg0, f32 arg8) { +void BoardPlayerMotionSpeedSet(s32 arg0, f32 arg8) +{ BoardModelMotionSpeedSet(BoardPlayerModelGet(arg0), arg8); } -void BoardPlayerMotionTimeSet(s32 arg0, f32 arg8) { +void BoardPlayerMotionTimeSet(s32 arg0, f32 arg8) +{ BoardModelMotionTimeSet(BoardPlayerModelGet(arg0), arg8); } -f32 BoardPlayerMotionTimeGet(s32 arg0) { +f32 BoardPlayerMotionTimeGet(s32 arg0) +{ return BoardModelMotionTimeGet(BoardPlayerModelGet(arg0)); } -f32 BoardPlayerMotionMaxTimeGet(s32 arg0) { +f32 BoardPlayerMotionMaxTimeGet(s32 arg0) +{ return BoardModelMotionMaxTimeGet(BoardPlayerModelGet(arg0)); } -void BoardPlayerMotionStartEndSet(s32 arg0, f32 arg8, f32 arg9) { +void BoardPlayerMotionStartEndSet(s32 arg0, f32 arg8, f32 arg9) +{ BoardModelMotionStartEndSet(BoardPlayerModelGet(arg0), arg8, arg9); } -void BoardPlayerModelAttrSet(s32 arg0, s32 arg1) { +void BoardPlayerModelAttrSet(s32 arg0, s32 arg1) +{ BoardModelAttrSet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerModelAttrReset(s32 arg0, s32 arg1) { +void BoardPlayerModelAttrReset(s32 arg0, s32 arg1) +{ BoardModelAttrReset(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerCoinsSet(s32 arg0, s32 arg1) { +void BoardPlayerCoinsSet(s32 arg0, s32 arg1) +{ GWCoinsSet(arg0, arg1); } -s32 BoardPlayerCoinsGet(s32 arg0) { +s32 BoardPlayerCoinsGet(s32 arg0) +{ return GWCoinsGet(arg0); } -void BoardPlayerCoinsAdd(s32 arg0, s32 arg1) { - PlayerState* player; +void BoardPlayerCoinsAdd(s32 arg0, s32 arg1) +{ + PlayerState *player; s16 coins; player = BoardPlayerGet(arg0); @@ -601,65 +686,77 @@ void BoardPlayerCoinsAdd(s32 arg0, s32 arg1) { BoardPlayerCoinsSet(arg0, arg1 + BoardPlayerCoinsGet(arg0)); } -void BoardPlayerStarsAdd(s32 arg0, s32 arg1) { +void BoardPlayerStarsAdd(s32 arg0, s32 arg1) +{ GWStarsSet(arg0, (arg1 + GWStarsGet(arg0))); } -void BoardPlayerSizeSet(s32 arg0, s32 arg1) { - PlayerState* temp_r27; +void BoardPlayerSizeSet(s32 arg0, s32 arg1) +{ + PlayerState *temp_r27; Vec temp_r4[3] = { { 1, 1, 1 }, { 0.3, 0.3, 0.3 }, { 2.5, 2.5, 2.5 } }; temp_r27 = BoardPlayerGet(arg0); temp_r27->size = arg1; if (arg1 == 2) { CharModelStepTypeSet(GWPlayer[arg0].character, 4); - } else if (arg1 == 1) { + } + else if (arg1 == 1) { CharModelStepTypeSet(GWPlayer[arg0].character, 5); - } else { + } + else { CharModelStepTypeSet(GWPlayer[arg0].character, 0); } BoardPlayerScaleSetV(arg0, &temp_r4[arg1]); } -s32 BoardPlayerSizeGet(s32 idx) { - PlayerState* player; +s32 BoardPlayerSizeGet(s32 idx) +{ + PlayerState *player; player = BoardPlayerGet(idx); - if(!player) { + if (!player) { return; } return player->size; } -s32 BoardPlayerSameTeamFind(s32 arg0) { +s32 BoardPlayerSameTeamFind(s32 arg0) +{ s32 var_r31; s32 team2; s32 team; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (var_r31 == arg0) continue; + if (var_r31 == arg0) + continue; team2 = GWPlayer[var_r31].team; team = GWPlayer[arg0].team; - if (team == team2) break; + if (team == team2) + break; } return var_r31; } -s32 BoardPlayerTeamFind(s32 arg0) { +s32 BoardPlayerTeamFind(s32 arg0) +{ s32 var_r31; s32 team2; s32 team; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (var_r31 == arg0) continue; + if (var_r31 == arg0) + continue; team2 = GWPlayer[var_r31].team; team = GWPlayer[arg0].team; - if (team != team2) break; + if (team != team2) + break; } return var_r31; } -s32 BoardPlayerRankCalc(s32 player) { +s32 BoardPlayerRankCalc(s32 player) +{ s32 coins; s32 rank; s32 i; @@ -677,15 +774,18 @@ s32 BoardPlayerRankCalc(s32 player) { return rank; } -void BoardPlayerPreTurnHookSet(s32 arg0, s32 (*arg1)()) { +void BoardPlayerPreTurnHookSet(s32 arg0, s32 (*arg1)()) +{ preTurnHook[arg0] = arg1; } -void BoardPlayerPostTurnHookSet(s32 arg0, s32 (*arg1)()) { +void BoardPlayerPostTurnHookSet(s32 arg0, s32 (*arg1)()) +{ postTurnHook[arg0] = arg1; } -void BoardPlayerTurnExec(s32 arg0) { +void BoardPlayerTurnExec(s32 arg0) +{ BoardPauseDisableSet(1); BoardComUseItemSet(arg0, -1); GWSystem.bowser_event = 0xF; @@ -694,8 +794,8 @@ void BoardPlayerTurnExec(s32 arg0) { BoardCameraMoveSet(1); if (_CheckFlag(FLAG_ID_MAKE(1, 6)) == 0) { BoardCameraViewSet(2); - omVibrate((s16) arg0, 0xC, 4, 2); - BoardItemPrevSet(-1); + omVibrate((s16)arg0, 0xC, 4, 2); + BoardItemPrevSet(-1); BoardYourTurnExec(arg0); megaDoubleDiceF = 0; SetPlayerSizeAuto(arg0); @@ -708,14 +808,16 @@ void BoardPlayerTurnExec(s32 arg0) { BoardTutorialHookExec(5, 0); } BoardPlayerTurnRollExec(arg0); - } else { + } + else { BoardCameraViewSet(1); BoardCameraMotionWait(); } BoardPlayerTurnMoveExec(arg0); } -void BoardPlayerTurnRollExec(s32 arg0) { +void BoardPlayerTurnRollExec(s32 arg0) +{ s32 temp_r28; s32 temp_r30; @@ -725,34 +827,35 @@ void BoardPlayerTurnRollExec(s32 arg0) { do { temp_r30 = BoardRollExec(arg0); switch (temp_r30) { - case -2: - BoardPauseDisableSet(1); - BoardRollKill(); - BoardCameraTargetPlayerSet(arg0); - BoardCameraMotionWait(); - BoardItemPrevSet(BoardItemUseExec(arg0)); - if (BoardItemPrevGet() == 0xC) { - _SetFlag(0x10016); - BoardSpaceLandExec(arg0, GWPlayer[arg0].space_curr); - BoardCameraMoveSet(1); - BoardCameraViewSet(2); - _ClearFlag(0x10016); - } - BoardPauseDisableSet(0); - break; - case -3: - BoardRollKill(); - BoardViewMapExec(arg0); - break; - case -4: - BoardRollKill(); - BoardViewOverheadExec(arg0); - break; + case -2: + BoardPauseDisableSet(1); + BoardRollKill(); + BoardCameraTargetPlayerSet(arg0); + BoardCameraMotionWait(); + BoardItemPrevSet(BoardItemUseExec(arg0)); + if (BoardItemPrevGet() == 0xC) { + _SetFlag(0x10016); + BoardSpaceLandExec(arg0, GWPlayer[arg0].space_curr); + BoardCameraMoveSet(1); + BoardCameraViewSet(2); + _ClearFlag(0x10016); + } + BoardPauseDisableSet(0); + break; + case -3: + BoardRollKill(); + BoardViewMapExec(arg0); + break; + case -4: + BoardRollKill(); + BoardViewOverheadExec(arg0); + break; } } while (temp_r30 <= 0); } -void BoardPlayerTurnMoveExec(s32 arg0) { +void BoardPlayerTurnMoveExec(s32 arg0) +{ s16 sp8; u32 temp_r27; s32 temp_r30; @@ -774,7 +877,8 @@ void BoardPlayerTurnMoveExec(s32 arg0) { BoardCameraTargetModelSet(suitMdl); BoardCameraOffsetSet(0.0f, 100.0f, 0.0f); } - } else { + } + else { var_r29 = 0; var_r28 = 1; _ClearFlag(FLAG_ID_MAKE(1, 6)); @@ -789,10 +893,11 @@ void BoardPlayerTurnMoveExec(s32 arg0) { if (ExecJunction(arg0, &sp8) != 0) { break; } - } else if (DoDebugMove(arg0, &sp8) != 0) { + } + else if (DoDebugMove(arg0, &sp8) != 0) { break; } - + GWPlayer[arg0].space_next = sp8; StopJunctionPlayer(0); if (MegaPlayerPassFunc(arg0, sp8) == 0) { @@ -813,7 +918,7 @@ void BoardPlayerTurnMoveExec(s32 arg0) { if (BoardSpaceWalkExec(arg0, sp8) != 0) { continue; } -block_14: + block_14: temp_r30 = BoardSpaceTypeGet(0, sp8); temp_r27 = BoardSpaceFlagGet(0, sp8); if ((temp_r30 == 0 || temp_r30 == 8 || temp_r30 == 10) && ((temp_r27 & 0x20000000) == 0) || var_r28 != 0) { @@ -821,8 +926,9 @@ block_14: continue; } HuAudFXPlay(0x301); - - if (--GWPlayer[arg0].roll == 0) break; + + if (--GWPlayer[arg0].roll == 0) + break; } while (1); BoardPauseDisableSet(1); BoardRollUpdateSet(arg0); @@ -838,7 +944,7 @@ block_14: while (BoardItemDoneCheck() == 0) { HuPrcVSleep(); } - BoardItemPrevSet(-1); + BoardItemPrevSet(-1); } BoardPlayerSizeRestore(arg0); megaDoubleDiceF = 0; @@ -851,14 +957,16 @@ block_14: if (GWSystem.bowser_event != 1) { BoardCameraViewSet(2); BoardCameraMotionWait(); - } else { + } + else { GWSystem.bowser_event = 0xF; } BoardPlayerZoomRestore(arg0); return; } -void BoardPlayerPostTurnHookExec(s32 arg0) { +void BoardPlayerPostTurnHookExec(s32 arg0) +{ if (postTurnHook[arg0] != 0U) { if (postTurnHook[arg0]() != 0) { postTurnHook[arg0] = 0; @@ -866,11 +974,13 @@ void BoardPlayerPostTurnHookExec(s32 arg0) { } } -void BoardPlayerSizeRestore(s32 arg0) { +void BoardPlayerSizeRestore(s32 arg0) +{ if (BoardPlayerSizeGet(arg0) != 0) { if (BoardPlayerSizeGet(arg0) == 1) { HuAudFXPlay(0x313); - } else { + } + else { HuAudFXPlay(0x311); } BoardPlayerResizeAnimExec(arg0, 0); @@ -882,8 +992,9 @@ void BoardPlayerSizeRestore(s32 arg0) { } } -void BoardPlayerZoomRestore(s32 arg0) { - PlayerState* sp8; +void BoardPlayerZoomRestore(s32 arg0) +{ + PlayerState *sp8; s32 var_r31; s32 var_r29; s32 var_r28; @@ -892,14 +1003,15 @@ void BoardPlayerZoomRestore(s32 arg0) { Vec spC; sp8 = BoardPlayerGet(arg0); - BoardPlayerPosGet(arg0, &spC); + BoardPlayerPosGet(arg0, &spC); temp_r27 = GWPlayer[arg0].space_curr; var_r31 = GWSystem.player_curr; if (var_r31 == -1) { var_r31 = 0; } for (var_r29 = var_r28 = 0; var_r28 < 4; var_r28++) { - if (var_r31 == arg0) break; + if (var_r31 == arg0) + break; if (temp_r27 == GWPlayer[var_r31].space_curr) { var_r29++; } @@ -907,59 +1019,63 @@ void BoardPlayerZoomRestore(s32 arg0) { } BoardSpaceCornerPosGet(temp_r27, var_r29, &sp18); BoardPlayerMotBlendSet(arg0, 0, 0xF); - + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } BoardPlayerIdleSet(arg0); } -void BoardJunctionMaskSet(s32 arg0) { +void BoardJunctionMaskSet(s32 arg0) +{ junctionMask |= arg0; } -void BoardJunctionMaskReset(s32 arg0) { +void BoardJunctionMaskReset(s32 arg0) +{ junctionMask &= ~arg0; } -void BoardJunctionMaskZero(void) { +void BoardJunctionMaskZero(void) +{ junctionMask = 0; } -static inline u32 BoardJunctionMaskGet(void) { +static inline u32 BoardJunctionMaskGet(void) +{ return junctionMask; } -static inline GetLinkCount(s32 playerIdx, s32 boardIdx) { +static inline GetLinkCount(s32 playerIdx, s32 boardIdx) +{ s32 i; s32 linkCount; - BoardSpace* boardSpaceLink; - BoardSpace* boardSpaceFlag; - PlayerState* player; + BoardSpace *boardSpaceLink; + BoardSpace *boardSpaceFlag; + PlayerState *player; s32 color; s32 temp; linkCount = 0; boardSpaceLink = BoardSpaceGet(0, boardIdx); - + if (boardSpaceLink->link_cnt <= 1) { return 0; } linkCount = boardSpaceLink->link_cnt; for (i = 0; i < boardSpaceLink->link_cnt; i++) { boardSpaceFlag = BoardSpaceGet(0, boardSpaceLink->link[i]); - if (((boardSpaceFlag->flag & 0x20000000) != 0 && (BoardPlayerSizeGet(playerIdx) != 1)) - || ((boardSpaceFlag->flag & 0x02000000) != 0) - || ((boardSpaceFlag->flag & 0x04000000) != 0) - || ((boardSpaceFlag->flag & BoardJunctionMaskGet()) != 0)) { - + if (((boardSpaceFlag->flag & 0x20000000) != 0 && (BoardPlayerSizeGet(playerIdx) != 1)) || ((boardSpaceFlag->flag & 0x02000000) != 0) + || ((boardSpaceFlag->flag & 0x04000000) != 0) || ((boardSpaceFlag->flag & BoardJunctionMaskGet()) != 0)) { + linkCount--; } } return linkCount; } -static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { +static void InitJunction(s32 arg0, s32 arg1, f32 arg8) +{ Vec sp68; Vec sp5C; Vec sp50; @@ -968,14 +1084,14 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { s32 sp38; s16 sp20; s16 spE; - BoardSpace* temp_r26; - BoardSpace* temp_r25; + BoardSpace *temp_r26; + BoardSpace *temp_r25; f32 var_f27; f32 var_f28; f32 var_f29; - omObjData* var_r28; + omObjData *var_r28; s32 var_r20; - bitcopy* temp_r29; + bitcopy *temp_r29; s32 var_r27; s32 var_r22; f32 angle; @@ -984,7 +1100,7 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { for (var_r20 = 0; var_r20 < 4; var_r20++) { junctionArrowRot[var_r20] = -1; } - + sp38 = GetLinkCount(arg0, arg1); if (sp38 > 1) { var_r28 = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, UpdateJunctionGfx); @@ -997,29 +1113,30 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { temp_r29->field00_bit5 = 0; temp_r29->unk_01 = 0; var_r28->scale.x = var_r28->scale.y = var_r28->scale.z = 3.0f; - HuWinMesMaxSizeGet(1, sp3C, 0x90003); + HuWinMesMaxSizeGet(1, sp3C, MAKE_MESSID(0x9, 0x03)); var_f27 = -10000.0f; var_f28 = 304.0f; temp_r29->unk_04 = HuWinCreate(var_f27, var_f28, sp3C[0], sp3C[1], 0); HuWinBGTPLvlSet(temp_r29->unk_04, 0.0f); HuWinMesSpeedSet(temp_r29->unk_04, 0); - HuWinMesSet(temp_r29->unk_04, 0x90003); + HuWinMesSet(temp_r29->unk_04, MAKE_MESSID(9, 3)); if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { HuWinDispOff(temp_r29->unk_04); } temp_r26 = BoardSpaceGet(0, arg1); BoardSpacePosGet(0, arg1, &sp68); spE = BoardPlayerSizeGet(arg0); - + for (var_r27 = 0, var_r22 = var_r27; var_r22 < temp_r26->link_cnt; var_r22++) { if (temp_r26->link[var_r22] != 0) { temp_r25 = BoardSpaceGet(0, temp_r26->link[var_r22]); - if (((((temp_r25->flag & 0x20000000) == 0) != 0) || (spE == 1)) && ((temp_r25->flag & 0x02000000) == 0) && ((temp_r25->flag & 0x04000000) == 0)) { + if (((((temp_r25->flag & 0x20000000) == 0) != 0) || (spE == 1)) && ((temp_r25->flag & 0x02000000) == 0) + && ((temp_r25->flag & 0x04000000) == 0)) { if ((temp_r25->flag & BoardJunctionMaskGet()) == 0) { BoardSpacePosGet(0, temp_r26->link[var_r22], &sp50); PSVECSubtract(&sp50, &sp68, &sp44); PSVECNormalize(&sp44, &sp44); - + angle = (180.0 * (atan2(sp44.x, sp44.z) / M_PI)); if (angle < 0.0f) { angle += 360.0f; @@ -1027,17 +1144,19 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { if (angle > 360.0f) { angle -= 360.0f; } - + OSf32tos16(&angle, &sp20); - sp20 = ((sp20 + 0x16) / 45) * 0x2D;; + sp20 = ((sp20 + 0x16) / 45) * 0x2D; + ; junctionArrowRot[var_r27] = sp20; var_f29 = 0.0f; if (sp20 == 0) { var_f29 = 100.0f; - } else if ((sp20 == 0xB4) && ((spE == 2) || (GWPlayer[arg0].bowser_suit != 0))) { + } + else if ((sp20 == 0xB4) && ((spE == 2) || (GWPlayer[arg0].bowser_suit != 0))) { var_f29 = -100.0f; } - temp_r29->unk_06[var_r27] = BoardModelCreate(0x70000, NULL, 1); + temp_r29->unk_06[var_r27] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0), NULL, 1); BoardModelRotSet(temp_r29->unk_06[var_r27], 0.0f, angle, 0.0f); BoardModelLayerSet(temp_r29->unk_06[var_r27], 6); sp5C.x = sp68.x + (100.0 * sin((M_PI * angle) / 180.0)); @@ -1059,9 +1178,10 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { return; } -static void UpdateJunctionGfx(omObjData* arg0) { +static void UpdateJunctionGfx(omObjData *arg0) +{ s32 var_r28; - bitcopy* temp_r30; + bitcopy *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, bitcopy); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -1075,7 +1195,8 @@ static void UpdateJunctionGfx(omObjData* arg0) { } if (temp_r30->unk_01 != 0) { temp_r30->unk_01--; - } else if (temp_r30->field00_bit7 != 0) { + } + else if (temp_r30->field00_bit7 != 0) { temp_r30->field00_bit0 = 1; } temp_r30->unk_02 += 8; @@ -1089,8 +1210,9 @@ static void UpdateJunctionGfx(omObjData* arg0) { BoardModelScaleSet(temp_r30->unk_06[temp_r30->field00_bit5], arg0->scale.x, arg0->scale.y, arg0->scale.z); } -static void StopJunctionPlayer(s32 arg0) { - bitcopy* temp_r31; +static void StopJunctionPlayer(s32 arg0) +{ + bitcopy *temp_r31; if (junctionObj != 0) { temp_r31 = OM_GET_WORK_PTR(junctionObj, bitcopy); @@ -1103,27 +1225,28 @@ static void StopJunctionPlayer(s32 arg0) { } } -static void RestoreJunction(f32 arg8, s32 arg0) { +static void RestoreJunction(f32 arg8, s32 arg0) +{ Vec sp1C; f32 spC[4]; s16 var_r30; s16 temp_r29; - bitcopy* temp_r31; + bitcopy *temp_r31; if (junctionObj != 0) { temp_r31 = OM_GET_WORK_PTR(junctionObj, bitcopy); if (temp_r31->unk_01 == 0) { arg8 = 90.0f * (((90.0f + arg8) - 1.0f) / 90.0f); - + for (var_r30 = 0; var_r30 < temp_r31->field00_bit3; var_r30++) { BoardModelRotGet(temp_r31->unk_06[var_r30], &sp1C); spC[var_r30] = 90.0f * (((90.0f + sp1C.y) - 1.0f) / 90.0f); } - - for (;var_r30 < 4; var_r30++) { + + for (; var_r30 < 4; var_r30++) { spC[var_r30] = -999.0f; } - + temp_r29 = GetDefaultDirection(arg8, spC, temp_r31->field00_bit3); if ((temp_r29 != -1) && (temp_r31->field00_bit5 != temp_r29)) { temp_r31->field00_bit5 = temp_r29; @@ -1136,7 +1259,8 @@ static void RestoreJunction(f32 arg8, s32 arg0) { } } -static s32 GetDefaultDirection(f32 arg0, f32* arg1, s32 arg2) { +static s32 GetDefaultDirection(f32 arg0, f32 *arg1, s32 arg2) +{ f32 var_f27; f32 var_f28; f32 temp_f1; @@ -1146,11 +1270,11 @@ static s32 GetDefaultDirection(f32 arg0, f32* arg1, s32 arg2) { temp_f30 = BoardDAngleCalc(arg0); var_f28 = 999.0f; - + for (var_r31 = 0, var_r30 = var_r31; var_r31 < arg2; var_r31++) { temp_f1 = BoardDAngleCalc(arg1[var_r31]); var_f27 = BOARD_FABS(BoardDAngleCalc(temp_f1 - temp_f30)); - + if (var_f27 < var_f28) { var_f28 = var_f27; var_r30 = var_r31; @@ -1161,43 +1285,45 @@ static s32 GetDefaultDirection(f32 arg0, f32* arg1, s32 arg2) { static inline s32 BoardPlayerMotGet(s32 player) { - PlayerState *player_ptr = BoardPlayerGet(player); - return playerMot[player_ptr->player_idx]; + PlayerState *player_ptr = BoardPlayerGet(player); + return playerMot[player_ptr->player_idx]; } -static s32 DoDebugMove(s32 arg0, s16* arg1) { +static s32 DoDebugMove(s32 arg0, s16 *arg1) +{ s16 spC0[10]; s16 spAC[10]; Vec spA0; Vec sp94; Vec sp88; Vec sp7C; - BoardSpace* sp5C; + BoardSpace *sp5C; s32 sp58; s32 sp54; - BoardCameraData* sp50; + BoardCameraData *sp50; f32 var_f30; s32 var_r29; s16 var_r26; - PlayerState* sp28; - BoardSpace* var_r23; + PlayerState *sp28; + BoardSpace *var_r23; s32 var_r22; s32 var_r21; s32 var_r20; s32 var_r18; - bitcopy* var_r17; + bitcopy *var_r17; var_r18 = -1; - + memset(spC0, 0, 0x14); memset(spAC, 0, 0x14); - while (1) {loop_1: + while (1) { + loop_1: sp28 = BoardPlayerGet(arg0); var_r23 = BoardSpaceGet(0, sp28->space_curr); sp58 = BoardSpaceCountGet(0); BoardPlayerPosGet(arg0, &sp88); var_r20 = GWPlayer[arg0].port; - + for (var_r22 = 0, var_r29 = var_r22; var_r29 < var_r23->link_cnt; var_r29++) { if ((BoardSpaceFlagGet(0, var_r23->link[var_r29]) & 0x06000000) == 0) { if ((BoardSpaceFlagGet(0, var_r23->link[var_r29]) & 0x20000000) == 0 || (BoardPlayerSizeGet(arg0) == 1)) { @@ -1206,12 +1332,13 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { } } var_r22 += BoardSpaceLinkTargetListGet(0, sp28->space_curr, &spAC[var_r22]); - + for (var_r29 = 0; var_r29 < var_r22; var_r29++) { sp5C = BoardSpaceGet(0, spAC[var_r29]); if (sp5C == 0) { spAC[var_r29] = 0; - } else { + } + else { PSVECSubtract(&sp5C->pos, &sp88, &sp94); var_f30 = 90.0 - (180.0 * (atan2(sp94.z, sp94.x) / M_PI)); OSf32tos16(&var_f30, &var_r26); @@ -1221,13 +1348,14 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { if (var_r26 > 0x168) { var_r26 -= 0x168; } - + spC0[var_r29] = var_r26 = var_r26 = (((var_r26 + 0x16) / 45) * 0x2D); } } sp54 = GWPlayer[arg0].space_curr; InitJunction(arg0, sp28->space_curr, -1.0f); - do {loop_21: + do { + loop_21: if (sp54 != GWPlayer[arg0].space_curr) { sp54 = GWPlayer[arg0].space_curr; goto loop_1; @@ -1239,7 +1367,8 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { StopJunctionPlayer(0); var_r18 = 1; goto end; - } else { + } + else { if (HuPadBtnDown[var_r20] == 0x10) { BoardRollDispSet(0); BoardPlayerIdleSet(arg0); @@ -1268,19 +1397,22 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { var_f30 -= 360.0f; } var_r21 = var_f30; - + for (var_r29 = 0; var_r29 < var_r22; var_r29++) { if ((spC0[var_r29] + 0x2D > var_r21) && (spC0[var_r29] - 0x2D < var_r21)) { *arg1 = spAC[var_r29]; var_r18 = 0; goto end; - } else if ((var_r21 <= 0x168) && (var_r21 >= 0x13B) && ((s32) ((&spC0[0])[var_r29] + 0x195) > var_r21) && ((s32) ((&spC0[0])[var_r29] + 0x13B) < var_r21)) { + } + else if ((var_r21 <= 0x168) && (var_r21 >= 0x13B) && ((s32)((&spC0[0])[var_r29] + 0x195) > var_r21) + && ((s32)((&spC0[0])[var_r29] + 0x13B) < var_r21)) { *arg1 = spAC[var_r29]; var_r18 = 0; goto end; } } - } else { + } + else { if (BoardPlayerMotGet(arg0) != 1) { BoardPlayerIdleSet(arg0); } @@ -1290,21 +1422,23 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { } } HuPrcVSleep(); - goto loop_21; + goto loop_21; } } while (1); } - end: +end: return var_r18; } -static inline f32 JunctionArrowRotGetCurr(void) { - bitcopy* juncObj; +static inline f32 JunctionArrowRotGetCurr(void) +{ + bitcopy *juncObj; f32 ret; - + if (!junctionObj) { return 0.0f; - } else { + } + else { juncObj = OM_GET_WORK_PTR(junctionObj, bitcopy); OSs16tof32(&(junctionArrowRot[juncObj->field00_bit5]), &ret); return ret; @@ -1314,11 +1448,12 @@ static inline f32 JunctionArrowRotGetCurr(void) { static inline s32 CheckArrowRot(float value) { s32 sp58; - bitcopy* sp5C; + bitcopy *sp5C; s16 spE; if (!junctionObj) { return 0; - } else { + } + else { sp5C = OM_GET_WORK_PTR(junctionObj, bitcopy); OSf32tos16(&value, &spE); if (spE > 0x15E) { @@ -1333,20 +1468,21 @@ static inline s32 CheckArrowRot(float value) } } -static s32 ExecJunction(s32 arg0, s16* arg1) { +static s32 ExecJunction(s32 arg0, s16 *arg1) +{ f32 spE4[10]; s16 spD0[10]; Vec spC4; Vec spB8; Vec spAC; s32 sp8C; - BoardSpace* sp88; + BoardSpace *sp88; s32 sp84; - PlayerState* sp30; + PlayerState *sp30; s8 sp8; s32 var_r28; s32 var_r24; - BoardSpace* var_r22; + BoardSpace *var_r22; s32 var_r21; u32 var_r20; f32 var_f29; @@ -1360,7 +1496,7 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { sp84 = BoardSpaceCountGet(0); BoardPlayerPosGet(arg0, &spAC); var_r24 = GWPlayer[arg0].port; - + for (var_r28 = var_r21 = 0; var_r28 < var_r22->link_cnt; var_r28++) { if ((BoardSpaceFlagGet(0, var_r22->link[var_r28]) & 0x06000000) == 0) { if ((BoardSpaceFlagGet(0, var_r22->link[var_r28]) & 0x20000000) == 0 || (BoardPlayerSizeGet(arg0) == 1)) { @@ -1376,12 +1512,13 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { *arg1 = var_r22->link[0]; return 0; } - + for (var_r28 = 0; var_r28 < var_r21; var_r28++) { sp88 = BoardSpaceGet(0, spD0[var_r28]); if (!sp88) { spD0[var_r28] = 0; - } else { + } + else { PSVECSubtract(&sp88->pos, &spAC, &spB8); var_f29 = (90.0 - (180.0 * (atan2(spB8.z, spB8.x) / M_PI))); if (var_f29 < 0.0f) { @@ -1399,32 +1536,38 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { BoardPlayerIdleSet(arg0); HuPrcSleep(10); while (1) { - + if ((_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) && (boardTutorialDirInputTime != -1)) { if (boardTutorialDirInputTime > 0) { spC4.x = boardTutorialDirInputX; spC4.z = boardTutorialDirInputY; - } else { + } + else { var_r20 = 0x100; } boardTutorialDirInputTime -= 1; - } else if (GWPlayer[arg0].com != 0) { + } + else if (GWPlayer[arg0].com != 0) { if (sp8 == 0) { BoardComJunctionInputGet(arg0, &spC4, var_r21, &spE4[0]); var_r20 = 0; - } else if (sp8 > 6U) { + } + else if (sp8 > 6U) { var_r20 = 0x100; } sp8++; - } else { + } + else { if (abs(HuPadStkX[var_r24]) > 10) { spC4.x = HuPadStkX[var_r24]; - } else { + } + else { spC4.x = 0.0f; } if (abs(HuPadStkY[var_r24]) > 10) { spC4.z = HuPadStkY[var_r24]; - } else { + } + else { spC4.z = 0.0f; } var_r20 = HuPadBtnDown[var_r24]; @@ -1436,19 +1579,22 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { StopJunctionPlayer(1); sp8C = 0; break; - } else if (var_r20 == 0x20 || var_r20 == 0x10) { + } + else if (var_r20 == 0x20 || var_r20 == 0x10) { HuAudFXPlay(1); BoardRollDispSet(0); BoardPlayerIdleSet(arg0); StopJunctionPlayer(0); if (var_r20 == 0x10) { BoardViewMapExec(arg0); - } else if (var_r20 == 0x20) { + } + else if (var_r20 == 0x20) { BoardViewOverheadExec(arg0); } InitJunction(arg0, sp30->space_curr, var_f28); BoardRollDispSet(1); - } else { + } + else { if ((0.0f != spC4.x) || (0.0f != spC4.z)) { var_f29 = (90.0 + (180.0 * (atan2(spC4.z, spC4.x) / M_PI))); if (var_f29 < 0.0f) { @@ -1461,7 +1607,7 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { var_f28 = var_f29; RestoreJunction(var_f29, 1); } - + for (var_r28 = 0; var_r28 < var_r21; var_r28++) { if (((45.0f + spE4[var_r28]) > var_f29) && ((spE4[var_r28] - 45.0f) < var_f29)) { *arg1 = (&spD0[0])[var_r28]; @@ -1472,7 +1618,8 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { } } } - } else { + } + else { if (BoardPlayerMotGet(arg0) != 1) { BoardPlayerIdleSet(arg0); } @@ -1487,10 +1634,11 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { return sp8C; } -void BoardPlayerMoveTo(s32 arg0, s32 arg1) { +void BoardPlayerMoveTo(s32 arg0, s32 arg1) +{ Vec sp18; Vec spC; - PlayerState* player; + PlayerState *player; BoardModelPosGet(BoardPlayerModelGet(arg0), &sp18); BoardSpacePosGet(0, arg1, &spC); @@ -1500,7 +1648,8 @@ void BoardPlayerMoveTo(s32 arg0, s32 arg1) { } } -void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2) { +void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2) +{ Vec sp1C; Vec sp10; s32 spC; @@ -1514,7 +1663,8 @@ void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2) { } } -void BoardPlayerMoveToAsync(s32 arg0, s32 arg1) { +void BoardPlayerMoveToAsync(s32 arg0, s32 arg1) +{ Vec sp18; Vec spC; s32 sp8; @@ -1524,16 +1674,17 @@ void BoardPlayerMoveToAsync(s32 arg0, s32 arg1) { BoardPlayerPosLerpStart(arg0, &sp18, &spC, 0x19); } -void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { +void BoardPlayerPosLerpStart(s32 arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ Vec sp18; f32 var_f28; f32 var_f27; f32 var_f26; f32 var_f29; f32 var_f30; - omObjData* temp_r3; + omObjData *temp_r3; s32 var_r25; - PlayerState* temp_r21; + PlayerState *temp_r21; if ((arg1->x != arg2->x) || (arg1->y != arg2->y) || (arg1->z != arg2->z)) { var_f28 = BoardVecDistXZCalc(arg2, arg1); @@ -1544,7 +1695,8 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { OSs16tof32(&arg3, &var_f29); var_f27 = var_f28 / var_f29; - } else { + } + else { var_f27 = var_f28; var_f29 = 1.0f; } @@ -1588,7 +1740,7 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { if (GWPlayer[arg0].bowser_suit != 0) { BoardModelPosSetV(suitMdl, arg1); } - //TODO: Make work struct for this + // TODO: Make work struct for this temp_r3->work[0] = arg0; *(f32 *)(&temp_r3->work[1]) = var_f27; temp_r3->work[2] = arg3; @@ -1596,7 +1748,8 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { } } -static void PlayerPosLerpFunc(omObjData* arg0) { +static void PlayerPosLerpFunc(omObjData *arg0) +{ f32 temp_f28; f32 temp_f27; f32 temp_f26; @@ -1611,7 +1764,8 @@ static void PlayerPosLerpFunc(omObjData* arg0) { arg0->trans.z += arg0->scale.z; if (arg0->work[2] != 0U) { arg0->work[2] -= 1; - } else { + } + else { GWPlayer[temp_r30].moving = 0; omDelObjEx(HuPrcCurrentGet(), arg0); temp_f26 = arg0->rot.z; @@ -1626,7 +1780,7 @@ static void PlayerPosLerpFunc(omObjData* arg0) { BoardPlayerPosSet(temp_r30, temp_f31, temp_f30, temp_f29); } -//TODO: Make this 2 structs and give better names +// TODO: Make this 2 structs and give better names typedef struct bitcopy2 { struct { u8 field00_bit0 : 1; @@ -1638,7 +1792,7 @@ typedef struct bitcopy2 { }; s8 unk_01; s16 unk_02; - union{ + union { struct { s32 unk_04; f32 unk_08; @@ -1655,10 +1809,11 @@ typedef struct bitcopy2 { }; } bitcopy2; -void BoardPlayerDiceJumpStart(s32 arg0) { +void BoardPlayerDiceJumpStart(s32 arg0) +{ Vec sp8; - PlayerState* temp_r25; - bitcopy2* temp_r31; + PlayerState *temp_r25; + bitcopy2 *temp_r31; s32 var_r28; if (GWPlayer[arg0].bowser_suit != 0) { @@ -1683,7 +1838,8 @@ void BoardPlayerDiceJumpStart(s32 arg0) { GWPlayer[arg0].jump = 1; } -s32 BoardPlayerDiceJumpCheck(s32 arg0) { +s32 BoardPlayerDiceJumpCheck(s32 arg0) +{ if (!diceJumpObj[arg0]) { return 0; } @@ -1693,11 +1849,12 @@ s32 BoardPlayerDiceJumpCheck(s32 arg0) { return 1; } -static void DiceJumpFunc(omObjData* arg0) { +static void DiceJumpFunc(omObjData *arg0) +{ Vec sp38; f32 temp_f31; - PlayerState* var_r30; - bitcopy2* temp_r31; + PlayerState *var_r30; + bitcopy2 *temp_r31; s16 var_r28; s32 var_r23; s32 var_r17; @@ -1746,19 +1903,19 @@ static void DiceJumpFunc(omObjData* arg0) { } } - void BoardPlayerIdleSet(s32 arg0) { if (GWPlayer[arg0].bowser_suit) { BoardBowserSuitMotionSetWait(); BoardBowserSuitPlayerModelKill(); } - BoardPlayerMotionShiftSet(arg0, 1, 0.0f, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(arg0, 1, 0.0f, 8.0f, 0x40000001); } static void ExecMotBlend(omObjData *arg0); -void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { +void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) +{ s16 sp1C; f32 temp_f25; f32 temp_f26; @@ -1767,19 +1924,19 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { f32 var_f22; f32 var_f21; f32 var_f19; - omObjData* temp_r3; + omObjData *temp_r3; s32 var_r22; s32 var_r20; s16 var_r19; s16 var_r18; - bitcopy2* temp_r26; + bitcopy2 *temp_r26; var_r20 = 0; if (motDoneF[arg0] != 0) { temp_r3 = motDoneF[arg0]; temp_r26 = OM_GET_WORK_PTR(temp_r3, bitcopy2); temp_r26->field00_bit0 = 1; - + for (var_r19 = 0; var_r19 < 180U; var_r19++) { if (BoardPlayerMotBlendCheck(arg0) != 0) break; @@ -1801,19 +1958,22 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { OSf32tos16(&temp_f25, &sp1C); if (sp1C > 0) { var_f24 = 59.0f; - } else { + } + else { var_f24 = 0.0f; } - + if (abs(sp1C) == 0) { temp_r26->field00_bit0 = 1; return; } if (abs(sp1C) <= 90) { var_r20 = boardMotTbl[var_r18]; - } else if (abs(sp1C) <= 180) { + } + else if (abs(sp1C) <= 180) { var_r20 = boardMotRevTbl[var_r18]; - } else { + } + else { temp_r26->field00_bit0 = 1; return; } @@ -1822,13 +1982,15 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { temp_f26 = var_f27 / 59.0f; if (temp_f26 != 0.0f) { var_f27 = 1.0f / temp_f26; - } else { + } + else { var_f27 = 1.0f; } if (GWPlayer[arg0].bowser_suit != 0) { BoardBowserSuitMotionSetWalk(); BoardModelMotionSpeedSet(BoardBowserSuitModelGet(), var_f27 / 2); - } else if (var_f21 = 8.0f * temp_f26, abs(sp1C) > 45) { + } + else if (var_f21 = 8.0f * temp_f26, abs(sp1C) > 45) { var_r22 = temp_r26->unk_04h; BoardPlayerMotionShiftSet(arg0, var_r22, var_f24, var_f21, 0); BoardPlayerMotionSpeedSet(arg0, var_f27); @@ -1839,10 +2001,11 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { } } -static void ExecMotBlend(omObjData* arg0) { +static void ExecMotBlend(omObjData *arg0) +{ f32 sp48; f32 var_f27; - bitcopy2* temp_r30; + bitcopy2 *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, bitcopy2); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -1860,10 +2023,11 @@ static void ExecMotBlend(omObjData* arg0) { if (GWPlayer[temp_r30->unk_01].bowser_suit != 0) { BoardBowserSuitMotionSetWait(); BoardBowserSuitPlayerModelKill(); - } else { + } + else { BoardPlayerMotionStart(temp_r30->unk_01, 1, 0x40000001); } - return; + return; } var_f27 = BoardPlayerRotYGet(temp_r30->unk_01); OSs16tof32(&temp_r30->unk_08h, &sp48); @@ -1871,14 +2035,15 @@ static void ExecMotBlend(omObjData* arg0) { BoardPlayerRotYSet(temp_r30->unk_01, var_f27); } -s32 BoardPlayerMotBlendCheck(s32 arg0) { +s32 BoardPlayerMotBlendCheck(s32 arg0) +{ if (motDoneF[arg0] != 0) { return 0; } return 1; } -//TODO: Make this 3 structs and give better names +// TODO: Make this 3 structs and give better names typedef struct bitcopy3 { struct { @@ -1896,10 +2061,11 @@ typedef struct bitcopy3 { s16 unk_06[5]; } bitcopy3; -void BoardRollCreate(s32 arg0, s32 arg1) { - omObjData* temp_r3; +void BoardRollCreate(s32 arg0, s32 arg1) +{ + omObjData *temp_r3; s32 var_r30; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; temp_r3 = omAddObjEx(boardObjMan, 0x105, 0, 0, -1, &UpdateRoll); temp_r31 = OM_GET_WORK_PTR(temp_r3, bitcopy3); @@ -1909,13 +2075,14 @@ void BoardRollCreate(s32 arg0, s32 arg1) { temp_r31->unk_02 = arg0; if (arg1 != 0) { temp_r31->unk_03 = 0; - } else { + } + else { temp_r31->unk_03 = 1; } temp_r31->unk_04 = HuSprGrpCreate(2); - + for (var_r30 = 0; var_r30 < 2; var_r30++) { - BoardSpriteCreate(0x7002B, 0x4B0, 0, &temp_r31->unk_06[var_r30]); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x2B), 0x4B0, 0, &temp_r31->unk_06[var_r30]); HuSprGrpMemberSet(temp_r31->unk_04, var_r30, temp_r31->unk_06[var_r30]); HuSprPosSet(temp_r31->unk_04, var_r30, 288.0f, 240.0f); HuSprAttrSet(temp_r31->unk_04, var_r30, 4); @@ -1923,8 +2090,9 @@ void BoardRollCreate(s32 arg0, s32 arg1) { rollObj = temp_r3; } -void BoardRollUpdateSet(s32 arg0) { - bitcopy3* temp_r31; +void BoardRollUpdateSet(s32 arg0) +{ + bitcopy3 *temp_r31; if (rollObj != 0) { temp_r31 = OM_GET_WORK_PTR(rollObj, bitcopy3); @@ -1932,22 +2100,25 @@ void BoardRollUpdateSet(s32 arg0) { } } -void BoardRollDispSet(s32 arg0) { +void BoardRollDispSet(s32 arg0) +{ s32 var_r30; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; if (rollObj != 0) { temp_r31 = OM_GET_WORK_PTR(rollObj, bitcopy3); - + for (var_r30 = 0; var_r30 < 2; var_r30++) { if (arg0 != 0) { temp_r31->field00_bit1 = 1; if ((var_r30 == 1) && (GWPlayer[temp_r31->unk_02].roll / 10 == 0)) { HuSprAttrSet(temp_r31->unk_04, var_r30, 4); - } else { + } + else { HuSprAttrReset(temp_r31->unk_04, var_r30, 4); } - } else { + } + else { temp_r31->field00_bit1 = 0; HuSprAttrSet(temp_r31->unk_04, var_r30, 4); } @@ -1956,30 +2127,34 @@ void BoardRollDispSet(s32 arg0) { } } -static void UpdateRollSprite(omObjData* arg0) { +static void UpdateRollSprite(omObjData *arg0) +{ Vec sp1C; s32 sp14[2]; f32 spC[2] = { 320.0f, 256.0f }; s32 var_r30; s32 temp_r29; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy3); temp_r29 = GWPlayer[temp_r31->unk_02].roll; if (temp_r29 != 0) { sp14[0] = temp_r29 % 10; sp14[1] = temp_r29 / 10; - } else { + } + else { temp_r31->field00_bit0 = 1; } - + for (var_r30 = 0; var_r30 < 2; var_r30++) { if (((var_r30 == 1) && (sp14[1] == 0)) || (temp_r31->field00_bit1 == 0)) { HuSprAttrSet(temp_r31->unk_04, var_r30, 4); - } else { + } + else { if ((sp14[1] == 0) && (var_r30 == 0)) { sp1C.x = 288.0f; - } else { + } + else { sp1C.x = spC[var_r30]; } sp1C.y = 176.0f; @@ -1990,9 +2165,10 @@ static void UpdateRollSprite(omObjData* arg0) { } } -static void UpdateRoll(omObjData* arg0) { +static void UpdateRoll(omObjData *arg0) +{ f32 var_f30; - bitcopy3* temp_r30; + bitcopy3 *temp_r30; temp_r30 = OM_GET_WORK_PTR(rollObj, bitcopy3); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -2019,20 +2195,23 @@ static void UpdateRoll(omObjData* arg0) { UpdateRollSprite(arg0); } -void BoardPlayerBtnDownWait(s32 arg0, u32 arg1) { +void BoardPlayerBtnDownWait(s32 arg0, u32 arg1) +{ s32 spC; s32 sp8; s32 temp_r31; temp_r31 = GWPlayer[arg0].port; while (1) { - if ((HuPadBtnDown[temp_r31] & arg1) != 0) return; + if ((HuPadBtnDown[temp_r31] & arg1) != 0) + return; HuPrcVSleep(); } } -void BoardPlayerAutoSizeSet(s32 player, s32 value) { - PlayerState* temp_r28; +void BoardPlayerAutoSizeSet(s32 player, s32 value) +{ + PlayerState *temp_r28; temp_r28 = BoardPlayerGet(player); if ((temp_r28->auto_size != 0) || (value == 0)) { @@ -2044,25 +2223,28 @@ void BoardPlayerAutoSizeSet(s32 player, s32 value) { } } -s32 BoardPlayerAutoSizeGet(s32 arg0) { - PlayerState* player; +s32 BoardPlayerAutoSizeGet(s32 arg0) +{ + PlayerState *player; player = BoardPlayerGet(arg0); - if(!player) { + if (!player) { return; } return player->auto_size; } -u32 BoardPlayerMoveAwayIsDone(void) { +u32 BoardPlayerMoveAwayIsDone(void) +{ if (moveAwayObj) { return 0; } return 1; } -void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { - bitcopy3* temp_r25; +void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) +{ + bitcopy3 *temp_r25; Vec sp28; Vec sp1C; Vec sp10; @@ -2079,7 +2261,7 @@ void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { // hack for (var_r28 = var_r28 = var_r27; var_r27 < 4; var_r27++, var_r30++) { var_r30 &= 3; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { if ((var_r31 == var_r30) && (arg1 == GWPlayer[var_r31].space_curr)) { moveAwayPlayer[var_r28++] = var_r31; @@ -2087,14 +2269,15 @@ void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { } } BoardSpaceRotGet(0, arg1, &sp28); - + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { BoardSpaceCornerPosGet(arg1, var_r31, &sp1C); temp_r29 = moveAwayPlayer[var_r31]; if (arg2 != 0) { BoardPlayerPosSetV(temp_r29, &sp1C); moveAwayPlayer[var_r31] = -1; - } else { + } + else { BoardPlayerPosGet(temp_r29, &sp10); BoardPlayerPosLerpStart(temp_r29, &sp10, &sp1C, 0x19); } @@ -2106,13 +2289,15 @@ void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { } } -void BoardPlayerMoveAwayStartCurr(s32 arg0, s32 arg1) { +void BoardPlayerMoveAwayStartCurr(s32 arg0, s32 arg1) +{ BoardPlayerMoveAwayStart(GWSystem.player_curr, arg0, arg1); } -static void MoveAwayObjFunc(omObjData* arg0) { +static void MoveAwayObjFunc(omObjData *arg0) +{ s32 var_r31; - bitcopy3* temp_r30; + bitcopy3 *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, bitcopy3); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -2120,10 +2305,11 @@ static void MoveAwayObjFunc(omObjData* arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); return; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { if (moveAwayPlayer[var_r31] != -1) { - if (GWPlayer[moveAwayPlayer[var_r31]].moving != 0) return; + if (GWPlayer[moveAwayPlayer[var_r31]].moving != 0) + return; BoardPlayerMotBlendSet(moveAwayPlayer[var_r31], 0, 15); moveAwayPlayer[var_r31] = -1; } @@ -2131,16 +2317,15 @@ static void MoveAwayObjFunc(omObjData* arg0) { temp_r30->field00_bit0 = 1; } -void BoardBowserSuitInit(s32 arg0) { - omObjData* temp_r3; +void BoardBowserSuitInit(s32 arg0) +{ + omObjData *temp_r3; s32 temp_r27; s32 var_r29; s32 temp; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; - - for (var_r29 = 0; var_r29 < 4; var_r29++) { - } + for (var_r29 = 0; var_r29 < 4; var_r29++) { } temp_r27 = GWPlayer[arg0].character; temp = BoardDataDirReadAsync(0x40000); BoardDataAsyncWait(temp); @@ -2158,11 +2343,12 @@ void BoardBowserSuitInit(s32 arg0) { BoardPlayerVoiceEnableSet(arg0, 4, 0); } -void BoardBowserSuitKill(s32 arg0) { - bitcopy3* temp; +void BoardBowserSuitKill(s32 arg0) +{ + bitcopy3 *temp; if (bowserSuitObj != 0) { - OM_GET_WORK_PTR(bowserSuitObj, bitcopy3)->field00_bit0 = 1; + OM_GET_WORK_PTR(bowserSuitObj, bitcopy3)->field00_bit0 = 1; } GWPlayer[arg0].bowser_suit = 0; BoardModelVoiceEnableSet(BoardPlayerModelGet(arg0), 3, 1); @@ -2178,58 +2364,66 @@ void BoardBowserSuitKill(s32 arg0) { HuDataDirClose(0x40000); } -s16 BoardBowserSuitModelGet(void) { +s16 BoardBowserSuitModelGet(void) +{ return suitMdl; } -s16 BoardBowserSuitPlayerModelGet(void) { +s16 BoardBowserSuitPlayerModelGet(void) +{ return suitPlayerMdl; } -void BoardBowserSuitMotionCreate(void) { +void BoardBowserSuitMotionCreate(void) +{ s32 var_r31; - for (var_r31 = 0; var_r31 < 5; var_r31++) { - bowserSuitMot[var_r31] = (s16) BoardModelMotionCreate(suitMdl, bowserSuitMotTbl[var_r31]); + bowserSuitMot[var_r31] = (s16)BoardModelMotionCreate(suitMdl, bowserSuitMotTbl[var_r31]); } suitCurrMot = -1; } -void BoardBowserSuitMotionSetWait(void) { +void BoardBowserSuitMotionSetWait(void) +{ if (suitCurrMot != 0) { BoardModelMotionShiftSet(suitMdl, bowserSuitMot[0], 0.0f, 4.0f, 0x40000001); suitCurrMot = 0; } } -void BoardBowserSuitMotionSetWalk(void) { +void BoardBowserSuitMotionSetWalk(void) +{ if (suitCurrMot != 1) { BoardModelMotionStart(suitMdl, bowserSuitMot[1], 0x40000001); suitCurrMot = 1; } } -void BoardBowserSuitMotionSetWin(void) { +void BoardBowserSuitMotionSetWin(void) +{ BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 4.0f, 0); suitCurrMot = 3; } -void BoardBowserSuitMotionSetJump(void) { +void BoardBowserSuitMotionSetJump(void) +{ BoardModelMotionShiftSet(suitMdl, bowserSuitMot[2], 0.0f, 4.0f, 0); suitCurrMot = 2; } -void BoardBowserSuitPlayerModelKill(void) { +void BoardBowserSuitPlayerModelKill(void) +{ if (suitPlayerMdl != -1) { BoardModelMotionStart(suitPlayerMdl, 1, 0); BoardModelMotionSpeedSet(suitPlayerMdl, 0.0f); } } -static void UpdateBowserSuit(omObjData* arg0) { +static void UpdateBowserSuit(omObjData *arg0) +{ s16 temp_r30; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy3); if ((temp_r31->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -2249,7 +2443,8 @@ static void UpdateBowserSuit(omObjData* arg0) { } } -void BoardPlayerSparkSet(s32 arg0) { +void BoardPlayerSparkSet(s32 arg0) +{ s16 currSpace = GWPlayer[arg0].space_curr; GWPlayer[arg0].spark = 1; @@ -2258,586 +2453,594 @@ void BoardPlayerSparkSet(s32 arg0) { static s32 DoSparkSpace(s32 player, s32 pause_cam) { - s32 i; - s16 temp_r28; - s32 coin; - s32 temp_r17; - Vec pos, rot; - Vec coin_pos; - s16 sp15C[4] = { -1, -1, -1, -1 }; - s32 sp138; - s32 sp134; - s32 sp130; - s32 sp12C; - s32 sp128; - s8 sp124[4] = { -1, -1, -1, -1 }; - s8 sp120[4] = { -1, -1, -1, -1 }; - s16 sp34; - s16 sp32; - s16 sp30; - s16 sp2E; - s16 sp2C; - sp30 = GWSystem.player_curr; - sp138 = 0; - sp34 = GWPlayer[player].space_curr; - - BoardSpacePosGet(0, sp34, &pos); - BoardSpaceRotGet(0, sp34, &rot); - for(i=0; i<4; i++) { - if(GWPlayer[i].space_shock == sp34) { - sp32 = i; - sp138 = 1; - } - } - if(!sp138) { - return 0; - } - BoardRollDispSet(0); - if(pause_cam) { - BoardCameraMoveSet(0); - } else { - BoardCameraMoveSet(1); - } - BoardCameraMotionWait(); - BoardCameraTargetPlayerSet(player); - BoardPlayerIdleSet(player); - temp_r28 = BoardModelCreate(0x70074, NULL, 0); - BoardModelMotionStart(temp_r28, 0, 0x40000002); - BoardModelMotionTimeSet(temp_r28, 30.0f); - BoardModelAttrSet(temp_r28, 0x40000002); - BoardModelRotSet(temp_r28, rot.x-90.0f, rot.y, rot.z); - BoardModelScaleSet(temp_r28, 2.0f, 2.0f, 2.0f); - BoardModelVisibilitySet(temp_r28, 0); - BoardModelLayerSet(temp_r28, 1); - sp2E = BoardModelCreate(0x70067, NULL, 0); - BoardModelLayerSet(sp2E, 1); - BoardModelMotionStart(sp2E, 0, 0); - HuAudFXPlay(796); - HuPrcSleep(2); - BoardModelAttrReset(temp_r28, 0x40000002); - BoardModelVisibilitySet(temp_r28, 1); - BoardModelPosSet(temp_r28, pos.x, 8.0f+pos.y, pos.z); - BoardModelPosSetV(sp2E, &pos); - sp128 = -1; - for(sp134=i=0; i<4; i++) { - if(GWPlayer[i].space_curr == sp34) { - sp124[sp134++] = i; - sp15C[i] = BoardPlayerMotionCreate(i, sparkMotTbl[GWPlayer[i].character]); - BoardPlayerMotionShiftSet(i, sp15C[i], 0, 8, 0); - HuAudFXPlay(boardSparkSfxTblAlt[GWPlayer[i].character]); - if(GWPlayer[i].bowser_suit) { - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[4], 0.0f, 4.0f, 0); - sp128 = i; - } - } - } - sp130 = sp134; - HuPrcSleep(60); - while(!BoardModelMotionEndCheck(sp2E)) { - HuPrcVSleep(); - } - sp2C = 255; - for(i=0; i<45; i++) { - sp2C -= 5; - if(sp2C < 0) { - sp2C = 0; - } - BoardModelAlphaSet(temp_r28, sp2C); - BoardModelAlphaSet(sp2E, sp2C); - HuPrcVSleep(); - } - temp_r17 = BoardItemPrevGet(); - if(temp_r17 == 0 || temp_r17 == 1 || temp_r17 == 2 || temp_r17 == 3 || temp_r17 == 10) { - BoardCameraTargetPlayerSet(player); - BoardPlayerIdleSet(player); - HuPrcSleep(12); - BoardItemPlayerRestore(player, temp_r17); - while(!BoardItemDoneCheck()) { - HuPrcVSleep(); - } - BoardItemPrevSet(-1); - } - if(megaDoubleDiceF) { - BoardPlayerSizeRestore(player); - megaDoubleDiceF = 0; - } - if(sp128 != -1) { - HuAudFXPlay(boardSparkSfxTbl[GWPlayer[sp128].character]); - } - for(i=0; i 10) { - coin = 10; - } - if(coin > 0) { - - BoardPlayerPosGet(sp124[i], &coin_pos); - coin_pos.y += 250.0f; - sp120[i] = BoardCoinChgCreate(&coin_pos, -coin); - } - } - for(sp12C=i=0; i 10) { + coin = 10; + } + if (coin > 0) { + + BoardPlayerPosGet(sp124[i], &coin_pos); + coin_pos.y += 250.0f; + sp120[i] = BoardCoinChgCreate(&coin_pos, -coin); + } + } + for (sp12C = i = 0; i < sp130; i++) { + sp12C += BoardPlayerCoinsGet(sp124[i]); + } + if (sp12C) { + HuAudFXPlay(840); + for (coin = 0; coin < 10; coin++) { + for (i = 0; i < sp130; i++) { + BoardPlayerCoinsAdd(sp124[i], -1); + } + HuAudFXPlay(14); + HuPrcSleep(6); + } + HuAudFXPlay(15); + HuPrcSleep(90); + } + BoardModelKill(temp_r28); + BoardModelKill(sp2E); + for (i = 0; i < 4; i++) { + BoardPlayerIdleSet(sp124[i]); + } + HuPrcSleep(10); + GWSystem.player_curr = -1; + RemoveSparkSpace(sp32); + GWSystem.player_curr = sp30; + for (i = 0; i < 4; i++) { + if (sp15C[i] != -1) { + BoardPlayerMotionKill(i, sp15C[i]); + } + } + if (pause_cam) { + BoardCameraMoveSet(0); + BoardCameraMotionWait(); + } + + BoardCameraTargetPlayerSet(sp30); + BoardCameraMotionWait(); + BoardCameraMoveSet(1); + BoardRollDispSet(1); + return 1; } static void RemoveSparkSpace(s32 player) { - if(GWPlayer[player].spark) { - BoardWinCreate(0, MAKE_MESSID(18, 28), -1); - BoardWinWait(); - BoardWinKill(); - GWPlayer[player].spark = 0; - GWPlayer[player].space_shock = 0; - } + if (GWPlayer[player].spark) { + BoardWinCreate(0, MAKE_MESSID(18, 28), -1); + BoardWinWait(); + BoardWinKill(); + GWPlayer[player].spark = 0; + GWPlayer[player].space_shock = 0; + } } static void SetPlayerSizeAuto(s32 player) { - s32 auto_size = BoardPlayerAutoSizeGet(player); - if(auto_size != 0) { - BoardStatusHammerKill(player); - BoardPlayerAutoSizeSet(player, 0); - HuPrcSleep(30); - omVibrate(player, 90, 6, 6); - if(auto_size == 1) { - HuAudFXPlay(788); - HuAudFXPlay(787); - } else if(auto_size == 2) { - HuAudFXPlay(786); - HuAudFXPlay(785); - } - BoardPlayerResizeAnimExec(player, auto_size); - BoardPlayerSizeSet(player, auto_size); - HuPrcSleep(30); - megaDoubleDiceF = 1; - } + s32 auto_size = BoardPlayerAutoSizeGet(player); + if (auto_size != 0) { + BoardStatusHammerKill(player); + BoardPlayerAutoSizeSet(player, 0); + HuPrcSleep(30); + omVibrate(player, 90, 6, 6); + if (auto_size == 1) { + HuAudFXPlay(788); + HuAudFXPlay(787); + } + else if (auto_size == 2) { + HuAudFXPlay(786); + HuAudFXPlay(785); + } + BoardPlayerResizeAnimExec(player, auto_size); + BoardPlayerSizeSet(player, auto_size); + HuPrcSleep(30); + megaDoubleDiceF = 1; + } } s32 BoardMegaDoubleDiceCheck(void) { - return megaDoubleDiceF; + return megaDoubleDiceF; } void BoardPlayerResizeAnimExec(s32 player, s32 size) { - s32 j; - s32 i; - s16 modelid; - s32 frame; - s16 model; - float mdl_size; - float frame_data[9]; - float steps[4]; - float player_sizes[] = { 1, 0.3, 2.5 }; - - mdl_size = player_sizes[BoardPlayerSizeGet(player)]; - steps[0] = mdl_size; - steps[1] = mdl_size+((player_sizes[size]-mdl_size)/3); - steps[2] = mdl_size+((player_sizes[size]-mdl_size)/1.5f); - steps[3] = player_sizes[size]; - frame_data[0] = steps[1]; - frame_data[1] = steps[0]; - frame_data[2] = steps[1]; - frame_data[3] = steps[2]; - frame_data[4] = steps[1]; - frame_data[5] = steps[2]; - frame_data[6] = steps[3]; - frame_data[7] = steps[2]; - frame_data[8] = steps[3]; - model = BoardPlayerModelGet(player); - modelid = BoardModelIDGet(model); - Hu3DModelAttrSet(modelid, 0x40000002); - frame = 0; - for(j=0; j<9; j++) { - float size_vel; - size_vel = (frame_data[frame++]-mdl_size)/10.0f; - for(i=0; i<10; i++) { - BoardPlayerScaleSet(player, mdl_size, mdl_size, mdl_size); - mdl_size += size_vel; - HuPrcVSleep(); - } - } - Hu3DModelAttrReset(modelid, 0x40000002); - BoardPlayerSizeSet(player, size); + s32 j; + s32 i; + s16 modelid; + s32 frame; + s16 model; + float mdl_size; + float frame_data[9]; + float steps[4]; + float player_sizes[] = { 1, 0.3, 2.5 }; + + mdl_size = player_sizes[BoardPlayerSizeGet(player)]; + steps[0] = mdl_size; + steps[1] = mdl_size + ((player_sizes[size] - mdl_size) / 3); + steps[2] = mdl_size + ((player_sizes[size] - mdl_size) / 1.5f); + steps[3] = player_sizes[size]; + frame_data[0] = steps[1]; + frame_data[1] = steps[0]; + frame_data[2] = steps[1]; + frame_data[3] = steps[2]; + frame_data[4] = steps[1]; + frame_data[5] = steps[2]; + frame_data[6] = steps[3]; + frame_data[7] = steps[2]; + frame_data[8] = steps[3]; + model = BoardPlayerModelGet(player); + modelid = BoardModelIDGet(model); + Hu3DModelAttrSet(modelid, 0x40000002); + frame = 0; + for (j = 0; j < 9; j++) { + float size_vel; + size_vel = (frame_data[frame++] - mdl_size) / 10.0f; + for (i = 0; i < 10; i++) { + BoardPlayerScaleSet(player, mdl_size, mdl_size, mdl_size); + mdl_size += size_vel; + HuPrcVSleep(); + } + } + Hu3DModelAttrReset(modelid, 0x40000002); + BoardPlayerSizeSet(player, size); } typedef struct mega_squish_work { - struct { - u8 kill : 1; - u8 no_coinchg : 1; - u8 played_snd : 1; - u8 gain_player : 2; - }; - s8 player; - s8 state; - s8 coinchg; - s8 loss; - s8 disappear_time; - s8 disappear_len; - u16 hide_time; + struct { + u8 kill : 1; + u8 no_coinchg : 1; + u8 played_snd : 1; + u8 gain_player : 2; + }; + s8 player; + s8 state; + s8 coinchg; + s8 loss; + s8 disappear_time; + s8 disappear_len; + u16 hide_time; } MegaSquishWork; static void MegaSquishFunc(omObjData *object) { - MegaSquishWork *work = OM_GET_WORK_PTR(object, MegaSquishWork); - Vec pos; - if(work->kill || BoardIsKill()) { - if(work->coinchg != -1) { - BoardCoinChgHide(work->coinchg); - } - megaSquishObj[work->player] = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->hide_time != 0) { - work->hide_time--; - return; - } - switch(work->state) { - case 1: - if(!work->played_snd) { - HuAudFXPlay(798); - HuAudFXPlay(megaSquishSfxTbl[GWPlayer[work->player].character]); - work->played_snd = 1; - } - BoardPlayerMotionStart(work->player, 10, 0); - BoardPlayerMotionSpeedSet(work->player, 2.0f); - work->state = 2; - break; - - case 2: - { - if(!BoardModelMotionTimeGet(BoardPlayerModelGet(work->player) >= 50.0f)) { - return; - } - BoardPlayerMotionSpeedSet(work->player, 0.0f); - BoardPlayerPosGet(work->player, &pos); - pos.y += 10.0f; - BoardPlayerPosSetV(work->player, &pos); - work->hide_time = 20; - work->state = 3; - work->coinchg = -1; - work->disappear_time = 0; - } - - break; - - case 3: - if(work->coinchg == -1) { - BoardPlayerPosGet(work->player, &pos); - - pos.y += 250.0f; - if(!work->no_coinchg) { - work->coinchg = BoardCoinChgCreate(&pos, -work->loss); - } else { - work->state = 4; - work->hide_time = work->disappear_len; - } - } - if(work->disappear_time++ < work->disappear_len) { - return; - } - work->disappear_time = 0; - if(work->loss <= 0) { - work->state = 4; - HuAudFXPlay(15); - } else { - work->loss--; - BoardPlayerCoinsAdd(work->player, -1); - HuAudFXPlay(14); - BoardPlayerCoinsAdd(work->gain_player, 1); - } - break; - - case 4: - BoardPlayerMotionSpeedSet(work->player, 2.0f); - BoardPlayerPosGet(work->player, &pos); - pos.y -= 10.0f; - BoardPlayerPosSetV(work->player, &pos); - work->state = 5; - break; - - case 5: - if(!BoardPlayerMotionEndCheck(work->player)) { - return; - } - BoardPlayerIdleSet(work->player); - work->kill = 1; - break; - - case 0: - break; - - default: - break; - } + MegaSquishWork *work = OM_GET_WORK_PTR(object, MegaSquishWork); + Vec pos; + if (work->kill || BoardIsKill()) { + if (work->coinchg != -1) { + BoardCoinChgHide(work->coinchg); + } + megaSquishObj[work->player] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if (work->hide_time != 0) { + work->hide_time--; + return; + } + switch (work->state) { + case 1: + if (!work->played_snd) { + HuAudFXPlay(798); + HuAudFXPlay(megaSquishSfxTbl[GWPlayer[work->player].character]); + work->played_snd = 1; + } + BoardPlayerMotionStart(work->player, 10, 0); + BoardPlayerMotionSpeedSet(work->player, 2.0f); + work->state = 2; + break; + + case 2: { + if (!BoardModelMotionTimeGet(BoardPlayerModelGet(work->player) >= 50.0f)) { + return; + } + BoardPlayerMotionSpeedSet(work->player, 0.0f); + BoardPlayerPosGet(work->player, &pos); + pos.y += 10.0f; + BoardPlayerPosSetV(work->player, &pos); + work->hide_time = 20; + work->state = 3; + work->coinchg = -1; + work->disappear_time = 0; + } + + break; + + case 3: + if (work->coinchg == -1) { + BoardPlayerPosGet(work->player, &pos); + + pos.y += 250.0f; + if (!work->no_coinchg) { + work->coinchg = BoardCoinChgCreate(&pos, -work->loss); + } + else { + work->state = 4; + work->hide_time = work->disappear_len; + } + } + if (work->disappear_time++ < work->disappear_len) { + return; + } + work->disappear_time = 0; + if (work->loss <= 0) { + work->state = 4; + HuAudFXPlay(15); + } + else { + work->loss--; + BoardPlayerCoinsAdd(work->player, -1); + HuAudFXPlay(14); + BoardPlayerCoinsAdd(work->gain_player, 1); + } + break; + + case 4: + BoardPlayerMotionSpeedSet(work->player, 2.0f); + BoardPlayerPosGet(work->player, &pos); + pos.y -= 10.0f; + BoardPlayerPosSetV(work->player, &pos); + work->state = 5; + break; + + case 5: + if (!BoardPlayerMotionEndCheck(work->player)) { + return; + } + BoardPlayerIdleSet(work->player); + work->kill = 1; + break; + + case 0: + break; + + default: + break; + } } static s32 MegaPlayerPassFunc(s32 player, s32 space) { - float temp_f30; - float temp_f29; - MegaSquishWork *temp_r31; - s32 temp_r29; - MegaSquishWork *temp_r28; - s32 temp_r27; - s32 temp_r26; - s32 temp_r24; - omObjData *temp_r23; - s32 spD0[4]; - Vec spC4; - Vec spB8; - Vec spAC; - Vec spA0; - float sp98[2]; - - - if(GWPlayer[player].bowser_suit) { - return MegaExecJump(player, space); - } - if(BoardPlayerSizeGet(player) != 2) { - return 0; - } - spD0[0] = spD0[1] = spD0[2] = -1; - for(temp_r26=temp_r29=0; temp_r29<4; temp_r29++) { - if(temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { - spD0[temp_r26++] = temp_r29; - BoardPlayerPosGet(temp_r29, &spA0); - temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); - megaSquishObj[temp_r29] = temp_r23; - temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); - temp_r31->kill = 0; - temp_r31->player = temp_r29; - temp_r31->gain_player = player; - temp_r31->state = 0; - temp_r31->hide_time = 0; - temp_r31->loss = 0; - temp_r31->disappear_len = 3; - temp_r31->disappear_time = 0; - temp_r31->played_snd = 0; - if(BoardPlayerCoinsGet(temp_r31->player) <= 0) { - temp_r31->no_coinchg = 1; - } else { - temp_r31->no_coinchg = 0; - } - if(BoardPlayerCoinsGet(temp_r31->player) >= 10) { - temp_r31->loss = 10; - } else { - temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); - } - } - } - if(temp_r26 == 0) { - return 0; - } - if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { + float temp_f30; + float temp_f29; + MegaSquishWork *temp_r31; + s32 temp_r29; + MegaSquishWork *temp_r28; + s32 temp_r27; + s32 temp_r26; + s32 temp_r24; + omObjData *temp_r23; + s32 spD0[4]; + Vec spC4; + Vec spB8; + Vec spAC; + Vec spA0; + float sp98[2]; + + if (GWPlayer[player].bowser_suit) { + return MegaExecJump(player, space); + } + if (BoardPlayerSizeGet(player) != 2) { + return 0; + } + spD0[0] = spD0[1] = spD0[2] = -1; + for (temp_r26 = temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { + spD0[temp_r26++] = temp_r29; + BoardPlayerPosGet(temp_r29, &spA0); + temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); + megaSquishObj[temp_r29] = temp_r23; + temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); + temp_r31->kill = 0; + temp_r31->player = temp_r29; + temp_r31->gain_player = player; + temp_r31->state = 0; + temp_r31->hide_time = 0; + temp_r31->loss = 0; + temp_r31->disappear_len = 3; + temp_r31->disappear_time = 0; + temp_r31->played_snd = 0; + if (BoardPlayerCoinsGet(temp_r31->player) <= 0) { + temp_r31->no_coinchg = 1; + } + else { + temp_r31->no_coinchg = 0; + } + if (BoardPlayerCoinsGet(temp_r31->player) >= 10) { + temp_r31->loss = 10; + } + else { + temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); + } + } + } + if (temp_r26 == 0) { + return 0; + } + if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { BoardTutorialHookExec(24, 0); } - BoardPlayerPosGet(player, &spB8); - BoardSpacePosGet(0, space, &spC4); - sp98[0] = spB8.y; - if(spC4.y > spB8.y) { - spB8.y += 300.0f; - } else { - spB8.y += 200.0f; - } - VECSubtract(&spC4, &spB8, &spAC); - spAC.x /= 60.0f; - spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0-(180.0*(atan2(spAC.z, spAC.x)/M_PI))); - sp98[1] = BoardVecDistXZCalc(&spC4, &spB8); - BoardPlayerMotionShiftSet(player, 4, 0, 8, 0); - HuPrcSleep(8); - temp_r24 = 0; - for(temp_f30=0; temp_f30<60.0f; temp_f30++) { - temp_f29 = spB8.y; - spB8.x += spAC.x; - spB8.z += spAC.z; - spB8.y += 10.0f + (0.9f*(-0.020416668f * temp_f30 * temp_f30)); - if(temp_f29 > spB8.y) { - temp_r24 = 1; - } - if(spB8.y <= 200.0f+spC4.y && temp_r24) { - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(megaSquishObj[temp_r27]) { - temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); - if((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { - temp_r28->state = 1; - } - } - } - } - if(spB8.y <= spC4.y) { - spB8.y = spC4.y; - BoardPlayerMotionShiftSet(player, 5, 0, 4, 0); - } - BoardPlayerPosSetV(player, &spB8); - HuPrcVSleep(); - } - BoardCameraQuakeSet(30, 500.0f); - omVibrate(0, 12, 4, 2); - omVibrate(1, 12, 4, 2); - omVibrate(2, 12, 4, 2); - omVibrate(3, 12, 4, 2); - BoardPlayerIdleSet(player); - HuPrcSleep(30); + BoardPlayerPosGet(player, &spB8); + BoardSpacePosGet(0, space, &spC4); + sp98[0] = spB8.y; + if (spC4.y > spB8.y) { + spB8.y += 300.0f; + } + else { + spB8.y += 200.0f; + } + VECSubtract(&spC4, &spB8, &spAC); + spAC.x /= 60.0f; + spAC.z /= 60.0f; + BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + sp98[1] = BoardVecDistXZCalc(&spC4, &spB8); + BoardPlayerMotionShiftSet(player, 4, 0, 8, 0); + HuPrcSleep(8); + temp_r24 = 0; + for (temp_f30 = 0; temp_f30 < 60.0f; temp_f30++) { + temp_f29 = spB8.y; + spB8.x += spAC.x; + spB8.z += spAC.z; + spB8.y += 10.0f + (0.9f * (-0.020416668f * temp_f30 * temp_f30)); + if (temp_f29 > spB8.y) { + temp_r24 = 1; + } + if (spB8.y <= 200.0f + spC4.y && temp_r24) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (megaSquishObj[temp_r27]) { + temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); + if ((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { + temp_r28->state = 1; + } + } + } + } + if (spB8.y <= spC4.y) { + spB8.y = spC4.y; + BoardPlayerMotionShiftSet(player, 5, 0, 4, 0); + } + BoardPlayerPosSetV(player, &spB8); + HuPrcVSleep(); + } + BoardCameraQuakeSet(30, 500.0f); + omVibrate(0, 12, 4, 2); + omVibrate(1, 12, 4, 2); + omVibrate(2, 12, 4, 2); + omVibrate(3, 12, 4, 2); + BoardPlayerIdleSet(player); + HuPrcSleep(30); } static s32 MegaExecJump(s32 player, s32 space) { - float temp_f30; - float temp_f29; - MegaSquishWork *temp_r31; - s32 temp_r29; - MegaSquishWork *temp_r28; - s32 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - omObjData *temp_r23; - s32 spD0[4]; - Vec spC4; - Vec spB8; - Vec spAC; - Vec spA0; - float sp90[2]; - spD0[0] = spD0[1] = spD0[2] = -1; - for(temp_r26=temp_r29=0; temp_r29<4; temp_r29++) { - if(temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { - spD0[temp_r26++] = temp_r29; - BoardPlayerPosGet(temp_r29, &spA0); - temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); - megaSquishObj[temp_r29] = temp_r23; - temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); - temp_r31->kill = 0; - temp_r31->player = temp_r29; - temp_r31->gain_player = player; - temp_r31->state = 0; - temp_r31->hide_time = 0; - temp_r31->loss = 0; - temp_r31->disappear_len = 3; - temp_r31->disappear_time = 0; - if(BoardPlayerCoinsGet(temp_r31->player) <= 0) { - temp_r31->no_coinchg = 1; - } else { - temp_r31->no_coinchg = 0; - } - if(BoardPlayerCoinsGet(temp_r31->player) >= 30) { - temp_r31->loss = 30; - } else { - temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); - } - } - } - if(temp_r26 == 0) { - return 0; - } - BoardPlayerPosGet(player, &spB8); - BoardSpacePosGet(0, space, &spC4); - sp90[0] = spB8.y; - if(spC4.y > spB8.y) { - spB8.y += 300.0f; - } else { - spB8.y += 200.0f; - } - VECSubtract(&spC4, &spB8, &spAC); - spAC.x /= 60.0f; - spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0-(180.0*(atan2(spAC.z, spAC.x)/M_PI))); - BoardPlayerIdleSet(player); - HuPrcSleep(10); - sp90[1] = BoardVecDistXZCalc(&spC4, &spB8); - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 8.0f, 0); - BoardModelMotionSpeedSet(suitMdl, 2.0f); - HuPrcSleep(8); - HuAudFXPlay(809); - temp_r24 = 0; - temp_r25 = 0; - for(temp_f30=0; temp_f30<60.0f; temp_f30++) { - temp_f29 = spB8.y; - spB8.x += spAC.x; - spB8.z += spAC.z; - spB8.y += 10.0f + (0.9f*(-0.020416668f * temp_f30 * temp_f30)); - if(temp_f29 > spB8.y) { - temp_r25 = 1; - } - if(spB8.y <= 200.0f+spC4.y && temp_r25) { - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(megaSquishObj[temp_r27]) { - temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); - if((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { - temp_r28->state = 1; - } - } - } - } - if(spB8.y <= spC4.y) { - spB8.y = spC4.y; - if(!temp_r24) { - BoardPlayerIdleSet(player); - HuAudFXPlay(810); - temp_r24 = 1; - } - - } - BoardPlayerPosSetV(player, &spB8); - HuPrcVSleep(); - } - BoardCameraQuakeSet(30, 500.0f); - omVibrate(0, 12, 4, 2); - omVibrate(1, 12, 4, 2); - omVibrate(2, 12, 4, 2); - omVibrate(3, 12, 4, 2); - BoardPlayerIdleSet(player); - HuPrcSleep(30); + float temp_f30; + float temp_f29; + MegaSquishWork *temp_r31; + s32 temp_r29; + MegaSquishWork *temp_r28; + s32 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + omObjData *temp_r23; + s32 spD0[4]; + Vec spC4; + Vec spB8; + Vec spAC; + Vec spA0; + float sp90[2]; + spD0[0] = spD0[1] = spD0[2] = -1; + for (temp_r26 = temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { + spD0[temp_r26++] = temp_r29; + BoardPlayerPosGet(temp_r29, &spA0); + temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); + megaSquishObj[temp_r29] = temp_r23; + temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); + temp_r31->kill = 0; + temp_r31->player = temp_r29; + temp_r31->gain_player = player; + temp_r31->state = 0; + temp_r31->hide_time = 0; + temp_r31->loss = 0; + temp_r31->disappear_len = 3; + temp_r31->disappear_time = 0; + if (BoardPlayerCoinsGet(temp_r31->player) <= 0) { + temp_r31->no_coinchg = 1; + } + else { + temp_r31->no_coinchg = 0; + } + if (BoardPlayerCoinsGet(temp_r31->player) >= 30) { + temp_r31->loss = 30; + } + else { + temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); + } + } + } + if (temp_r26 == 0) { + return 0; + } + BoardPlayerPosGet(player, &spB8); + BoardSpacePosGet(0, space, &spC4); + sp90[0] = spB8.y; + if (spC4.y > spB8.y) { + spB8.y += 300.0f; + } + else { + spB8.y += 200.0f; + } + VECSubtract(&spC4, &spB8, &spAC); + spAC.x /= 60.0f; + spAC.z /= 60.0f; + BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + BoardPlayerIdleSet(player); + HuPrcSleep(10); + sp90[1] = BoardVecDistXZCalc(&spC4, &spB8); + BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 8.0f, 0); + BoardModelMotionSpeedSet(suitMdl, 2.0f); + HuPrcSleep(8); + HuAudFXPlay(809); + temp_r24 = 0; + temp_r25 = 0; + for (temp_f30 = 0; temp_f30 < 60.0f; temp_f30++) { + temp_f29 = spB8.y; + spB8.x += spAC.x; + spB8.z += spAC.z; + spB8.y += 10.0f + (0.9f * (-0.020416668f * temp_f30 * temp_f30)); + if (temp_f29 > spB8.y) { + temp_r25 = 1; + } + if (spB8.y <= 200.0f + spC4.y && temp_r25) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (megaSquishObj[temp_r27]) { + temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); + if ((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { + temp_r28->state = 1; + } + } + } + } + if (spB8.y <= spC4.y) { + spB8.y = spC4.y; + if (!temp_r24) { + BoardPlayerIdleSet(player); + HuAudFXPlay(810); + temp_r24 = 1; + } + } + BoardPlayerPosSetV(player, &spB8); + HuPrcVSleep(); + } + BoardCameraQuakeSet(30, 500.0f); + omVibrate(0, 12, 4, 2); + omVibrate(1, 12, 4, 2); + omVibrate(2, 12, 4, 2); + omVibrate(3, 12, 4, 2); + BoardPlayerIdleSet(player); + HuPrcSleep(30); } -void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) { - HsfMaterial* var_r29; +void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) +{ + HsfMaterial *var_r29; s32 var_r24; s32 var_r25; u32 var_r27; - HsfAttribute* temp_r26; - char** temp_r28; - HsfData* hsfData; - HsfMaterial* material; + HsfAttribute *temp_r26; + char **temp_r28; + HsfData *hsfData; + HsfMaterial *material; ModelData *model; s16 modelId = BoardModelIDGet(BoardPlayerModelGet(arg0)); model = &Hu3DData[modelId]; @@ -2849,9 +3052,9 @@ void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) { (void)temp_r28; for (var_r25 = 0; var_r25 < hsfData->materialCnt; var_r25++, material++, var_r29++) { var_r24 = 1; - + for (var_r27 = 0; var_r27 < material->numAttrs; var_r27++) { - temp_r26 = &hsfData->attribute[(s32) material->attrs[var_r27]]; + temp_r26 = &hsfData->attribute[(s32)material->attrs[var_r27]]; if ((strcmp(temp_r28[0], temp_r26->bitmap->name) == 0) || (strcmp(temp_r28[1], temp_r26->bitmap->name) == 0)) { var_r24 = 0; } @@ -2861,29 +3064,32 @@ void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) { material->color[0] *= 0.0f; material->color[1] *= 0.0f; material->color[2] *= 0.0f; - } else { + } + else { material->color[0] = var_r29->color[0]; material->color[1] = var_r29->color[1]; material->color[2] = var_r29->color[2]; } } } - } else { + } + else { memcpy(hsfData->material, var_r29, hsfData->materialCnt * 0x3C); } DCStoreRange(hsfData->material, hsfData->materialCnt * 0x3C); } -void BoardPlayerCopyMat(s32 arg0) { +void BoardPlayerCopyMat(s32 arg0) +{ s16 modelID; ModelData *model; - void* temp_r3; - HsfData* temp_r31; + void *temp_r3; + HsfData *temp_r31; modelID = BoardModelIDGet(BoardPlayerModelGet(arg0)); model = &Hu3DData[modelID]; temp_r31 = model->hsfData; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r31->materialCnt * 0x3C, 0x10000000U); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r31->materialCnt * 0x3C, MEMORY_DEFAULT_NUM); memcpy(temp_r3, temp_r31->material, temp_r31->materialCnt * 0x3C); playerMatCopy[arg0] = temp_r3; } diff --git a/src/game/board/roll.c b/src/game/board/roll.c index 28866389..c58d40e1 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -110,16 +110,16 @@ static HsfanimStruct00 diceEffParam = { }; static s32 diceDigitMdlTbl[10] = { - 0x0007000C, - 0x0007000D, - 0x0007000E, - 0x0007000F, - 0x00070010, - 0x00070011, - 0x00070012, - 0x00070013, - 0x00070014, - 0x00070015 + DATA_MAKE_NUM(DATADIR_BOARD, 0x0C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x10), + DATA_MAKE_NUM(DATADIR_BOARD, 0x11), + DATA_MAKE_NUM(DATADIR_BOARD, 0x12), + DATA_MAKE_NUM(DATADIR_BOARD, 0x13), + DATA_MAKE_NUM(DATADIR_BOARD, 0x14), + DATA_MAKE_NUM(DATADIR_BOARD, 0x15) }; s32 BoardRollExec(s32 arg0) { @@ -226,12 +226,12 @@ static void RollMain(void) { var_r27 += BoardPlayerItemCount(temp_r25); } if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) { - var_r29 = 0x90004; + var_r29 = MAKE_MESSID(0x09, 0x04); } else { - var_r29 = 0x90002; + var_r29 = MAKE_MESSID(0x09, 0x02); } if (inputTimer != 0) { - var_r29 = 0x300025; + var_r29 = MAKE_MESSID(0x30, 0x25); } HuWinMesMaxSizeGet(1, sp8, var_r29); switch (GWGameStat.language) { @@ -313,10 +313,10 @@ static void DiceCreate(s32 arg0) { DiceWork *temp_r30; s32 sp8; s32 spC[4] = { - 0x00070018, - 0x00070019, - 0x0007001A, - 0x0007001B + DATA_MAKE_NUM(DATADIR_BOARD, 0x18), + DATA_MAKE_NUM(DATADIR_BOARD, 0x19), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1B) }; sp8 = 0; @@ -575,7 +575,7 @@ s16 BoardDiceEffectCreate(void) { AnimData *temp_r29; void *temp_r28; - temp_r28 = HuDataSelHeapReadNum(0x7006B, MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 0x6B), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r29 = HuSprAnimRead(temp_r28); temp_r31 = Hu3DParManCreate(temp_r29, 0x64, &diceEffParam); Hu3DParManAttrSet(temp_r31, 0x108); diff --git a/src/game/board/shop.c b/src/game/board/shop.c index 52a018e5..33a41420 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -115,15 +115,15 @@ static s8 defaultItemTbl[5] = { }; static s32 hostMessTbl[] = { - 0x000F0004, - 0x000F0007, - 0x000F000A, - 0x000F000D, - 0x000F0010, - 0x000F0013, - 0x000F0004, - 0x000F0024, - 0x000F0024 + MAKE_MESSID(0x0F, 0x04), + MAKE_MESSID(0x0F, 0x07), + MAKE_MESSID(0x0F, 0x0A), + MAKE_MESSID(0x0F, 0x0D), + MAKE_MESSID(0x0F, 0x10), + MAKE_MESSID(0x0F, 0x13), + MAKE_MESSID(0x0F, 0x04), + MAKE_MESSID(0x0F, 0x24), + MAKE_MESSID(0x0F, 0x24) }; static s8 itemPriceTbl[] = { @@ -134,15 +134,15 @@ static s8 itemPriceTbl[] = { }; static s32 shopMotTbl[9][3] = { - { 0x00020001, 0x00020003, 0x00020004 }, - { 0x00020009, 0x0002000B, 0x0002000C }, - { 0x0002000E, 0x00020010, 0x00020011 }, - { 0x00020018, 0x0002001A, 0x0002001B }, - { 0x0002001D, 0x0002001F, 0x00020020 }, - { 0x00020022, 0x00020024, 0x00020025 }, - { 0x00020009, 0x0002000B, 0x0002000C }, - { 0x0002002A, 0x0002002C, 0x0002002D }, - { 0x0002002A, 0x0002002C, 0x0002002D } + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x0E), DATA_MAKE_NUM(DATADIR_BGUEST, 0x10), DATA_MAKE_NUM(DATADIR_BGUEST, 0x11) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x1D), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1F), DATA_MAKE_NUM(DATADIR_BGUEST, 0x20) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x22), DATA_MAKE_NUM(DATADIR_BGUEST, 0x24), DATA_MAKE_NUM(DATADIR_BGUEST, 0x25) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x2A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2C), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2D) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x2A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2C), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2D) } }; void BoardShopHostSet(s16 arg0) { @@ -234,13 +234,13 @@ static void ExecShop(void) { BoardPlayerIdleSet(shopPlayer); var_r30 = 0; if (BoardPlayerCoinsGet(shopPlayer) < 5) { - var_r30 = 0xF0003; + var_r30 = MAKE_MESSID(15, 3); } if (BoardPlayerItemCount(shopPlayer) == 3) { - var_r30 = 0xF0002; + var_r30 = MAKE_MESSID(15, 2); } if (GWSystem.turn == GWSystem.max_turn) { - var_r30 = 0xF0001; + var_r30 = MAKE_MESSID(15, 1); } if (var_r30 != 0) { BoardWinCreate(0, var_r30, -1); @@ -307,7 +307,7 @@ static void ExecShop(void) { BoardWinCreate(1, hostMessTbl[temp_r27] + 2, temp_r26); BoardWinPriSet(1000); for (i = 0; i < 5; i++) { - var_r30 = activeItemTbl[i] + 0xF0000; + var_r30 = MAKE_MESSID(15, activeItemTbl[i]); var_r30 += 0x16; BoardWinInsertMesSet(var_r30, i); var_r29 = itemPriceTbl[activeItemTbl[i]]; @@ -1003,7 +1003,7 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) { if (GWPlayer[arg0].com) { var_r31->unk01 = GWMessDelayGet(); } - BoardSpriteCreate(0x70055, 0x3DE, NULL, &spC); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x55), 0x3DE, NULL, &spC); HuSprGrpMemberSet(var_r31->unk06, 0, spC); HuSprAttrSet(var_r31->unk06, 0, 8); HuSprPosSet(var_r31->unk06, 0, temp_r30->trans.x, temp_r30->trans.y); diff --git a/src/game/board/start.c b/src/game/board/start.c index b07ae07a..2d8072a6 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -90,21 +90,21 @@ static s32 hitFX[4] = { }; static s32 startMesTbl[9][5] = { - { 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C }, - { 0x00150002, 0x00150008, 0x0015000E, 0x00150017, 0x0015001D }, - { 0x00150003, 0x00150009, 0x0015000F, 0x00150018, 0x0015001E }, - { 0x00150004, 0x0015000A, 0x00150010, 0x00150019, 0x0015001F }, - { 0x00150005, 0x0015000B, 0x00150011, 0x0015001A, 0x00150020 }, - { 0x00150006, 0x0015000C, 0x00150012, 0x0015001B, 0x00150021 }, - { 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C }, - { 0x00150033, 0x00150034, 0x00150035, 0x00150036, 0x00150037 }, - { 0x0015003B, 0x0015003C, 0x0015003D, 0x0015003E, 0x0015003F } + { MAKE_MESSID(0x15, 0x01), MAKE_MESSID(0x15, 0x07), MAKE_MESSID(0x15, 0x0D), MAKE_MESSID(0x15, 0x16), MAKE_MESSID(0x15, 0x1C) }, + { MAKE_MESSID(0x15, 0x02), MAKE_MESSID(0x15, 0x08), MAKE_MESSID(0x15, 0x0E), MAKE_MESSID(0x15, 0x17), MAKE_MESSID(0x15, 0x1D) }, + { MAKE_MESSID(0x15, 0x03), MAKE_MESSID(0x15, 0x09), MAKE_MESSID(0x15, 0x0F), MAKE_MESSID(0x15, 0x18), MAKE_MESSID(0x15, 0x1E) }, + { MAKE_MESSID(0x15, 0x04), MAKE_MESSID(0x15, 0x0A), MAKE_MESSID(0x15, 0x10), MAKE_MESSID(0x15, 0x19), MAKE_MESSID(0x15, 0x1F) }, + { MAKE_MESSID(0x15, 0x05), MAKE_MESSID(0x15, 0x0B), MAKE_MESSID(0x15, 0x11), MAKE_MESSID(0x15, 0x1A), MAKE_MESSID(0x15, 0x20) }, + { MAKE_MESSID(0x15, 0x06), MAKE_MESSID(0x15, 0x0C), MAKE_MESSID(0x15, 0x12), MAKE_MESSID(0x15, 0x1B), MAKE_MESSID(0x15, 0x21) }, + { MAKE_MESSID(0x15, 0x01), MAKE_MESSID(0x15, 0x07), MAKE_MESSID(0x15, 0x0D), MAKE_MESSID(0x15, 0x16), MAKE_MESSID(0x15, 0x1C) }, + { MAKE_MESSID(0x15, 0x33), MAKE_MESSID(0x15, 0x34), MAKE_MESSID(0x15, 0x35), MAKE_MESSID(0x15, 0x36), MAKE_MESSID(0x15, 0x37) }, + { MAKE_MESSID(0x15, 0x3B), MAKE_MESSID(0x15, 0x3C), MAKE_MESSID(0x15, 0x3D), MAKE_MESSID(0x15, 0x3E), MAKE_MESSID(0x15, 0x3F) } }; static s32 logoSprTbl[] = { - 0x00070057, 0x00070058, 0x00070059, - 0x0007005A, 0x0007005B, 0x0007005C, - 0x00070057, 0x0007005D, 0x0007005E + DATA_MAKE_NUM(DATADIR_BOARD, 0x57), DATA_MAKE_NUM(DATADIR_BOARD, 0x58), DATA_MAKE_NUM(DATADIR_BOARD, 0x59), + DATA_MAKE_NUM(DATADIR_BOARD, 0x5A), DATA_MAKE_NUM(DATADIR_BOARD, 0x5B), DATA_MAKE_NUM(DATADIR_BOARD, 0x5C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x57), DATA_MAKE_NUM(DATADIR_BOARD, 0x5D), DATA_MAKE_NUM(DATADIR_BOARD, 0x5E) }; void BoardStartExec(void) { @@ -321,7 +321,7 @@ static void CreatePlayerStart(void) { var_r30->unk06 = 2; var_r30->unk04 = 1; var_r30->unk0E = 0x3C; - var_r30->unk08 = BoardModelCreate(0x70018, NULL, 0); + var_r30->unk08 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x18), NULL, 0); BoardModelVisibilitySet(var_r30->unk08, 0); BoardModelMotionSpeedSet(var_r30->unk08, 0.0f); OSs8tof32(&i, &temp_f30); @@ -460,15 +460,15 @@ static void PlayerDiceFall(omObjData *arg0, PlayerStartWork *arg1) { } static s32 digitMdlTbl[9] = { - 0x0007000D, 0x0007000E, 0x0007000F, - 0x00070010, 0x00070011, 0x00070012, - 0x00070013, 0x00070014, 0x00070015 + DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x10), DATA_MAKE_NUM(DATADIR_BOARD, 0x11), DATA_MAKE_NUM(DATADIR_BOARD, 0x12), + DATA_MAKE_NUM(DATADIR_BOARD, 0x13), DATA_MAKE_NUM(DATADIR_BOARD, 0x14), DATA_MAKE_NUM(DATADIR_BOARD, 0x15) }; static s32 playerOrderMesTbl[3] = { - 0x00150013, - 0x00150014, - 0x00150015 + MAKE_MESSID(0x15, 0x13), + MAKE_MESSID(0x15, 0x14), + MAKE_MESSID(0x15, 0x15) }; static void PlayerDiceRoll(omObjData *arg0, PlayerStartWork *arg1) { @@ -787,7 +787,7 @@ static void InitCamera(void) { camStartFocusPos.x -= 150.0f; break; } - camFocus = BoardModelCreate(0x7000A, NULL, 0); + camFocus = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 0); BoardModelVisibilitySet(camFocus, 0); BoardModelPosSetV(camFocus, &camStartFocusPos); if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { @@ -838,7 +838,7 @@ static void CreateTapWin(void) { s32 var_r31; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r31 = 0x120014; + var_r31 = MAKE_MESSID(0x12, 0x14); HuWinMesMaxSizeGet(1, sp8, var_r31); var_f31 = -10000.0f; var_f30 = 368.0f; diff --git a/src/game/board/ui.c b/src/game/board/ui.c index 6fc886b5..3e472858 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -164,17 +164,17 @@ static s16 yourTurnSprGrp = -1; static UnkUiStatusStruct uiStatus[4] = { 0 }; static s32 statusSprTbl[11] = { - 0x00070027, - 0x00070026, - 0x00070029, - 0x00070028, - 0x00070028, - 0x00070028, - 0x0007002D, - 0x00070028, - 0x00070028, - 0x00070028, - 0x0007002C + DATA_MAKE_NUM(DATADIR_BOARD, 0x27), + DATA_MAKE_NUM(DATADIR_BOARD, 0x26), + DATA_MAKE_NUM(DATADIR_BOARD, 0x29), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2C) }; static s16 statusSprPrioTbl[12] = { @@ -231,20 +231,20 @@ static float statusItemPosTbl[6][2] = { }; static s32 itemMdlTbl[14] = { - 0x00070083, - 0x00070084, - 0x00070085, - 0x00070086, - 0x00070087, - 0x00070088, - 0x00070089, - 0x0007008A, - 0x0007008B, - 0x0007008C, - 0x0007008D, - 0x0007008E, - 0x0007008F, - 0x00070090 + DATA_MAKE_NUM(DATADIR_BOARD, 0x83), + DATA_MAKE_NUM(DATADIR_BOARD, 0x84), + DATA_MAKE_NUM(DATADIR_BOARD, 0x85), + DATA_MAKE_NUM(DATADIR_BOARD, 0x86), + DATA_MAKE_NUM(DATADIR_BOARD, 0x87), + DATA_MAKE_NUM(DATADIR_BOARD, 0x88), + DATA_MAKE_NUM(DATADIR_BOARD, 0x89), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x90) }; static Vec teamItemStatusPosTbl[2] = { @@ -254,20 +254,20 @@ static Vec teamItemStatusPosTbl[2] = { s32 BoardItemModelGet(s32 arg0) { s32 sp8[14] = { - 0x0007006D, - 0x0007006E, - 0x0007006F, - 0x00070070, - 0x00070071, - 0x00070072, - 0x00070073, - 0x00070074, - 0x00070076, - 0x00070077, - 0x00070078, - 0x00070079, - 0x0007007A, - 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73), + DATA_MAKE_NUM(DATADIR_BOARD, 0x74), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7B) }; return sp8[arg0]; @@ -275,21 +275,21 @@ s32 BoardItemModelGet(s32 arg0) { s32 BoardItemNameGet(s32 arg0) { s32 sp8[15] = { - 0x00120000, - 0x00120001, - 0x00120002, - 0x00120003, - 0x00120004, - 0x00120005, - 0x00120006, - 0x00120007, - 0x00120008, - 0x00120009, - 0x0012000A, - 0x0012000B, - 0x0012000C, - 0x0012000D, - 0x0012000E + DATA_MAKE_NUM(DATADIR_EFFECT, 0x00), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x04), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x05), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x06), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x08), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x09), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0A), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0B), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0C), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0D), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0E) }; return sp8[arg0]; @@ -427,10 +427,10 @@ void BoardStatusHammerCreate(s32 arg0) { case 0: return; case 2: - var_r30 = 0x70093; + var_r30 = DATA_MAKE_NUM(DATADIR_BOARD, 0x93); break; case 1: - var_r30 = 0x70092; + var_r30 = DATA_MAKE_NUM(DATADIR_BOARD, 0x92); break; } if (!temp_r31->unk00_bit6) { @@ -524,14 +524,14 @@ static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) { s32 temp_r27; s16 temp_r26; s32 spC[] = { - 0x0007002E, - 0x0007002F, - 0x00070030, - 0x00070031, - 0x00070032, - 0x00070033, - 0x00070034, - 0x00070035 + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x30), + DATA_MAKE_NUM(DATADIR_BOARD, 0x31), + DATA_MAKE_NUM(DATADIR_BOARD, 0x32), + DATA_MAKE_NUM(DATADIR_BOARD, 0x33), + DATA_MAKE_NUM(DATADIR_BOARD, 0x34), + DATA_MAKE_NUM(DATADIR_BOARD, 0x35) }; s32 i; @@ -559,14 +559,14 @@ static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) { var_f31 = statusSprPosTbl[11][0]; var_f30 = statusSprPosTbl[11][1]; HuSprPosSet(arg1->unk02, 11, var_f31, var_f30); - BoardSpriteCreate(0x7002A, 0x5DC, NULL, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x2A), 0x5DC, NULL, &sp8); HuSprGrpMemberSet(arg1->unk02, 0xC, sp8); var_f31 = statusSprPosTbl[12][0]; var_f30 = statusSprPosTbl[12][1]; HuSprPosSet(arg1->unk02, 12, var_f31, var_f30); HuSprAttrSet(arg1->unk02, 0xC, 8); for (i = 0; i < 3; i++) { - BoardSpriteCreate(0x70091, 0x5DC, NULL, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x91), 0x5DC, NULL, &sp8); HuSprGrpMemberSet(arg1->unk02, i + 0xD, sp8); HuSprAttrSet(arg1->unk02, i + 0xD, 1); HuSprAttrSet(arg1->unk02, i + 0xD, 8); @@ -704,14 +704,14 @@ void BoardPickerCreate(s32 arg0, s8 arg1, void *arg2, s8 arg3) { s32 temp_r28; s16 sp12; s32 sp14[] = { - 0x0007001E, - 0x0007001F, - 0x00070020, - 0x00070021, - 0x00070022, - 0x00070023, - 0x00070024, - 0x00070025 + DATA_MAKE_NUM(DATADIR_BOARD, 0x1E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x20), + DATA_MAKE_NUM(DATADIR_BOARD, 0x21), + DATA_MAKE_NUM(DATADIR_BOARD, 0x22), + DATA_MAKE_NUM(DATADIR_BOARD, 0x23), + DATA_MAKE_NUM(DATADIR_BOARD, 0x24), + DATA_MAKE_NUM(DATADIR_BOARD, 0x25) }; temp_r28 = GWPlayer[arg0].character; @@ -899,14 +899,14 @@ void BoardYourTurnExec(s32 arg0) { s32 temp_r29; UnkUiWork02 *temp_r31; s32 sp8[] = { - 0x00070043, - 0x00070044, - 0x00070045, - 0x00070046, - 0x00070047, - 0x00070048, - 0x00070049, - 0x0007004A + DATA_MAKE_NUM(DATADIR_BOARD, 0x43), + DATA_MAKE_NUM(DATADIR_BOARD, 0x44), + DATA_MAKE_NUM(DATADIR_BOARD, 0x45), + DATA_MAKE_NUM(DATADIR_BOARD, 0x46), + DATA_MAKE_NUM(DATADIR_BOARD, 0x47), + DATA_MAKE_NUM(DATADIR_BOARD, 0x48), + DATA_MAKE_NUM(DATADIR_BOARD, 0x49), + DATA_MAKE_NUM(DATADIR_BOARD, 0x4A) }; temp_r29 = GWPlayer[arg0].character; @@ -1086,10 +1086,10 @@ static void ItemUseProc(void) { itemTeamF = 0; BoardFilterFadeOut(0x1E); if (itemUsed == 0xA) { - var_r27 = 0x40000; + var_r27 = DATADIR_BKOOPASUIT; } if (itemUsed == 0xB) { - var_r27 = 0x90000; + var_r27 = DATADIR_BYOKODORI; } if (var_r27 != -1) { var_r24 = BoardDataDirReadAsync(var_r27); @@ -1177,8 +1177,8 @@ static void DestroyItemUse(void) { for (i = 0; i < 4; i++) { GWPlayer[i].show_next = 1; } - HuDataDirClose(0x40000); - HuDataDirClose(0x90000); + HuDataDirClose(DATADIR_BKOOPASUIT); + HuDataDirClose(DATADIR_BYOKODORI); itemUseProc = NULL; } @@ -1824,11 +1824,11 @@ static void CreateItemWindow(s32 arg0, s32 arg1) { HuWinCenterPosSet(temp_r31->unk12[i], 0.0f, 48.0f); HuWinMesSpeedSet(temp_r31->unk12[i], 0); HuWinMesSet(temp_r31->unk12[i], BoardItemNameGet(temp_r28)); - HuWinMesMaxSizeGet(1, sp8, temp_r28 + 0x8000E); + HuWinMesMaxSizeGet(1, sp8, temp_r28 + MAKE_MESSID(0x08, 0x0E)); temp_r31->unk1E[i] = HuWinCreate(temp_r31->unk2C[i].x, temp_r31->unk2C[i].y - (-94.0f), sp8[0], sp8[1], 0); HuWinDrawNoSet(temp_r31->unk1E[i], 0x40); HuWinMesSpeedSet(temp_r31->unk1E[i], 0); - HuWinMesSet(temp_r31->unk1E[i], temp_r28 + 0x8000E); + HuWinMesSet(temp_r31->unk1E[i], temp_r28 + MAKE_MESSID(0x08, 0x0E)); sp10.x = temp_r31->unk2C[i].x + 48.0f; sp10.y = temp_r31->unk2C[i].y; sp10.z = 400.0f; @@ -1964,9 +1964,9 @@ static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) { break; } if (arg1 != 0) { - var_r30 = 0x10001A; + var_r30 = MAKE_MESSID(0x10, 0x1A); } else { - var_r30 = 0x10001B; + var_r30 = MAKE_MESSID(0x10, 0x1B); } HuWinMesMaxSizeGet(1, spC, var_r30); var_f30 = -10000.0f; diff --git a/src/game/board/view.c b/src/game/board/view.c index a22e11d9..6a0859c6 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -356,7 +356,7 @@ static void SetTargetView(void) { Vec sp8; BoardCameraBackup(); - focusMdl = BoardModelCreate(0x7000A, 0, 0); + focusMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), 0, 0); BoardModelVisibilitySet(focusMdl, 0); BoardModelPosSetV(focusMdl, &focusPos); BoardCameraNearFarSet(10.0f, 30000.0f); @@ -399,10 +399,10 @@ static void CreateButtonWin(void) { s32 var_r31; if (viewControls != 2) { - var_r31 = 0x90005; + var_r31 = MAKE_MESSID(0x09, 0x05); var_f31 = 286.0f; } else { - var_r31 = 0x10004D; + var_r31 = MAKE_MESSID(0x10, 0x4D); var_f31 = 328.0f; } HuWinMesMaxSizeGet(1, sp8, var_r31); @@ -429,14 +429,14 @@ static void InitOverheadView(void) { float *temp_r30; s32 i; s32 sp1C[8] = { - 0x0007002E, - 0x0007002F, - 0x00070030, - 0x00070031, - 0x00070032, - 0x00070033, - 0x00070034, - 0x00070035 + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x30), + DATA_MAKE_NUM(DATADIR_BOARD, 0x31), + DATA_MAKE_NUM(DATADIR_BOARD, 0x32), + DATA_MAKE_NUM(DATADIR_BOARD, 0x33), + DATA_MAKE_NUM(DATADIR_BOARD, 0x34), + DATA_MAKE_NUM(DATADIR_BOARD, 0x35) }; temp_r26 = omAddObjEx(boardObjMan, 0x1000, 0, 0, -1, UpdateOverheadView); @@ -459,13 +459,13 @@ static void InitOverheadView(void) { } else { GWCharColorGet(GWPlayer[i].character, &spA); } - BoardSpriteCreate(0x7006C, 0x1770, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x6C), 0x1770, 0, &sp8); HuSprGrpMemberSet(temp_r31->unk02, i + 4, sp8); HuSprPosSet(temp_r31->unk02, i + 4, temp_r30[0], temp_r30[1]); HuSprColorSet(temp_r31->unk02, i + 4, spA.r, spA.g, spA.b); } temp_r30 = overhead2DPos[4]; - temp_r31->unk04 = BoardModelCreate(0x70008, NULL, 0); + temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x08), NULL, 0); BoardModelMotionSpeedSet(temp_r31->unk04, 0.0f); BoardModelLayerSet(temp_r31->unk04, 6); BoardModelScaleSet(temp_r31->unk04, 0.4f, 0.4f, 0.4f); @@ -476,7 +476,7 @@ static void InitOverheadView(void) { spA.r = 0xF8; spA.g = 0xF0; spA.b = 0x80; - BoardSpriteCreate(0x7006C, 0x1770, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x6C), 0x1770, 0, &sp8); HuSprGrpMemberSet(temp_r31->unk02, 8, sp8); HuSprPosSet(temp_r31->unk02, 8, temp_r30[0], temp_r30[1]); HuSprColorSet(temp_r31->unk02, 8, spA.r, spA.g, spA.b); diff --git a/src/game/chrman.c b/src/game/chrman.c index c3d6f78e..9e953bea 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -100,122 +100,52 @@ static u8 lbl_801D3608[8] = { 0x0D, 0x00, 0x17, 0x69, 0x0D, 0x1E, 0x1D, 0x14 }; static u8 lbl_801D3610[8] = { 0x15, 0x1E, 0x16, 0x54, 0x0F, 0x62, 0x39, 0x0A }; static EffectData effectDataTbl[8] = { - { 0x00120006, 0x000A, 0x0000, 0x00000002 }, - { 0x00120005, 0x000A, 0x0000, 0x00000002 }, - { 0x00120002, 0x0096, 0x0001, 0x00000000 }, - { 0x00120003, 0x0046, 0x0000, 0x00000000 }, - { 0x00120000, 0x012C, 0x0001, 0x00000000 }, - { 0x00120001, 0x012C, 0x0001, 0x00000000 }, - { 0x00120004, 0x00C8, 0x0001, 0x00000000 }, - { 0x00120007, 0x000C, 0x0000, 0x00000002 } + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x06), 0x000A, 0x0000, 0x00000002 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x05), 0x000A, 0x0000, 0x00000002 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), 0x0096, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), 0x0046, 0x0000, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x00), 0x012C, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), 0x012C, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x04), 0x00C8, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), 0x000C, 0x0000, 0x00000002 }, }; static s32 charDirTbl[8][3] = { - { 0x005D0000, 0x005E0000, 0x005F0000 }, - { 0x00180000, 0x00190000, 0x001A0000 }, - { 0x006B0000, 0x006C0000, 0x006D0000 }, - { 0x00880000, 0x00890000, 0x008A0000 }, - { 0x00830000, 0x00840000, 0x00850000 }, - { 0x000F0000, 0x00100000, 0x00110000 }, - { 0x000B0000, 0x000C0000, 0x000D0000 }, - { 0x007F0000, 0x00800000, 0x00810000 } + { DATADIR_MARIOMDL0, DATADIR_MARIOMDL1, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00) }, + { DATADIR_LUIGIMDL0, DATADIR_LUIGIMDL1, DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00) }, + { DATADIR_PEACHMDL0, DATADIR_PEACHMDL1, DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00) }, + { DATADIR_YOSHIMDL0, DATADIR_YOSHIMDL1, DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00) }, + { DATADIR_WARIOMDL0, DATADIR_WARIOMDL1, DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00) }, + { DATADIR_DONKEYMDL0, DATADIR_DONKEYMDL1, DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00) }, + { DATADIR_DAISYMDL0, DATADIR_DAISYMDL1, DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00) }, + { DATADIR_WALUIGIMDL0, DATADIR_WALUIGIMDL1, DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00) }, }; -static EffectParamData effectDustParam = { - 0, - 0x80, 0x80, 0x80, 0xFF, - 0x40, 0x20, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - 1.0f, - -5.0f, - 0.02f -}; +static EffectParamData effectDustParam + = { 0, 0x80, 0x80, 0x80, 0xFF, 0x40, 0x20, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, 1.0f, -5.0f, 0.02f }; -static EffectParamData effectDotParam = { - 0, - 0xFF, 0x40, 0x40, 0x80, - 0xFF, 0x40, 0x40, 0x80, - { 0.0f, 0.0f, 0.0f }, - 0.0f, 0.0f, 0.0f, - 0.0f, - 0x00000000, - -5.0f, - 0.0f, - 0.0f -}; +static EffectParamData effectDotParam + = { 0, 0xFF, 0x40, 0x40, 0x80, 0xFF, 0x40, 0x40, 0x80, { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f, 0.0f, 0.0f, 0x00000000, -5.0f, 0.0f, 0.0f }; -static EffectParamData effectStarParam = { - 0, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, - { 0.0f, 0.0f, 0.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - -0.5f, - -10.0f, - 0.0f -}; +static EffectParamData effectStarParam + = { 0, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, { 0.0f, 0.0f, 0.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, -0.5f, -10.0f, 0.0f }; -static EffectParamData effectWarnParam = { - 0, - 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, - { 0.0f, 20.0f, 0.0f }, - 0.95f, 0.85f, 0.95f, - 0.0f, - 0x00000000, - 1.0f, - -5.0f, - 0.0f -}; +static EffectParamData effectWarnParam + = { 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, { 0.0f, 20.0f, 0.0f }, 0.95f, 0.85f, 0.95f, 0.0f, 0x00000000, 1.0f, -5.0f, 0.0f }; -static EffectParamData effectSmokeParam = { - 0, - 0x80, 0x20, 0x20, 0xFF, - 0x00, 0x00, 0x00, 0xFF, - { 0.0f, 10.0f, 0.0f }, - 1.0f, 0.95f, 1.0f, - 0.0f, - 0x00000000, - 5.0f, - -13.0f, - 0.1f -}; +static EffectParamData effectSmokeParam + = { 0, 0x80, 0x20, 0x20, 0xFF, 0x00, 0x00, 0x00, 0xFF, { 0.0f, 10.0f, 0.0f }, 1.0f, 0.95f, 1.0f, 0.0f, 0x00000000, 5.0f, -13.0f, 0.1f }; -static s8 lbl_801309A0[32] = { - 10, 32, -1, -1, - 20, 40, -1, -1, - 12, 37, -1, -1, - 4, 25, -1, -1, - 5, 30, -1, -1, - 16, 1, 24, 39, - 23, 50, -1, -1, - 19, 39, -1, -1 -}; +static s8 lbl_801309A0[32] + = { 10, 32, -1, -1, 20, 40, -1, -1, 12, 37, -1, -1, 4, 25, -1, -1, 5, 30, -1, -1, 16, 1, 24, 39, 23, 50, -1, -1, 19, 39, -1, -1 }; -static s8 lbl_801309C0[32] = { - 15, 29, -1, -1, - 5, 19, -1, -1, - 5, 22, -1, -1, - 12, 28, -1, -1, - 18, 35, -1, -1, - 1, 8, 12, -1, - 0, 16, -1, -1, - 12, 28, -1, -1 -}; +static s8 lbl_801309C0[32] + = { 15, 29, -1, -1, 5, 19, -1, -1, 5, 22, -1, -1, 12, 28, -1, -1, 18, 35, -1, -1, 1, 8, 12, -1, 0, 16, -1, -1, 12, 28, -1, -1 }; -static s8 lbl_801309E0[16] = { - 5, 7, 6, 9, - 10, 11, 9, -1, - 9, 11, 9, -1, - 8, -1, 10, -1 -}; +static s8 lbl_801309E0[16] = { 5, 7, 6, 9, 10, 11, 9, -1, 9, 11, 9, -1, 8, -1, 10, -1 }; -void CharManInit(void) { +void CharManInit(void) +{ UnkCharInstanceStruct *temp_r29; s16 i; s16 j; @@ -230,7 +160,7 @@ void CharManInit(void) { temp_r29->unkC4 = NULL; } if (!effectAMemP) { - effectAMemP = (void*) HuAR_DVDtoARAM(0x120000); + effectAMemP = (void *)HuAR_DVDtoARAM(0x120000); } for (i = 0; i < 8; i++) { effectMdl[i] = -1; @@ -241,11 +171,13 @@ void CharManInit(void) { } } -void *CharAMemPtrGet(s16 character) { +void *CharAMemPtrGet(s16 character) +{ return charInstance[character].unkC0; } -void CharARAMOpen(s16 character) { +void CharARAMOpen(s16 character) +{ UnkCharInstanceStruct *temp_r31; if (character >= 8 || character < 0 || character == 0xFF) { @@ -253,28 +185,31 @@ void CharARAMOpen(s16 character) { } temp_r31 = &charInstance[character]; if (!temp_r31->unkC0) { - temp_r31->unkC0 = (void*) HuAR_DVDtoARAM(charDirTbl[character][2]); + temp_r31->unkC0 = (void *)HuAR_DVDtoARAM(charDirTbl[character][2]); } } -void CharARAMClose(s16 character) { +void CharARAMClose(s16 character) +{ UnkCharInstanceStruct *temp_r31; temp_r31 = &charInstance[character]; if (temp_r31->unkC0) { - HuARFree((u32) temp_r31->unkC0); + HuARFree((u32)temp_r31->unkC0); temp_r31->unkC0 = NULL; } } -void CharKill(s16 character) { +void CharKill(s16 character) +{ s16 i; if (character == -1) { for (i = 0; i < 8; i++) { CharKill(i); } - } else { + } + else { HuDataDirClose(charDirTbl[character][0]); HuDataDirClose(charDirTbl[character][1]); HuDataDirClose(charDirTbl[character][2]); @@ -282,14 +217,16 @@ void CharKill(s16 character) { } } -void CharKillAll(void) { +void CharKillAll(void) +{ CharModelKill(-1); CharKill(-1); - HuARFree((u32) effectAMemP); + HuARFree((u32)effectAMemP); effectAMemP = NULL; } -s16 CharModelCreate(s16 character, s16 lod) { +s16 CharModelCreate(s16 character, s16 lod) +{ s16 sp8 = 0; UnkCharInstanceStruct *temp_r31; void *var_r26; @@ -303,11 +240,14 @@ s16 CharModelCreate(s16 character, s16 lod) { } if (lod & 1) { var_r29 = charDirTbl[character][0]; - } else if (lod & 2) { + } + else if (lod & 2) { var_r29 = charDirTbl[character][1]; - } else if (lod & 4) { + } + else if (lod & 4) { var_r29 = charDirTbl[character][1] | 1; - } else { + } + else { var_r29 = charDirTbl[character][1] | 2; } var_r26 = HuDataSelHeapReadNum(var_r29, MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -322,7 +262,8 @@ s16 CharModelCreate(s16 character, s16 lod) { return var_r25; } -static void UpdateChar(void) { +static void UpdateChar(void) +{ Vec sp8; s16 *temp_r28; UnkCharInstanceStruct *temp_r31; @@ -345,7 +286,8 @@ static void UpdateChar(void) { temp_r31->unk04 = temp_r31->unk4C[i]; UpdateCharAnim(*temp_r28, temp_r31->unk00, temp_r31->unk4C[i], temp_r31->unk8C[i], temp_r29->unk_64, &sp8); temp_r31->unk08 = temp_r31->unk4C[i]; - } else { + } + else { temp_r31->unk04 = -1; } if (temp_r29->unk_0C != -1) { @@ -360,10 +302,12 @@ static void UpdateChar(void) { temp_r31->unk06 = temp_r31->unk4C[i]; UpdateCharAnim(*temp_r28, temp_r31->unk00, temp_r31->unk4C[i], temp_r31->unk8C[i], temp_r29->unk_84, &sp8); temp_r31->unk0A = temp_r31->unk4C[i]; - } else { + } + else { temp_r31->unk06 = -1; } - } else if (var_r27 != 0) { + } + else if (var_r27 != 0) { CharModelTexAnimSet(*temp_r28); var_r27 = 0; } @@ -372,7 +316,8 @@ static void UpdateChar(void) { } } -static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, Vec *arg5) { +static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, Vec *arg5) +{ Vec sp1C; Vec sp10; ModelData *temp_r30; @@ -481,7 +426,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, if (arg2 == 7) { Hu3DModelObjMtxGet(arg1, CharModelHookNameGet(character, temp_r29->unk02, 0), sp28); var_r20 = 10; - } else { + } + else { Hu3DModelObjMtxGet(arg1, CharModelHookNameGet(character, temp_r29->unk02, 1), sp28); var_r20 = 13; } @@ -503,12 +449,13 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, var_r20 = 1; } for (i = 1; i <= var_r20; i++) { - sp10.x = arg5->x + (sp1C.x - arg5->x) * ((float) i / var_r20); - sp10.y = arg5->y + (sp1C.y - arg5->y) * ((float) i / var_r20); - sp10.z = arg5->z + (sp1C.z - arg5->z) * ((float) i / var_r20); + sp10.x = arg5->x + (sp1C.x - arg5->x) * ((float)i / var_r20); + sp10.y = arg5->y + (sp1C.y - arg5->y) * ((float)i / var_r20); + sp10.z = arg5->z + (sp1C.z - arg5->z) * ((float)i / var_r20); CreateEffectDot(arg1, sp10.x, sp10.y, sp10.z, 50.0f, &effectDotParam); } - } else { + } + else { CreateEffectDot(arg1, sp1C.x, sp1C.y, sp1C.z, 40.0f, &effectDotParam); } *arg5 = sp1C; @@ -521,13 +468,15 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x; effectStarParam.unk0C.y = 0.0f; effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x; - CreateEffectStar(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); + CreateEffectStar( + arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); } for (i = 0; i < 8; i++) { effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; - CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); + CreateEffectDust( + arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); } } PlayCharVoice(character, 0x119, arg3); @@ -550,9 +499,11 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, var_r27->unk08.x = arg1; if (character == 7) { var_r27->unk08.y = 190.0f; - } else if (character == 2 || character == 5 || character == 6) { + } + else if (character == 2 || character == 5 || character == 6) { var_r27->unk08.y = 140.0f; - } else { + } + else { var_r27->unk08.y = 120.0f; } var_r27->unk14.x = var_r27->unk14.z = 0.0f; @@ -563,7 +514,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; - CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); + CreateEffectDust( + arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); } } } @@ -584,9 +536,11 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, var_r27->unk08.x = arg1; if (character == 7) { var_r27->unk08.y = 150.0f; - } else if (character == 2 || character == 5 || character == 6) { + } + else if (character == 2 || character == 5 || character == 6) { var_r27->unk08.y = 120.0f; - } else { + } + else { var_r27->unk08.y = 100.0f; } var_r27->unk14.x = var_r27->unk14.z = 0.0f; @@ -599,7 +553,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, if (!(temp_r29->unkAC & 1) && !(temp_r29->unkAC & 0x10)) { PlayCharVoice(character, 0x11A, arg3); for (i = 0; i < 3; i++) { - var_r19 = CreateEffectBird(arg1, temp_r30->pos.x, temp_r30->pos.y + 100.0f * temp_r30->scale.x, temp_r30->pos.z, 1.0f, &effectWarnParam); + var_r19 = CreateEffectBird( + arg1, temp_r30->pos.x, temp_r30->pos.y + 100.0f * temp_r30->scale.x, temp_r30->pos.z, 1.0f, &effectWarnParam); if (var_r19 == -1) { break; } @@ -627,9 +582,11 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, if (arg4 == 0) { if (temp_r29->unkB0 == 4) { PlayCharVoice(character, 0x10A, arg3); - } else if (temp_r29->unkB0 == 5) { + } + else if (temp_r29->unkB0 == 5) { PlayCharVoice(character, 0x10C, arg3); - } else { + } + else { PlayCharVoice(character, 0x115, arg3); } } @@ -680,7 +637,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, PlayCharVoice(character, 0x124, arg3); temp_r29->unkAC |= 2; var_r22 |= 2; - } else if (omcurovl >= OVL_W01 && arg4 == lbl_801D35F8[character]) { + } + else if (omcurovl >= OVL_W01 && arg4 == lbl_801D35F8[character]) { PlayCharVoice(character, 0x122, arg3); temp_r29->unkAC |= 2; var_r22 |= 2; @@ -721,7 +679,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, } } -static s32 PlayCharVoice(s16 character, s16 arg1, u8 arg2) { +static s32 PlayCharVoice(s16 character, s16 arg1, u8 arg2) +{ UnkCharInstanceStruct *temp_r31; ModelData *temp_r29; @@ -732,12 +691,14 @@ static s32 PlayCharVoice(s16 character, s16 arg1, u8 arg2) { } if (temp_r31->unkAC & 8) { return HuAudCharVoicePlayPos(character, arg1, &temp_r29->pos); - } else { + } + else { return HuAudCharVoicePlay(character, arg1); } } -static void InitEffect(void) { +static void InitEffect(void) +{ HsfanimStruct01 *var_r29; ParticleData *temp_r30; void *temp_r26; @@ -772,11 +733,12 @@ static void InitEffect(void) { } } if (var_r27 != 0) { - HuDataDirClose(0x120000); + HuDataDirClose(DATADIR_EFFECT); } } -static s16 CreateEffectDust(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectDust(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -787,7 +749,8 @@ static s16 CreateEffectDust(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[2], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectSmoke(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectSmoke(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -798,7 +761,8 @@ static s16 CreateEffectSmoke(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[3], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectDot(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectDot(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -809,7 +773,8 @@ static s16 CreateEffectDot(s16 arg0, float arg1, float arg2, float arg3, float a return CreateEffect(effectMdl[6], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectStar(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectStar(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -820,7 +785,8 @@ static s16 CreateEffectStar(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[4], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectWarn(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectWarn(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -831,7 +797,8 @@ static s16 CreateEffectWarn(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[0], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectBird(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectBird(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -842,7 +809,8 @@ static s16 CreateEffectBird(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[7], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffect(s16 arg0, s16 arg1, float arg2, float arg3, float arg4, float arg5, EffectParamData *arg6) { +static s16 CreateEffect(s16 arg0, s16 arg1, float arg2, float arg3, float arg4, float arg5, EffectParamData *arg6) +{ ModelData *var_r28; ParticleData *temp_r30; EffectParamData *var_r27; @@ -882,13 +850,15 @@ static s16 CreateEffect(s16 arg0, s16 arg1, float arg2, float arg3, float arg4, var_r31->unk00 = 0; var_r31->unk02 = -1; temp_r30->unk_02 = i; - } else { + } + else { return -1; } return i; } -static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { +static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) +{ EffectParamData *temp_r30; HsfanimStruct01 *var_r31; s16 var_r28; @@ -913,21 +883,24 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { var_r28 = var_r31->unk40.r + temp_r30[i].unk34 * (temp_r30[i].unk08 - temp_r30[i].unk04); if (var_r28 < 0) { var_r28 = 0; - } else if (var_r28 > 0xFF) { + } + else if (var_r28 > 0xFF) { var_r28 = 0xFF; } var_r31->unk40.r = var_r28; var_r28 = var_r31->unk40.g + temp_r30[i].unk34 * (temp_r30[i].unk09 - temp_r30[i].unk05); if (var_r28 < 0) { var_r28 = 0; - } else if (var_r28 > 0xFF) { + } + else if (var_r28 > 0xFF) { var_r28 = 0xFF; } var_r31->unk40.g = var_r28; var_r28 = var_r31->unk40.b + temp_r30[i].unk34 * (temp_r30[i].unk0A - temp_r30[i].unk06); if (var_r28 < 0) { var_r28 = 0; - } else if (var_r28 > 0xFF) { + } + else if (var_r28 > 0xFF) { var_r28 = 0xFF; } var_r31->unk40.b = var_r28; @@ -939,7 +912,8 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { if (var_r31->unk2C) { if (temp_r30[i].unk00 & 1) { var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00_s16 + i) & 1) ? 1.0 : 0.5); - } else { + } + else { var_r31->unk2C = var_r31->unk28; } var_r31->unk28 += temp_r30[i].unk2C; @@ -948,7 +922,8 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { } } var_r31->unk00_s16++; - } else { + } + else { switch (var_r31->unk02) { case 0: RotateEffect(var_r31); @@ -966,17 +941,19 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } -static void RotateEffect(HsfanimStruct01 *arg0) { +static void RotateEffect(HsfanimStruct01 *arg0) +{ ModelData *temp_r30; float var_f31; - temp_r30 = &Hu3DData[(s32) arg0->unk08.x]; + temp_r30 = &Hu3DData[(s32)arg0->unk08.x]; if (arg0->unk00_s16 < 8) { var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00_s16 + 1)); arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x; arg0->unk40.a = 0xFF; var_f31 = 0.3 + sind(15.0f * (arg0->unk00_s16 + 1)); - } else { + } + else { var_f31 = 0.3 + sind(135); } var_f31 *= temp_r30->scale.x; @@ -993,14 +970,11 @@ static void RotateEffect(HsfanimStruct01 *arg0) { arg0->unk00_s16++; } -static float voiceParam[16] = { - 110.0f, 160.0f, 110.0f, 160.0f, - 150.0f, 180.0f, 130.0f, 160.0f, - 130.0f, 160.0f, 150.0f, 160.0f, - 150.0f, 180.0f, 120.0f, 210.0f -}; +static float voiceParam[16] + = { 110.0f, 160.0f, 110.0f, 160.0f, 150.0f, 180.0f, 130.0f, 160.0f, 130.0f, 160.0f, 150.0f, 160.0f, 150.0f, 180.0f, 120.0f, 210.0f }; -static void PlayEffectSound(HsfanimStruct01 *arg0) { +static void PlayEffectSound(HsfanimStruct01 *arg0) +{ ModelData *temp_r30; UnkCharInstanceStruct *temp_r29; s16 temp_r26; @@ -1016,7 +990,8 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) { arg0->unk40.a = 0xFF; if (temp_r29->unk04 == 0x16 || temp_r29->unk06 == 0x16) { var_r25 = voiceParam[temp_r28 * 2]; - } else { + } + else { var_r25 = voiceParam[temp_r28 * 2 + 1]; } temp_r26 = (arg0->unk00_s16 * 5) % 360; @@ -1039,7 +1014,8 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) { } } -s16 CharModelMotionCreate(s16 character, s32 data_num) { +s16 CharModelMotionCreate(s16 character, s32 data_num) +{ UnkCharInstanceStruct *temp_r31; s16 var_r28; s16 var_r30; @@ -1071,7 +1047,8 @@ s16 CharModelMotionCreate(s16 character, s32 data_num) { var_r27 = HuDataSelHeapReadNum(data_num | charDirTbl[character][2], MEMORY_DEFAULT_NUM, HEAP_DATA); } temp_r31->unk4C[var_r30] = data_num; - } else { + } + else { var_r27 = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk4C[var_r30] = -1; } @@ -1080,7 +1057,8 @@ s16 CharModelMotionCreate(s16 character, s32 data_num) { return temp_r31->unk0C[var_r30]; } -void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) { +void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) +{ UnkCharInstanceStruct *temp_r30; s16 i; @@ -1095,7 +1073,8 @@ void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) { } } -void CharModelMotionKill(s16 character, u32 motion) { +void CharModelMotionKill(s16 character, u32 motion) +{ UnkCharInstanceStruct *temp_r30; s16 i; @@ -1109,36 +1088,41 @@ void CharModelMotionKill(s16 character, u32 motion) { Hu3DMotionKill(motion); } -void CharModelMotionDataClose(s16 character) { +void CharModelMotionDataClose(s16 character) +{ s16 i; if (character == -1) { for (i = 0; i < 8; i++) { CharModelMotionDataClose(i); } - } else { + } + else { HuDataDirClose(charDirTbl[character][2]); } } -void CharModelDataClose(s16 arg0) { +void CharModelDataClose(s16 arg0) +{ s16 i; if (arg0 == -1) { for (i = 0; i < 8; i++) { CharModelDataClose(i); // Required to match. - (void) i; - (void) arg0; + (void)i; + (void)arg0; } - } else { + } + else { HuDataDirClose(charDirTbl[arg0][0]); HuDataDirClose(charDirTbl[arg0][1]); HuDataDirClose(charDirTbl[arg0][2]); } } -void CharModelKill(s16 character) { +void CharModelKill(s16 character) +{ UnkCharInstanceStruct *temp_r29; s16 i; @@ -1189,7 +1173,8 @@ void CharModelKill(s16 character) { } } -void CharModelMotionSet(s16 character, s16 motion) { +void CharModelMotionSet(s16 character, s16 motion) +{ UnkCharInstanceStruct *temp_r31; MotionData *sp8; @@ -1199,7 +1184,8 @@ void CharModelMotionSet(s16 character, s16 motion) { Hu3DMotionSet(temp_r31->unk00, motion); } -void CharModelTexAnimSet(s16 character) { +void CharModelTexAnimSet(s16 character) +{ HsfAttribute *var_r31; HsfdrawStruct01 *temp_r30; ModelData *temp_r26; @@ -1231,26 +1217,16 @@ void CharModelTexAnimSet(s16 character) { } } -char *charTexNameTbl[64] = { - "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", - "s3c000m2_eyes", "s3c000m2_eyes", "s3c000m3_eyes", "s3c000m3_eyes", - "S3c001m0_eye", "S3c001m0_eye", "S3c001m1_eye", "S3c001m1_eye", - "c001m3_eye", "c001m3_eye", "c001m3_eye", "c001m3_eye", - "s3c002m0_r_eye", "s3c002m0_l_eye", "s3c002m1_r_eye", "s3c002m1_l_eye", - "s3c002m2_r_eye", "s3c002m2_l_eye", "", "", - "eye1", "eye2", "S3c003m1", "S3c003m1", - "eye1", "eye2", "eye1", "eye2", - "GC-eyes", "GC-eyes", "s3c004m1_eye", "s3c004m1_eye", - "Clswario_eye_l1_AUTO12", "Clswario_eye_l1_AUTO13", "", "", - "m_donkey_eye4", "m_donkey_eye5", "S3donkey_eye", "S3donkey_eye", - "m_donkey_eye1", "m_donkey_eye2", "", "", - "GC-eyes", "GC-eyes", "s3c007m1_Eye_L", "s3c007m1_Eye_R", - "mat87", "mat89", "", "", - "clswaluigi_eye_l1_AUTO1", "clswaluigi_eye_l1_AUTO2", "s3c007_m1_eye", "s3c007_m1_eye", - "clswaluigi_eye_l1_AUTO9", "clswaluigi_eye_l1_AUTO10", "", "" -}; +char *charTexNameTbl[64] = { "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m2_eyes", "s3c000m2_eyes", "s3c000m3_eyes", + "s3c000m3_eyes", "S3c001m0_eye", "S3c001m0_eye", "S3c001m1_eye", "S3c001m1_eye", "c001m3_eye", "c001m3_eye", "c001m3_eye", "c001m3_eye", + "s3c002m0_r_eye", "s3c002m0_l_eye", "s3c002m1_r_eye", "s3c002m1_l_eye", "s3c002m2_r_eye", "s3c002m2_l_eye", "", "", "eye1", "eye2", "S3c003m1", + "S3c003m1", "eye1", "eye2", "eye1", "eye2", "GC-eyes", "GC-eyes", "s3c004m1_eye", "s3c004m1_eye", "Clswario_eye_l1_AUTO12", + "Clswario_eye_l1_AUTO13", "", "", "m_donkey_eye4", "m_donkey_eye5", "S3donkey_eye", "S3donkey_eye", "m_donkey_eye1", "m_donkey_eye2", "", "", + "GC-eyes", "GC-eyes", "s3c007m1_Eye_L", "s3c007m1_Eye_R", "mat87", "mat89", "", "", "clswaluigi_eye_l1_AUTO1", "clswaluigi_eye_l1_AUTO2", + "s3c007_m1_eye", "s3c007_m1_eye", "clswaluigi_eye_l1_AUTO9", "clswaluigi_eye_l1_AUTO10", "", "" }; -char **CharModelTexNameGet(s16 arg0, s16 arg1) { +char **CharModelTexNameGet(s16 arg0, s16 arg1) +{ s16 var_r30; s16 i; @@ -1262,18 +1238,15 @@ char **CharModelTexNameGet(s16 arg0, s16 arg1) { return &charTexNameTbl[arg0 * 8 + i * 2]; } -static char *hookNameTbl[40] = { - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body" -}; +static char *hookNameTbl[40] + = { "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", + "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", + "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", + "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", + "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body" }; -char *CharModelHookNameGet(s16 arg0, s16 arg1, s16 arg2) { +char *CharModelHookNameGet(s16 arg0, s16 arg1, s16 arg2) +{ s16 i; s16 var_r30; @@ -1285,56 +1258,65 @@ char *CharModelHookNameGet(s16 arg0, s16 arg1, s16 arg2) { return hookNameTbl[arg0 * 5 + arg2]; } -void CharModelMotionTimeSet(s16 character, float time) { +void CharModelMotionTimeSet(s16 character, float time) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; Hu3DMotionTimeSet(temp_r31->unk00, time); } -float CharModelMotionTimeGet(s16 character) { +float CharModelMotionTimeGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionTimeGet(temp_r31->unk00); } -float CharModelMotionMaxTimeGet(s16 character) { +float CharModelMotionMaxTimeGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionMaxTimeGet(temp_r31->unk00); } -s32 CharModelMotionEndCheck(s16 character) { +s32 CharModelMotionEndCheck(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionEndCheck(temp_r31->unk00); } -s16 CharModelMotionShiftIDGet(s16 character) { +s16 CharModelMotionShiftIDGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionShiftIDGet(temp_r31->unk00); } -void CharModelMotionShiftSet(s16 character, s16 motion, float time, float shift_time, u32 attr) { +void CharModelMotionShiftSet(s16 character, s16 motion, float time, float shift_time, u32 attr) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; MotionData *sp18 = &Hu3DMotion[motion]; Hu3DMotionShiftSet(temp_r31->unk00, motion, time, shift_time, attr); } -float CharModelMotionShiftTimeGet(s16 character) { +float CharModelMotionShiftTimeGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionShiftTimeGet(temp_r31->unk00); } -void CharModelMotionSpeedSet(s16 character, float speed) { +void CharModelMotionSpeedSet(s16 character, float speed) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; Hu3DMotionSpeedSet(temp_r31->unk00, speed); } -void CharModelLayerSetAll(s16 arg0) { +void CharModelLayerSetAll(s16 arg0) +{ s16 i; for (i = 0; i < 8; i++) { @@ -1344,7 +1326,8 @@ void CharModelLayerSetAll(s16 arg0) { } } -static inline Process *CharModelItemHookCreateInlineFunc(void) { +static inline Process *CharModelItemHookCreateInlineFunc(void) +{ s16 i; for (i = 0; i < 32; i++) { @@ -1354,13 +1337,15 @@ static inline Process *CharModelItemHookCreateInlineFunc(void) { } if (i == 32) { return NULL; - } else { + } + else { itemHookProcess[i] = HuPrcCreate(UpdateItemHook, 0x64, 0x2000, 0); return itemHookProcess[i]; } } -void CharModelItemHookCreate(s16 character, char *arg1) { +void CharModelItemHookCreate(s16 character, char *arg1) +{ Mtx sp18; Vec spC; UnkCharInstanceStruct *temp_r31; @@ -1397,7 +1382,8 @@ void CharModelItemHookCreate(s16 character, char *arg1) { } } -static void UpdateItemHook(void) { +static void UpdateItemHook(void) +{ Mtx sp14; Vec sp8; ModelData *temp_r30; @@ -1448,20 +1434,11 @@ static void UpdateItemHook(void) { } } -static EffectParamData modelParticleParam = { - 0, - 0xFF, 0xFF, 0xFF, 0xFF, - 0x40, 0x20, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - 1.0f, - -5.0f, - 0.02f -}; +static EffectParamData modelParticleParam + = { 0, 0xFF, 0xFF, 0xFF, 0xFF, 0x40, 0x20, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, 1.0f, -5.0f, 0.02f }; -void CharModelEffectCreate(s16 arg0, Vec *arg1) { +void CharModelEffectCreate(s16 arg0, Vec *arg1) +{ s16 temp_r28; s16 i; HsfanimStruct01 *var_r31; @@ -1518,7 +1495,8 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) { } } -static void OrbitEffect(HsfanimStruct01 *arg0) { +static void OrbitEffect(HsfanimStruct01 *arg0) +{ float temp_f31; float var_f30; s16 temp_r30; @@ -1542,27 +1520,19 @@ static void OrbitEffect(HsfanimStruct01 *arg0) { if (temp_r30 < 0) { arg0->unk40.a = 0; arg0->unk2C = 0.0f; - } else { + } + else { arg0->unk40.a = temp_r30; } } arg0->unk00_s16++; } -static EffectParamData coinParticleParam = { - 1, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 1.0f, 0.95f, - -0.1f, - 0x00000000, - -0.2f, - -8.0f, - 0.0f -}; +static EffectParamData coinParticleParam + = { 1, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 1.0f, 0.95f, -0.1f, 0x00000000, -0.2f, -8.0f, 0.0f }; -void CharModelCoinEffectCreate(s16 arg0, Vec *arg1) { +void CharModelCoinEffectCreate(s16 arg0, Vec *arg1) +{ s16 temp_r29; s16 var_r28; s16 i; @@ -1579,33 +1549,14 @@ void CharModelCoinEffectCreate(s16 arg0, Vec *arg1) { } } -static EffectParamData lbl_80131030 = { - 0, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0x80, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - -0.2f, - -16.0f, - 0.05f -}; +static EffectParamData lbl_80131030 + = { 0, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, -0.2f, -16.0f, 0.05f }; -static EffectParamData lbl_80131068 = { - 0, - 0xE0, 0x20, 0x20, 0xFF, - 0xE0, 0x20, 0x20, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 1.0f, 1.0f, 1.0f, - 0.0f, - 0x00000000, - -0.2f, - -12.0f, - 0.05f -}; +static EffectParamData lbl_80131068 + = { 0, 0xE0, 0x20, 0x20, 0xFF, 0xE0, 0x20, 0x20, 0xFF, { 0.0f, 2.0f, 1.0f }, 1.0f, 1.0f, 1.0f, 0.0f, 0x00000000, -0.2f, -12.0f, 0.05f }; -void fn_8004EC74(s16 character) { +void fn_8004EC74(s16 character) +{ Mtx sp24; Vec sp18; Vec spC; @@ -1635,7 +1586,8 @@ void fn_8004EC74(s16 character) { } } -void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) { +void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) +{ Mtx sp2C; Vec sp20; Vec sp14; @@ -1669,38 +1621,19 @@ void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) { } } -static EffectParamData lbl_801310BC = { - 0, - 0x20, 0x20, 0xFF, 0xFF, - 0x80, 0xFF, 0x20, 0xFF, - 0.0f, 2.0f, 1.0f, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - -0.2f, - -16.0f, - 0.06f -}; +static EffectParamData lbl_801310BC + = { 0, 0x20, 0x20, 0xFF, 0xFF, 0x80, 0xFF, 0x20, 0xFF, 0.0f, 2.0f, 1.0f, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, -0.2f, -16.0f, 0.06f }; -static EffectParamData lbl_801310F4 = { - 0, - 0x20, 0xE0, 0x20, 0xFF, - 0x20, 0xE0, 0x20, 0xFF, - 0.0f, 2.0f, 1.0f, - 1.0f, 1.0f, 1.0f, - 0.0f, - 0x00000000, - -0.2f, - -12.0f, - 0.05f -}; +static EffectParamData lbl_801310F4 + = { 0, 0x20, 0xE0, 0x20, 0xFF, 0x20, 0xE0, 0x20, 0xFF, 0.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0x00000000, -0.2f, -12.0f, 0.05f }; -void fn_8004F058(s16 character) { +void fn_8004F058(s16 character) +{ Mtx sp24; Vec sp18; Vec spC; - ModelData* temp_r31; - UnkCharInstanceStruct* temp_r30; + ModelData *temp_r31; + UnkCharInstanceStruct *temp_r30; temp_r30 = &charInstance[character]; temp_r31 = &Hu3DData[temp_r30->unk00]; @@ -1717,7 +1650,8 @@ void fn_8004F058(s16 character) { fn_8004F13C(temp_r31->camera, &sp18, &temp_r31->rot); } -void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) { +void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) +{ Mtx sp2C; Vec sp20; Vec sp14; @@ -1751,12 +1685,14 @@ void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) { } } -void CharModelLayerSetAll2(s16 arg0) { +void CharModelLayerSetAll2(s16 arg0) +{ CharModelLayerSetAll(arg0); } -void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) { - UnkCharInstanceStruct* temp_r31 = &charInstance[character]; +void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) +{ + UnkCharInstanceStruct *temp_r31 = &charInstance[character]; s16 i; if (temp_r31->unk00 == -1) { @@ -1770,42 +1706,49 @@ void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) { if (i != 32) { if (flag == 0) { temp_r31->unk8C[i] |= 1; - } else { + } + else { temp_r31->unk8C[i] &= ~1; } } } -void fn_8004F52C(s16 character, s32 arg1) { +void fn_8004F52C(s16 character, s32 arg1) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; if (arg1 != 0) { temp_r31->unkAC |= 8; return; - } else { + } + else { temp_r31->unkAC &= ~8; } } -void CharModelEffectEnableSet(s16 character, s32 arg1) { +void CharModelEffectEnableSet(s16 character, s32 arg1) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; if (character >= 8) { if (arg1 == 0) { lbl_801975B0[character] |= 0x10; - } else { + } + else { lbl_801975B0[character] &= ~0x10; } return; } if (arg1 == 0) { temp_r31->unkAC |= 0x10; - } else { + } + else { temp_r31->unkAC &= ~0x10; } } -s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { +s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3) +{ Process *var_r24; Process *var_r27; s16 *var_r29; @@ -1823,89 +1766,47 @@ s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { } } -s32 CharModelEffectNpcInitSilent(s16 arg0, s16 arg1, s16 arg2) { +s32 CharModelEffectNpcInitSilent(s16 arg0, s16 arg1, s16 arg2) +{ s32 sp10; // ! - uninitialized CharModelEffectNpcInit(arg0, arg1, arg2, -1); return sp10; } -static s8 lbl_80131146[] = { - 0x07, 0x20, 0x10, 0x28, - 0x01, 0x1E, 0xE7, 0xE7, - 0x01, 0x1E, 0x01, 0x1A, - 0x01, 0x14, 0x13, 0x20, - 0x02, 0x13 -}; +static s8 lbl_80131146[] = { 0x07, 0x20, 0x10, 0x28, 0x01, 0x1E, 0xE7, 0xE7, 0x01, 0x1E, 0x01, 0x1A, 0x01, 0x14, 0x13, 0x20, 0x02, 0x13 }; static u16 lbl_80131158[] = { - 0x0051, 0x0053, - 0x0057, 0x0101, - 0x0059, 0x005B, - 0x0055, 0x0069, + 0x0051, + 0x0053, + 0x0057, + 0x0101, + 0x0059, + 0x005B, + 0x0055, + 0x0069, 0x006A, }; // Unused? -static s8 lbl_8013116A[] = { - 0x01, 0x20, 0x01, 0x15, - 0x0A, 0x1E, 0xE7, 0xE7, - 0x01, 0x1E, 0x01, 0x10, - 0x01, 0x11, 0xE7, 0xE7, - 0xE7, 0xE7 -}; +static s8 lbl_8013116A[] = { 0x01, 0x20, 0x01, 0x15, 0x0A, 0x1E, 0xE7, 0xE7, 0x01, 0x1E, 0x01, 0x10, 0x01, 0x11, 0xE7, 0xE7, 0xE7, 0xE7 }; -static u16 lbl_8013117C[] = { - 0x0052, 0x0054, - 0x0058, 0x0101, - 0x005A, 0x005C, - 0x0056, 0x0069, - 0x006A -}; +static u16 lbl_8013117C[] = { 0x0052, 0x0054, 0x0058, 0x0101, 0x005A, 0x005C, 0x0056, 0x0069, 0x006A }; -static s8 lbl_8013118E[] = { - 0x03, 0x37, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7, 0x01, 0x1A, - 0xE7, 0xE7 -}; +static s8 lbl_8013118E[] = { 0x03, 0x37, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x01, 0x1A, 0xE7, 0xE7 }; -static u16 lbl_8013119C[] = { - 0x0051, 0x0053, - 0x0057, 0x0101, - 0x0059, 0x0068, - 0x0055 -}; +static u16 lbl_8013119C[] = { 0x0051, 0x0053, 0x0057, 0x0101, 0x0059, 0x0068, 0x0055 }; -static s8 lbl_801311AA[] = { - 0x04, 0x11, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7, 0x01, 0x10, - 0xE7, 0xE7 -}; +static s8 lbl_801311AA[] = { 0x04, 0x11, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x01, 0x10, 0xE7, 0xE7 }; -static u16 lbl_801311B8[] = { - 0x0052, 0x0054, - 0x0058, 0x0101, - 0x005A, 0x0067, - 0x0056 -}; +static u16 lbl_801311B8[] = { 0x0052, 0x0054, 0x0058, 0x0101, 0x005A, 0x0067, 0x0056 }; -static s8 lbl_801311C6[] = { - 0x01, 0x17, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7 -}; +static s8 lbl_801311C6[] = { 0x01, 0x17, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7 }; -static u16 lbl_801311D4[] = { - 0x0051, 0x0053, - 0x0057, 0x0101, - 0x0059, 0x005B, - 0x0055 -}; +static u16 lbl_801311D4[] = { 0x0051, 0x0053, 0x0057, 0x0101, 0x0059, 0x005B, 0x0055 }; -static void UpdateNpcEffect(void) { +static void UpdateNpcEffect(void) +{ Vec sp2C; ModelData *temp_r30; s16 *temp_r27; @@ -2035,13 +1936,15 @@ static void UpdateNpcEffect(void) { effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x; effectStarParam.unk0C.y = 0.0f; effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x; - CreateEffectStar(temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); + CreateEffectStar( + temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); } for (i = 0; i < 8; i++) { effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; - CreateEffectDust(temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); + CreateEffectDust( + temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); } if (temp_r28 != -1) { HuAudFXPlay(0x61); @@ -2051,13 +1954,15 @@ static void UpdateNpcEffect(void) { } } -void CharModelStepTypeSet(s16 character, s32 arg1) { +void CharModelStepTypeSet(s16 character, s32 arg1) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; temp_r31->unkB0 = arg1; } -static s32 PlayStepFX(s16 character, s16 arg1, u8 arg2) { +static s32 PlayStepFX(s16 character, s16 arg1, u8 arg2) +{ UnkCharInstanceStruct *temp_r31; ModelData *var_r28; @@ -2068,14 +1973,17 @@ static s32 PlayStepFX(s16 character, s16 arg1, u8 arg2) { } if (temp_r31->unkB0 == 4) { arg1 = 0x109; - } else if (temp_r31->unkB0 == 5) { + } + else if (temp_r31->unkB0 == 5) { arg1 = 0x10B; - } else { + } + else { arg1 += temp_r31->unkB0; } if (temp_r31->unkAC & 8) { return HuAudCharVoicePlayPos(character, arg1, &var_r28->pos); - } else { + } + else { return HuAudCharVoicePlay(character, arg1); } } diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index bc3d27ab..6d687b5c 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -3205,7 +3205,7 @@ static void PauseProc(void) HuWinDispOn(window[2]); HuWinMesSpeedSet(window[2], 0); HuWinAttrSet(window[2], 0x800); - HuWinMesSet(window[2], 0x3300A1); + HuWinMesSet(window[2], MAKE_MESSID(0x33, 0xA1)); } if(mgInfoTbl[mg].inst_mess[2]) { s16 insert_idx; @@ -3545,4 +3545,4 @@ void MGSeqPracticeExitCheck(omObjData *object) mgQuitExtraF = 1; omDelObjEx(HuPrcCurrentGet(), object); } -} \ No newline at end of file +} diff --git a/src/game/objsub.c b/src/game/objsub.c index 19e0b390..d982fff6 100644 --- a/src/game/objsub.c +++ b/src/game/objsub.c @@ -1,7 +1,9 @@ #include "game/objsub.h" +#include "game/data.h" #include "game/gamework_data.h" #include "game/object.h" -#include "game/data.h" +#include "game/window.h" + MgInfo mgInfoTbl[] = { { @@ -9,7 +11,7 @@ MgInfo mgInfoTbl[] = { 0, // type 3, // flag 255, // record_idx - 0x170001, // name_mess + MAKE_MESSID(0x17, 0x01), // name_mess DATADIR_M401, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 0), // inst_pic[0] 0, // inst_pic[1] @@ -17,17 +19,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 0), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210000, // inst_mess[0] - 0x210001, // inst_mess[1] + MAKE_MESSID(0x21, 0x00), // inst_mess[0] + MAKE_MESSID(0x21, 0x01), // inst_mess[1] 0, // inst_mess[2] - 0x210003, // inst_mess[3] + MAKE_MESSID(0x21, 0x03), // inst_mess[3] }, { OVL_M402, // ovl 0, // type 3, // flag 255, // record_idx - 0x170002, // name_mess + MAKE_MESSID(0x17, 0x02), // name_mess DATADIR_M402, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 1), // inst_pic[0] 0, // inst_pic[1] @@ -35,17 +37,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 1), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210004, // inst_mess[0] - 0x210005, // inst_mess[1] + MAKE_MESSID(0x21, 0x04), // inst_mess[0] + MAKE_MESSID(0x21, 0x05), // inst_mess[1] 0, // inst_mess[2] - 0x210007, // inst_mess[3] + MAKE_MESSID(0x21, 0x07), // inst_mess[3] }, { OVL_M403, // ovl 0, // type 3, // flag 255, // record_idx - 0x170003, // name_mess + MAKE_MESSID(0x17, 0x03), // name_mess DATADIR_M403, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 2), // inst_pic[0] 0, // inst_pic[1] @@ -53,17 +55,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 2), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210008, // inst_mess[0] - 0x210009, // inst_mess[1] + MAKE_MESSID(0x21, 0x08), // inst_mess[0] + MAKE_MESSID(0x21, 0x09), // inst_mess[1] 0, // inst_mess[2] - 0x21000B, // inst_mess[3] + MAKE_MESSID(0x21, 0x0B), // inst_mess[3] }, { OVL_M404, // ovl 4, // type 2, // flag 255, // record_idx - 0x170004, // name_mess + MAKE_MESSID(0x17, 0x04), // name_mess DATADIR_M404, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 3), // inst_pic[0] 0, // inst_pic[1] @@ -71,17 +73,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 3), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21000C, // inst_mess[0] - 0x21000D, // inst_mess[1] + MAKE_MESSID(0x21, 0x0C), // inst_mess[0] + MAKE_MESSID(0x21, 0x0D), // inst_mess[1] 0, // inst_mess[2] - 0x21000F, // inst_mess[3] + MAKE_MESSID(0x21, 0x0F), // inst_mess[3] }, { OVL_M405, // ovl 0, // type 2, // flag 0, // record_idx - 0x170005, // name_mess + MAKE_MESSID(0x17, 0x05), // name_mess DATADIR_M405, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 4), // inst_pic[0] 0, // inst_pic[1] @@ -89,17 +91,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 4), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210010, // inst_mess[0] - 0x210011, // inst_mess[1] + MAKE_MESSID(0x21, 0x10), // inst_mess[0] + MAKE_MESSID(0x21, 0x11), // inst_mess[1] 0, // inst_mess[2] - 0x210013, // inst_mess[3] + MAKE_MESSID(0x21, 0x13), // inst_mess[3] }, { OVL_M406, // ovl 0, // type 2, // flag 255, // record_idx - 0x170006, // name_mess + MAKE_MESSID(0x17, 0x06), // name_mess DATADIR_M406, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 5), // inst_pic[0] 0, // inst_pic[1] @@ -107,17 +109,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 5), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210014, // inst_mess[0] - 0x210015, // inst_mess[1] + MAKE_MESSID(0x21, 0x14), // inst_mess[0] + MAKE_MESSID(0x21, 0x15), // inst_mess[1] 0, // inst_mess[2] - 0x210017, // inst_mess[3] + MAKE_MESSID(0x21, 0x17), // inst_mess[3] }, { OVL_M407, // ovl 0, // type 3, // flag 1, // record_idx - 0x170007, // name_mess + MAKE_MESSID(0x17, 0x07), // name_mess DATADIR_M407, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 6), // inst_pic[0] 0, // inst_pic[1] @@ -125,17 +127,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 6), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210018, // inst_mess[0] - 0x210019, // inst_mess[1] + MAKE_MESSID(0x21, 0x18), // inst_mess[0] + MAKE_MESSID(0x21, 0x19), // inst_mess[1] 0, // inst_mess[2] - 0x21001B, // inst_mess[3] + MAKE_MESSID(0x21, 0x1B), // inst_mess[3] }, { OVL_M408, // ovl 0, // type 3, // flag 255, // record_idx - 0x170008, // name_mess + MAKE_MESSID(0x17, 0x08), // name_mess DATADIR_M408, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 7), // inst_pic[0] 0, // inst_pic[1] @@ -143,17 +145,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 7), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21001C, // inst_mess[0] - 0x21001D, // inst_mess[1] + MAKE_MESSID(0x21, 0x1C), // inst_mess[0] + MAKE_MESSID(0x21, 0x1D), // inst_mess[1] 0, // inst_mess[2] - 0x21001F, // inst_mess[3] + MAKE_MESSID(0x21, 0x1F), // inst_mess[3] }, { OVL_M409, // ovl 0, // type 3, // flag 255, // record_idx - 0x170009, // name_mess + MAKE_MESSID(0x17, 0x09), // name_mess DATADIR_M409, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 8), // inst_pic[0] 0, // inst_pic[1] @@ -161,17 +163,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 8), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210020, // inst_mess[0] - 0x210021, // inst_mess[1] + MAKE_MESSID(0x21, 0x20), // inst_mess[0] + MAKE_MESSID(0x21, 0x21), // inst_mess[1] 0, // inst_mess[2] - 0x210023, // inst_mess[3] + MAKE_MESSID(0x21, 0x23), // inst_mess[3] }, { OVL_M410, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000A, // name_mess + MAKE_MESSID(0x17, 0x0A), // name_mess DATADIR_M410, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 9), // inst_pic[0] 0, // inst_pic[1] @@ -179,17 +181,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 9), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210024, // inst_mess[0] - 0x210025, // inst_mess[1] + MAKE_MESSID(0x21, 0x24), // inst_mess[0] + MAKE_MESSID(0x21, 0x25), // inst_mess[1] 0, // inst_mess[2] - 0x210027, // inst_mess[3] + MAKE_MESSID(0x21, 0x27), // inst_mess[3] }, { OVL_M411, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000B, // name_mess + MAKE_MESSID(0x17, 0x0B), // name_mess DATADIR_M411, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 10), // inst_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 11), // inst_pic[1] @@ -197,17 +199,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 62), // mg_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 11), // mg_pic[1] DATA_MAKE_NUM(DATADIR_INSTPIC, 12), // mg_pic[2] - 0x210028, // inst_mess[0] - 0x210029, // inst_mess[1] + MAKE_MESSID(0x21, 0x28), // inst_mess[0] + MAKE_MESSID(0x21, 0x29), // inst_mess[1] 0, // inst_mess[2] - 0x21002B, // inst_mess[3] + MAKE_MESSID(0x21, 0x2B), // inst_mess[3] }, { OVL_M412, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000C, // name_mess + MAKE_MESSID(0x17, 0x0C), // name_mess DATADIR_M412, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 13), // inst_pic[0] 0, // inst_pic[1] @@ -215,17 +217,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 13), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21002C, // inst_mess[0] - 0x21002D, // inst_mess[1] + MAKE_MESSID(0x21, 0x2C), // inst_mess[0] + MAKE_MESSID(0x21, 0x2D), // inst_mess[1] 0, // inst_mess[2] - 0x21002F, // inst_mess[3] + MAKE_MESSID(0x21, 0x2F), // inst_mess[3] }, { OVL_M413, // ovl 0, // type 2, // flag 255, // record_idx - 0x17000D, // name_mess + MAKE_MESSID(0x17, 0x0D), // name_mess DATADIR_M413, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 14), // inst_pic[0] 0, // inst_pic[1] @@ -233,17 +235,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 63), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210030, // inst_mess[0] - 0x210031, // inst_mess[1] + MAKE_MESSID(0x21, 0x30), // inst_mess[0] + MAKE_MESSID(0x21, 0x31), // inst_mess[1] 0, // inst_mess[2] - 0x210033, // inst_mess[3] + MAKE_MESSID(0x21, 0x33), // inst_mess[3] }, { OVL_M414, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000E, // name_mess + MAKE_MESSID(0x17, 0x0E), // name_mess DATADIR_M414, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 15), // inst_pic[0] 0, // inst_pic[1] @@ -251,17 +253,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 15), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210034, // inst_mess[0] - 0x210035, // inst_mess[1] + MAKE_MESSID(0x21, 0x34), // inst_mess[0] + MAKE_MESSID(0x21, 0x35), // inst_mess[1] 0, // inst_mess[2] - 0x210037, // inst_mess[3] + MAKE_MESSID(0x21, 0x37), // inst_mess[3] }, { OVL_M415, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000F, // name_mess + MAKE_MESSID(0x17, 0x0F), // name_mess DATADIR_M415, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 16), // inst_pic[0] 0, // inst_pic[1] @@ -269,17 +271,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 16), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210038, // inst_mess[0] - 0x210039, // inst_mess[1] + MAKE_MESSID(0x21, 0x38), // inst_mess[0] + MAKE_MESSID(0x21, 0x39), // inst_mess[1] 0, // inst_mess[2] - 0x21003B, // inst_mess[3] + MAKE_MESSID(0x21, 0x3B), // inst_mess[3] }, { OVL_M416, // ovl 1, // type 1, // flag 255, // record_idx - 0x170010, // name_mess + MAKE_MESSID(0x17, 0x10), // name_mess DATADIR_M416, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 17), // inst_pic[0] 0, // inst_pic[1] @@ -287,17 +289,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 17), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21003C, // inst_mess[0] - 0x21003D, // inst_mess[1] - 0x21003E, // inst_mess[2] - 0x21003F, // inst_mess[3] + MAKE_MESSID(0x21, 0x3C), // inst_mess[0] + MAKE_MESSID(0x21, 0x3D), // inst_mess[1] + MAKE_MESSID(0x21, 0x3E), // inst_mess[2] + MAKE_MESSID(0x21, 0x3F), // inst_mess[3] }, { OVL_M417, // ovl 1, // type 1, // flag 255, // record_idx - 0x170011, // name_mess + MAKE_MESSID(0x17, 0x11), // name_mess DATADIR_M417, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 18), // inst_pic[0] 0, // inst_pic[1] @@ -305,17 +307,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 18), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210040, // inst_mess[0] - 0x210041, // inst_mess[1] - 0x210042, // inst_mess[2] - 0x210043, // inst_mess[3] + MAKE_MESSID(0x21, 0x40), // inst_mess[0] + MAKE_MESSID(0x21, 0x41), // inst_mess[1] + MAKE_MESSID(0x21, 0x42), // inst_mess[2] + MAKE_MESSID(0x21, 0x43), // inst_mess[3] }, { OVL_M418, // ovl 1, // type 1, // flag 255, // record_idx - 0x170012, // name_mess + MAKE_MESSID(0x17, 0x12), // name_mess DATADIR_M418, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 19), // inst_pic[0] 0, // inst_pic[1] @@ -323,17 +325,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 19), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210044, // inst_mess[0] - 0x210045, // inst_mess[1] - 0x210046, // inst_mess[2] - 0x210047, // inst_mess[3] + MAKE_MESSID(0x21, 0x44), // inst_mess[0] + MAKE_MESSID(0x21, 0x45), // inst_mess[1] + MAKE_MESSID(0x21, 0x46), // inst_mess[2] + MAKE_MESSID(0x21, 0x47), // inst_mess[3] }, { OVL_M419, // ovl 1, // type 1, // flag 255, // record_idx - 0x170013, // name_mess + MAKE_MESSID(0x17, 0x13), // name_mess DATADIR_M419, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 20), // inst_pic[0] 0, // inst_pic[1] @@ -341,17 +343,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 20), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210048, // inst_mess[0] - 0x210049, // inst_mess[1] - 0x21004A, // inst_mess[2] - 0x21004B, // inst_mess[3] + MAKE_MESSID(0x21, 0x48), // inst_mess[0] + MAKE_MESSID(0x21, 0x49), // inst_mess[1] + MAKE_MESSID(0x21, 0x4A), // inst_mess[2] + MAKE_MESSID(0x21, 0x4B), // inst_mess[3] }, { OVL_M420, // ovl 1, // type 0, // flag 255, // record_idx - 0x170014, // name_mess + MAKE_MESSID(0x17, 0x14), // name_mess DATADIR_M420, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 21), // inst_pic[0] 0, // inst_pic[1] @@ -359,17 +361,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 21), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21004C, // inst_mess[0] - 0x21004D, // inst_mess[1] - 0x21004E, // inst_mess[2] - 0x21004F, // inst_mess[3] + MAKE_MESSID(0x21, 0x4C), // inst_mess[0] + MAKE_MESSID(0x21, 0x4D), // inst_mess[1] + MAKE_MESSID(0x21, 0x4E), // inst_mess[2] + MAKE_MESSID(0x21, 0x4F), // inst_mess[3] }, { OVL_M421, // ovl 1, // type 1, // flag 255, // record_idx - 0x170015, // name_mess + MAKE_MESSID(0x17, 0x15), // name_mess DATADIR_M421, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 22), // inst_pic[0] 0, // inst_pic[1] @@ -377,17 +379,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 22), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210050, // inst_mess[0] - 0x210051, // inst_mess[1] - 0x210052, // inst_mess[2] - 0x210053, // inst_mess[3] + MAKE_MESSID(0x21, 0x50), // inst_mess[0] + MAKE_MESSID(0x21, 0x51), // inst_mess[1] + MAKE_MESSID(0x21, 0x52), // inst_mess[2] + MAKE_MESSID(0x21, 0x53), // inst_mess[3] }, { OVL_M422, // ovl 1, // type 1, // flag 255, // record_idx - 0x170016, // name_mess + MAKE_MESSID(0x17, 0x16), // name_mess DATADIR_M422, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 23), // inst_pic[0] 0, // inst_pic[1] @@ -395,17 +397,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 23), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210054, // inst_mess[0] - 0x210055, // inst_mess[1] - 0x210056, // inst_mess[2] - 0x210057, // inst_mess[3] + MAKE_MESSID(0x21, 0x54), // inst_mess[0] + MAKE_MESSID(0x21, 0x55), // inst_mess[1] + MAKE_MESSID(0x21, 0x56), // inst_mess[2] + MAKE_MESSID(0x21, 0x57), // inst_mess[3] }, { OVL_M423, // ovl 1, // type 0, // flag 255, // record_idx - 0x170017, // name_mess + MAKE_MESSID(0x17, 0x17), // name_mess DATADIR_M423, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 24), // inst_pic[0] 0, // inst_pic[1] @@ -413,17 +415,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 24), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210058, // inst_mess[0] - 0x210059, // inst_mess[1] - 0x21005A, // inst_mess[2] - 0x21005B, // inst_mess[3] + MAKE_MESSID(0x21, 0x58), // inst_mess[0] + MAKE_MESSID(0x21, 0x59), // inst_mess[1] + MAKE_MESSID(0x21, 0x5A), // inst_mess[2] + MAKE_MESSID(0x21, 0x5B), // inst_mess[3] }, { OVL_M424, // ovl 1, // type 0, // flag 255, // record_idx - 0x170018, // name_mess + MAKE_MESSID(0x17, 0x18), // name_mess DATADIR_M424, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 25), // inst_pic[0] 0, // inst_pic[1] @@ -431,17 +433,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 25), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21005C, // inst_mess[0] - 0x21005D, // inst_mess[1] - 0x21005E, // inst_mess[2] - 0x21005F, // inst_mess[3] + MAKE_MESSID(0x21, 0x5C), // inst_mess[0] + MAKE_MESSID(0x21, 0x5D), // inst_mess[1] + MAKE_MESSID(0x21, 0x5E), // inst_mess[2] + MAKE_MESSID(0x21, 0x5F), // inst_mess[3] }, { OVL_M425, // ovl 2, // type 3, // flag 255, // record_idx - 0x170019, // name_mess + MAKE_MESSID(0x17, 0x19), // name_mess DATADIR_M425, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 26), // inst_pic[0] 0, // inst_pic[1] @@ -449,17 +451,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 26), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210060, // inst_mess[0] - 0x210061, // inst_mess[1] + MAKE_MESSID(0x21, 0x60), // inst_mess[0] + MAKE_MESSID(0x21, 0x61), // inst_mess[1] 0, // inst_mess[2] - 0x210063, // inst_mess[3] + MAKE_MESSID(0x21, 0x63), // inst_mess[3] }, { OVL_M426, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001A, // name_mess + MAKE_MESSID(0x17, 0x1A), // name_mess DATADIR_M426, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 27), // inst_pic[0] 0, // inst_pic[1] @@ -467,17 +469,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 27), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210064, // inst_mess[0] - 0x210065, // inst_mess[1] + MAKE_MESSID(0x21, 0x64), // inst_mess[0] + MAKE_MESSID(0x21, 0x65), // inst_mess[1] 0, // inst_mess[2] - 0x210067, // inst_mess[3] + MAKE_MESSID(0x21, 0x67), // inst_mess[3] }, { OVL_M427, // ovl 2, // type 2, // flag 2, // record_idx - 0x17001B, // name_mess + MAKE_MESSID(0x17, 0x1B), // name_mess DATADIR_M427, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 28), // inst_pic[0] 0, // inst_pic[1] @@ -485,17 +487,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 28), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210068, // inst_mess[0] - 0x210069, // inst_mess[1] + MAKE_MESSID(0x21, 0x68), // inst_mess[0] + MAKE_MESSID(0x21, 0x69), // inst_mess[1] 0, // inst_mess[2] - 0x21006B, // inst_mess[3] + MAKE_MESSID(0x21, 0x6B), // inst_mess[3] }, { OVL_M428, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001C, // name_mess + MAKE_MESSID(0x17, 0x1C), // name_mess DATADIR_M428, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 29), // inst_pic[0] 0, // inst_pic[1] @@ -503,17 +505,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 29), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21006C, // inst_mess[0] - 0x21006D, // inst_mess[1] + MAKE_MESSID(0x21, 0x6C), // inst_mess[0] + MAKE_MESSID(0x21, 0x6D), // inst_mess[1] 0, // inst_mess[2] - 0x21006F, // inst_mess[3] + MAKE_MESSID(0x21, 0x6F), // inst_mess[3] }, { OVL_M429, // ovl 2, // type 2, // flag 255, // record_idx - 0x17001D, // name_mess + MAKE_MESSID(0x17, 0x1D), // name_mess DATADIR_M429, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 30), // inst_pic[0] 0, // inst_pic[1] @@ -521,17 +523,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 64), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210070, // inst_mess[0] - 0x210071, // inst_mess[1] + MAKE_MESSID(0x21, 0x70), // inst_mess[0] + MAKE_MESSID(0x21, 0x71), // inst_mess[1] 0, // inst_mess[2] - 0x210073, // inst_mess[3] + MAKE_MESSID(0x21, 0x73), // inst_mess[3] }, { OVL_M430, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001E, // name_mess + MAKE_MESSID(0x17, 0x1E), // name_mess DATADIR_M430, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 31), // inst_pic[0] 0, // inst_pic[1] @@ -539,17 +541,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 31), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210074, // inst_mess[0] - 0x210075, // inst_mess[1] - 0x210076, // inst_mess[2] - 0x210077, // inst_mess[3] + MAKE_MESSID(0x21, 0x74), // inst_mess[0] + MAKE_MESSID(0x21, 0x75), // inst_mess[1] + MAKE_MESSID(0x21, 0x76), // inst_mess[2] + MAKE_MESSID(0x21, 0x77), // inst_mess[3] }, { OVL_M431, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001F, // name_mess + MAKE_MESSID(0x17, 0x1F), // name_mess DATADIR_M431, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 32), // inst_pic[0] 0, // inst_pic[1] @@ -557,17 +559,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 32), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210078, // inst_mess[0] - 0x210079, // inst_mess[1] + MAKE_MESSID(0x21, 0x78), // inst_mess[0] + MAKE_MESSID(0x21, 0x79), // inst_mess[1] 0, // inst_mess[2] - 0x21007B, // inst_mess[3] + MAKE_MESSID(0x21, 0x7B), // inst_mess[3] }, { OVL_M432, // ovl 2, // type 3, // flag 3, // record_idx - 0x170020, // name_mess + MAKE_MESSID(0x17, 0x20), // name_mess DATADIR_M432, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 33), // inst_pic[0] 0, // inst_pic[1] @@ -575,17 +577,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 33), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21007C, // inst_mess[0] - 0x21007D, // inst_mess[1] - 0x21007E, // inst_mess[2] - 0x21007F, // inst_mess[3] + MAKE_MESSID(0x21, 0x7C), // inst_mess[0] + MAKE_MESSID(0x21, 0x7D), // inst_mess[1] + MAKE_MESSID(0x21, 0x7E), // inst_mess[2] + MAKE_MESSID(0x21, 0x7F), // inst_mess[3] }, { OVL_M433, // ovl 7, // type 3, // flag 255, // record_idx - 0x170021, // name_mess + MAKE_MESSID(0x17, 0x21), // name_mess DATADIR_M433, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 34), // inst_pic[0] 0, // inst_pic[1] @@ -593,17 +595,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 34), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210080, // inst_mess[0] - 0x37001F, // inst_mess[1] + MAKE_MESSID(0x21, 0x80), // inst_mess[0] + MAKE_MESSID(0x37, 0x1F), // inst_mess[1] 0, // inst_mess[2] - 0x210083, // inst_mess[3] + MAKE_MESSID(0x21, 0x83), // inst_mess[3] }, { OVL_M434, // ovl 2, // type 2, // flag 255, // record_idx - 0x170022, // name_mess + MAKE_MESSID(0x17, 0x22), // name_mess DATADIR_M434, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 35), // inst_pic[0] 0, // inst_pic[1] @@ -611,17 +613,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 35), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210084, // inst_mess[0] - 0x210085, // inst_mess[1] + MAKE_MESSID(0x21, 0x84), // inst_mess[0] + MAKE_MESSID(0x21, 0x85), // inst_mess[1] 0, // inst_mess[2] - 0x210087, // inst_mess[3] + MAKE_MESSID(0x21, 0x87), // inst_mess[3] }, { OVL_M435, // ovl 3, // type 3, // flag 255, // record_idx - 0x170023, // name_mess + MAKE_MESSID(0x17, 0x23), // name_mess DATADIR_M435, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 36), // inst_pic[0] 0, // inst_pic[1] @@ -630,7 +632,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x210089, // inst_mess[1] + MAKE_MESSID(0x21, 0x89), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -639,7 +641,7 @@ MgInfo mgInfoTbl[] = { 3, // type 3, // flag 255, // record_idx - 0x170024, // name_mess + MAKE_MESSID(0x17, 0x24), // name_mess DATADIR_M436, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 37), // inst_pic[0] 0, // inst_pic[1] @@ -648,7 +650,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x21008D, // inst_mess[1] + MAKE_MESSID(0x21, 0x8D), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -657,7 +659,7 @@ MgInfo mgInfoTbl[] = { 3, // type 3, // flag 255, // record_idx - 0x170025, // name_mess + MAKE_MESSID(0x17, 0x25), // name_mess DATADIR_M437, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 38), // inst_pic[0] 0, // inst_pic[1] @@ -666,7 +668,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x210091, // inst_mess[1] + MAKE_MESSID(0x21, 0x91), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -675,7 +677,7 @@ MgInfo mgInfoTbl[] = { 4, // type 3, // flag 255, // record_idx - 0x170026, // name_mess + MAKE_MESSID(0x17, 0x26), // name_mess DATADIR_M438, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 39), // inst_pic[0] 0, // inst_pic[1] @@ -683,17 +685,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 39), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210094, // inst_mess[0] - 0x210095, // inst_mess[1] + MAKE_MESSID(0x21, 0x94), // inst_mess[0] + MAKE_MESSID(0x21, 0x95), // inst_mess[1] 0, // inst_mess[2] - 0x210097, // inst_mess[3] + MAKE_MESSID(0x21, 0x97), // inst_mess[3] }, { OVL_M439, // ovl 4, // type 2, // flag 255, // record_idx - 0x170027, // name_mess + MAKE_MESSID(0x17, 0x27), // name_mess DATADIR_M439, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 40), // inst_pic[0] 0, // inst_pic[1] @@ -701,17 +703,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 40), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210098, // inst_mess[0] - 0x210099, // inst_mess[1] + MAKE_MESSID(0x21, 0x98), // inst_mess[0] + MAKE_MESSID(0x21, 0x99), // inst_mess[1] 0, // inst_mess[2] - 0x21009B, // inst_mess[3] + MAKE_MESSID(0x21, 0x9B), // inst_mess[3] }, { OVL_M440, // ovl 4, // type 3, // flag 255, // record_idx - 0x170028, // name_mess + MAKE_MESSID(0x17, 0x28), // name_mess DATADIR_M440, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 41), // inst_pic[0] 0, // inst_pic[1] @@ -719,17 +721,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 41), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21009C, // inst_mess[0] - 0x21009D, // inst_mess[1] + MAKE_MESSID(0x21, 0x9C), // inst_mess[0] + MAKE_MESSID(0x21, 0x9D), // inst_mess[1] 0, // inst_mess[2] - 0x21009F, // inst_mess[3] + MAKE_MESSID(0x21, 0x9F), // inst_mess[3] }, { OVL_M441, // ovl 4, // type 3, // flag 255, // record_idx - 0x170029, // name_mess + MAKE_MESSID(0x17, 0x29), // name_mess DATADIR_M441, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 42), // inst_pic[0] 0, // inst_pic[1] @@ -737,17 +739,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 42), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100A0, // inst_mess[0] - 0x2100A1, // inst_mess[1] + MAKE_MESSID(0x21, 0xA0), // inst_mess[0] + MAKE_MESSID(0x21, 0xA1), // inst_mess[1] 0, // inst_mess[2] - 0x2100A3, // inst_mess[3] + MAKE_MESSID(0x21, 0xA3), // inst_mess[3] }, { OVL_M442, // ovl 7, // type 3, // flag 255, // record_idx - 0x17002A, // name_mess + MAKE_MESSID(0x17, 0x2A), // name_mess DATADIR_M442, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 43), // inst_pic[0] 0, // inst_pic[1] @@ -755,17 +757,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 65), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100A4, // inst_mess[0] - 0x370010, // inst_mess[1] + MAKE_MESSID(0x21, 0xA4), // inst_mess[0] + MAKE_MESSID(0x37, 0x10), // inst_mess[1] 0, // inst_mess[2] - 0x2100A7, // inst_mess[3] + MAKE_MESSID(0x21, 0xA7), // inst_mess[3] }, { OVL_M443, // ovl 0, // type 2, // flag 5, // record_idx - 0x17002B, // name_mess + MAKE_MESSID(0x17, 0x2B), // name_mess DATADIR_M443, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 44), // inst_pic[0] 0, // inst_pic[1] @@ -773,17 +775,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 44), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100A8, // inst_mess[0] - 0x2100A9, // inst_mess[1] + MAKE_MESSID(0x21, 0xA8), // inst_mess[0] + MAKE_MESSID(0x21, 0xA9), // inst_mess[1] 0, // inst_mess[2] - 0x2100AB, // inst_mess[3] + MAKE_MESSID(0x21, 0xAB), // inst_mess[3] }, { OVL_M444, // ovl 5, // type 3, // flag 255, // record_idx - 0x17002C, // name_mess + MAKE_MESSID(0x17, 0x2C), // name_mess DATADIR_M444, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 45), // inst_pic[0] 0, // inst_pic[1] @@ -801,7 +803,7 @@ MgInfo mgInfoTbl[] = { 6, // type 0, // flag 255, // record_idx - 0x17002D, // name_mess + MAKE_MESSID(0x17, 0x2D), // name_mess DATADIR_M445, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 46), // inst_pic[0] 0, // inst_pic[1] @@ -809,17 +811,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 46), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100AC, // inst_mess[0] - 0x2100AD, // inst_mess[1] + MAKE_MESSID(0x21, 0xAC), // inst_mess[0] + MAKE_MESSID(0x21, 0xAD), // inst_mess[1] 0, // inst_mess[2] - 0x2100AF, // inst_mess[3] + MAKE_MESSID(0x21, 0xAF), // inst_mess[3] }, { OVL_M446, // ovl 6, // type 0, // flag 255, // record_idx - 0x17002E, // name_mess + MAKE_MESSID(0x17, 0x2E), // name_mess DATADIR_M446, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 47), // inst_pic[0] 0, // inst_pic[1] @@ -827,17 +829,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 47), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100B0, // inst_mess[0] - 0x2100B1, // inst_mess[1] + MAKE_MESSID(0x21, 0xB0), // inst_mess[0] + MAKE_MESSID(0x21, 0xB1), // inst_mess[1] 0, // inst_mess[2] - 0x2100B3, // inst_mess[3] + MAKE_MESSID(0x21, 0xB3), // inst_mess[3] }, { OVL_M447, // ovl 6, // type 0, // flag 255, // record_idx - 0x17002F, // name_mess + MAKE_MESSID(0x17, 0x2F), // name_mess DATADIR_M447, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 48), // inst_pic[0] 0, // inst_pic[1] @@ -845,17 +847,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 48), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100B4, // inst_mess[0] - 0x2100B5, // inst_mess[1] + MAKE_MESSID(0x21, 0xB4), // inst_mess[0] + MAKE_MESSID(0x21, 0xB5), // inst_mess[1] 0, // inst_mess[2] - 0x2100B7, // inst_mess[3] + MAKE_MESSID(0x21, 0xB7), // inst_mess[3] }, { OVL_M448, // ovl 6, // type 0, // flag 255, // record_idx - 0x170030, // name_mess + MAKE_MESSID(0x17, 0x30), // name_mess DATADIR_M448, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 49), // inst_pic[0] 0, // inst_pic[1] @@ -863,17 +865,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 49), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100B8, // inst_mess[0] - 0x2100B9, // inst_mess[1] + MAKE_MESSID(0x21, 0xB8), // inst_mess[0] + MAKE_MESSID(0x21, 0xB9), // inst_mess[1] 0, // inst_mess[2] - 0x2100BB, // inst_mess[3] + MAKE_MESSID(0x21, 0xBB), // inst_mess[3] }, { OVL_M449, // ovl 6, // type 0, // flag 255, // record_idx - 0x170031, // name_mess + MAKE_MESSID(0x17, 0x31), // name_mess DATADIR_M449, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -881,17 +883,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100BC, // inst_mess[0] - 0x2100BD, // inst_mess[1] + MAKE_MESSID(0x21, 0xBC), // inst_mess[0] + MAKE_MESSID(0x21, 0xBD), // inst_mess[1] 0, // inst_mess[2] - 0x2100BF, // inst_mess[3] + MAKE_MESSID(0x21, 0xBF), // inst_mess[3] }, { OVL_M450, // ovl 8, // type 0, // flag 255, // record_idx - 0x170032, // name_mess + MAKE_MESSID(0x17, 0x32), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 51), // inst_pic[0] 0, // inst_pic[1] @@ -899,17 +901,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 51), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100C0, // inst_mess[0] - 0x2100C1, // inst_mess[1] + MAKE_MESSID(0x21, 0xC0), // inst_mess[0] + MAKE_MESSID(0x21, 0xC1), // inst_mess[1] 0, // inst_mess[2] - 0x2100C3, // inst_mess[3] + MAKE_MESSID(0x21, 0xC3), // inst_mess[3] }, { OVL_M451, // ovl 7, // type 0, // flag 255, // record_idx - 0x170033, // name_mess + MAKE_MESSID(0x17, 0x33), // name_mess DATADIR_M451, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 52), // inst_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 53), // inst_pic[1] @@ -917,17 +919,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 52), // mg_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 53), // mg_pic[1] DATA_MAKE_NUM(DATADIR_INSTPIC, 54), // mg_pic[2] - 0x2100C4, // inst_mess[0] - 0x37000D, // inst_mess[1] + MAKE_MESSID(0x21, 0xC4), // inst_mess[0] + MAKE_MESSID(0x37, 0x0D), // inst_mess[1] 0, // inst_mess[2] - 0x2100C7, // inst_mess[3] + MAKE_MESSID(0x21, 0xC7), // inst_mess[3] }, { OVL_M450, // ovl 7, // type 0, // flag 255, // record_idx - 0x170033, // name_mess + MAKE_MESSID(0x17, 0x33), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 55), // inst_pic[0] 0, // inst_pic[1] @@ -945,7 +947,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170034, // name_mess + MAKE_MESSID(0x17, 0x34), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -953,17 +955,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100C8, // inst_mess[0] - 0x37000A, // inst_mess[1] + MAKE_MESSID(0x21, 0xC8), // inst_mess[0] + MAKE_MESSID(0x37, 0x0A), // inst_mess[1] 0, // inst_mess[2] - 0x2100CB, // inst_mess[3] + MAKE_MESSID(0x21, 0xCB), // inst_mess[3] }, { OVL_M450, // ovl 7, // type 0, // flag 255, // record_idx - 0x170033, // name_mess + MAKE_MESSID(0x17, 0x33), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 55), // inst_pic[0] 0, // inst_pic[1] @@ -981,7 +983,7 @@ MgInfo mgInfoTbl[] = { 4, // type 3, // flag 255, // record_idx - 0x170035, // name_mess + MAKE_MESSID(0x17, 0x35), // name_mess DATADIR_M455, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 56), // inst_pic[0] 0, // inst_pic[1] @@ -989,17 +991,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 56), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100CC, // inst_mess[0] - 0x2100CD, // inst_mess[1] + MAKE_MESSID(0x21, 0xCC), // inst_mess[0] + MAKE_MESSID(0x21, 0xCD), // inst_mess[1] 0, // inst_mess[2] - 0x2100CF, // inst_mess[3] + MAKE_MESSID(0x21, 0xCF), // inst_mess[3] }, { OVL_M456, // ovl 0, // type 3, // flag 255, // record_idx - 0x170036, // name_mess + MAKE_MESSID(0x17, 0x36), // name_mess DATADIR_M456, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 57), // inst_pic[0] 0, // inst_pic[1] @@ -1007,17 +1009,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 57), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100D0, // inst_mess[0] - 0x2100D1, // inst_mess[1] + MAKE_MESSID(0x21, 0xD0), // inst_mess[0] + MAKE_MESSID(0x21, 0xD1), // inst_mess[1] 0, // inst_mess[2] - 0x2100D3, // inst_mess[3] + MAKE_MESSID(0x21, 0xD3), // inst_mess[3] }, { OVL_M457, // ovl 8, // type 0, // flag 255, // record_idx - 0x170037, // name_mess + MAKE_MESSID(0x17, 0x37), // name_mess DATADIR_M457, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 58), // inst_pic[0] 0, // inst_pic[1] @@ -1035,7 +1037,7 @@ MgInfo mgInfoTbl[] = { 8, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 59), // inst_pic[0] 0, // inst_pic[1] @@ -1053,7 +1055,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1062,7 +1064,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370013, // inst_mess[1] + MAKE_MESSID(0x37, 0x13), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1071,7 +1073,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1080,7 +1082,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370016, // inst_mess[1] + MAKE_MESSID(0x37, 0x16), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1089,7 +1091,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1098,7 +1100,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370019, // inst_mess[1] + MAKE_MESSID(0x37, 0x19), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1107,7 +1109,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1116,7 +1118,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x37001C, // inst_mess[1] + MAKE_MESSID(0x37, 0x1C), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1125,7 +1127,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1134,7 +1136,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370007, // inst_mess[1] + MAKE_MESSID(0x37, 0x07), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1158,7 +1160,7 @@ MgInfo mgInfoTbl[] = { }, }; -void MGSeqPracticeExitCheck(omObjData*); +void MGSeqPracticeExitCheck(omObjData *); s16 mgTypeCurr; s16 mgBattleStar[4]; @@ -1174,12 +1176,13 @@ s16 mgTicTacToeGrid[3][3]; u8 mgIndexList[256]; GameStat mgGameStatBackup; -s32 omMgIndexGet(s16 overlay) { +s32 omMgIndexGet(s16 overlay) +{ s32 i; MgInfo *info; info = mgInfoTbl; - + for (i = 0; info->ovl != ((u16)OVL_INVALID); i++) { if (info->ovl == overlay) { return (s16)i; @@ -1190,27 +1193,29 @@ s32 omMgIndexGet(s16 overlay) { return -1; } -void omGameSysInit(Process *objman) { +void omGameSysInit(Process *objman) +{ s32 i; - omObjData* obj; + omObjData *obj; omSystemKeyCheckSetup(objman); Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); omSysPauseEnable(0); - + for (i = 0; i < 4; i++) { GWPlayerCoinWinSet(i, 0); GWPlayerCoinCollectSet(i, 0); } - + if (mgPracticeEnableF != 0) { obj = omAddObjEx(objman, 0x7FDC, 0, 0, -1, MGSeqPracticeExitCheck); omSetStatBit(obj, 0xA0U); } } -void omVibrate(s16 player, s16 duration, s16 off, s16 on) { - +void omVibrate(s16 player, s16 duration, s16 off, s16 on) +{ + if (GWRumbleGet() != 0 && GWPlayerCfg[player].iscom == 0) { HuPadRumbleSet(GWPlayerCfg[player].pad_idx, duration, off, on); } diff --git a/src/game/wipe.c b/src/game/wipe.c index f2429aa3..f3902d7e 100644 --- a/src/game/wipe.c +++ b/src/game/wipe.c @@ -324,4 +324,4 @@ static void WipeFrameStill(GXColor color) GXTexCoord2f32(0, 1); GXEnd(); GXSetChanMatColor(GX_COLOR0A0, colorN); -} \ No newline at end of file +}