Clean up board rels

This commit is contained in:
gamemasterplc 2024-03-14 09:57:45 -05:00
parent b664e01d0b
commit 0e92b2ba09
15 changed files with 267 additions and 338 deletions

View file

@ -22,10 +22,10 @@ REL/w10Dll/host.c:
.data start:0x00000078 end:0x00000098 .data start:0x00000078 end:0x00000098
REL/w10Dll/scene.c: REL/w10Dll/scene.c:
.text start:0x00000D2C end:0x0000176C .text start:0x00000D2C end:0x00001984
.rodata start:0x00000048 end:0x00000058 .rodata start:0x00000048 end:0x00000058
REL/w10Dll/tutorial.c: REL/w10Dll/tutorial.c:
.text start:0x0000176C end:0x0000206C .text start:0x00001984 end:0x0000206C
.rodata start:0x00000058 end:0x00000070 .rodata start:0x00000058 end:0x00000070
.data start:0x00000098 end:0x000002D4 .data start:0x00000098 end:0x000002D4

View file

@ -15,7 +15,7 @@ fn_1_AEC = .text:0x00000AEC; // type:function size:0xB4
fn_1_BA0 = .text:0x00000BA0; // type:function size:0x70 fn_1_BA0 = .text:0x00000BA0; // type:function size:0x70
fn_1_C10 = .text:0x00000C10; // type:function size:0x10 fn_1_C10 = .text:0x00000C10; // type:function size:0x10
fn_1_C20 = .text:0x00000C20; // type:function size:0x10C 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_D54 = .text:0x00000D54; // type:function size:0x28
fn_1_D7C = .text:0x00000D7C; // type:function size:0x28 fn_1_D7C = .text:0x00000D7C; // type:function size:0x28
fn_1_DA4 = .text:0x00000DA4; // type:function size:0x28 fn_1_DA4 = .text:0x00000DA4; // type:function size:0x28

View file

@ -30,12 +30,6 @@ typedef struct w10DllUnk01 {
f32 unk10; f32 unk10;
} w10DllUnk01; //sizeof ? } w10DllUnk01; //sizeof ?
typedef struct w10DllUnk03 {
s16 unk0;
s16 unk2;
s16 unk4;
} w10DllUnk03;
typedef struct w10DllUnk04 { typedef struct w10DllUnk04 {
s16 unk0; s16 unk0;
s16 unk2; s16 unk2;
@ -106,7 +100,6 @@ void fn_1_1354(void);
void fn_1_137C(void); void fn_1_137C(void);
extern w10DllUnk04 lbl_1_data_108[42]; extern w10DllUnk04 lbl_1_data_108[42];
extern w10DllUnk03 lbl_1_data_C6[];
extern Vec lbl_1_data_80[]; extern Vec lbl_1_data_80[];
extern Process* lbl_1_bss_18; extern Process* lbl_1_bss_18;
extern s16 lbl_1_bss_1C; extern s16 lbl_1_bss_1C;

View file

@ -53,16 +53,6 @@ typedef struct board_camera_data {
BoardFocusData focus; BoardFocusData focus;
} BoardCameraData; } BoardCameraData;
static inline s32 BoardCurrGet()
{
return GWSystem.board;
}
static inline s32 BoardPartyFlagGet()
{
return GWSystem.party;
}
extern BoardCameraData boardCamera; extern BoardCameraData boardCamera;
extern Process *boardObjMan; extern Process *boardObjMan;
extern Process *boardMainProc; extern Process *boardMainProc;

View file

@ -18,7 +18,6 @@
#include "board_unsplit.h" #include "board_unsplit.h"
#include "game/hsfman.h" #include "game/hsfman.h"
void fn_8005B150(void*, void*);
void fn_1_740(void); void fn_1_740(void);
void fn_1_E0(void); void fn_1_E0(void);
s32 fn_1_2930(s32 arg0); s32 fn_1_2930(s32 arg0);
@ -443,6 +442,4 @@ void fn_1_10E4(omObjData* arg0) {
lbl_1_bss_8 = 0; lbl_1_bss_8 = 0;
} }
HuAudFXListnerUpdate(&sp14, &sp8); HuAudFXListnerUpdate(&sp14, &sp8);
} }
f32 const padMain = 0.0f;

View file

@ -77,40 +77,7 @@ s16 lbl_1_data_454 = -1;
s16 lbl_1_data_456 = -1; s16 lbl_1_data_456 = -1;
s16 lbl_1_data_458 = -1; s16 lbl_1_data_458 = -1;
s32 lbl_1_data_45C[] = {0x00770021, 0x00770022, -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 //BSS
char lbl_1_bss_150[0x30]; char lbl_1_bss_150[0x30];
@ -123,7 +90,7 @@ Process* lbl_1_bss_140;
void fn_1_7ABC(void) { void fn_1_7ABC(void) {
lbl_1_data_456 = BoardModelCreate(0x770020, lbl_1_data_45C, 0); 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); BoardModelMotionStart(lbl_1_data_456, 2, 0x40000002);
BoardModelRotYSet(lbl_1_data_456, -45.0f); 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)); BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI));
HuPrcSleep(0x1E); HuPrcSleep(0x1E);
model = BoardModelIDGet(lbl_1_bss_C[7]); model = BoardModelIDGet(lbl_1_bss_C[7]);
Hu3DModelObjPosGet(model, phei_str, &sp38); Hu3DModelObjPosGet(model, "phei", &sp38);
if (GWPlayer[arg0].character == 5) { if (GWPlayer[arg0].character == 5) {
var_f31 = 54.000004f; var_f31 = 54.000004f;
} else { } else {
@ -250,6 +217,28 @@ void fn_1_8140(s32 arg0) {
fn_1_91B8(); 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) { void fn_1_81E0(s32 arg0) {
Point3d sp8; Point3d sp8;
omObjData* temp_r3; omObjData* temp_r3;
@ -467,6 +456,17 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) {
BoardModelMotionSpeedSet(lbl_1_data_456, arg0->trans.x); 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) { void fn_1_8C08(omObjData* arg0, someBits3* arg1) {
Point3d spC; Point3d spC;
f32 temp_f31; f32 temp_f31;
@ -552,6 +552,8 @@ void fn_1_9044(omObjData* arg0, someBits3* arg1) {
BoardModelRotSetV(lbl_1_data_456, &sp8); BoardModelRotSetV(lbl_1_data_456, &sp8);
} }
s8 lbl_1_data_4C8[] = {1, 5, 10, 15, 20, 20};
void fn_1_91B8(void) { void fn_1_91B8(void) {
s8 temp_r3; s8 temp_r3;

View file

@ -19,8 +19,6 @@ double sin(double x);
double cos(double x); double cos(double x);
double atan2(double y, double x); double atan2(double y, double x);
#define OM_GET_WORK_PTR(object, type) ((type *)(&((object)->work[0])))
typedef struct someBits { typedef struct someBits {
/* 0x00 */ struct { /* 0x00 */ struct {
u8 unk00_bit0 : 1; u8 unk00_bit0 : 1;
@ -113,12 +111,8 @@ s32 lbl_1_data_4E0 = -1;
s16 lbl_1_data_4E4 = -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}; 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[] = { char* lbl_1_data_508[] = {
itemString, item1String, item2String "item", "item1", "item2"
}; };
s32 lbl_1_data_514[] = { s32 lbl_1_data_514[] = {

View file

@ -58,25 +58,6 @@ s32 lbl_1_data_390[] = {
-1 -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) { void fn_1_63F4(s32 arg0) {
Vec spC; Vec spC;
unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); 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_38C = BoardModelCreate(0x77000F, NULL, 0);
lbl_1_data_38A = BoardModelCreate(0x2000D, &lbl_1_data_390[0], 0); lbl_1_data_38A = BoardModelCreate(0x2000D, &lbl_1_data_390[0], 0);
BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001); BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001);
BoardModelHookSet(lbl_1_data_38A, itemhook_RString, lbl_1_data_38C); BoardModelHookSet(lbl_1_data_38A, "itemhook_R", lbl_1_data_38C);
BoardModelHookSet(lbl_1_data_388, hei01String, lbl_1_data_38A); 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); BoardSpaceFlagPosGet(0, 0x200, &sp8);
sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966)); sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966));
sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966)); sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966));
@ -119,7 +100,7 @@ s32 fn_1_6698(void) {
Vec sp14; Vec sp14;
Vec sp8; Vec sp8;
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), ikadaString, &sp14); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), "ikada", &sp14);
BoardSpaceFlagPosGet(0, 0x200, &sp8); BoardSpaceFlagPosGet(0, 0x200, &sp8);
sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966)); sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966));
sp14.z = sp8.z + (400.0 * cos(-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; 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) { s32 fn_1_6898(s32 arg0) {
Vec sp20; Vec sp20;
Vec sp14; Vec sp14;
@ -172,7 +168,7 @@ s32 fn_1_6898(s32 arg0) {
BoardCameraViewSet(2); BoardCameraViewSet(2);
BoardCameraMotionWait(); BoardCameraMotionWait();
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), hei01String, &sp20); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20);
BoardPlayerPosGet(arg0, &sp14); BoardPlayerPosGet(arg0, &sp14);
PSVECSubtract(&sp20, &sp14, &sp8); PSVECSubtract(&sp20, &sp14, &sp8);
temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / 3.141592653589793); temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / 3.141592653589793);

View file

@ -18,15 +18,9 @@ extern s16 lbl_1_data_1E0;
void fn_1_79E0(omObjData* arg0); void fn_1_79E0(omObjData* arg0);
char kemuri1[] = "kemuri1";
char kemuri2[] = "kemuri2";
char kemuri3[] = "kemuri3";
char kemuri4[] = "kemuri4";
char kemuri5[] = "kemuri5";
char* kemuri_strings[] = { char* kemuri_strings[] = {
kemuri1, kemuri2, kemuri3, "kemuri1", "kemuri2", "kemuri3",
kemuri4, kemuri5 "kemuri4", "kemuri5"
}; };
void fn_1_785C(void) { void fn_1_785C(void) {

View file

@ -36,42 +36,6 @@ s16 lbl_1_data_284 = -1;
s16 lbl_1_data_286 = -1; s16 lbl_1_data_286 = -1;
s32 lbl_1_data_288 = -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 //BSS Extern
extern w03State* lbl_1_bss_0; extern w03State* lbl_1_bss_0;
extern Process *boardMainProc; extern Process *boardMainProc;
@ -123,7 +87,7 @@ void fn_1_1358(void) {
fn_1_20E0(cur_player_index); fn_1_20E0(cur_player_index);
} }
if (lbl_1_bss_2C) { 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); BoardWinCreate(0, 0x160006, -1);
BoardWinInsertMesSet((s32)lbl_1_bss_44, 0); BoardWinInsertMesSet((s32)lbl_1_bss_44, 0);
BoardWinWait(); BoardWinWait();
@ -242,6 +206,40 @@ s32 fn_1_1650(s32 arg0) {
return 1; 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) { void fn_1_19DC(s32 arg0, s32 arg1) {
s32 temp_r30; s32 temp_r30;
s32 temp_r5; s32 temp_r5;
@ -561,7 +559,7 @@ s32 fn_1_2930(s32 arg0) {
fn_1_CF4(); fn_1_CF4();
return 1; 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); BoardWinCreate(0, 0x160007, -1);
BoardWinInsertMesSet((s32)lbl_1_bss_38, 1); BoardWinInsertMesSet((s32)lbl_1_bss_38, 1);
BoardWinWait(); BoardWinWait();

View file

@ -68,11 +68,6 @@ s32 lbl_1_data_6C[2] = {
DATA_NUM_LISTEND DATA_NUM_LISTEND
}; };
// function is probably global. only inlined in rels?
inline s32 get_current_board(void) {
return GWSystem.board;
}
void BoardCreate(void) { void BoardCreate(void) {
f32 sp10; f32 sp10;
f32 spC[2]; f32 spC[2];
@ -83,7 +78,7 @@ void BoardCreate(void) {
s32 temp; s32 temp;
s32 board; s32 board;
board = BoardCurrGet(); board = GWBoardGet();
lbl_1_bss_0 = (W10State *)&GWSystem.board_data; lbl_1_bss_0 = (W10State *)&GWSystem.board_data;
lbl_1_bss_0->unk0 = 0; lbl_1_bss_0->unk0 = 0;
lbl_1_bss_0->unk4 = 0; lbl_1_bss_0->unk4 = 0;

View file

@ -244,3 +244,50 @@ void fn_1_13A4(void) {
HuPrcVSleep(); 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) {
}

View file

@ -5,68 +5,118 @@
#include "game/wipe.h" #include "game/wipe.h"
#include "game/board/ui.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] = { if (lbl_1_bss_C == 0) {
1, -1, -1, if (WipeStatGet() != 0) {
2, -1, -1, HuWinDispOff(lbl_1_bss_E);
4, -1, -1, return;
5, -1, -1, }
5, -1, -1, HuWinDispOn(lbl_1_bss_E);
4, -1, -1, if (BoardIsKill() != 0) {
1, -1, -1, return;
3, -1, -1, }
2, -1, -1, for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) {
4, -1, -1, port = GWPlayer[i].port;
5, 6, -1, 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] = { w10DllUnk04 lbl_1_data_108[42] = {
{0x0000, 0000, fn_1_D2C}, {0x0000, 0000, fn_1_D2C},
{0x0001, 0000, fn_1_D54}, {0x0001, 0000, fn_1_D54},
{0x0002, 0000, fn_1_D7C}, {0x0002, 0000, fn_1_D7C},
{0x0003, 0000, fn_1_DA4}, {0x0003, 0000, fn_1_DA4},
{0x0003, 0000, fn_1_DCC}, {0x0003, 0000, fn_1_DCC},
{0x0003, 0000, fn_1_DF4}, {0x0003, 0000, fn_1_DF4},
{0x0003, 0000, fn_1_E1C}, {0x0003, 0000, fn_1_E1C},
{0x0004, 0000, fn_1_E44}, {0x0004, 0000, fn_1_E44},
{0x0005, 0000, fn_1_E94}, {0x0005, 0000, fn_1_E94},
{0x0006, 0000, fn_1_EBC}, {0x0006, 0000, fn_1_EBC},
{0x0007, 0000, fn_1_EE4}, {0x0007, 0000, fn_1_EE4},
{0x000A, 0000, fn_1_EE8}, {0x000A, 0000, fn_1_EE8},
{0x000B, 0000, fn_1_F30}, {0x000B, 0000, fn_1_F30},
{0x0010, 0000, fn_1_F6C}, {0x0010, 0000, fn_1_F6C},
{0x0011, 0000, fn_1_FB8}, {0x0011, 0000, fn_1_FB8},
{0x000C, 0000, fn_1_1010}, {0x000C, 0000, fn_1_1010},
{0x000D, 0000, fn_1_105C}, {0x000D, 0000, fn_1_105C},
{0x000E, 0000, fn_1_1098}, {0x000E, 0000, fn_1_1098},
{0x000E, 0000, fn_1_10C0}, {0x000E, 0000, fn_1_10C0},
{0x000F, 0000, fn_1_10F8}, {0x000F, 0000, fn_1_10F8},
{0x0012, 0000, fn_1_1134}, {0x0012, 0000, fn_1_1134},
{0x0014, 0000, fn_1_1178}, {0x0014, 0000, fn_1_1178},
{0x0015, 0000, fn_1_11A0}, {0x0015, 0000, fn_1_11A0},
{0x0016, 0000, fn_1_11EC}, {0x0016, 0000, fn_1_11EC},
{0x0005, 0000, fn_1_1240}, {0x0005, 0000, fn_1_1240},
{0x0017, 0000, fn_1_1278}, {0x0017, 0000, fn_1_1278},
{0x0007, 0000, fn_1_12A0}, {0x0007, 0000, fn_1_12A0},
{0x0005, 0000, fn_1_12DC}, {0x0005, 0000, fn_1_12DC},
{0x0017, 0000, fn_1_1304}, {0x0017, 0000, fn_1_1304},
{0x0018, 0000, fn_1_132C}, {0x0018, 0000, fn_1_132C},
{0x0019, 0000, fn_1_1354}, {0x0019, 0000, fn_1_1354},
{0x0008, 0000, fn_1_137C}, {0x0008, 0000, fn_1_137C},
{0x0009, 0000, fn_1_13A4}, {0x0009, 0000, fn_1_13A4},
{0x001A, 0000, fn_1_176C}, {0x001A, 0000, fn_1_176C},
{0x001B, 0000, fn_1_179C}, {0x001B, 0000, fn_1_179C},
{0x001B, 0000, fn_1_17F4}, {0x001B, 0000, fn_1_17F4},
{0x001B, 0000, fn_1_1834}, {0x001B, 0000, fn_1_1834},
{0x001B, 0000, fn_1_18BC}, {0x001B, 0000, fn_1_18BC},
{0x001C, 0000, fn_1_1908}, {0x001C, 0000, fn_1_1908},
{0x001C, 0000, fn_1_1930}, {0x001C, 0000, fn_1_1930},
{0x001C, 0000, fn_1_1958}, {0x001C, 0000, fn_1_1958},
{-1, 0, 0}, {-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] = { s32 lbl_1_data_2A8[11] = {
DATA_MAKE_NUM(DATADIR_W10, 4), DATA_MAKE_NUM(DATADIR_W10, 4),
@ -82,133 +132,6 @@ s32 lbl_1_data_2A8[11] = {
DATA_MAKE_NUM(DATADIR_W10, 14) 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) { void fn_1_1D68(void) {
s32 temp_r4; s32 temp_r4;
s32 temp_r5; s32 temp_r5;

View file

@ -328,7 +328,7 @@ void BoardSaveInit(s32 board)
GWPlayer[i].items[0] = -1; GWPlayer[i].items[0] = -1;
GWPlayer[i].items[1] = -1; GWPlayer[i].items[1] = -1;
GWPlayer[i].items[2] = -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); GWStarsSet(i, 0);
} else { } else {
GWStarsSet(i, BoardPlayerHandicapGet(i)); GWStarsSet(i, BoardPlayerHandicapGet(i));
@ -433,14 +433,14 @@ static void MainFunc(void)
_ClearFlag(FLAG_ID_MAKE(1, 28)); _ClearFlag(FLAG_ID_MAKE(1, 28));
do { do {
BoardStatusShowSetAll(1); 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; GWSystem.player_curr = -1;
boardTurnFunc(); boardTurnFunc();
GWSystem.player_curr = 0; GWSystem.player_curr = 0;
} }
BoardMusStartBoard(); BoardMusStartBoard();
for(i=GWSystem.player_curr; i<4; i++) { 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) { if((int)(GWSystem.max_turn-GWSystem.turn) < 5 && i == 0 && !turn_cont) {
BoardLast5GfxInit(); BoardLast5GfxInit();
_SetFlag(FLAG_ID_MAKE(0, 8)); _SetFlag(FLAG_ID_MAKE(0, 8));
@ -494,7 +494,7 @@ static void MainFunc(void)
BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1);
fade_type = 0; fade_type = 0;
} else { } else {
if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { if(GWBoardGet() == 7 || GWBoardGet() == 8) {
if(GWSystem.turn != GWSystem.max_turn) { if(GWSystem.turn != GWSystem.max_turn) {
WipeColorSet(255, 255, 255); WipeColorSet(255, 255, 255);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1);
@ -514,7 +514,7 @@ static void MainFunc(void)
} }
BoardPlayerPostTurnHookExec(i); BoardPlayerPostTurnHookExec(i);
} }
if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { if(GWBoardGet() == 7 || GWBoardGet() == 8) {
GWSystem.player_curr = 0; GWSystem.player_curr = 0;
if(BoardTurnNext()) { if(BoardTurnNext()) {
BoardAudSeqFadeOut(0, 500); BoardAudSeqFadeOut(0, 500);
@ -733,7 +733,7 @@ static void DestroyBoard(void)
} }
BoardModelKillAll(); BoardModelKillAll();
BoardWinKillAll(); BoardWinKillAll();
HuDataDirClose(dir_table[BoardCurrGet()]); HuDataDirClose(dir_table[GWBoardGet()]);
HuDataDirClose(DATADIR_EFFECT); HuDataDirClose(DATADIR_EFFECT);
HuDataDirClose(DATADIR_BGUEST); HuDataDirClose(DATADIR_BGUEST);
HuDataDirClose(DATADIR_BKOOPASUIT); HuDataDirClose(DATADIR_BKOOPASUIT);

View file

@ -347,7 +347,7 @@ s32 BoardSpaceStarGetNext(void)
s16 star_pos; s16 star_pos;
star_total = GWSystem.star_total; star_total = GWSystem.star_total;
star_pos = GWSystem.star_pos; star_pos = GWSystem.star_pos;
if(BoardCurrGet() == 5) { if(GWBoardGet() == 5) {
s16 i; s16 i;
s32 count; s32 count;
s32 last_free; s32 last_free;
@ -504,7 +504,7 @@ s32 BoardSpaceStarCheck(s32 index)
s32 ret; s32 ret;
BoardSpace *space = BoardSpaceGet(0, index); BoardSpace *space = BoardSpaceGet(0, index);
BoardSpace *star_space; BoardSpace *star_space;
if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { if(GWBoardGet() == 7 || GWBoardGet() == 8) {
ret = 0; ret = 0;
goto end; goto end;
} }
@ -623,7 +623,7 @@ s32 BoardSpaceWalkExec(s32 player, s32 space)
return 0; return 0;
} }
space_ptr = BoardSpaceGet(0, space); space_ptr = BoardSpaceGet(0, space);
if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { if(GWBoardGet() == 7 || GWBoardGet() == 8) {
is_star = 0; is_star = 0;
} else { } else {
star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]); star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]);
@ -677,10 +677,10 @@ s32 BoardSpaceBlockExec(s32 player, s32 space)
if(space == GWSystem.block_pos) { if(space == GWSystem.block_pos) {
event_exec = 1; 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; event_exec = 0;
} }
if(BoardCurrGet() == 7 || BoardCurrGet() == 8) { if(GWBoardGet() == 7 || GWBoardGet() == 8) {
event_exec = 0; event_exec = 0;
} }
if(event_exec) { if(event_exec) {
@ -987,7 +987,7 @@ void BoardSpaceInit(s32 data_num)
memset(spaceAttr, 0, sizeof(spaceAttr)); memset(spaceAttr, 0, sizeof(spaceAttr));
lbl_801D3FC4[0] = lbl_801D3FC4[1] = lbl_801D3FC4[2] = lbl_801D3FC4[3] = -1; lbl_801D3FC4[0] = lbl_801D3FC4[1] = lbl_801D3FC4[2] = lbl_801D3FC4[3] = -1;
spaceDrawF = 0; spaceDrawF = 0;
board = BoardCurrGet(); board = GWBoardGet();
{ {
AnimBmpData *bmp; AnimBmpData *bmp;
AnimData *data; AnimData *data;
@ -1059,7 +1059,7 @@ void BoardSpaceInit(s32 data_num)
GWSystem.star_total = 0; GWSystem.star_total = 0;
GWSystem.star_flag = 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); starPlatMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 6), NULL, 0);
BoardModelMotionStart(starPlatMdl, 0, 0x40000001); BoardModelMotionStart(starPlatMdl, 0, 0x40000001);
BoardModelVisibilitySet(starPlatMdl, 0); BoardModelVisibilitySet(starPlatMdl, 0);