#include "REL/w05Dll.h" #include "game/gamework_data.h" #include "game/chrman.h" #include "game/frand.h" #include "game/board/audio.h" #include "game/board/boo_house.h" #include "game/board/com.h" #include "game/board/lottery.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/shop.h" #include "game/board/space.h" #include "game/board/star.h" #include "game/board/window.h" // 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 }, }; 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_14C = 0xFFFFFFFF; // bss s16 lbl_1_bss_14[7]; s32* lbl_1_bss_10; s16 lbl_1_bss_8[4]; Process* lbl_1_bss_4; bitcopy* lbl_1_bss_0; void BoardCreate(void) { s32 sp8; s32 var_r31; 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); 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); BoardModelMotionSpeedSet(lbl_1_data_118, 1.0f); fn_8006DDE8(lbl_1_data_120, -1.0f); BoardModelPosSet(lbl_1_data_120, 0.0f, 0.0f, 0.0f); 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); 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); 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 { lbl_1_bss_10 = NULL; } lbl_1_bss_14[var_r31] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_10, 0); BoardModelPosSetV(lbl_1_bss_14[var_r31], &temp_r30->pos); BoardModelRotSetV(lbl_1_bss_14[var_r31], &temp_r30->rot); BoardModelScaleSetV(lbl_1_bss_14[var_r31], &temp_r30->scale); BoardModelVisibilitySet(lbl_1_bss_14[var_r31], 1); if (lbl_1_bss_10 != NULL) { BoardModelMotionStart(lbl_1_bss_14[var_r31], 0, 0x40000001); } } } fn_1_92C(); fn_1_13D4(); fn_1_2B40(); BoardSpaceWalkEventFuncSet(&fn_1_82C); BoardSpaceWalkMiniEventFuncSet(&fn_1_1114); BoardSpaceLandEventFuncSet(&fn_1_78C); BoardStarHostSet(lbl_1_data_11C); BoardBooHouseHostSet(lbl_1_data_11E); BoardShopHostSet(lbl_1_data_11E); BoardLotteryHostSet(lbl_1_data_11E); } void BoardDestroy(void) { s32 var_r31; for (var_r31 = 0; var_r31 < 7; var_r31++) { if (lbl_1_bss_14[var_r31] != 0) { BoardModelKill(lbl_1_bss_14[var_r31]); lbl_1_bss_14[var_r31] = 0; } } if (lbl_1_data_11E != -1) { BoardModelKill(lbl_1_data_11E); lbl_1_data_11E = -1; } if (lbl_1_data_11C != -1) { BoardModelKill(lbl_1_data_11C); lbl_1_data_11C = -1; } if (lbl_1_data_118 != -1) { BoardModelKill(lbl_1_data_118); lbl_1_data_118 = -1; } if (lbl_1_data_120 != -1) { BoardModelKill(lbl_1_data_120); lbl_1_data_120 = -1; } if (lbl_1_data_11A != -1) { BoardModelKill(lbl_1_data_11A); lbl_1_data_11A = -1; } BoardSpaceDestroy(); } void fn_1_744(void) { s16 var_r31 = BoardModelIDGet(lbl_1_data_118); Hu3DModelLightInfoSet(var_r31, 1); } void fn_1_788(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(); return; } if ((temp_r3 & 0x40) != 0) { var_r28 = (temp_r3 & 0x38) >> 3; fn_1_4034(var_r28); } } s32 fn_1_82C(void) { s32 temp_r30; BoardSpace* temp_r3; temp_r30 = GWSystem.player_curr; temp_r3 = BoardSpaceGet(0, GWPlayer[temp_r30].space_curr); if ((temp_r3->flag & 1) != 0) { fn_1_2C7C(0); return 1; } if ((temp_r3->flag & 0x800) != 0) { fn_1_2C7C(1); return 1; } if (BoardPlayerSizeGet(temp_r30) == 2) { return 0; } if (GWPlayer[temp_r30].bowser_suit != 0) { return 0; } if ((temp_r3->flag & 4) != 0) { fn_1_155C(); return 1; } return 0; } void fn_1_92C(void) { fn_1_6B28(); fn_1_9680(); } void fn_1_950(void) { } void fn_1_954(void) { Vec sp14; Vec sp8; s32 var_r26; u32 var_r28; s32 temp_r27; s32 var_r29; s32 var_r31; s32 temp_r30; temp_r30 = GWSystem.player_curr; if (BoardPlayerItemCount(temp_r30) == 3) { BoardWinCreate(2, 0x270009, 7); BoardWinWait(); BoardWinKill(); 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)) { continue; } for (var_r29 = 0; var_r29 < var_r31; var_r29++) { if (lbl_1_bss_8[var_r31] == lbl_1_bss_8[var_r29]) { lbl_1_bss_8[var_r31] = -1; } } if (lbl_1_bss_8[var_r31] == -1) { continue; } var_r31++; } fn_1_74D0(lbl_1_bss_8); BoardWinCreateChoice(2, 0x27000A, 7, 0); 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 { BoardComKeySetRight(); } } BoardWinWait(); BoardWinKill(); var_r28 = BoardWinChoiceGet(); if (var_r28 == 1 || var_r28 == -1) { while (((u32)fn_1_8884() & 0x10) == 0) { HuPrcVSleep(); } BoardWinCreate(2, 0x27000B, 7); BoardWinWait(); BoardWinKill(); BoardMGExit(); fn_1_88B8(); fn_1_77B0(); fn_1_7314(); while (BoardMGDoneFlagGet() != 1) { HuPrcVSleep(); } BoardMGDoneFlagSet(0); HuPrcEnd(); } sp14.x = -30.0f; sp14.y = sp14.z = 0.0f; sp8.x = 0.0f; sp8.y = 0.0f; sp8.z = 0.0f; BoardCameraMotionStartEx(lbl_1_bss_14[0], &sp14, &sp8, 1250.0f, 25.0f, 0x15); while (((u32)fn_1_8884() & 0x10) == 0) { HuPrcVSleep(); } 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(); } BoardPlayerMotionStart(temp_r30, 1, 0x40000001); fn_1_6B7C(); while (BoardEventFlagGet() != 0) { HuPrcVSleep(); } while ((GWPlayer[temp_r30].moving) != 0) { HuPrcVSleep(); } BoardPlayerMotionStart(temp_r30, 1, 0x40000001); HuPrcEnd(); } void fn_1_D4C(void) { BoardWinKill(); CharModelDataClose(-1); lbl_1_bss_4 = NULL; } 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) { HuPrcSleep(0x3C); BoardMusStart(1, 0x23, 0x7F, 0); HuPrcEnd(); } void fn_1_E40(void) { Vec sp20; Vec sp14; Vec sp8; s32 temp_r30; s32 temp_r29; s32 temp_r3_2; s32 temp_r31; temp_r31 = GWSystem.player_curr; fn_1_96B4(); BoardWinCreateChoice(2, 0x27000F, 7, 0); if (GWPlayer[temp_r31].com != 0) { if (frandBool() != 0) { BoardComKeySetLeft(); } else { BoardComKeySetRight(); } } BoardWinWait(); BoardWinKill(); temp_r30 = BoardWinChoiceGet(); if ((temp_r30 == 1) || (temp_r30 == -1)) { fn_1_9760(); BoardWinCreate(2, 0x270010, 7); BoardWinWait(); BoardWinKill(); BoardMGExit(); while (BoardMGDoneFlagGet() != 1) { HuPrcVSleep(); } BoardMGDoneFlagSet(0); return; } BoardAudSeqPause(0, 1, 0x3E8); HuPrcChildCreate(fn_1_E04, 0x2003, 0x1000, 0, boardMainProc); sp20.x = -35.0f; sp20.y = sp20.z = 0.0f; sp14.x = 0.0f; sp14.y = 0.0f; sp14.z = -250.0f; BoardCameraMotionStartEx(lbl_1_bss_14[1], &sp20, &sp14, 1550.0f, 25.0f, 0x15); temp_r29 = GWPlayer[temp_r31].space_curr; temp_r3_2 = BoardSpaceLinkFlagSearch(0, temp_r29, 0x02000000); BoardSpacePosGet(0, temp_r3_2, &sp8); BoardPlayerMoveBetween(temp_r31, temp_r29, temp_r3_2); while (GWPlayer[temp_r31].moving != 0) { HuPrcVSleep(); } BoardPlayerMotionStart(temp_r31, 1, 0x40000001); fn_1_97AC(); while (GWPlayer[temp_r31].moving != 0) { HuPrcVSleep(); } while (BoardEventFlagGet() != 0) { HuPrcVSleep(); } while (GWPlayer[temp_r31].moving != 0) { HuPrcVSleep(); } BoardPlayerMotionStart(temp_r31, 1, 0x40000001); } s32 fn_1_1114(void) { u32 temp_r31; s16 var_r30 = GWPlayer[GWSystem.player_curr].space_curr; temp_r31 = BoardSpaceFlagGet(0, var_r30) & 0x600000; BoardRollDispSet(0); if ((temp_r31 & 0x200000) != 0) { lbl_1_bss_4 = HuPrcChildCreate(fn_1_954, 0x2003, 0x3000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_D4C); while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } } else if ((temp_r31 & 0x400000) != 0) { fn_1_E40(); } BoardRollDispSet(1); } s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) { f32 var_f29; f32 var_f31; s32 var_r31; var_r31 = 0; var_f31 = BoardModelRotYGet(arg0); arg8 = fmod(arg8, 360.0); if (var_f31 < 0.0f) { var_f31 += 360.0f; } if (arg8 < 0.0f) { arg8 += 360.0f; } if (var_f31 != arg8) { var_f29 = arg8 - var_f31; if (var_f29 < 0.0f) { var_f29 += 360.0f; } if (var_f29 < 180.0f) { if (var_f29 > arg9) { var_f31 = var_f31 + arg9; } else { var_f31 = arg8; } } else if ((360.0f - var_f29) > arg9) { var_f31 = var_f31 - arg9; } else { var_f31 = arg8; } if (var_f31 < 0.0f) { var_f31 += 360.0f; } if (var_f31 >= 360.0f) { var_f31 -= 360.0f; } BoardModelRotYSet(arg0, var_f31); } else { var_r31 = 1; } return var_r31; }