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

View file

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

View file

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

View file

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

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/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);
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 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;
@ -288,18 +284,18 @@ void BoardCreate(void) {
lbl_1_data_530 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0);
BoardModelMotionStart(lbl_1_data_530, 0, 0x40000001);
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];
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);
}
}

View file

@ -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);
}
}

View file

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

View file

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

View file

@ -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();
}

View file

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