Merge pull request #236 from gamemasterplc/main

Start labeling map objects
This commit is contained in:
gamemasterplc 2024-03-31 21:36:06 -05:00 committed by GitHub
commit b2993d1ba1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 142 additions and 141 deletions

View file

@ -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_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_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_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 bgMdl = .data:0x00000028; // type:object size:0x2 scope:local data:2byte
fgMdl = .data:0x0000002A; // 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 boardStarHostMdl = .data:0x0000002C; // type:object size:0x2 data:2byte
boardShopHostMdl = .data:0x0000002E; // type:object size:0x2 data:2byte boardShopHostMdl = .data:0x0000002E; // type:object size:0x2 data:2byte
boardLotteryHostMdl = .data:0x00000030; // type:object size:0x2 data:2byte boardLotteryHostMdl = .data:0x00000030; // type:object size:0x2 data:2byte
boardBooHouseHostMdl = .data:0x00000032; // 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 starHostMot = .data:0x00000054; // type:object size:0x8 scope:local
shopHostMot = .data:0x0000005C; // type:object size:0x8 scope:local shopHostMot = .data:0x0000005C; // type:object size:0x8 scope:local
lotteryHostMot = .data:0x00000064; // 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 tutorialSprTbl = .data:0x000002A8; // type:object size:0x2C scope:local
boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte
lbl_1_bss_4 = .bss:0x00000004; // 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 tutorialDoneF = .bss:0x0000000C; // type:object size:0x2 data:2byte
w10ExitWin = .bss:0x0000000E; // 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 lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte

View file

@ -3,6 +3,10 @@
#include "dolphin/types.h" #include "dolphin/types.h"
enum {
MAPOBJ_MAX = 33
};
typedef struct { typedef struct {
/* 0x00 */ struct { /* 0x00 */ struct {
u8 unk00_field0 : 1; 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_DD84(void);
extern void fn_1_DE94(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; extern UnkBoardDataStruct *lbl_1_bss_0;
#endif #endif

View file

@ -7,12 +7,9 @@
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
typedef struct w03StructUnk0 { enum {
/* 0x00 */ Vec unk_00; MAPOBJ_MAX = 12
/* 0x0C */ Vec unk_0C; };
/* 0x18 */ Vec unk_18;
/* 0x24 */ s32 datanum;
} w03StructUnk0;
typedef struct w03UnkStruct2{ typedef struct w03UnkStruct2{
u8 unk0 : 1; u8 unk0 : 1;
@ -29,4 +26,4 @@ typedef struct w03State {
} w03State; } w03State;
extern w03State* lbl_1_bss_0; extern w03State* lbl_1_bss_0;
extern s16 lbl_1_bss_C[14]; extern s16 lbl_1_bss_C[MAPOBJ_MAX];

View file

@ -4,7 +4,10 @@
#include "game/process.h" #include "game/process.h"
#include "game/window.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 { typedef struct w10_board_work {
/* 0x00 */ s32 scene; /* 0x00 */ s32 scene;
@ -13,13 +16,6 @@ typedef struct w10_board_work {
/* 0x08 */ s16 focus_mdl; /* 0x08 */ s16 focus_mdl;
} W10BoardWork; } W10BoardWork;
typedef struct unkw10Dll {
Vec unk0;
Vec unk0C;
Vec unk18;
s32 unk24;
} unkw10Dll; //sizeof 0x28
typedef void (*TutorialSceneFunc)(void); typedef void (*TutorialSceneFunc)(void);
typedef struct tutorial_scene { typedef struct tutorial_scene {
@ -83,11 +79,9 @@ void TutorialLotteryExec(void);
void TutorialBooHouseExec(void); void TutorialBooHouseExec(void);
extern W10BoardWork *boardWork; extern W10BoardWork *boardWork;
extern s16 lbl_1_bss_10[1]; extern s16 boardMapObjMdl[MAPOBJ_MAX];
extern void* lbl_1_bss_8; //unknown type
extern s16 tutorialDoneF; extern s16 tutorialDoneF;
extern s16 w10ExitWin; extern s16 tutorialExitWin;
extern unkw10Dll lbl_1_data_0[1];
extern s16 boardStarHostMdl; extern s16 boardStarHostMdl;
extern s16 boardShopHostMdl; extern s16 boardShopHostMdl;

View file

@ -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

View file

@ -26,17 +26,11 @@
#include "game/board/ui.h" #include "game/board/ui.h"
#include "game/board/view.h" #include "game/board/view.h"
#include "game/board/window.h" #include "game/board/window.h"
#include "game/board/map_object.h"
#include "dolphin.h" #include "dolphin.h"
#include "math.h" #include "math.h"
typedef struct {
/* 0x00 */ Vec unk00;
/* 0x0C */ Vec unk0C;
/* 0x18 */ Vec unk18;
/* 0x24 */ s32 unk24;
} UnkW01Struct; // Size 0x28
typedef struct { typedef struct {
struct { struct {
u8 unk00_field0 : 1; 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_9A24(Bss20Work *arg0);
static void fn_1_9BBC(Bss20Work *arg0); static void fn_1_9BBC(Bss20Work *arg0);
s16 lbl_1_bss_6C4[33];
static 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_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[MAPOBJ_MAX];
static s32 *lbl_1_bss_6C0; static s32 *lbl_1_bss_6C0;
static s16 lbl_1_bss_6B6[5]; static s16 lbl_1_bss_6B6[5];
static s8 lbl_1_bss_6B4; static s8 lbl_1_bss_6B4;
@ -211,42 +243,6 @@ static Process *lbl_1_bss_8;
static Process *lbl_1_bss_4; static Process *lbl_1_bss_4;
UnkBoardDataStruct *lbl_1_bss_0; 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_528 = -1;
static s16 lbl_1_data_52A = -1; static s16 lbl_1_data_52A = -1;
static s16 lbl_1_data_52C = -1; static s16 lbl_1_data_52C = -1;
@ -264,7 +260,7 @@ static s32 lbl_1_data_53C[] = {
}; };
void BoardCreate(void) { void BoardCreate(void) {
UnkW01Struct *temp_r30; BoardMapObject *temp_r30;
s32 sp8; s32 sp8;
s32 i; s32 i;
@ -288,18 +284,18 @@ void BoardCreate(void) {
lbl_1_data_530 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0); lbl_1_data_530 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0);
BoardModelMotionStart(lbl_1_data_530, 0, 0x40000001); BoardModelMotionStart(lbl_1_data_530, 0, 0x40000001);
BoardLightHookSet(fn_1_730, fn_1_774); BoardLightHookSet(fn_1_730, fn_1_774);
for (i = 0; i < 33; i++) { for (i = 0; i < MAPOBJ_MAX; i++) {
temp_r30 = &lbl_1_data_0[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) { if (i == 2 || i == 3 || i == 4 || i == 5) {
lbl_1_bss_6C0 = lbl_1_data_53C; lbl_1_bss_6C0 = lbl_1_data_53C;
} else { } else {
lbl_1_bss_6C0 = NULL; lbl_1_bss_6C0 = NULL;
} }
lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->unk24, lbl_1_bss_6C0, 0); lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_6C0, 0);
BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->unk00); BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->pos);
BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->unk0C); BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->rot);
BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->unk18); BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->scale);
BoardModelVisibilitySet(lbl_1_bss_6C4[i], 1); BoardModelVisibilitySet(lbl_1_bss_6C4[i], 1);
} }
} }

View file

@ -16,6 +16,8 @@
#include "game/board/star.h" #include "game/board/star.h"
#include "game/object.h" #include "game/object.h"
#include "game/board/player.h" #include "game/board/player.h"
#include "game/board/map_object.h"
#include "math.h" #include "math.h"
#include "game/hsfman.h" #include "game/hsfman.h"
@ -37,20 +39,22 @@ typedef void (*VoidFunc)(void);
extern const VoidFunc _ctors[]; extern const VoidFunc _ctors[];
extern const VoidFunc _dtors[]; extern const VoidFunc _dtors[];
//data //Map Objects
w03StructUnk0 lbl_1_data_0[] = { s16 lbl_1_bss_C[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, 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)}, BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = {
{{-1548.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0006)}, {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 4)},
{{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000B)}, {{145.0988f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 5)},
{{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000B)}, {{-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, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000A)}, {{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, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000A)}, {{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 11)},
{{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0010)}, {{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 10)},
{{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0011)}, {{-1950.0f, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 10)},
{{-3150.0f, 270.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0012)}, {{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 16)},
{{2080.0f, 0.0f, -1635.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x000D)}, {{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 17)},
{{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x000D)}, {{-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; s16 lbl_1_data_1E0 = -1;
@ -103,10 +107,7 @@ s32 lbl_1_data_26C[] = {
0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E 0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E
}; };
s32 pad_27C[] = {0};
//BSS //BSS
s16 lbl_1_bss_C[14];
s32 lbl_1_bss_8; s32 lbl_1_bss_8;
omObjData* lbl_1_bss_4; omObjData* lbl_1_bss_4;
w03State* lbl_1_bss_0; w03State* lbl_1_bss_0;
@ -119,7 +120,7 @@ void BoardCreate(void) {
f32 var_f31; f32 var_f31;
s32 var_r31; s32 var_r31;
s32 var_r31_2; s32 var_r31_2;
w03StructUnk0* temp_r30; BoardMapObject* temp_r30;
s32 i; s32 i;
lbl_1_bss_0 = (w03State*)&GWSystem.board_data; 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); BoardModelPosSet(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_1E6, 1, 0x40000001); 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]; temp_r30 = &lbl_1_data_0[i];
if (temp_r30->datanum != -1) { if (temp_r30->data_num != -1) {
if ((i == 10) || (i == 11)) { if ((i == 10) || (i == 11)) {
var_r29 = lbl_1_data_214; var_r29 = lbl_1_data_214;
} else { } else {
var_r29 = NULL; var_r29 = NULL;
} }
lbl_1_bss_C[i]= BoardModelCreate(temp_r30->datanum, var_r29, 0); lbl_1_bss_C[i]= BoardModelCreate(temp_r30->data_num, var_r29, 0);
BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->unk_00); BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->pos);
BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->unk_0C); BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->rot);
BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->unk_18); BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->scale);
BoardModelVisibilitySet(lbl_1_bss_C[i], 1); BoardModelVisibilitySet(lbl_1_bss_C[i], 1);
} }
} }

View file

@ -17,6 +17,7 @@
#include "game/minigame_seq.h" #include "game/minigame_seq.h"
#include "game/hsfdraw.h" #include "game/hsfdraw.h"
#include "game/hsfmotion.h" #include "game/hsfmotion.h"
#include "game/pad.h"
typedef struct someBits { typedef struct someBits {
/* 0x00 */ struct { /* 0x00 */ struct {
@ -56,9 +57,7 @@ typedef struct w03UnkMG {
} w03UnkMG; } w03UnkMG;
//external symbols //external symbols
extern Process *boardMainProc;
extern s16 lbl_1_bss_C[14];
extern Process *boardObjMan;
extern u16 HuPadBtnDown[4]; extern u16 HuPadBtnDown[4];
//function signatures //function signatures

View file

@ -36,9 +36,7 @@ s16 lbl_1_data_286 = -1;
s32 lbl_1_data_288 = -1; s32 lbl_1_data_288 = -1;
//BSS Extern //BSS Extern
extern w03State* lbl_1_bss_0;
extern Process *boardMainProc;
extern s16 lbl_1_bss_C[14];
//BSS //BSS
s8 lbl_1_bss_6F; s8 lbl_1_bss_6F;

View file

@ -9,25 +9,25 @@
#include "game/board/tutorial.h" #include "game/board/tutorial.h"
#include "game/board/main.h" #include "game/board/main.h"
#include "game/board/boo_house.h" #include "game/board/boo_house.h"
#include "game/board/map_object.h"
#include "math.h" #include "math.h"
//BSS //Map Objects
s16 lbl_1_bss_10[1]; static BoardMapObject mapObjTbl[MAPOBJ_MAX] = {
s16 w10ExitWin;
s16 tutorialDoneF;
void* lbl_1_bss_8;
s32 lbl_1_bss_4;
W10BoardWork *boardWork;
//data
unkw10Dll lbl_1_data_0[1] = {
3300.0f, 100.0f, -900.0f, 3300.0f, 100.0f, -900.0f,
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
DATA_MAKE_NUM(DATADIR_W10, 3) 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 bgMdl = -1;
static s16 fgMdl = -1; static s16 fgMdl = -1;
@ -36,8 +36,7 @@ s16 boardShopHostMdl = -1;
s16 boardLotteryHostMdl = -1; s16 boardLotteryHostMdl = -1;
s16 boardBooHouseHostMdl = -1; s16 boardBooHouseHostMdl = -1;
//unused? static s32 charMotDirTbl[] = {
s32 lbl_1_data_34[] = {
DATADIR_MARIOMOT, DATADIR_LUIGIMOT, DATADIR_MARIOMOT, DATADIR_LUIGIMOT,
DATADIR_PEACHMOT, DATADIR_YOSHIMOT, DATADIR_PEACHMOT, DATADIR_YOSHIMOT,
DATADIR_WARIOMOT, DATADIR_DONKEYMOT, DATADIR_WARIOMOT, DATADIR_DONKEYMOT,
@ -76,7 +75,7 @@ void BoardCreate(void)
float size[2]; float size[2];
s32 i; s32 i;
unkw10Dll* temp_r30; BoardMapObject *temp_r30;
s32 space; s32 space;
s32 board; s32 board;
@ -111,21 +110,21 @@ void BoardCreate(void)
boardLotteryHostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 13), booHouseHostMot, 0); boardLotteryHostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 13), booHouseHostMot, 0);
BoardModelMotionStart(boardLotteryHostMdl, 1, 0x40000001); BoardModelMotionStart(boardLotteryHostMdl, 1, 0x40000001);
BoardLightHookSet(LightSetHook, LightResetHook); BoardLightHookSet(LightSetHook, LightResetHook);
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]; temp_r30 = &mapObjTbl[i];
if (temp_r30->unk24 != -1) { if (temp_r30->data_num != -1) {
lbl_1_bss_8 = NULL; motTbl = NULL;
lbl_1_bss_10[i] = BoardModelCreate(temp_r30->unk24, lbl_1_bss_8, 0); boardMapObjMdl[i] = BoardModelCreate(temp_r30->data_num, motTbl, 0);
BoardModelPosSetV(lbl_1_bss_10[i], &temp_r30->unk0); BoardModelPosSetV(boardMapObjMdl[i], &temp_r30->pos);
BoardModelRotSetV(lbl_1_bss_10[i], &temp_r30->unk0C); BoardModelRotSetV(boardMapObjMdl[i], &temp_r30->rot);
BoardModelScaleSetV(lbl_1_bss_10[i], &temp_r30->unk18); BoardModelScaleSetV(boardMapObjMdl[i], &temp_r30->scale);
BoardModelVisibilitySet(lbl_1_bss_10[i], 1); BoardModelVisibilitySet(boardMapObjMdl[i], 1);
if (lbl_1_bss_8 != NULL) { if (motTbl != NULL) {
BoardModelMotionStart(lbl_1_bss_10[i], 0, 0x40000001); 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); boardWork->focus_mdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 0);
BoardModelVisibilitySet(boardWork->focus_mdl, 0); BoardModelVisibilitySet(boardWork->focus_mdl, 0);
BoardSpaceWalkEventFuncSet(WalkEvent); BoardSpaceWalkEventFuncSet(WalkEvent);
@ -136,20 +135,20 @@ void BoardCreate(void)
BoardShopHostSet(boardShopHostMdl); BoardShopHostSet(boardShopHostMdl);
BoardLotteryHostSet(boardLotteryHostMdl); BoardLotteryHostSet(boardLotteryHostMdl);
HuWinMesMaxSizeGet(1, size, 0x2E003A); HuWinMesMaxSizeGet(1, size, 0x2E003A);
w10ExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1); tutorialExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1);
HuWinMesSet(w10ExitWin, 0x2E003A); HuWinMesSet(tutorialExitWin, 0x2E003A);
HuWinMesSpeedSet(w10ExitWin, 0); HuWinMesSpeedSet(tutorialExitWin, 0);
HuWinPriSet(w10ExitWin, 1); HuWinPriSet(tutorialExitWin, 1);
HuWinMesPalSet(w10ExitWin, 7, 0, 0, 0); HuWinMesPalSet(tutorialExitWin, 7, 0, 0, 0);
} }
void BoardDestroy(void) void BoardDestroy(void)
{ {
s32 i; s32 i;
for (i = 0; i < 1; i++) { for (i = 0; i < 1; i++) {
if (lbl_1_bss_10[i] != 0) { if (boardMapObjMdl[i] != 0) {
BoardModelKill(lbl_1_bss_10[i]); BoardModelKill(boardMapObjMdl[i]);
lbl_1_bss_10[i] = 0; boardMapObjMdl[i] = 0;
} }
} }
if (boardBooHouseHostMdl != -1) { if (boardBooHouseHostMdl != -1) {
@ -178,7 +177,7 @@ void BoardDestroy(void)
} }
BoardModelKill(boardWork->focus_mdl); BoardModelKill(boardWork->focus_mdl);
TutorialSprKill(); TutorialSprKill();
HuWinKill(w10ExitWin); HuWinKill(tutorialExitWin);
BoardSpaceDestroy(); BoardSpaceDestroy();
} }

View file

@ -8,16 +8,16 @@
static s16 sprList[11]; static s16 sprList[11];
static s16 sprCurr; static s16 sprCurr;
void CloseTutorial(void) { static void CloseTutorial(void) {
s32 port; s32 port;
s32 i; s32 i;
if (tutorialDoneF == 0) { if (tutorialDoneF == 0) {
if (WipeStatGet() != 0) { if (WipeStatGet() != 0) {
HuWinDispOff(w10ExitWin); HuWinDispOff(tutorialExitWin);
return; return;
} }
HuWinDispOn(w10ExitWin); HuWinDispOn(tutorialExitWin);
if (BoardIsKill() != 0) { if (BoardIsKill() != 0) {
return; return;
} }