Merge pull request #240 from gamemasterplc/main

Label gamework structs more
This commit is contained in:
gamemasterplc 2024-04-01 23:13:39 -05:00 committed by GitHub
commit 0b6f97a621
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 102 additions and 102 deletions

View file

@ -111,15 +111,15 @@ fn_1_E310 = .text:0x0000E310; // type:function size:0x10C
fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte _ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float
lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:float lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:float
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float
@ -363,7 +363,7 @@ lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float
lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float
lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float
lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 scope:local
lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte
lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte
lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte

View file

@ -108,7 +108,7 @@ lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
motTbl = .bss:0x00000008; // type:object size:0x4 scope:local 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
tutorialExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte tutorialExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte boardMapObjMdl = .bss:0x00000010; // type:object size:0x2 data:2byte
hostProc = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte hostProc = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte
hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte
hostMdl = .bss:0x0000001E; // type:object size:0x2 scope:local data:2byte hostMdl = .bss:0x0000001E; // type:object size:0x2 scope:local data:2byte

View file

@ -43,7 +43,7 @@ typedef struct system_state {
u8 bowser_loss : 4; u8 bowser_loss : 4;
u8 bowser_event : 4; u8 bowser_event : 4;
}; };
/* 0x32 */ s8 unk_32; /* 0x32 */ s8 lucky_value;
/* 0x34 */ u16 mg_next; /* 0x34 */ u16 mg_next;
/* 0x36 */ s16 mg_type; /* 0x36 */ s16 mg_type;
/* 0x38 */ u16 unk_38; /* 0x38 */ u16 unk_38;
@ -57,12 +57,12 @@ typedef struct player_state {
u16 com : 1; u16 com : 1;
u16 character : 4; u16 character : 4;
u16 auto_size : 2; u16 auto_size : 2;
u16 field00_bit9 : 1; u16 draw_ticket : 1;
u16 field00_bitA : 6; u16 ticket_player : 6;
}; };
/* 0x02 */ struct { /* 0x02 */ struct {
u8 team : 1; u8 team : 1;
u8 field02_bit1 : 1; u8 spark : 1;
u8 player_idx : 2; u8 player_idx : 2;
}; };
/* 0x03 */ s8 handicap; /* 0x03 */ s8 handicap;
@ -71,13 +71,13 @@ typedef struct player_state {
/* 0x08 */ struct { /* 0x08 */ struct {
u16 color : 2; u16 color : 2;
u16 moving : 1; u16 moving : 1;
u16 field08_bit3 : 1; u16 jump : 1;
u16 show_next : 1; u16 show_next : 1;
u16 size : 2; u16 size : 2;
u16 field08_bit7 : 2; u16 num_dice : 2;
u16 rank : 2; u16 rank : 2;
u16 bowser_suit : 1; u16 bowser_suit : 1;
u16 field08_bit11 : 1; u16 team_backup : 1;
}; };
/* 0x0A */ s8 roll; /* 0x0A */ s8 roll;
/* 0x0C */ s16 space_curr; /* 0x0C */ s16 space_curr;
@ -104,6 +104,14 @@ typedef struct player_state {
/* 0x2E */ char unk_2E[2]; /* 0x2E */ char unk_2E[2];
} PlayerState; //size of 0x30 } PlayerState; //size of 0x30
typedef struct pause_backup_config {
u8 explain_mg : 1;
u8 show_com_mg : 1;
u8 mg_list : 2;
u8 mess_speed : 2;
u8 save_mode : 2;
} PauseBackupConfig;
typedef struct game_stat { typedef struct game_stat {
/* 0x0 */ s16 unk_00; /* 0x0 */ s16 unk_00;
/* 0x2 */ u8 language; /* 0x2 */ u8 language;
@ -127,20 +135,8 @@ typedef struct game_stat {
u8 field10E_bit5 : 1; u8 field10E_bit5 : 1;
u8 field10E_bit6 : 1; u8 field10E_bit6 : 1;
}; };
/* 0x10F */ struct { /* 0x10F */ PauseBackupConfig story_pause;
u8 field10F_bit0 : 1; /* 0x110 */ PauseBackupConfig party_pause;
u8 field10F_bit1 : 1;
u8 field10F_bit2 : 2;
u8 field10F_bit4 : 2;
u8 field10F_bit6 : 2;
};
/* 0x110 */ struct {
u8 field110_bit0 : 1;
u8 field110_bit1 : 1;
u8 field110_bit2 : 2;
u8 field110_bit4 : 2;
u8 field110_bit6 : 2;
};
} GameStat; } GameStat;
extern PlayerConfig GWPlayerCfg[4]; extern PlayerConfig GWPlayerCfg[4];
@ -227,9 +223,14 @@ static inline s32 GWPlayerTeamGet(s32 player)
return GWPlayer[player].team; return GWPlayer[player].team;
} }
static inline s32 GWPlayerSpaceCurrGet(s32 player) static inline s32 GWLuckyValueGet(void)
{ {
return GWPlayer[player].space_curr; return GWSystem.lucky_value;
}
static inline void GWLuckyValueSet(s32 value)
{
GWSystem.lucky_value = value;
} }
#endif #endif

View file

@ -121,10 +121,10 @@ static void FortuneMain(void)
HuPrcVSleep(); HuPrcVSleep();
} }
for(i=0; i<4; i++) { for(i=0; i<4; i++) {
if((int)(GWPlayer[i].team) != 0) { if(GWPlayerTeamGet(i)) {
GWPlayer[i].field08_bit11 = 1; GWPlayer[i].team_backup = 1;
} else { } else {
GWPlayer[i].field08_bit11 = 0; GWPlayer[i].team_backup = 0;
} }
if(i == currPlayer) { if(i == currPlayer) {
GWPlayerCfg[i].group = 0; GWPlayerCfg[i].group = 0;
@ -158,7 +158,7 @@ static void FortuneMain(void)
if((int)GWSystem.show_com_mg == 0) { if((int)GWSystem.show_com_mg == 0) {
HuPrcSleep(60); HuPrcSleep(60);
for(i=0; i<4; i++) { for(i=0; i<4; i++) {
s32 bit11 = GWPlayer[i].field08_bit11; s32 bit11 = GWPlayer[i].team_backup;
GWPlayer[i].team = bit11; GWPlayer[i].team = bit11;
GWPlayerCfg[i].group = bit11; GWPlayerCfg[i].group = bit11;
} }

View file

@ -2662,7 +2662,7 @@ static void ExecItemBag(void) {
temp_r29->user_data = (void*) sp8[var_r30]; temp_r29->user_data = (void*) sp8[var_r30];
temp_r29 = HuPrcChildCreate(ExecItemBagShow, 0x2004, 0x1000, 0, HuPrcCurrentGet()); temp_r29 = HuPrcChildCreate(ExecItemBagShow, 0x2004, 0x1000, 0, HuPrcCurrentGet());
temp_r29->user_data = temp_r24; temp_r29->user_data = temp_r24;
while (GWPlayer[currItemRestore].field08_bit3) { while (GWPlayer[currItemRestore].jump) {
HuPrcVSleep(); HuPrcVSleep();
} }
HuPrcChildWatch(); HuPrcChildWatch();

View file

@ -690,7 +690,7 @@ static void Last5Main(void)
} }
SetLotteryDrawState(1); SetLotteryDrawState(1);
SetLast5RouletteState(3); SetLast5RouletteState(3);
while(GWPlayer[temp_r30].field08_bit3) { while(GWPlayer[temp_r30].jump) {
HuPrcVSleep(); HuPrcVSleep();
} }
while(GetLast5RouletteState() != 0) { while(GetLast5RouletteState() != 0) {
@ -1062,7 +1062,7 @@ static void ExecLotteryDraw(void)
Vec player_end; Vec player_end;
Vec player_start; Vec player_start;
if(GWPlayer[0].field00_bit9 || GWPlayer[1].field00_bit9 || GWPlayer[2].field00_bit9 || GWPlayer[3].field00_bit9) { if(GWPlayer[0].draw_ticket || GWPlayer[1].draw_ticket || GWPlayer[2].draw_ticket || GWPlayer[3].draw_ticket) {
BoardWinCreate(2, messBase+1, BoardWinPortraitGetStar()); BoardWinCreate(2, messBase+1, BoardWinPortraitGetStar());
BoardWinWait(); BoardWinWait();
BoardModelPosGet(hostMdl, &host_end); BoardModelPosGet(hostMdl, &host_end);
@ -1257,13 +1257,13 @@ static void InitLotteryTicket(void)
s32 character; s32 character;
s16 sprite; s16 sprite;
s32 member; s32 member;
u8 ticket_mask; u8 ticket_player;
omObjData *object; omObjData *object;
TicketWork *work; TicketWork *work;
currTicket = 0; currTicket = 0;
lotteryTicketObj[0] = lotteryTicketObj[1] = lotteryTicketObj[2] = lotteryTicketObj[3] = NULL; lotteryTicketObj[0] = lotteryTicketObj[1] = lotteryTicketObj[2] = lotteryTicketObj[3] = NULL;
for(numTickets=i=0; i<4; i++) { for(numTickets=i=0; i<4; i++) {
if(!GWPlayer[i].field00_bit9) { if(!GWPlayer[i].draw_ticket) {
continue; continue;
} }
object = omAddObjEx(boardObjMan, 257, 0, 0, -1, UpdateLotteryTicket); object = omAddObjEx(boardObjMan, 257, 0, 0, -1, UpdateLotteryTicket);
@ -1299,20 +1299,20 @@ static void InitLotteryTicket(void)
HuSprAttrSet(work->group, 4, HUSPR_ATTR_DISPOFF); HuSprAttrSet(work->group, 4, HUSPR_ATTR_DISPOFF);
HuSprAttrSet(work->group, 4, HUSPR_ATTR_ADDCOL); HuSprAttrSet(work->group, 4, HUSPR_ATTR_ADDCOL);
HuSprScaleSet(work->group, 4, 1.3f, 1.3f); HuSprScaleSet(work->group, 4, 1.3f, 1.3f);
ticket_mask = GWPlayer[i].field00_bitA; ticket_player = GWPlayer[i].ticket_player;
j=3; j=3;
while(j>=0) { while(j>=0) {
s32 player_spr; s32 player_spr;
j--; j--;
work->character[j] = GWPlayer[ticket_mask & 0x3].character; work->character[j] = GWPlayer[ticket_player & 0x3].character;
player_spr = playerSprTbl[work->character[j]]; player_spr = playerSprTbl[work->character[j]];
member = j+1; member = j+1;
BoardSpriteCreate(player_spr, 1500, NULL, &sprite); BoardSpriteCreate(player_spr, 1500, NULL, &sprite);
HuSprGrpMemberSet(work->group, member, sprite); HuSprGrpMemberSet(work->group, member, sprite);
HuSprAttrSet(work->group, member, HUSPR_ATTR_LINEAR); HuSprAttrSet(work->group, member, HUSPR_ATTR_LINEAR);
HuSprPosSet(work->group, member, playerOfsTbl[j][0], playerOfsTbl[j][1]); HuSprPosSet(work->group, member, playerOfsTbl[j][0], playerOfsTbl[j][1]);
ticket_mask >>= 2; ticket_player >>= 2;
} }
numTickets++; numTickets++;
} }

View file

@ -560,7 +560,7 @@ static void ExecLottery(void) {
HuPrcVSleep(); HuPrcVSleep();
} }
BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[0], 0.0f, 10.0f, 0x40000001); BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[0], 0.0f, 10.0f, 0x40000001);
if (GWPlayer[temp_r31].field00_bit9 == 0 && GWSystem.max_turn - GWSystem.turn >= 5) { if (GWPlayer[temp_r31].draw_ticket == 0 && GWSystem.max_turn - GWSystem.turn >= 5) {
SetupTicket(temp_r31); SetupTicket(temp_r31);
ShowTicket(); ShowTicket();
var_r27 = 1; var_r27 = 1;
@ -737,7 +737,7 @@ static void ShowTicket(void) {
if (GWBoardGet() == 7 || GWBoardGet() == 8) { if (GWBoardGet() == 7 || GWBoardGet() == 8) {
return; return;
} }
sp8 = GWPlayer[GWSystem.player_curr].field00_bitA; sp8 = GWPlayer[GWSystem.player_curr].ticket_player;
var_r28 = (u8*) &sp8; var_r28 = (u8*) &sp8;
temp_r31 = HuSprGrpCreate(4); temp_r31 = HuSprGrpCreate(4);
BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 20), 30001, 0, &spA); BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 20), 30001, 0, &spA);
@ -798,8 +798,8 @@ static void SetupTicket(s32 arg0) {
s32 var_r31; s32 var_r31;
for (var_r30 = var_r31 = 0; var_r31 < 4; var_r31++) { for (var_r30 = var_r31 = 0; var_r31 < 4; var_r31++) {
if (arg0 != var_r31 && GWPlayer[var_r31].field00_bit9 != 0) { if (arg0 != var_r31 && GWPlayer[var_r31].draw_ticket != 0) {
sp8[var_r30] = GWPlayer[var_r31].field00_bitA; sp8[var_r30] = GWPlayer[var_r31].ticket_player;
var_r30++; var_r30++;
} }
} }
@ -815,8 +815,8 @@ static void SetupTicket(s32 arg0) {
break; break;
} }
} }
GWPlayer[arg0].field00_bitA = var_r29; GWPlayer[arg0].ticket_player = var_r29;
GWPlayer[arg0].field00_bit9 = 1; GWPlayer[arg0].draw_ticket = 1;
} }
static void LotteryInlineFunc00(s32 arg0, s32 arg1) { static void LotteryInlineFunc00(s32 arg0, s32 arg1) {

View file

@ -289,7 +289,7 @@ void BoardSaveInit(s32 board)
GWSystem.player_curr = -1; GWSystem.player_curr = -1;
GWSystem.bowser_loss = 0; GWSystem.bowser_loss = 0;
GWSystem.bowser_event = 0; GWSystem.bowser_event = 0;
GWSystem.unk_32 = 1; GWSystem.lucky_value = 1;
GWSystem.mg_next = 0; GWSystem.mg_next = 0;
GWMGTypeSet(0); GWMGTypeSet(0);
GWSystem.unk_38 = 0; GWSystem.unk_38 = 0;
@ -298,12 +298,12 @@ void BoardSaveInit(s32 board)
for(i=0; i<4; i++) { for(i=0; i<4; i++) {
s32 party_flag; s32 party_flag;
BoardPlayerAutoSizeSet(i, 0); BoardPlayerAutoSizeSet(i, 0);
GWPlayer[i].field00_bit9 = 0; GWPlayer[i].draw_ticket = 0;
GWPlayer[i].color = 0; GWPlayer[i].color = 0;
GWPlayer[i].bowser_suit = 0; GWPlayer[i].bowser_suit = 0;
GWPlayer[i].field08_bit3 = 0; GWPlayer[i].jump = 0;
GWPlayer[i].space_shock = 0; GWPlayer[i].space_shock = 0;
GWPlayer[i].field02_bit1 = 0; GWPlayer[i].spark = 0;
GWPlayer[i].show_next = 1; GWPlayer[i].show_next = 1;
BoardPlayerCoinsSet(i, 0); BoardPlayerCoinsSet(i, 0);
if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { if(_CheckFlag(FLAG_ID_MAKE(1, 11))) {
@ -661,7 +661,7 @@ static void CreateBoard(void)
reset_unk32 = 0; reset_unk32 = 0;
} }
if(!reset_unk32) { if(!reset_unk32) {
GWSystem.unk_32 = 1; GWSystem.lucky_value = 1;
} }
guest_status = BoardDataDirReadAsync(DATADIR_BGUEST); guest_status = BoardDataDirReadAsync(DATADIR_BGUEST);
if(guest_status != -1) { if(guest_status != -1) {

View file

@ -164,7 +164,7 @@ static void ExecMGSetup(void) {
luckyF = 0; luckyF = 0;
mgNext = 0; mgNext = 0;
GWSystem.player_curr = -1; GWSystem.player_curr = -1;
GWSystem.unk_32 = 1; GWLuckyValueSet(1);
for (var_r31 = 0; var_r31 < 4; var_r31++) { for (var_r31 = 0; var_r31 < 4; var_r31++) {
activeMG[var_r31].unk_00 = -1; activeMG[var_r31].unk_00 = -1;
activeMG[var_r31].unk_04 = 0; activeMG[var_r31].unk_04 = 0;
@ -219,7 +219,7 @@ static void ExecMGSetup(void) {
while (setupObjGet() != 7) { while (setupObjGet() != 7) {
HuPrcVSleep(); HuPrcVSleep();
} }
switch (GWSystem.unk_32) { switch (GWLuckyValueGet()) {
case 1: case 1:
var_r30 = luckyMessTbl[GWBoardGet()] + 1; var_r30 = luckyMessTbl[GWBoardGet()] + 1;
break; break;
@ -390,11 +390,11 @@ static void SetupStatusLayout(void) {
for (var_r28 = var_r31 = 0; var_r31 < 4; var_r31++) { for (var_r28 = var_r31 = 0; var_r31 < 4; var_r31++) {
if (GWPlayer[var_r31].color == 2) { if (GWPlayer[var_r31].color == 2) {
var_r27 = var_r31; var_r27 = var_r31;
GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31);
GWPlayerCfg[var_r31].group = 0; GWPlayerCfg[var_r31].group = 0;
var_r28++; var_r28++;
} else { } else {
GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31);
GWPlayerCfg[var_r31].group = 1; GWPlayerCfg[var_r31].group = 1;
var_r26 = var_r31; var_r26 = var_r31;
} }
@ -415,11 +415,11 @@ static void SetupStatusLayout(void) {
for (var_r31 = 0; var_r31 < 4; var_r31++) { for (var_r31 = 0; var_r31 < 4; var_r31++) {
if (var_r31 == var_r26) { if (var_r31 == var_r26) {
GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31);
GWPlayerCfg[var_r31].group = 0; GWPlayerCfg[var_r31].group = 0;
} else { } else {
BoardStatusTargetPosSet(var_r31, &statusLayout1Vs3[var_r29++]); BoardStatusTargetPosSet(var_r31, &statusLayout1Vs3[var_r29++]);
GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31);
GWPlayerCfg[var_r31].group = 1; GWPlayerCfg[var_r31].group = 1;
} }
} }
@ -429,11 +429,11 @@ static void SetupStatusLayout(void) {
for (var_r29 = var_r31 = 0; var_r31 < 4; var_r31++) { for (var_r29 = var_r31 = 0; var_r31 < 4; var_r31++) {
if (GWPlayer[var_r31].color == 2) { if (GWPlayer[var_r31].color == 2) {
BoardStatusTargetPosSet(var_r31, &statusLayout2Vs2[var_r29++]); BoardStatusTargetPosSet(var_r31, &statusLayout2Vs2[var_r29++]);
GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31);
GWPlayerCfg[var_r31].group = 0; GWPlayerCfg[var_r31].group = 0;
} else { } else {
BoardStatusTargetPosSet(var_r31, &statusLayout2Vs2[var_r30++]); BoardStatusTargetPosSet(var_r31, &statusLayout2Vs2[var_r30++]);
GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31);
GWPlayerCfg[var_r31].group = 1; GWPlayerCfg[var_r31].group = 1;
} }
} }
@ -923,10 +923,6 @@ static void HideLuckyValue(void) {
HuSprAttrSet(temp_r31->unk_00[0], 9, 4); HuSprAttrSet(temp_r31->unk_00[0], 9, 4);
} }
static inline s32 GWMGUnk32Get(void) {
return GWSystem.unk_32;
}
static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) {
s32 var_r23; s32 var_r23;
f32 temp_f29; f32 temp_f29;
@ -953,11 +949,11 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) {
arg0->unk_03 = 0; arg0->unk_03 = 0;
temp_r3 = BoardRandMod(0x64U); temp_r3 = BoardRandMod(0x64U);
if (temp_r3 < 0x55) { if (temp_r3 < 0x55) {
GWSystem.unk_32 = 2; GWLuckyValueSet(2);
return; return;
} }
if (temp_r3 >= 0x5F) return; if (temp_r3 >= 0x5F) return;
GWSystem.unk_32 = 3; GWLuckyValueSet(3);
return; return;
case 1: case 1:
if (arg0->unk_03 < 0x5A) { if (arg0->unk_03 < 0x5A) {
@ -986,7 +982,7 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) {
} }
HuSprBankSet(temp_r27->unk_00[0], 9, luckyValue); HuSprBankSet(temp_r27->unk_00[0], 9, luckyValue);
if (arg0->unk_08 < 0.05f) { if (arg0->unk_08 < 0.05f) {
if (luckyValue != GWMGUnk32Get() - 1) { if (luckyValue != GWLuckyValueGet() - 1) {
arg0->unk_08 *= 1.0309278f; arg0->unk_08 *= 1.0309278f;
return; return;
} }

View file

@ -177,17 +177,17 @@ static void PauseExit(void) {
_ClearFlag(0xB); _ClearFlag(0xB);
} }
if (GWPartyGet() == 0) { if (GWPartyGet() == 0) {
GWGameStat.field10F_bit0 = GWMGExplainGet(); GWGameStat.story_pause.explain_mg = GWMGExplainGet();
GWGameStat.field10F_bit1 = GWMGShowComGet(); GWGameStat.story_pause.show_com_mg = GWMGShowComGet();
GWGameStat.field10F_bit2 = GWMGListGet(); GWGameStat.story_pause.mg_list = GWMGListGet();
GWGameStat.field10F_bit4 = GWMessSpeedGet(); GWGameStat.story_pause.mess_speed = GWMessSpeedGet();
GWGameStat.field10F_bit6 = GWSaveModeGet(); GWGameStat.story_pause.save_mode = GWSaveModeGet();
} else { } else {
GWGameStat.field110_bit0 = GWMGExplainGet(); GWGameStat.party_pause.explain_mg = GWMGExplainGet();
GWGameStat.field110_bit1 = GWMGShowComGet(); GWGameStat.party_pause.show_com_mg = GWMGShowComGet();
GWGameStat.field110_bit2 = GWMGListGet(); GWGameStat.party_pause.mg_list = GWMGListGet();
GWGameStat.field110_bit4 = GWMessSpeedGet(); GWGameStat.party_pause.mess_speed = GWMessSpeedGet();
GWGameStat.field110_bit6 = GWSaveModeGet(); GWGameStat.party_pause.save_mode = GWSaveModeGet();
} }
mainProcess = NULL; mainProcess = NULL;
} }

View file

@ -188,8 +188,8 @@ void BoardPlayerInit(void) {
BoardPlayerSizeSet(var_r31, 0); BoardPlayerSizeSet(var_r31, 0);
GWPlayer[var_r31].color = 0; GWPlayer[var_r31].color = 0;
GWPlayer[var_r31].bowser_suit = 0; GWPlayer[var_r31].bowser_suit = 0;
GWPlayer[var_r31].field00_bit9 = 0; GWPlayer[var_r31].draw_ticket = 0;
GWPlayer[var_r31].field08_bit3 = 0; GWPlayer[var_r31].jump = 0;
} }
return; return;
} }
@ -212,7 +212,6 @@ void BoardPlayerModelInit(void) {
s32 temp_r24; s32 temp_r24;
s16 temp_r3; s16 temp_r3;
s32 temp_r4; s32 temp_r4;
PlayerState* temp_r22;
PlayerState* temp_r27; PlayerState* temp_r27;
s32 ro0[8] = { 0x5E0000, 0x190000, 0x6C0000, 0x890000, 0x840000, 0x100000, 0xC0000, 0x800000 }; s32 ro0[8] = { 0x5E0000, 0x190000, 0x6C0000, 0x890000, 0x840000, 0x100000, 0xC0000, 0x800000 };
@ -222,9 +221,9 @@ void BoardPlayerModelInit(void) {
memset(&boardPlayerMdl, 0, 8); memset(&boardPlayerMdl, 0, 8);
suitMdl = -1; suitMdl = -1;
suitPlayerMdl = -1; suitPlayerMdl = -1;
if ((_CheckFlag(0x10005U) != 0) || ((_CheckFlag(0x10006U) != 0) && (temp_r4 = GWSystem.board, temp_r4 == 5))) { if ((_CheckFlag(0x10005U) != 0) || (_CheckFlag(0x10006U) && (GWBoardGet() == 5))) {
for (var_r31 = 0; var_r31 < 4; var_r31++) { for (var_r31 = 0; var_r31 < 4; var_r31++) {
temp_r25 = GWPlayer[var_r31].field08_bit11; temp_r25 = GWPlayer[var_r31].team_backup;
GWPlayer[var_r31].team = temp_r25; GWPlayer[var_r31].team = temp_r25;
GWPlayerCfg[var_r31].group = temp_r25; GWPlayerCfg[var_r31].group = temp_r25;
} }
@ -234,8 +233,7 @@ void BoardPlayerModelInit(void) {
postTurnHook[var_r31] = 0; postTurnHook[var_r31] = 0;
motDoneF[var_r31] = 0; motDoneF[var_r31] = 0;
diceJumpObj[var_r31] = 0; diceJumpObj[var_r31] = 0;
temp_r22 = &GWPlayer[var_r31]; temp_r27 = BoardPlayerGet(var_r31);
temp_r27 = temp_r22;
temp_r29 = GWPlayerCfg[var_r31].character; temp_r29 = GWPlayerCfg[var_r31].character;
temp_r27->player_idx = var_r31; temp_r27->player_idx = var_r31;
GWPlayer[var_r31].character = temp_r29; GWPlayer[var_r31].character = temp_r29;
@ -725,7 +723,7 @@ void BoardPlayerTurnRollExec(s32 arg0) {
s32 temp_r30; s32 temp_r30;
GWPlayer[arg0].roll = 0; GWPlayer[arg0].roll = 0;
GWPlayer[arg0].field08_bit7 = 1; GWPlayer[arg0].num_dice = 1;
BoardPauseDisableSet(0); BoardPauseDisableSet(0);
do { do {
temp_r30 = BoardRollExec(arg0); temp_r30 = BoardRollExec(arg0);
@ -1686,7 +1684,7 @@ void BoardPlayerDiceJumpStart(s32 arg0) {
temp_r31->field00_bit3 = 0; temp_r31->field00_bit3 = 0;
temp_r31->unk_08 = 0.0f; temp_r31->unk_08 = 0.0f;
temp_r31->unk_0C = sp8.y; temp_r31->unk_0C = sp8.y;
GWPlayer[arg0].field08_bit3 = 1; GWPlayer[arg0].jump = 1;
} }
s32 BoardPlayerDiceJumpCheck(s32 arg0) { s32 BoardPlayerDiceJumpCheck(s32 arg0) {
@ -1710,7 +1708,7 @@ static void DiceJumpFunc(omObjData* arg0) {
temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy2); temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy2);
if ((temp_r31->field00_bit0 != 0) || (BoardIsKill() != 0)) { if ((temp_r31->field00_bit0 != 0) || (BoardIsKill() != 0)) {
GWPlayer[temp_r31->field00_bit1].field08_bit3 = 0; GWPlayer[temp_r31->field00_bit1].jump = 0;
BoardPlayerIdleSet(temp_r31->field00_bit1); BoardPlayerIdleSet(temp_r31->field00_bit1);
diceJumpObj[temp_r31->field00_bit1] = 0; diceJumpObj[temp_r31->field00_bit1] = 0;
omDelObjEx(HuPrcCurrentGet(), arg0); omDelObjEx(HuPrcCurrentGet(), arg0);
@ -2256,7 +2254,7 @@ void UpdateBowserSuit(omObjData* arg0) {
void BoardPlayerSparkSet(s32 arg0) { void BoardPlayerSparkSet(s32 arg0) {
s16 currSpace = GWPlayer[arg0].space_curr; s16 currSpace = GWPlayer[arg0].space_curr;
GWPlayer[arg0].field02_bit1 = 1; GWPlayer[arg0].spark = 1;
GWPlayer[arg0].space_shock = currSpace; GWPlayer[arg0].space_shock = currSpace;
} }
@ -2423,11 +2421,11 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam)
static void RemoveSparkSpace(s32 player) static void RemoveSparkSpace(s32 player)
{ {
if(GWPlayer[player].field02_bit1) { if(GWPlayer[player].spark) {
BoardWinCreate(0, 0x12001C, -1); BoardWinCreate(0, 0x12001C, -1);
BoardWinWait(); BoardWinWait();
BoardWinKill(); BoardWinKill();
GWPlayer[player].field02_bit1 = 0; GWPlayer[player].spark = 0;
GWPlayer[player].space_shock = 0; GWPlayer[player].space_shock = 0;
} }
} }

View file

@ -154,7 +154,7 @@ s32 BoardRollExec(s32 arg0) {
if (GWPlayer[rollPlayer].bowser_suit != 0) { if (GWPlayer[rollPlayer].bowser_suit != 0) {
diceSize = 3; diceSize = 3;
} }
GWPlayer[arg0].field08_bit7 = numDice; GWPlayer[arg0].num_dice = numDice;
rollProc = HuPrcChildCreate(RollMain, 0x2005, 0x6000, 0, boardMainProc); rollProc = HuPrcChildCreate(RollMain, 0x2005, 0x6000, 0, boardMainProc);
HuPrcDestructorSet2(rollProc, RollDestroy); HuPrcDestructorSet2(rollProc, RollDestroy);
while (rollProc != NULL) { while (rollProc != NULL) {
@ -262,7 +262,7 @@ static void RollMain(void) {
HuPrcVSleep(); HuPrcVSleep();
} }
DiceSetHit(i); DiceSetHit(i);
while (GWPlayer[rollPlayer].field08_bit3 != 0) { while (GWPlayer[rollPlayer].jump != 0) {
HuPrcVSleep(); HuPrcVSleep();
} }
} }

View file

@ -105,11 +105,15 @@ static inline void ResetFlag(GameStat *game_stat)
game_stat->field10E_bit4 = 0; game_stat->field10E_bit4 = 0;
game_stat->field10E_bit5 = 0; game_stat->field10E_bit5 = 0;
game_stat->field10E_bit6 = 0; game_stat->field10E_bit6 = 0;
game_stat->field10F_bit0 = game_stat->field110_bit0 = 1; }
game_stat->field10F_bit1 = game_stat->field110_bit1 = 1;
game_stat->field10F_bit2 = game_stat->field110_bit2 = 0; static inline void ResetPauseConfig(GameStat *game_stat)
game_stat->field10F_bit4 = game_stat->field110_bit4 = 1; {
game_stat->field10F_bit6 = game_stat->field110_bit6 = 0; game_stat->story_pause.explain_mg = game_stat->party_pause.explain_mg = 1;
game_stat->story_pause.show_com_mg = game_stat->party_pause.show_com_mg = 1;
game_stat->story_pause.mg_list = game_stat->party_pause.mg_list = 0;
game_stat->story_pause.mess_speed = game_stat->party_pause.mess_speed = 1;
game_stat->story_pause.save_mode = game_stat->party_pause.save_mode = 0;
} }
void GWGameStatReset(void) void GWGameStatReset(void)
@ -130,6 +134,7 @@ void GWGameStatReset(void)
ResetBoardRecord(game_stat); ResetBoardRecord(game_stat);
ResetPresent(game_stat); ResetPresent(game_stat);
ResetFlag(game_stat); ResetFlag(game_stat);
ResetPauseConfig(game_stat);
memcpy(&GWGameStat, &GWGameStatDefault, sizeof(GameStat)); memcpy(&GWGameStat, &GWGameStatDefault, sizeof(GameStat));
ResetBoardSettings(); ResetBoardSettings();
} }