diff --git a/config/GMPE01_00/rels/w02Dll/symbols.txt b/config/GMPE01_00/rels/w02Dll/symbols.txt index da397f39..ad1b1e8c 100644 --- a/config/GMPE01_00/rels/w02Dll/symbols.txt +++ b/config/GMPE01_00/rels/w02Dll/symbols.txt @@ -111,15 +111,15 @@ fn_1_E310 = .text:0x0000E310; // type:function size:0x10C fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 _ctors = .ctors: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_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 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 scope:local 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 scope:local 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 scope:local 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 scope:local 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_3C = .rodata:0x0000003C; // 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_528 = .rodata:0x00000528; // 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_282 = .data:0x00000282; // type:object size:0x2 data:2byte lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte diff --git a/config/GMPE01_00/rels/w10Dll/symbols.txt b/config/GMPE01_00/rels/w10Dll/symbols.txt index b263cb2d..516c32af 100644 --- a/config/GMPE01_00/rels/w10Dll/symbols.txt +++ b/config/GMPE01_00/rels/w10Dll/symbols.txt @@ -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 tutorialDoneF = .bss:0x0000000C; // 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 hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte hostMdl = .bss:0x0000001E; // type:object size:0x2 scope:local data:2byte diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 902c7af8..69542fdf 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -43,7 +43,7 @@ typedef struct system_state { u8 bowser_loss : 4; u8 bowser_event : 4; }; -/* 0x32 */ s8 unk_32; +/* 0x32 */ s8 lucky_value; /* 0x34 */ u16 mg_next; /* 0x36 */ s16 mg_type; /* 0x38 */ u16 unk_38; @@ -57,12 +57,12 @@ typedef struct player_state { u16 com : 1; u16 character : 4; u16 auto_size : 2; - u16 field00_bit9 : 1; - u16 field00_bitA : 6; + u16 draw_ticket : 1; + u16 ticket_player : 6; }; /* 0x02 */ struct { u8 team : 1; - u8 field02_bit1 : 1; + u8 spark : 1; u8 player_idx : 2; }; /* 0x03 */ s8 handicap; @@ -71,13 +71,13 @@ typedef struct player_state { /* 0x08 */ struct { u16 color : 2; u16 moving : 1; - u16 field08_bit3 : 1; + u16 jump : 1; u16 show_next : 1; u16 size : 2; - u16 field08_bit7 : 2; + u16 num_dice : 2; u16 rank : 2; u16 bowser_suit : 1; - u16 field08_bit11 : 1; + u16 team_backup : 1; }; /* 0x0A */ s8 roll; /* 0x0C */ s16 space_curr; @@ -104,6 +104,14 @@ typedef struct player_state { /* 0x2E */ char unk_2E[2]; } 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 { /* 0x0 */ s16 unk_00; /* 0x2 */ u8 language; @@ -127,20 +135,8 @@ typedef struct game_stat { u8 field10E_bit5 : 1; u8 field10E_bit6 : 1; }; -/* 0x10F */ struct { - u8 field10F_bit0 : 1; - 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; - }; +/* 0x10F */ PauseBackupConfig story_pause; +/* 0x110 */ PauseBackupConfig party_pause; } GameStat; extern PlayerConfig GWPlayerCfg[4]; @@ -227,9 +223,14 @@ static inline s32 GWPlayerTeamGet(s32 player) 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 diff --git a/src/game/board/fortune.c b/src/game/board/fortune.c index 97b3fae0..a7097baa 100644 --- a/src/game/board/fortune.c +++ b/src/game/board/fortune.c @@ -121,10 +121,10 @@ static void FortuneMain(void) HuPrcVSleep(); } for(i=0; i<4; i++) { - if((int)(GWPlayer[i].team) != 0) { - GWPlayer[i].field08_bit11 = 1; + if(GWPlayerTeamGet(i)) { + GWPlayer[i].team_backup = 1; } else { - GWPlayer[i].field08_bit11 = 0; + GWPlayer[i].team_backup = 0; } if(i == currPlayer) { GWPlayerCfg[i].group = 0; @@ -158,7 +158,7 @@ static void FortuneMain(void) if((int)GWSystem.show_com_mg == 0) { HuPrcSleep(60); for(i=0; i<4; i++) { - s32 bit11 = GWPlayer[i].field08_bit11; + s32 bit11 = GWPlayer[i].team_backup; GWPlayer[i].team = bit11; GWPlayerCfg[i].group = bit11; } diff --git a/src/game/board/item.c b/src/game/board/item.c index 0d68d60e..803794ea 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -2662,7 +2662,7 @@ static void ExecItemBag(void) { temp_r29->user_data = (void*) sp8[var_r30]; temp_r29 = HuPrcChildCreate(ExecItemBagShow, 0x2004, 0x1000, 0, HuPrcCurrentGet()); temp_r29->user_data = temp_r24; - while (GWPlayer[currItemRestore].field08_bit3) { + while (GWPlayer[currItemRestore].jump) { HuPrcVSleep(); } HuPrcChildWatch(); diff --git a/src/game/board/last5.c b/src/game/board/last5.c index ccf070e6..15f25834 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -690,7 +690,7 @@ static void Last5Main(void) } SetLotteryDrawState(1); SetLast5RouletteState(3); - while(GWPlayer[temp_r30].field08_bit3) { + while(GWPlayer[temp_r30].jump) { HuPrcVSleep(); } while(GetLast5RouletteState() != 0) { @@ -1062,7 +1062,7 @@ static void ExecLotteryDraw(void) Vec player_end; 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()); BoardWinWait(); BoardModelPosGet(hostMdl, &host_end); @@ -1257,13 +1257,13 @@ static void InitLotteryTicket(void) s32 character; s16 sprite; s32 member; - u8 ticket_mask; + u8 ticket_player; omObjData *object; TicketWork *work; currTicket = 0; lotteryTicketObj[0] = lotteryTicketObj[1] = lotteryTicketObj[2] = lotteryTicketObj[3] = NULL; for(numTickets=i=0; i<4; i++) { - if(!GWPlayer[i].field00_bit9) { + if(!GWPlayer[i].draw_ticket) { continue; } 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_ADDCOL); HuSprScaleSet(work->group, 4, 1.3f, 1.3f); - ticket_mask = GWPlayer[i].field00_bitA; + ticket_player = GWPlayer[i].ticket_player; j=3; while(j>=0) { s32 player_spr; j--; - work->character[j] = GWPlayer[ticket_mask & 0x3].character; + work->character[j] = GWPlayer[ticket_player & 0x3].character; player_spr = playerSprTbl[work->character[j]]; member = j+1; BoardSpriteCreate(player_spr, 1500, NULL, &sprite); HuSprGrpMemberSet(work->group, member, sprite); HuSprAttrSet(work->group, member, HUSPR_ATTR_LINEAR); HuSprPosSet(work->group, member, playerOfsTbl[j][0], playerOfsTbl[j][1]); - ticket_mask >>= 2; + ticket_player >>= 2; } numTickets++; } diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index d417f8bc..783e4d63 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -560,7 +560,7 @@ static void ExecLottery(void) { HuPrcVSleep(); } 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); ShowTicket(); var_r27 = 1; @@ -737,7 +737,7 @@ static void ShowTicket(void) { if (GWBoardGet() == 7 || GWBoardGet() == 8) { return; } - sp8 = GWPlayer[GWSystem.player_curr].field00_bitA; + sp8 = GWPlayer[GWSystem.player_curr].ticket_player; var_r28 = (u8*) &sp8; temp_r31 = HuSprGrpCreate(4); BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 20), 30001, 0, &spA); @@ -798,8 +798,8 @@ static void SetupTicket(s32 arg0) { s32 var_r31; for (var_r30 = var_r31 = 0; var_r31 < 4; var_r31++) { - if (arg0 != var_r31 && GWPlayer[var_r31].field00_bit9 != 0) { - sp8[var_r30] = GWPlayer[var_r31].field00_bitA; + if (arg0 != var_r31 && GWPlayer[var_r31].draw_ticket != 0) { + sp8[var_r30] = GWPlayer[var_r31].ticket_player; var_r30++; } } @@ -815,8 +815,8 @@ static void SetupTicket(s32 arg0) { break; } } - GWPlayer[arg0].field00_bitA = var_r29; - GWPlayer[arg0].field00_bit9 = 1; + GWPlayer[arg0].ticket_player = var_r29; + GWPlayer[arg0].draw_ticket = 1; } static void LotteryInlineFunc00(s32 arg0, s32 arg1) { diff --git a/src/game/board/main.c b/src/game/board/main.c index 5f89b9a2..b7abb20f 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -289,7 +289,7 @@ void BoardSaveInit(s32 board) GWSystem.player_curr = -1; GWSystem.bowser_loss = 0; GWSystem.bowser_event = 0; - GWSystem.unk_32 = 1; + GWSystem.lucky_value = 1; GWSystem.mg_next = 0; GWMGTypeSet(0); GWSystem.unk_38 = 0; @@ -298,12 +298,12 @@ void BoardSaveInit(s32 board) for(i=0; i<4; i++) { s32 party_flag; BoardPlayerAutoSizeSet(i, 0); - GWPlayer[i].field00_bit9 = 0; + GWPlayer[i].draw_ticket = 0; GWPlayer[i].color = 0; GWPlayer[i].bowser_suit = 0; - GWPlayer[i].field08_bit3 = 0; + GWPlayer[i].jump = 0; GWPlayer[i].space_shock = 0; - GWPlayer[i].field02_bit1 = 0; + GWPlayer[i].spark = 0; GWPlayer[i].show_next = 1; BoardPlayerCoinsSet(i, 0); if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { @@ -661,7 +661,7 @@ static void CreateBoard(void) reset_unk32 = 0; } if(!reset_unk32) { - GWSystem.unk_32 = 1; + GWSystem.lucky_value = 1; } guest_status = BoardDataDirReadAsync(DATADIR_BGUEST); if(guest_status != -1) { diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 97442928..54555a11 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -164,7 +164,7 @@ static void ExecMGSetup(void) { luckyF = 0; mgNext = 0; GWSystem.player_curr = -1; - GWSystem.unk_32 = 1; + GWLuckyValueSet(1); for (var_r31 = 0; var_r31 < 4; var_r31++) { activeMG[var_r31].unk_00 = -1; activeMG[var_r31].unk_04 = 0; @@ -219,7 +219,7 @@ static void ExecMGSetup(void) { while (setupObjGet() != 7) { HuPrcVSleep(); } - switch (GWSystem.unk_32) { + switch (GWLuckyValueGet()) { case 1: var_r30 = luckyMessTbl[GWBoardGet()] + 1; break; @@ -390,11 +390,11 @@ static void SetupStatusLayout(void) { for (var_r28 = var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayer[var_r31].color == 2) { 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; var_r28++; } else { - GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); + GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31); GWPlayerCfg[var_r31].group = 1; var_r26 = var_r31; } @@ -415,11 +415,11 @@ static void SetupStatusLayout(void) { for (var_r31 = 0; var_r31 < 4; var_r31++) { 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; } else { 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; } } @@ -429,11 +429,11 @@ static void SetupStatusLayout(void) { for (var_r29 = var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayer[var_r31].color == 2) { 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; } else { 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; } } @@ -923,10 +923,6 @@ static void HideLuckyValue(void) { HuSprAttrSet(temp_r31->unk_00[0], 9, 4); } -static inline s32 GWMGUnk32Get(void) { - return GWSystem.unk_32; -} - static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { s32 var_r23; f32 temp_f29; @@ -953,11 +949,11 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { arg0->unk_03 = 0; temp_r3 = BoardRandMod(0x64U); if (temp_r3 < 0x55) { - GWSystem.unk_32 = 2; + GWLuckyValueSet(2); return; } if (temp_r3 >= 0x5F) return; - GWSystem.unk_32 = 3; + GWLuckyValueSet(3); return; case 1: if (arg0->unk_03 < 0x5A) { @@ -986,7 +982,7 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { } HuSprBankSet(temp_r27->unk_00[0], 9, luckyValue); if (arg0->unk_08 < 0.05f) { - if (luckyValue != GWMGUnk32Get() - 1) { + if (luckyValue != GWLuckyValueGet() - 1) { arg0->unk_08 *= 1.0309278f; return; } diff --git a/src/game/board/pause.c b/src/game/board/pause.c index 84b84b4c..d4718ff5 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -177,17 +177,17 @@ static void PauseExit(void) { _ClearFlag(0xB); } if (GWPartyGet() == 0) { - GWGameStat.field10F_bit0 = GWMGExplainGet(); - GWGameStat.field10F_bit1 = GWMGShowComGet(); - GWGameStat.field10F_bit2 = GWMGListGet(); - GWGameStat.field10F_bit4 = GWMessSpeedGet(); - GWGameStat.field10F_bit6 = GWSaveModeGet(); + GWGameStat.story_pause.explain_mg = GWMGExplainGet(); + GWGameStat.story_pause.show_com_mg = GWMGShowComGet(); + GWGameStat.story_pause.mg_list = GWMGListGet(); + GWGameStat.story_pause.mess_speed = GWMessSpeedGet(); + GWGameStat.story_pause.save_mode = GWSaveModeGet(); } else { - GWGameStat.field110_bit0 = GWMGExplainGet(); - GWGameStat.field110_bit1 = GWMGShowComGet(); - GWGameStat.field110_bit2 = GWMGListGet(); - GWGameStat.field110_bit4 = GWMessSpeedGet(); - GWGameStat.field110_bit6 = GWSaveModeGet(); + GWGameStat.party_pause.explain_mg = GWMGExplainGet(); + GWGameStat.party_pause.show_com_mg = GWMGShowComGet(); + GWGameStat.party_pause.mg_list = GWMGListGet(); + GWGameStat.party_pause.mess_speed = GWMessSpeedGet(); + GWGameStat.party_pause.save_mode = GWSaveModeGet(); } mainProcess = NULL; } diff --git a/src/game/board/player.c b/src/game/board/player.c index f8f23972..6602ea91 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -188,8 +188,8 @@ void BoardPlayerInit(void) { BoardPlayerSizeSet(var_r31, 0); GWPlayer[var_r31].color = 0; GWPlayer[var_r31].bowser_suit = 0; - GWPlayer[var_r31].field00_bit9 = 0; - GWPlayer[var_r31].field08_bit3 = 0; + GWPlayer[var_r31].draw_ticket = 0; + GWPlayer[var_r31].jump = 0; } return; } @@ -212,7 +212,6 @@ void BoardPlayerModelInit(void) { s32 temp_r24; s16 temp_r3; s32 temp_r4; - PlayerState* temp_r22; PlayerState* temp_r27; s32 ro0[8] = { 0x5E0000, 0x190000, 0x6C0000, 0x890000, 0x840000, 0x100000, 0xC0000, 0x800000 }; @@ -222,9 +221,9 @@ void BoardPlayerModelInit(void) { memset(&boardPlayerMdl, 0, 8); suitMdl = -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++) { - temp_r25 = GWPlayer[var_r31].field08_bit11; + temp_r25 = GWPlayer[var_r31].team_backup; GWPlayer[var_r31].team = temp_r25; GWPlayerCfg[var_r31].group = temp_r25; } @@ -234,8 +233,7 @@ void BoardPlayerModelInit(void) { postTurnHook[var_r31] = 0; motDoneF[var_r31] = 0; diceJumpObj[var_r31] = 0; - temp_r22 = &GWPlayer[var_r31]; - temp_r27 = temp_r22; + temp_r27 = BoardPlayerGet(var_r31); temp_r29 = GWPlayerCfg[var_r31].character; temp_r27->player_idx = var_r31; GWPlayer[var_r31].character = temp_r29; @@ -725,7 +723,7 @@ void BoardPlayerTurnRollExec(s32 arg0) { s32 temp_r30; GWPlayer[arg0].roll = 0; - GWPlayer[arg0].field08_bit7 = 1; + GWPlayer[arg0].num_dice = 1; BoardPauseDisableSet(0); do { temp_r30 = BoardRollExec(arg0); @@ -1686,7 +1684,7 @@ void BoardPlayerDiceJumpStart(s32 arg0) { temp_r31->field00_bit3 = 0; temp_r31->unk_08 = 0.0f; temp_r31->unk_0C = sp8.y; - GWPlayer[arg0].field08_bit3 = 1; + GWPlayer[arg0].jump = 1; } s32 BoardPlayerDiceJumpCheck(s32 arg0) { @@ -1710,7 +1708,7 @@ static void DiceJumpFunc(omObjData* arg0) { temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy2); 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); diceJumpObj[temp_r31->field00_bit1] = 0; omDelObjEx(HuPrcCurrentGet(), arg0); @@ -2256,7 +2254,7 @@ void UpdateBowserSuit(omObjData* arg0) { void BoardPlayerSparkSet(s32 arg0) { s16 currSpace = GWPlayer[arg0].space_curr; - GWPlayer[arg0].field02_bit1 = 1; + GWPlayer[arg0].spark = 1; GWPlayer[arg0].space_shock = currSpace; } @@ -2423,11 +2421,11 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) static void RemoveSparkSpace(s32 player) { - if(GWPlayer[player].field02_bit1) { + if(GWPlayer[player].spark) { BoardWinCreate(0, 0x12001C, -1); BoardWinWait(); BoardWinKill(); - GWPlayer[player].field02_bit1 = 0; + GWPlayer[player].spark = 0; GWPlayer[player].space_shock = 0; } } diff --git a/src/game/board/roll.c b/src/game/board/roll.c index 3fe6d90b..643c4925 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -154,7 +154,7 @@ s32 BoardRollExec(s32 arg0) { if (GWPlayer[rollPlayer].bowser_suit != 0) { diceSize = 3; } - GWPlayer[arg0].field08_bit7 = numDice; + GWPlayer[arg0].num_dice = numDice; rollProc = HuPrcChildCreate(RollMain, 0x2005, 0x6000, 0, boardMainProc); HuPrcDestructorSet2(rollProc, RollDestroy); while (rollProc != NULL) { @@ -262,7 +262,7 @@ static void RollMain(void) { HuPrcVSleep(); } DiceSetHit(i); - while (GWPlayer[rollPlayer].field08_bit3 != 0) { + while (GWPlayer[rollPlayer].jump != 0) { HuPrcVSleep(); } } diff --git a/src/game/gamework.c b/src/game/gamework.c index dedd6670..552ca588 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -105,11 +105,15 @@ static inline void ResetFlag(GameStat *game_stat) game_stat->field10E_bit4 = 0; game_stat->field10E_bit5 = 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; - game_stat->field10F_bit4 = game_stat->field110_bit4 = 1; - game_stat->field10F_bit6 = game_stat->field110_bit6 = 0; +} + +static inline void ResetPauseConfig(GameStat *game_stat) +{ + 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) @@ -130,6 +134,7 @@ void GWGameStatReset(void) ResetBoardRecord(game_stat); ResetPresent(game_stat); ResetFlag(game_stat); + ResetPauseConfig(game_stat); memcpy(&GWGameStat, &GWGameStatDefault, sizeof(GameStat)); ResetBoardSettings(); }