From 0e92b2ba098999df9c18618bf34d444afd1cec00 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Thu, 14 Mar 2024 09:57:45 -0500 Subject: [PATCH] Clean up board rels --- config/GMPE01_00/rels/w10Dll/splits.txt | 4 +- config/GMPE01_00/rels/w10Dll/symbols.txt | 2 +- include/REL/w10Dll.h | 7 - include/game/board/main.h | 10 - src/REL/w03Dll/main.c | 5 +- src/REL/w03Dll/mg_coin.c | 72 +++--- src/REL/w03Dll/mg_item.c | 8 +- src/REL/w03Dll/river.c | 44 ++-- src/REL/w03Dll/smoke.c | 10 +- src/REL/w03Dll/statue.c | 74 +++--- src/REL/w10Dll/main.c | 7 +- src/REL/w10Dll/scene.c | 47 ++++ src/REL/w10Dll/tutorial.c | 289 +++++++++-------------- src/game/board/main.c | 12 +- src/game/board/space.c | 14 +- 15 files changed, 267 insertions(+), 338 deletions(-) diff --git a/config/GMPE01_00/rels/w10Dll/splits.txt b/config/GMPE01_00/rels/w10Dll/splits.txt index 3841a3e1..d14a396d 100644 --- a/config/GMPE01_00/rels/w10Dll/splits.txt +++ b/config/GMPE01_00/rels/w10Dll/splits.txt @@ -22,10 +22,10 @@ REL/w10Dll/host.c: .data start:0x00000078 end:0x00000098 REL/w10Dll/scene.c: - .text start:0x00000D2C end:0x0000176C + .text start:0x00000D2C end:0x00001984 .rodata start:0x00000048 end:0x00000058 REL/w10Dll/tutorial.c: - .text start:0x0000176C end:0x0000206C + .text start:0x00001984 end:0x0000206C .rodata start:0x00000058 end:0x00000070 .data start:0x00000098 end:0x000002D4 diff --git a/config/GMPE01_00/rels/w10Dll/symbols.txt b/config/GMPE01_00/rels/w10Dll/symbols.txt index 2baa309a..658188c2 100644 --- a/config/GMPE01_00/rels/w10Dll/symbols.txt +++ b/config/GMPE01_00/rels/w10Dll/symbols.txt @@ -15,7 +15,7 @@ fn_1_AEC = .text:0x00000AEC; // type:function size:0xB4 fn_1_BA0 = .text:0x00000BA0; // type:function size:0x70 fn_1_C10 = .text:0x00000C10; // type:function size:0x10 fn_1_C20 = .text:0x00000C20; // type:function size:0x10C -fn_1_D2C = .text:0x00000D2C; // type:function size:0x28 scope:local +fn_1_D2C = .text:0x00000D2C; // type:function size:0x28 fn_1_D54 = .text:0x00000D54; // type:function size:0x28 fn_1_D7C = .text:0x00000D7C; // type:function size:0x28 fn_1_DA4 = .text:0x00000DA4; // type:function size:0x28 diff --git a/include/REL/w10Dll.h b/include/REL/w10Dll.h index c334d7ac..d1bc4999 100644 --- a/include/REL/w10Dll.h +++ b/include/REL/w10Dll.h @@ -30,12 +30,6 @@ typedef struct w10DllUnk01 { f32 unk10; } w10DllUnk01; //sizeof ? -typedef struct w10DllUnk03 { - s16 unk0; - s16 unk2; - s16 unk4; -} w10DllUnk03; - typedef struct w10DllUnk04 { s16 unk0; s16 unk2; @@ -106,7 +100,6 @@ void fn_1_1354(void); void fn_1_137C(void); extern w10DllUnk04 lbl_1_data_108[42]; -extern w10DllUnk03 lbl_1_data_C6[]; extern Vec lbl_1_data_80[]; extern Process* lbl_1_bss_18; extern s16 lbl_1_bss_1C; diff --git a/include/game/board/main.h b/include/game/board/main.h index 22710325..80c2595f 100644 --- a/include/game/board/main.h +++ b/include/game/board/main.h @@ -53,16 +53,6 @@ typedef struct board_camera_data { BoardFocusData focus; } BoardCameraData; -static inline s32 BoardCurrGet() -{ - return GWSystem.board; -} - -static inline s32 BoardPartyFlagGet() -{ - return GWSystem.party; -} - extern BoardCameraData boardCamera; extern Process *boardObjMan; extern Process *boardMainProc; diff --git a/src/REL/w03Dll/main.c b/src/REL/w03Dll/main.c index 2bd2656b..cabadc56 100644 --- a/src/REL/w03Dll/main.c +++ b/src/REL/w03Dll/main.c @@ -18,7 +18,6 @@ #include "board_unsplit.h" #include "game/hsfman.h" -void fn_8005B150(void*, void*); void fn_1_740(void); void fn_1_E0(void); s32 fn_1_2930(s32 arg0); @@ -443,6 +442,4 @@ void fn_1_10E4(omObjData* arg0) { lbl_1_bss_8 = 0; } HuAudFXListnerUpdate(&sp14, &sp8); -} - -f32 const padMain = 0.0f; \ No newline at end of file +} \ No newline at end of file diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index b0fb110f..a403c9ad 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -77,40 +77,7 @@ 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}; -char phei_str[] = "phei"; -s32 lbl_1_data_470[] = { - 0x005F0066, - 0x001A0066, - 0x006D0066, - 0x008A0066, - 0x00850066, - 0x00110066, - 0x000D0066, - 0x00810066 -}; -s32 lbl_1_data_490[] = { - 0x005F0067, - 0x001A0067, - 0x006D0067, - 0x008A0067, - 0x00850067, - 0x00110067, - 0x000D0067, - 0x00810067 -}; - -s8 lbl_1_data_4B0 = -1; - -s32 lbl_1_data_4B4[] = { - 0x00000440, - 0x00000441, - 0x00000442, - 0x00000443, - 0x00000444 -}; - -s8 lbl_1_data_4C8[] = {1, 5, 10, 15, 20, 20}; //BSS char lbl_1_bss_150[0x30]; @@ -123,7 +90,7 @@ Process* lbl_1_bss_140; void fn_1_7ABC(void) { lbl_1_data_456 = BoardModelCreate(0x770020, lbl_1_data_45C, 0); - BoardModelHookSet(lbl_1_bss_C[7], phei_str, lbl_1_data_456); + 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); } @@ -208,7 +175,7 @@ s32 fn_1_7D18(s32 arg0) { BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)); HuPrcSleep(0x1E); model = BoardModelIDGet(lbl_1_bss_C[7]); - Hu3DModelObjPosGet(model, phei_str, &sp38); + Hu3DModelObjPosGet(model, "phei", &sp38); if (GWPlayer[arg0].character == 5) { var_f31 = 54.000004f; } else { @@ -250,6 +217,28 @@ void fn_1_8140(s32 arg0) { fn_1_91B8(); } +s32 lbl_1_data_470[] = { + 0x005F0066, + 0x001A0066, + 0x006D0066, + 0x008A0066, + 0x00850066, + 0x00110066, + 0x000D0066, + 0x00810066 +}; + +s32 lbl_1_data_490[] = { + 0x005F0067, + 0x001A0067, + 0x006D0067, + 0x008A0067, + 0x00850067, + 0x00110067, + 0x000D0067, + 0x00810067 +}; + void fn_1_81E0(s32 arg0) { Point3d sp8; omObjData* temp_r3; @@ -467,6 +456,17 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { BoardModelMotionSpeedSet(lbl_1_data_456, arg0->trans.x); } +s8 lbl_1_data_4B0 = -1; + +s32 lbl_1_data_4B4[] = { + 0x00000440, + 0x00000441, + 0x00000442, + 0x00000443, + 0x00000444 +}; + + void fn_1_8C08(omObjData* arg0, someBits3* arg1) { Point3d spC; f32 temp_f31; @@ -552,6 +552,8 @@ 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}; + void fn_1_91B8(void) { s8 temp_r3; diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index c9925419..49cc2027 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -19,8 +19,6 @@ double sin(double x); double cos(double x); double atan2(double y, double x); -#define OM_GET_WORK_PTR(object, type) ((type *)(&((object)->work[0]))) - typedef struct someBits { /* 0x00 */ struct { u8 unk00_bit0 : 1; @@ -113,12 +111,8 @@ 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}; -char itemString[] = "item"; -char item1String[] = "item1"; -char item2String[] = "item2"; - char* lbl_1_data_508[] = { - itemString, item1String, item2String + "item", "item1", "item2" }; s32 lbl_1_data_514[] = { diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index fab310b1..f82f8276 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -58,25 +58,6 @@ s32 lbl_1_data_390[] = { -1 }; -char itemhook_RString[] = "itemhook_R"; -char hei01String[] = "hei01"; -char ikadaString[] = "ikada"; - -typedef struct unkPos { - s32 x; - s32 y; - s32 z; -} unkPos; - -unkPos lbl_1_data_3B8[6] = { - {5, 20, 5}, - {21, 35, 7}, - {31, 50, 10}, - {51, 80, 15}, - {81, 100, 17}, - {101, 999, 20}, -}; - void fn_1_63F4(s32 arg0) { Vec spC; unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); @@ -100,10 +81,10 @@ void fn_1_6494(void) { lbl_1_data_38C = BoardModelCreate(0x77000F, 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_RString, lbl_1_data_38C); - BoardModelHookSet(lbl_1_data_388, hei01String, lbl_1_data_38A); + BoardModelHookSet(lbl_1_data_38A, "itemhook_R", lbl_1_data_38C); + BoardModelHookSet(lbl_1_data_388, "hei01", lbl_1_data_38A); - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), ikadaString, &sp14); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), "ikada", &sp14); BoardSpaceFlagPosGet(0, 0x200, &sp8); sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966)); sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966)); @@ -119,7 +100,7 @@ s32 fn_1_6698(void) { Vec sp14; Vec sp8; - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), ikadaString, &sp14); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), "ikada", &sp14); BoardSpaceFlagPosGet(0, 0x200, &sp8); sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966)); sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966)); @@ -158,6 +139,21 @@ void fn_1_6884(void) { lbl_1_bss_120 = 0; } +typedef struct unkPos { + s32 x; + s32 y; + s32 z; +} unkPos; + +unkPos lbl_1_data_3B8[6] = { + {5, 20, 5}, + {21, 35, 7}, + {31, 50, 10}, + {51, 80, 15}, + {81, 100, 17}, + {101, 999, 20}, +}; + s32 fn_1_6898(s32 arg0) { Vec sp20; Vec sp14; @@ -172,7 +168,7 @@ s32 fn_1_6898(s32 arg0) { BoardCameraViewSet(2); BoardCameraMotionWait(); - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), hei01String, &sp20); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20); BoardPlayerPosGet(arg0, &sp14); PSVECSubtract(&sp20, &sp14, &sp8); temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / 3.141592653589793); diff --git a/src/REL/w03Dll/smoke.c b/src/REL/w03Dll/smoke.c index c9731903..9b8d91c5 100644 --- a/src/REL/w03Dll/smoke.c +++ b/src/REL/w03Dll/smoke.c @@ -18,15 +18,9 @@ extern s16 lbl_1_data_1E0; void fn_1_79E0(omObjData* arg0); -char kemuri1[] = "kemuri1"; -char kemuri2[] = "kemuri2"; -char kemuri3[] = "kemuri3"; -char kemuri4[] = "kemuri4"; -char kemuri5[] = "kemuri5"; - char* kemuri_strings[] = { - kemuri1, kemuri2, kemuri3, - kemuri4, kemuri5 + "kemuri1", "kemuri2", "kemuri3", + "kemuri4", "kemuri5" }; void fn_1_785C(void) { diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index 0a41ab69..4a7923e5 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -36,42 +36,6 @@ s16 lbl_1_data_284 = -1; s16 lbl_1_data_286 = -1; s32 lbl_1_data_288 = -1; -char lbl_1_data_28C[] = "%d"; - -s32 lbl_1_data_290[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x62), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x62), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x62), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x62), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x62), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x62), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x62), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x62), -}; - -s32 lbl_1_data_2B0[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x33), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x33), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x33), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x33), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x33), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x33), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x33), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x33), -}; - -s32 lbl_1_data_2D0[] = { - 0x00000125, 0x00000165, 0x000001A5, - 0x000001E5, 0x00000225, 0x00000265, - 0x000002A5, 0x000002E5 -}; - -s32 lbl_1_data_2F0[] = { - 0x0000012E, 0x0000016E, 0x000001AE, - 0x000001EE, 0x0000022E, 0x0000026E, - 0x000002AE, 0x000002EE -}; - //BSS Extern extern w03State* lbl_1_bss_0; extern Process *boardMainProc; @@ -123,7 +87,7 @@ void fn_1_1358(void) { fn_1_20E0(cur_player_index); } if (lbl_1_bss_2C) { - sprintf(lbl_1_bss_44, lbl_1_data_28C, lbl_1_bss_2C); + sprintf(lbl_1_bss_44, "%d", lbl_1_bss_2C); BoardWinCreate(0, 0x160006, -1); BoardWinInsertMesSet((s32)lbl_1_bss_44, 0); BoardWinWait(); @@ -242,6 +206,40 @@ s32 fn_1_1650(s32 arg0) { return 1; } +s32 lbl_1_data_290[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x62), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x62), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x62), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x62), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x62), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x62), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x62), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x62), +}; + +s32 lbl_1_data_2B0[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x33), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x33), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x33), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x33), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x33), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x33), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x33), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x33), +}; + +s32 lbl_1_data_2D0[] = { + 0x00000125, 0x00000165, 0x000001A5, + 0x000001E5, 0x00000225, 0x00000265, + 0x000002A5, 0x000002E5 +}; + +s32 lbl_1_data_2F0[] = { + 0x0000012E, 0x0000016E, 0x000001AE, + 0x000001EE, 0x0000022E, 0x0000026E, + 0x000002AE, 0x000002EE +}; + void fn_1_19DC(s32 arg0, s32 arg1) { s32 temp_r30; s32 temp_r5; @@ -561,7 +559,7 @@ s32 fn_1_2930(s32 arg0) { fn_1_CF4(); return 1; } - sprintf(lbl_1_bss_38, lbl_1_data_28C, lbl_1_bss_0->unk0); + sprintf(lbl_1_bss_38, "%d", lbl_1_bss_0->unk0); BoardWinCreate(0, 0x160007, -1); BoardWinInsertMesSet((s32)lbl_1_bss_38, 1); BoardWinWait(); diff --git a/src/REL/w10Dll/main.c b/src/REL/w10Dll/main.c index 14e63a01..39afd789 100644 --- a/src/REL/w10Dll/main.c +++ b/src/REL/w10Dll/main.c @@ -68,11 +68,6 @@ s32 lbl_1_data_6C[2] = { DATA_NUM_LISTEND }; -// function is probably global. only inlined in rels? -inline s32 get_current_board(void) { - return GWSystem.board; -} - void BoardCreate(void) { f32 sp10; f32 spC[2]; @@ -83,7 +78,7 @@ void BoardCreate(void) { s32 temp; s32 board; - board = BoardCurrGet(); + board = GWBoardGet(); lbl_1_bss_0 = (W10State *)&GWSystem.board_data; lbl_1_bss_0->unk0 = 0; lbl_1_bss_0->unk4 = 0; diff --git a/src/REL/w10Dll/scene.c b/src/REL/w10Dll/scene.c index 270f6e41..4a0ac9fd 100644 --- a/src/REL/w10Dll/scene.c +++ b/src/REL/w10Dll/scene.c @@ -244,3 +244,50 @@ void fn_1_13A4(void) { HuPrcVSleep(); } } + +void fn_1_176C(void) { + fn_1_C10(1); + fn_1_BA0(0x2E0024); +} + +void fn_1_179C(void) { + fn_1_BA0(0x2E0025); + GWPlayer[1].color = 2; + GWPlayer[3].color = 2; +} + +void fn_1_17F4(void) { + fn_1_BA0(0x2E0026); + GWPlayer[0].color = 2; +} + +void fn_1_1834(void) { + fn_1_BA0(0x2E0027); + GWPlayer[0].color = 1; + GWPlayer[1].color = 1; + GWPlayer[2].color = 1; + GWPlayer[3].color = 2; +} + +void fn_1_18BC(void) { + fn_1_BA0(0x2E0028); + fn_1_BA0(0x2E0029); + boardTutorialData[0] = 0; + BoardStatusItemSet(0); +} + +void fn_1_1908(void) { + fn_1_BA0(0x2E002D); +} + +void fn_1_1930(void) { + fn_1_BA0(0x2E002F); +} + +void fn_1_1958(void) { + fn_1_BA0(0x2E0031); +} + +void fn_1_1980(void) { + +} \ No newline at end of file diff --git a/src/REL/w10Dll/tutorial.c b/src/REL/w10Dll/tutorial.c index eb85426e..6da586f4 100644 --- a/src/REL/w10Dll/tutorial.c +++ b/src/REL/w10Dll/tutorial.c @@ -5,68 +5,118 @@ #include "game/wipe.h" #include "game/board/ui.h" -char lbl_1_data_98[] = "@@@@@@@@@@@@@@ Tutorial Exit @@@@@@@@@@@@@@\n\000"; +void fn_1_1984(void) { + s32 port; + s32 i; -w10DllUnk03 lbl_1_data_C6[11] = { -1, -1, -1, -2, -1, -1, -4, -1, -1, -5, -1, -1, -5, -1, -1, -4, -1, -1, -1, -1, -1, -3, -1, -1, -2, -1, -1, -4, -1, -1, -5, 6, -1, + if (lbl_1_bss_C == 0) { + if (WipeStatGet() != 0) { + HuWinDispOff(lbl_1_bss_E); + return; + } + HuWinDispOn(lbl_1_bss_E); + if (BoardIsKill() != 0) { + return; + } + for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) { + port = GWPlayer[i].port; + if (port == -1) { + continue; + } + if (HuPadStatGet(port) == 0 && HuPadBtnDown[port] & PAD_BUTTON_START) { + break; + } + } + if (i != 4) { + lbl_1_bss_C = 1; + OSReport("@@@@@@@@@@@@@@ Tutorial Exit @@@@@@@@@@@@@@\n"); + BoardAudSeqFadeOut(0, 0x1F3); + BoardKill(); + BoardTutorialHookSet(NULL); + } + } +} + +s16 lbl_1_data_C6[11][3] = { + 1, -1, -1, + 2, -1, -1, + 4, -1, -1, + 5, -1, -1, + 5, -1, -1, + 4, -1, -1, + 1, -1, -1, + 3, -1, -1, + 2, -1, -1, + 4, -1, -1, + 5, 6, -1, }; w10DllUnk04 lbl_1_data_108[42] = { -{0x0000, 0000, fn_1_D2C}, -{0x0001, 0000, fn_1_D54}, -{0x0002, 0000, fn_1_D7C}, -{0x0003, 0000, fn_1_DA4}, -{0x0003, 0000, fn_1_DCC}, -{0x0003, 0000, fn_1_DF4}, -{0x0003, 0000, fn_1_E1C}, -{0x0004, 0000, fn_1_E44}, -{0x0005, 0000, fn_1_E94}, -{0x0006, 0000, fn_1_EBC}, -{0x0007, 0000, fn_1_EE4}, -{0x000A, 0000, fn_1_EE8}, -{0x000B, 0000, fn_1_F30}, -{0x0010, 0000, fn_1_F6C}, -{0x0011, 0000, fn_1_FB8}, -{0x000C, 0000, fn_1_1010}, -{0x000D, 0000, fn_1_105C}, -{0x000E, 0000, fn_1_1098}, -{0x000E, 0000, fn_1_10C0}, -{0x000F, 0000, fn_1_10F8}, -{0x0012, 0000, fn_1_1134}, -{0x0014, 0000, fn_1_1178}, -{0x0015, 0000, fn_1_11A0}, -{0x0016, 0000, fn_1_11EC}, -{0x0005, 0000, fn_1_1240}, -{0x0017, 0000, fn_1_1278}, -{0x0007, 0000, fn_1_12A0}, -{0x0005, 0000, fn_1_12DC}, -{0x0017, 0000, fn_1_1304}, -{0x0018, 0000, fn_1_132C}, -{0x0019, 0000, fn_1_1354}, -{0x0008, 0000, fn_1_137C}, -{0x0009, 0000, fn_1_13A4}, -{0x001A, 0000, fn_1_176C}, -{0x001B, 0000, fn_1_179C}, -{0x001B, 0000, fn_1_17F4}, -{0x001B, 0000, fn_1_1834}, -{0x001B, 0000, fn_1_18BC}, -{0x001C, 0000, fn_1_1908}, -{0x001C, 0000, fn_1_1930}, -{0x001C, 0000, fn_1_1958}, -{-1, 0, 0}, + {0x0000, 0000, fn_1_D2C}, + {0x0001, 0000, fn_1_D54}, + {0x0002, 0000, fn_1_D7C}, + {0x0003, 0000, fn_1_DA4}, + {0x0003, 0000, fn_1_DCC}, + {0x0003, 0000, fn_1_DF4}, + {0x0003, 0000, fn_1_E1C}, + {0x0004, 0000, fn_1_E44}, + {0x0005, 0000, fn_1_E94}, + {0x0006, 0000, fn_1_EBC}, + {0x0007, 0000, fn_1_EE4}, + {0x000A, 0000, fn_1_EE8}, + {0x000B, 0000, fn_1_F30}, + {0x0010, 0000, fn_1_F6C}, + {0x0011, 0000, fn_1_FB8}, + {0x000C, 0000, fn_1_1010}, + {0x000D, 0000, fn_1_105C}, + {0x000E, 0000, fn_1_1098}, + {0x000E, 0000, fn_1_10C0}, + {0x000F, 0000, fn_1_10F8}, + {0x0012, 0000, fn_1_1134}, + {0x0014, 0000, fn_1_1178}, + {0x0015, 0000, fn_1_11A0}, + {0x0016, 0000, fn_1_11EC}, + {0x0005, 0000, fn_1_1240}, + {0x0017, 0000, fn_1_1278}, + {0x0007, 0000, fn_1_12A0}, + {0x0005, 0000, fn_1_12DC}, + {0x0017, 0000, fn_1_1304}, + {0x0018, 0000, fn_1_132C}, + {0x0019, 0000, fn_1_1354}, + {0x0008, 0000, fn_1_137C}, + {0x0009, 0000, fn_1_13A4}, + {0x001A, 0000, fn_1_176C}, + {0x001B, 0000, fn_1_179C}, + {0x001B, 0000, fn_1_17F4}, + {0x001B, 0000, fn_1_1834}, + {0x001B, 0000, fn_1_18BC}, + {0x001C, 0000, fn_1_1908}, + {0x001C, 0000, fn_1_1930}, + {0x001C, 0000, fn_1_1958}, + {-1, 0, 0}, }; -char lbl_1_data_258[] = "Tutorial Hook P0:%d P1:%d P2:%d P3:%d SCEN:%d CUE:%d PRM:%d DICE:%d MSG:%d\n"; +int fn_1_1AAC(s16 arg0, s32 arg1) { + if (arg0 == 0x1E) { + fn_1_1984(); + return; + } + if (arg0 != 0x1D) { + OSReport("Tutorial Hook P0:%d P1:%d P2:%d P3:%d SCEN:%d CUE:%d PRM:%d DICE:%d MSG:%d\n", + GWPlayer[0].com, GWPlayer[1].com, + GWPlayer[2].com, GWPlayer[3].com, + lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6); + if (lbl_1_data_108[lbl_1_bss_0->unk0].unk0 != -1) { + if (arg0 == 5) { + BoardRollTutorialSet(&lbl_1_data_C6[lbl_1_bss_0->unk4++][0]); + } + if (arg0 == lbl_1_data_108[lbl_1_bss_0->unk0].unk0) { + void (*temp_r3_3)() = lbl_1_data_108[lbl_1_bss_0->unk0++].unk4; + temp_r3_3(); + } + } + } +} s32 lbl_1_data_2A8[11] = { DATA_MAKE_NUM(DATADIR_W10, 4), @@ -82,133 +132,6 @@ s32 lbl_1_data_2A8[11] = { DATA_MAKE_NUM(DATADIR_W10, 14) }; -void fn_1_176C(void) { - fn_1_C10(1); - fn_1_BA0(0x2E0024); -} - -void fn_1_179C(void) { - fn_1_BA0(0x2E0025); - GWPlayer[1].color = 2; - GWPlayer[3].color = 2; -} - -void fn_1_17F4(void) { - fn_1_BA0(0x2E0026); - GWPlayer[0].color = 2; -} - -void fn_1_1834(void) { - fn_1_BA0(0x2E0027); - GWPlayer[0].color = 1; - GWPlayer[1].color = 1; - GWPlayer[2].color = 1; - GWPlayer[3].color = 2; -} - -void fn_1_18BC(void) { - fn_1_BA0(0x2E0028); - fn_1_BA0(0x2E0029); - boardTutorialData[0] = 0; - BoardStatusItemSet(0); -} - -void fn_1_1908(void) { - fn_1_BA0(0x2E002D); -} - -void fn_1_1930(void) { - fn_1_BA0(0x2E002F); -} - -void fn_1_1958(void) { - fn_1_BA0(0x2E0031); -} - -void fn_1_1980(void) { - -} - -void fn_1_1984(void) { - s32 contPortIndex; - s32 i; - - if (lbl_1_bss_C == 0) { - if (WipeStatGet() != 0) { - HuWinDispOff(lbl_1_bss_E); - return; - } - HuWinDispOn(lbl_1_bss_E); - if (BoardIsKill() != 0) { - return; - } - for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) { - contPortIndex = GWPlayer[i].port; - if (contPortIndex == -1) { - continue; - } - if (HuPadStatGet(contPortIndex) == 0 && HuPadBtnDown[contPortIndex] & PAD_BUTTON_START) { - break; - } - } - if (i != 4) { - lbl_1_bss_C = 1; - OSReport(lbl_1_data_98); - BoardAudSeqFadeOut(0, 0x1F3); - BoardKill(); - BoardTutorialHookSet(NULL); - } - } -} - -int fn_1_1AAC(s16 arg0, s32 arg1) { - s32 i; - if (arg0 == 0x1E) { - if (lbl_1_bss_C == 0) { - if (WipeStatGet() != 0) { - HuWinDispOff(lbl_1_bss_E); - } else { - HuWinDispOn(lbl_1_bss_E); - if (BoardIsKill() == 0) { - s32 contPortIndex; - for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) { - contPortIndex = GWPlayer[i].port; - if (contPortIndex == -1) { - continue; - } - if (HuPadStatGet(contPortIndex) == 0 && HuPadBtnDown[contPortIndex] & 0x1000) { - break; - } - } - if (i != 4) { - lbl_1_bss_C = 1; - OSReport(lbl_1_data_98); - BoardAudSeqFadeOut(0, 0x1F3); - BoardKill(); - BoardTutorialHookSet(NULL); - } - } - } - } - return; - } - if (arg0 != 0x1D) { - OSReport(lbl_1_data_258, - GWPlayer[0].com, GWPlayer[1].com, - GWPlayer[2].com, GWPlayer[3].com, - lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6); - if (lbl_1_data_108[lbl_1_bss_0->unk0].unk0 != -1) { - if (arg0 == 5) { - BoardRollTutorialSet(&lbl_1_data_C6[lbl_1_bss_0->unk4++]); - } - if (arg0 == lbl_1_data_108[lbl_1_bss_0->unk0].unk0) { - void (*temp_r3_3)() = lbl_1_data_108[lbl_1_bss_0->unk0++].unk4; - temp_r3_3(); - } - } - } -} - void fn_1_1D68(void) { s32 temp_r4; s32 temp_r5; diff --git a/src/game/board/main.c b/src/game/board/main.c index 86584a91..31d069ba 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -328,7 +328,7 @@ void BoardSaveInit(s32 board) GWPlayer[i].items[0] = -1; GWPlayer[i].items[1] = -1; GWPlayer[i].items[2] = -1; - if(BoardPartyFlagGet() == 0 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { + if(GWPartyGet() == 0 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { GWStarsSet(i, 0); } else { GWStarsSet(i, BoardPlayerHandicapGet(i)); @@ -433,14 +433,14 @@ static void MainFunc(void) _ClearFlag(FLAG_ID_MAKE(1, 28)); do { BoardStatusShowSetAll(1); - if(BoardCurrGet() == 5 && GWSystem.player_curr == 0 && !turn_cont && boardTurnFunc) { + if(GWBoardGet() == 5 && GWSystem.player_curr == 0 && !turn_cont && boardTurnFunc) { GWSystem.player_curr = -1; boardTurnFunc(); GWSystem.player_curr = 0; } BoardMusStartBoard(); for(i=GWSystem.player_curr; i<4; i++) { - if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { + if(GWBoardGet() == 7 || GWBoardGet() == 8) { if((int)(GWSystem.max_turn-GWSystem.turn) < 5 && i == 0 && !turn_cont) { BoardLast5GfxInit(); _SetFlag(FLAG_ID_MAKE(0, 8)); @@ -494,7 +494,7 @@ static void MainFunc(void) BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); fade_type = 0; } else { - if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { + if(GWBoardGet() == 7 || GWBoardGet() == 8) { if(GWSystem.turn != GWSystem.max_turn) { WipeColorSet(255, 255, 255); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); @@ -514,7 +514,7 @@ static void MainFunc(void) } BoardPlayerPostTurnHookExec(i); } - if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { + if(GWBoardGet() == 7 || GWBoardGet() == 8) { GWSystem.player_curr = 0; if(BoardTurnNext()) { BoardAudSeqFadeOut(0, 500); @@ -733,7 +733,7 @@ static void DestroyBoard(void) } BoardModelKillAll(); BoardWinKillAll(); - HuDataDirClose(dir_table[BoardCurrGet()]); + HuDataDirClose(dir_table[GWBoardGet()]); HuDataDirClose(DATADIR_EFFECT); HuDataDirClose(DATADIR_BGUEST); HuDataDirClose(DATADIR_BKOOPASUIT); diff --git a/src/game/board/space.c b/src/game/board/space.c index a5cd7670..7d18bc55 100644 --- a/src/game/board/space.c +++ b/src/game/board/space.c @@ -347,7 +347,7 @@ s32 BoardSpaceStarGetNext(void) s16 star_pos; star_total = GWSystem.star_total; star_pos = GWSystem.star_pos; - if(BoardCurrGet() == 5) { + if(GWBoardGet() == 5) { s16 i; s32 count; s32 last_free; @@ -504,7 +504,7 @@ s32 BoardSpaceStarCheck(s32 index) s32 ret; BoardSpace *space = BoardSpaceGet(0, index); BoardSpace *star_space; - if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { + if(GWBoardGet() == 7 || GWBoardGet() == 8) { ret = 0; goto end; } @@ -623,7 +623,7 @@ s32 BoardSpaceWalkExec(s32 player, s32 space) return 0; } space_ptr = BoardSpaceGet(0, space); - if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { + if(GWBoardGet() == 7 || GWBoardGet() == 8) { is_star = 0; } else { star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]); @@ -677,10 +677,10 @@ s32 BoardSpaceBlockExec(s32 player, s32 space) if(space == GWSystem.block_pos) { event_exec = 1; } - if((int)GWSystem.bonus_star == 0 && BoardPartyFlagGet() == 1 && !_CheckFlag(FLAG_ID_MAKE(1, 11))) { + if((int)GWSystem.bonus_star == 0 && GWPartyGet() == 1 && !_CheckFlag(FLAG_ID_MAKE(1, 11))) { event_exec = 0; } - if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { + if(GWBoardGet() == 7 || GWBoardGet() == 8) { event_exec = 0; } if(event_exec) { @@ -987,7 +987,7 @@ void BoardSpaceInit(s32 data_num) memset(spaceAttr, 0, sizeof(spaceAttr)); lbl_801D3FC4[0] = lbl_801D3FC4[1] = lbl_801D3FC4[2] = lbl_801D3FC4[3] = -1; spaceDrawF = 0; - board = BoardCurrGet(); + board = GWBoardGet(); { AnimBmpData *bmp; AnimData *data; @@ -1059,7 +1059,7 @@ void BoardSpaceInit(s32 data_num) GWSystem.star_total = 0; GWSystem.star_flag = 0; } - if(BoardCurrGet() != 7 && BoardCurrGet() != 8) { + if(GWBoardGet() != 7 && GWBoardGet() != 8) { starPlatMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 6), NULL, 0); BoardModelMotionStart(starPlatMdl, 0, 0x40000001); BoardModelVisibilitySet(starPlatMdl, 0);