diff --git a/config/GMPE01_00/rels/w10Dll/symbols.txt b/config/GMPE01_00/rels/w10Dll/symbols.txt index 896a61e1..ef3391a9 100644 --- a/config/GMPE01_00/rels/w10Dll/symbols.txt +++ b/config/GMPE01_00/rels/w10Dll/symbols.txt @@ -84,14 +84,14 @@ lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:f lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 data:float +mapObjTbl = .data:0x00000000; // type:object size:0x28 scope:local data:float bgMdl = .data:0x00000028; // type:object size:0x2 scope:local data:2byte fgMdl = .data:0x0000002A; // type:object size:0x2 scope:local data:2byte boardStarHostMdl = .data:0x0000002C; // type:object size:0x2 data:2byte boardShopHostMdl = .data:0x0000002E; // type:object size:0x2 data:2byte boardLotteryHostMdl = .data:0x00000030; // type:object size:0x2 data:2byte boardBooHouseHostMdl = .data:0x00000032; // type:object size:0x2 data:2byte -lbl_1_data_34 = .data:0x00000034; // type:object size:0x20 data:4byte +charMotDirTbl = .data:0x00000034; // type:object size:0x20 scope:local data:4byte starHostMot = .data:0x00000054; // type:object size:0x8 scope:local shopHostMot = .data:0x0000005C; // type:object size:0x8 scope:local lotteryHostMot = .data:0x00000064; // type:object size:0x8 scope:local @@ -105,7 +105,7 @@ lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 scope:local data:str tutorialSprTbl = .data:0x000002A8; // type:object size:0x2C scope:local boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +motTbl = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte tutorialDoneF = .bss:0x0000000C; // type:object size:0x2 data:2byte w10ExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte diff --git a/include/REL/w01Dll.h b/include/REL/w01Dll.h index b8535e89..c4b99ff0 100755 --- a/include/REL/w01Dll.h +++ b/include/REL/w01Dll.h @@ -3,6 +3,10 @@ #include "dolphin/types.h" +enum { + MAPOBJ_MAX = 33 +}; + typedef struct { /* 0x00 */ struct { u8 unk00_field0 : 1; @@ -17,7 +21,7 @@ extern void fn_1_D740(s16 *arg0); extern void fn_1_DD84(void); extern void fn_1_DE94(void); -extern s16 lbl_1_bss_6C4[33]; +extern s16 lbl_1_bss_6C4[MAPOBJ_MAX]; extern UnkBoardDataStruct *lbl_1_bss_0; #endif diff --git a/include/REL/w03Dll.h b/include/REL/w03Dll.h index 8962d5e1..bce4bba4 100644 --- a/include/REL/w03Dll.h +++ b/include/REL/w03Dll.h @@ -7,12 +7,9 @@ #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -typedef struct w03StructUnk0 { -/* 0x00 */ Vec unk_00; -/* 0x0C */ Vec unk_0C; -/* 0x18 */ Vec unk_18; -/* 0x24 */ s32 datanum; -} w03StructUnk0; +enum { + MAPOBJ_MAX = 12 +}; typedef struct w03UnkStruct2{ u8 unk0 : 1; @@ -29,4 +26,4 @@ typedef struct w03State { } w03State; extern w03State* lbl_1_bss_0; -extern s16 lbl_1_bss_C[14]; +extern s16 lbl_1_bss_C[MAPOBJ_MAX]; diff --git a/include/REL/w10Dll.h b/include/REL/w10Dll.h index b0c81b94..c2730003 100644 --- a/include/REL/w10Dll.h +++ b/include/REL/w10Dll.h @@ -4,7 +4,10 @@ #include "game/process.h" #include "game/window.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) +enum { + MAPOBJ_MELON = 0, + MAPOBJ_MAX, +}; typedef struct w10_board_work { /* 0x00 */ s32 scene; @@ -13,13 +16,6 @@ typedef struct w10_board_work { /* 0x08 */ s16 focus_mdl; } W10BoardWork; -typedef struct unkw10Dll { - Vec unk0; - Vec unk0C; - Vec unk18; - s32 unk24; -} unkw10Dll; //sizeof 0x28 - typedef void (*TutorialSceneFunc)(void); typedef struct tutorial_scene { @@ -83,11 +79,9 @@ void TutorialLotteryExec(void); void TutorialBooHouseExec(void); extern W10BoardWork *boardWork; -extern s16 lbl_1_bss_10[1]; -extern void* lbl_1_bss_8; //unknown type +extern s16 boardMapObjMdl[MAPOBJ_MAX]; extern s16 tutorialDoneF; -extern s16 w10ExitWin; -extern unkw10Dll lbl_1_data_0[1]; +extern s16 tutorialExitWin; extern s16 boardStarHostMdl; extern s16 boardShopHostMdl; diff --git a/include/game/board/map_object.h b/include/game/board/map_object.h new file mode 100644 index 00000000..11930878 --- /dev/null +++ b/include/game/board/map_object.h @@ -0,0 +1,13 @@ +#ifndef _BOARD_MAPOBJECT_H +#define _BOARD_MAPOBJECT_H + +#include "dolphin.h" + +typedef struct board_map_object { + Vec pos; + Vec rot; + Vec scale; + s32 data_num; +} BoardMapObject; + +#endif \ No newline at end of file diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index 93728c99..416acabf 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -26,17 +26,11 @@ #include "game/board/ui.h" #include "game/board/view.h" #include "game/board/window.h" +#include "game/board/map_object.h" #include "dolphin.h" #include "math.h" -typedef struct { - /* 0x00 */ Vec unk00; - /* 0x0C */ Vec unk0C; - /* 0x18 */ Vec unk18; - /* 0x24 */ s32 unk24; -} UnkW01Struct; // Size 0x28 - typedef struct { struct { u8 unk00_field0 : 1; @@ -168,7 +162,45 @@ static void fn_1_9920(omObjData *arg0); static void fn_1_9A24(Bss20Work *arg0); static void fn_1_9BBC(Bss20Work *arg0); + +static BoardMapObject lbl_1_data_0[33] = { + { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, + { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, + { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } +}; + s16 lbl_1_bss_6C4[33]; + static s32 *lbl_1_bss_6C0; static s16 lbl_1_bss_6B6[5]; static s8 lbl_1_bss_6B4; @@ -211,42 +243,6 @@ static Process *lbl_1_bss_8; static Process *lbl_1_bss_4; UnkBoardDataStruct *lbl_1_bss_0; -static UnkW01Struct lbl_1_data_0[33] = { - { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, - { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, - { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } -}; - static s16 lbl_1_data_528 = -1; static s16 lbl_1_data_52A = -1; static s16 lbl_1_data_52C = -1; @@ -264,7 +260,7 @@ static s32 lbl_1_data_53C[] = { }; void BoardCreate(void) { - UnkW01Struct *temp_r30; + BoardMapObject *temp_r30; s32 sp8; s32 i; @@ -290,16 +286,16 @@ void BoardCreate(void) { BoardLightHookSet(fn_1_730, fn_1_774); for (i = 0; i < 33; i++) { temp_r30 = &lbl_1_data_0[i]; - if (temp_r30->unk24 != -1) { + if (temp_r30->data_num != -1) { if (i == 2 || i == 3 || i == 4 || i == 5) { lbl_1_bss_6C0 = lbl_1_data_53C; } else { lbl_1_bss_6C0 = NULL; } - lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->unk24, lbl_1_bss_6C0, 0); - BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->unk00); - BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->unk0C); - BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->unk18); + lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_6C0, 0); + BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->pos); + BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->rot); + BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->scale); BoardModelVisibilitySet(lbl_1_bss_6C4[i], 1); } } diff --git a/src/REL/w03Dll/main.c b/src/REL/w03Dll/main.c index bfcaf2c4..a9141553 100644 --- a/src/REL/w03Dll/main.c +++ b/src/REL/w03Dll/main.c @@ -16,6 +16,8 @@ #include "game/board/star.h" #include "game/object.h" #include "game/board/player.h" +#include "game/board/map_object.h" + #include "math.h" #include "game/hsfman.h" @@ -37,20 +39,22 @@ typedef void (*VoidFunc)(void); extern const VoidFunc _ctors[]; extern const VoidFunc _dtors[]; -//data -w03StructUnk0 lbl_1_data_0[] = { -{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0004)}, -{{145.0988f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0005)}, -{{-1548.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0006)}, -{{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000B)}, -{{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000B)}, -{{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000A)}, -{{-1950.0f, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000A)}, -{{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0010)}, -{{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0011)}, -{{-3150.0f, 270.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0012)}, -{{2080.0f, 0.0f, -1635.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x000D)}, -{{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x000D)}, +//Map Objects +s16 lbl_1_bss_C[MAPOBJ_MAX]; + +BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { + {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 4)}, + {{145.0988f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 5)}, + {{-1548.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 6)}, + {{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 11)}, + {{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 11)}, + {{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 10)}, + {{-1950.0f, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 10)}, + {{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 16)}, + {{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 17)}, + {{-3150.0f, 270.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 18)}, + {{2080.0f, 0.0f, -1635.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 13)}, + {{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 13)}, }; s16 lbl_1_data_1E0 = -1; @@ -103,10 +107,7 @@ s32 lbl_1_data_26C[] = { 0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E }; -s32 pad_27C[] = {0}; - //BSS -s16 lbl_1_bss_C[14]; s32 lbl_1_bss_8; omObjData* lbl_1_bss_4; w03State* lbl_1_bss_0; @@ -119,7 +120,7 @@ void BoardCreate(void) { f32 var_f31; s32 var_r31; s32 var_r31_2; - w03StructUnk0* temp_r30; + BoardMapObject* temp_r30; s32 i; lbl_1_bss_0 = (w03State*)&GWSystem.board_data; @@ -149,18 +150,18 @@ void BoardCreate(void) { BoardModelPosSet(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E6, 1, 0x40000001); - for (i = 0; i < ARRAY_COUNT(lbl_1_data_0); i++) { + for (i = 0; i < MAPOBJ_MAX; i++) { temp_r30 = &lbl_1_data_0[i]; - if (temp_r30->datanum != -1) { + if (temp_r30->data_num != -1) { if ((i == 10) || (i == 11)) { var_r29 = lbl_1_data_214; } else { var_r29 = NULL; } - lbl_1_bss_C[i]= BoardModelCreate(temp_r30->datanum, var_r29, 0); - BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->unk_00); - BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->unk_0C); - BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->unk_18); + lbl_1_bss_C[i]= BoardModelCreate(temp_r30->data_num, var_r29, 0); + BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->pos); + BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->rot); + BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->scale); BoardModelVisibilitySet(lbl_1_bss_C[i], 1); } } diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index ad3ed8e1..ea7c19b3 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -17,6 +17,7 @@ #include "game/minigame_seq.h" #include "game/hsfdraw.h" #include "game/hsfmotion.h" +#include "game/pad.h" typedef struct someBits { /* 0x00 */ struct { @@ -56,9 +57,7 @@ typedef struct w03UnkMG { } w03UnkMG; //external symbols -extern Process *boardMainProc; -extern s16 lbl_1_bss_C[14]; -extern Process *boardObjMan; + extern u16 HuPadBtnDown[4]; //function signatures diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index da943a80..a26deec9 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -36,9 +36,7 @@ s16 lbl_1_data_286 = -1; s32 lbl_1_data_288 = -1; //BSS Extern -extern w03State* lbl_1_bss_0; -extern Process *boardMainProc; -extern s16 lbl_1_bss_C[14]; + //BSS s8 lbl_1_bss_6F; diff --git a/src/REL/w10Dll/main.c b/src/REL/w10Dll/main.c index 6386f591..a9eaff17 100644 --- a/src/REL/w10Dll/main.c +++ b/src/REL/w10Dll/main.c @@ -9,25 +9,25 @@ #include "game/board/tutorial.h" #include "game/board/main.h" #include "game/board/boo_house.h" +#include "game/board/map_object.h" #include "math.h" -//BSS -s16 lbl_1_bss_10[1]; -s16 w10ExitWin; -s16 tutorialDoneF; -void* lbl_1_bss_8; -s32 lbl_1_bss_4; -W10BoardWork *boardWork; - -//data -unkw10Dll lbl_1_data_0[1] = { +//Map Objects +static BoardMapObject mapObjTbl[MAPOBJ_MAX] = { 3300.0f, 100.0f, -900.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, DATA_MAKE_NUM(DATADIR_W10, 3) }; +s16 boardMapObjMdl[MAPOBJ_MAX]; + +s16 tutorialExitWin; +s16 tutorialDoneF; +static s32 *motTbl; +s32 lbl_1_bss_4; +W10BoardWork *boardWork; static s16 bgMdl = -1; static s16 fgMdl = -1; @@ -36,8 +36,7 @@ s16 boardShopHostMdl = -1; s16 boardLotteryHostMdl = -1; s16 boardBooHouseHostMdl = -1; -//unused? -s32 lbl_1_data_34[] = { +static s32 charMotDirTbl[] = { DATADIR_MARIOMOT, DATADIR_LUIGIMOT, DATADIR_PEACHMOT, DATADIR_YOSHIMOT, DATADIR_WARIOMOT, DATADIR_DONKEYMOT, @@ -76,7 +75,7 @@ void BoardCreate(void) float size[2]; s32 i; - unkw10Dll* temp_r30; + BoardMapObject *temp_r30; s32 space; s32 board; @@ -111,21 +110,21 @@ void BoardCreate(void) boardLotteryHostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 13), booHouseHostMot, 0); BoardModelMotionStart(boardLotteryHostMdl, 1, 0x40000001); BoardLightHookSet(LightSetHook, LightResetHook); - for (i = 0; i < ARRAY_COUNT(lbl_1_data_0); i++) { - temp_r30 = &lbl_1_data_0[i]; - if (temp_r30->unk24 != -1) { - lbl_1_bss_8 = NULL; - lbl_1_bss_10[i] = BoardModelCreate(temp_r30->unk24, lbl_1_bss_8, 0); - BoardModelPosSetV(lbl_1_bss_10[i], &temp_r30->unk0); - BoardModelRotSetV(lbl_1_bss_10[i], &temp_r30->unk0C); - BoardModelScaleSetV(lbl_1_bss_10[i], &temp_r30->unk18); - BoardModelVisibilitySet(lbl_1_bss_10[i], 1); - if (lbl_1_bss_8 != NULL) { - BoardModelMotionStart(lbl_1_bss_10[i], 0, 0x40000001); + for (i = 0; i < MAPOBJ_MAX; i++) { + temp_r30 = &mapObjTbl[i]; + if (temp_r30->data_num != -1) { + motTbl = NULL; + boardMapObjMdl[i] = BoardModelCreate(temp_r30->data_num, motTbl, 0); + BoardModelPosSetV(boardMapObjMdl[i], &temp_r30->pos); + BoardModelRotSetV(boardMapObjMdl[i], &temp_r30->rot); + BoardModelScaleSetV(boardMapObjMdl[i], &temp_r30->scale); + BoardModelVisibilitySet(boardMapObjMdl[i], 1); + if (motTbl != NULL) { + BoardModelMotionStart(boardMapObjMdl[i], 0, 0x40000001); } } } - BoardModelVisibilitySet(lbl_1_bss_10[0], 0); + BoardModelVisibilitySet(boardMapObjMdl[MAPOBJ_MELON], 0); boardWork->focus_mdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 0); BoardModelVisibilitySet(boardWork->focus_mdl, 0); BoardSpaceWalkEventFuncSet(WalkEvent); @@ -136,20 +135,20 @@ void BoardCreate(void) BoardShopHostSet(boardShopHostMdl); BoardLotteryHostSet(boardLotteryHostMdl); HuWinMesMaxSizeGet(1, size, 0x2E003A); - w10ExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1); - HuWinMesSet(w10ExitWin, 0x2E003A); - HuWinMesSpeedSet(w10ExitWin, 0); - HuWinPriSet(w10ExitWin, 1); - HuWinMesPalSet(w10ExitWin, 7, 0, 0, 0); + tutorialExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1); + HuWinMesSet(tutorialExitWin, 0x2E003A); + HuWinMesSpeedSet(tutorialExitWin, 0); + HuWinPriSet(tutorialExitWin, 1); + HuWinMesPalSet(tutorialExitWin, 7, 0, 0, 0); } void BoardDestroy(void) { s32 i; for (i = 0; i < 1; i++) { - if (lbl_1_bss_10[i] != 0) { - BoardModelKill(lbl_1_bss_10[i]); - lbl_1_bss_10[i] = 0; + if (boardMapObjMdl[i] != 0) { + BoardModelKill(boardMapObjMdl[i]); + boardMapObjMdl[i] = 0; } } if (boardBooHouseHostMdl != -1) { @@ -178,7 +177,7 @@ void BoardDestroy(void) } BoardModelKill(boardWork->focus_mdl); TutorialSprKill(); - HuWinKill(w10ExitWin); + HuWinKill(tutorialExitWin); BoardSpaceDestroy(); } diff --git a/src/REL/w10Dll/tutorial.c b/src/REL/w10Dll/tutorial.c index ca6cd09d..d282e3c1 100644 --- a/src/REL/w10Dll/tutorial.c +++ b/src/REL/w10Dll/tutorial.c @@ -8,16 +8,16 @@ static s16 sprList[11]; static s16 sprCurr; -void CloseTutorial(void) { +static void CloseTutorial(void) { s32 port; s32 i; if (tutorialDoneF == 0) { if (WipeStatGet() != 0) { - HuWinDispOff(w10ExitWin); + HuWinDispOff(tutorialExitWin); return; } - HuWinDispOn(w10ExitWin); + HuWinDispOn(tutorialExitWin); if (BoardIsKill() != 0) { return; }