Merge pull request #341 from gamemasterplc/main

Clean up board/player.c
This commit is contained in:
Liam Coleman 2024-06-09 11:06:38 -05:00 committed by GitHub
commit 772041094d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 103 additions and 124 deletions

View file

@ -1100,8 +1100,8 @@ BoardTauntKill = .text:0x80061B4C; // type:function size:0x54
TauntUpdate = .text:0x80061BA0; // type:function size:0x3A4 scope:local
BoardDataDirReadAsync = .text:0x80061F44; // type:function size:0x38
BoardDataAsyncWait = .text:0x80061F7C; // type:function size:0x48
BoardRollTypeGet = .text:0x80061FC4; // type:function size:0xC
BoardRollTypeSet = .text:0x80061FD0; // type:function size:0xC
BoardItemPrevGet = .text:0x80061FC4; // type:function size:0xC
BoardItemPrevSet = .text:0x80061FD0; // type:function size:0xC
BoardPlayerGetCharMess = .text:0x80061FDC; // type:function size:0x78
BoardPlayerGetCharName = .text:0x80062054; // type:function size:0x78
BoardPlayerIsAllCom = .text:0x800620CC; // type:function size:0x80
@ -1183,13 +1183,13 @@ BoardPlayerDiceJumpCheck = .text:0x80067760; // type:function size:0x54
DiceJumpFunc = .text:0x800677B4; // type:function size:0x3E4 scope:local
BoardPlayerIdleSet = .text:0x80067B98; // type:function size:0xF8
BoardPlayerMotBlendSet = .text:0x80067C90; // type:function size:0x5A0
BoardPlayerMotBlendExec = .text:0x80068230; // type:function size:0x51C
ExecMotBlend = .text:0x80068230; // type:function size:0x51C scope:local
BoardPlayerMotBlendCheck = .text:0x8006874C; // type:function size:0x2C
BoardDiceDigit2DInit = .text:0x80068778; // type:function size:0x138
BoardDiceDigit2DUpdateEnable = .text:0x800688B0; // type:function size:0x38
BoardRollCreate = .text:0x80068778; // type:function size:0x138
BoardRollUpdateSet = .text:0x800688B0; // type:function size:0x38
BoardDiceDigit2DShowSet = .text:0x800688E8; // type:function size:0x10C
UpdateDiceDigitSprite = .text:0x800689F4; // type:function size:0x194 scope:local
UpdateDiceDigit2D = .text:0x80068B88; // type:function size:0x278 scope:local
UpdateRollSprite = .text:0x800689F4; // type:function size:0x194 scope:local
UpdateRoll = .text:0x80068B88; // type:function size:0x278 scope:local
BoardPlayerBtnDownWait = .text:0x80068E00; // type:function size:0x6C
BoardPlayerAutoSizeSet = .text:0x80068E6C; // type:function size:0x9C
BoardPlayerAutoSizeGet = .text:0x80068F08; // type:function size:0x40
@ -1211,8 +1211,8 @@ UpdateBowserSuit = .text:0x80069784; // type:function size:0x1F0 scope:local
BoardPlayerSparkSet = .text:0x80069974; // type:function size:0x5C
DoSparkSpace = .text:0x800699D0; // type:function size:0x1294 scope:local
RemoveSparkSpace = .text:0x8006AC64; // type:function size:0xA0 scope:local
SetRollPlayerSize = .text:0x8006AD04; // type:function size:0x24C scope:local
BoardRollResizeCheck = .text:0x8006AF50; // type:function size:0x8
SetPlayerSizeAuto = .text:0x8006AD04; // type:function size:0x24C scope:local
BoardMegaDoubleDiceCheck = .text:0x8006AF50; // type:function size:0x8
BoardPlayerResizeAnimExec = .text:0x8006AF58; // type:function size:0x38C
MegaSquishFunc = .text:0x8006B2E4; // type:function size:0x950 scope:local
MegaPlayerPassFunc = .text:0x8006BC34; // type:function size:0x980 scope:local
@ -4163,7 +4163,7 @@ lbl_801398F0 = .data:0x801398F0; // type:object size:0xE data:string
lbl_801398FE = .data:0x801398FE; // type:object size:0xE data:string
lbl_8013990C = .data:0x8013990C; // type:object size:0x18 data:string
lbl_80139924 = .data:0x80139924; // type:object size:0x18 data:string
lbl_8013993C = .data:0x8013993C; // type:object size:0x40
eyeMatTbl = .data:0x8013993C; // type:object size:0x40 scope:local
lbl_8013997C = .data:0x8013997C; // type:object size:0x20
boardMotTbl = .data:0x8013999C; // type:object size:0x20 scope:local
boardMotRevTbl = .data:0x801399BC; // type:object size:0x20 scope:local
@ -5343,15 +5343,15 @@ confettiObj = .sbss:0x801D3F0C; // type:object size:0x4 scope:local data:4byte
last5GfxObj = .sbss:0x801D3F10; // type:object size:0x4 scope:local data:4byte
boardRandSeed = .sbss:0x801D3F14; // type:object size:0x4 data:4byte
boardMainObj = .sbss:0x801D3F18; // type:object size:0x4 data:4byte
rollResized = .sbss:0x801D3F20; // type:object size:0x4 scope:local data:4byte
megaDoubleDiceF = .sbss:0x801D3F20; // type:object size:0x4 scope:local data:4byte
bowserSuitObj = .sbss:0x801D3F24; // type:object size:0x4 scope:local data:4byte
junctionMask = .sbss:0x801D3F28; // type:object size:0x4 scope:local data:4byte
junctionObj = .sbss:0x801D3F2C; // type:object size:0x4 scope:local data:4byte
diceDigit2DObj = .sbss:0x801D3F30; // type:object size:0x4 scope:local data:4byte
rollObj = .sbss:0x801D3F30; // type:object size:0x4 scope:local data:4byte
moveAwayObj = .sbss:0x801D3F34; // type:object size:0x4 scope:local data:4byte
junctionArrowRot = .sbss:0x801D3F38; // type:object size:0x8 scope:local
moveAwayPlayer = .sbss:0x801D3F40; // type:object size:0x4 scope:local data:byte
rollType = .sbss:0x801D3F44; // type:object size:0x1 scope:local data:byte
itemPrev = .sbss:0x801D3F44; // type:object size:0x1 scope:local data:byte
playerMot = .sbss:0x801D3F46; // type:object size:0x8 scope:local
boardPlayerMdl = .sbss:0x801D3F4E; // type:object size:0x8
modelDataList = .sbss:0x801D3F58; // type:object size:0x4 scope:local data:4byte

View file

@ -20,35 +20,19 @@ static inline s32 BoardPlayerHandicapGet(s32 player)
return GWPlayer[player].handicap;
}
static inline s32 BoardPlayerGetCurrIdx()
{
return GWSystem.player_curr;
}
static inline PlayerState *BoardPlayerGet(s32 player)
{
return &GWPlayer[player];
}
static inline PlayerState *BoardPlayerGetCurr()
{
return &GWPlayer[BoardPlayerGetCurrIdx()];
}
static inline s16 BoardPlayerModelGet(s32 player)
{
PlayerState *player_ptr = BoardPlayerGet(player);
return boardPlayerMdl[player_ptr->player_idx];
}
static inline s16 BoardPlayerModelGetCurr()
{
PlayerState *player = BoardPlayerGetCurr();
return boardPlayerMdl[player->player_idx];
}
s32 BoardRollTypeGet(void);
void BoardRollTypeSet(s32 type);
s32 BoardItemPrevGet(void);
void BoardItemPrevSet(s32 type);
s32 BoardPlayerGetCharMess(s32 player);
char* BoardPlayerGetCharName(s32 player);
s32 BoardPlayerIsAllCom(void);
@ -131,14 +115,14 @@ void BoardPlayerMoveAwayStartCurr(s32, s32);
void BoardPlayerCopyMat(s32);
void BoardBowserSuitMotionSetJump(void);
//...
void BoardPlayerMotBlendExec(omObjData*);
s32 BoardPlayerAutoSizeGet(s32);
void BoardPlayerAutoSizeSet(s32, s32);
void BoardPlayerCopyMat(s32);
void BoardBowserSuitInit(s32);
void BoardBowserSuitKill(s32);
void BoardDiceDigit2DInit(s32, s32);
void BoardDiceDigit2DUpdateEnable(s32);
void BoardRollCreate(s32, s32);
void BoardRollUpdateSet(s32);
s32 BoardMegaDoubleDiceCheck(void);
void BoardPlayerResizeAnimExec(s32 player, s32 size);
s32 BoardPlayerAnimBlendCheck(s32);
s16 BoardBowserSuitPlayerModelGet(void);

View file

@ -1717,7 +1717,7 @@ static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) {
if (GWPlayer[GWSystem.player_curr].bowser_suit) {
BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardBowserSuitModelGet());
} else {
BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardPlayerModelGetCurr());
BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardPlayerModelGet(GWSystem.player_curr));
}
var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]];
if (arg0->unk00_field3 != 0) {

View file

@ -172,7 +172,7 @@ void fn_1_91D8(void) {
}
void fn_1_9294(s32 arg0, s32 arg1) {
BoardDiceDigit2DInit(arg0, 0);
BoardRollCreate(arg0, 0);
fn_1_92D8(arg0, arg1);
}
@ -564,7 +564,7 @@ static void fn_1_A408(s32 arg0) {
}
HuAudFXAllStop();
BoardAudSeqFadeOutAll();
lbl_1_bss_0->unk06 = BoardRollTypeGet() + 1;
lbl_1_bss_0->unk06 = BoardItemPrevGet() + 1;
if (BoardRandMod(100) < 50) {
var_r29 = OVL_M457;
GWMGAvailSet(0x1C9);
@ -575,7 +575,7 @@ static void fn_1_A408(s32 arg0) {
GWSystem.mg_next = 0x39;
}
_SetFlag(FLAG_ID_MAKE(1, 6));
BoardDiceDigit2DUpdateEnable(arg0);
BoardRollUpdateSet(arg0);
if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
GWPlayer->coin_win = 0;
}
@ -620,7 +620,7 @@ static void fn_1_A408(s32 arg0) {
_ClearFlag(FLAG_ID_MAKE(1, 6));
BoardCameraViewSet(1);
BoardCameraMotionWait();
BoardDiceDigit2DInit(arg0, 0);
BoardRollCreate(arg0, 0);
} else {
BoardNextOvlSet(var_r29);
}
@ -651,7 +651,7 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) {
}
BoardStatusItemSet(1);
BoardMusStart(1, 6, 0x7F, 0);
BoardRollTypeSet(lbl_1_bss_0->unk06 - 1);
BoardItemPrevSet(lbl_1_bss_0->unk06 - 1);
lbl_1_bss_0->unk06 = 0;
BoardSpacePosGet(0, arg1, &sp3C);
BoardPlayerPosSetV(arg0, &sp3C);

View file

@ -794,7 +794,7 @@ void BoardCameraViewSet(s32 type)
} else {
size = 1.0f;
}
BoardCameraTargetModelSet(BoardPlayerModelGetCurr());
BoardCameraTargetModelSet(BoardPlayerModelGet(GWSystem.player_curr));
BoardPlayerPosGet(GWSystem.player_curr, &focus->target_end);
BoardCameraOffsetSet(0.0f, 100.0f*size, 0.0f);
focus->target_end.y += 100.0f*size;

View file

@ -30,8 +30,8 @@ static s32 ExecJunction(s32, s16*);
static void PlayerPosLerpFunc(omObjData*);
static void DiceJumpFunc(omObjData*);
static void UpdateDiceDigitSprite(omObjData*);
static void UpdateDiceDigit2D(omObjData*);
static void UpdateRollSprite(omObjData*);
static void UpdateRoll(omObjData*);
static void MoveAwayObjFunc(omObjData*);
static void MoveAwayObjFunc(omObjData*);
@ -42,7 +42,7 @@ static void MegaSquishFunc(omObjData *object);
static s32 DoSparkSpace(s32 player, s32 pause_cam);
static void RemoveSparkSpace(s32 player);
static void SetRollPlayerSize(s32 player);
static void SetPlayerSizeAuto(s32 player);
static s32 MegaPlayerPassFunc(s32 player, s32 space);
static s32 MegaExecJump(s32 player, s32 space);
@ -67,15 +67,15 @@ static s32 (*preTurnHook[4])();
s16 boardPlayerMdl[4];
static s16 playerMot[4];
static s8 rollType;
static s8 itemPrev;
static s8 moveAwayPlayer[4];
static s16 junctionArrowRot[4];
static omObjData* moveAwayObj;
static omObjData* diceDigit2DObj;
static omObjData* rollObj;
static omObjData* junctionObj;
static s32 junctionMask;
static omObjData* bowserSuitObj;
static s32 rollResized;
static s32 megaDoubleDiceF;
static s16 suitMdl = -1;
static s16 suitPlayerMdl = -1;
@ -84,7 +84,7 @@ static s16 suitCurrMot = -1;
static omObjData* diceJumpObj[4] = {0, 0, 0, 0};
static omObjData* motDoneF[4] = {0, 0, 0, 0};
static s16 bowserSuitMot[5] = {-1, -1, -1, -1, -1};
char* lbl_8013993C[8][2] = {
static char* eyeMatTbl[8][2] = {
{ "eye1", "eye2" },
{ "eye1", "eye2" },
{ "mat14", "mat16" },
@ -141,21 +141,19 @@ static s32 boardSparkSfxTblAlt[] = {
0x223, 0x263, 0x2A3, 0x2E3,
};
static omObjData *megaSquishObj[] = {
0, 0, 0, 0,
};
static omObjData *megaSquishObj[4] = {};
static s32 megaSquishSfxTbl[] = {
0x128, 0x168, 0x1A8, 0x1E8,
0x228, 0x268, 0x2A8, 0x2E8,
};
s32 BoardRollTypeGet(void) {
return rollType;
s32 BoardItemPrevGet(void) {
return itemPrev;
}
void BoardRollTypeSet(s32 type) {
rollType = type;
void BoardItemPrevSet(s32 type) {
itemPrev = type;
}
s32 BoardPlayerGetCharMess(s32 player) {
@ -696,10 +694,10 @@ void BoardPlayerTurnExec(s32 arg0) {
if (_CheckFlag(0x10006U) == 0) {
BoardCameraViewSet(2);
omVibrate((s16) arg0, 0xC, 4, 2);
rollType = -1;
BoardItemPrevSet(-1);
BoardYourTurnExec(arg0);
rollResized = 0;
SetRollPlayerSize(arg0);
megaDoubleDiceF = 0;
SetPlayerSizeAuto(arg0);
if (preTurnHook[arg0] != 0U) {
if (preTurnHook[arg0]() != 0) {
preTurnHook[arg0] = 0;
@ -716,10 +714,6 @@ void BoardPlayerTurnExec(s32 arg0) {
BoardPlayerTurnMoveExec(arg0);
}
static inline s32 PlayerItemUseExec(s32 arg0) {
return BoardItemUseExec(arg0);
}
void BoardPlayerTurnRollExec(s32 arg0) {
s32 temp_r28;
s32 temp_r30;
@ -735,8 +729,8 @@ void BoardPlayerTurnRollExec(s32 arg0) {
BoardRollKill();
BoardCameraTargetPlayerSet(arg0);
BoardCameraMotionWait();
rollType = PlayerItemUseExec(arg0);
if (BoardRollTypeGet() == 0xC) {
BoardItemPrevSet(BoardItemUseExec(arg0));
if (BoardItemPrevGet() == 0xC) {
_SetFlag(0x10016);
BoardSpaceLandExec(arg0, GWPlayer[arg0].space_curr);
BoardCameraMoveSet(1);
@ -830,7 +824,7 @@ block_14:
if (--GWPlayer[arg0].roll == 0) break;
} while (1);
BoardPauseDisableSet(1);
BoardDiceDigit2DUpdateEnable(arg0);
BoardRollUpdateSet(arg0);
BoardPlayerIdleSet(arg0);
if (GWPlayer[arg0].bowser_suit != 0) {
BoardCameraTargetPlayerSet(arg0);
@ -838,15 +832,15 @@ block_14:
if (_CheckFlag(0x1000BU) != 0) {
BoardTutorialHookExec(7, 0);
}
if (BoardRollTypeGet() != -1) {
BoardItemPlayerRestore(arg0, BoardRollTypeGet());
if (BoardItemPrevGet() != -1) {
BoardItemPlayerRestore(arg0, BoardItemPrevGet());
while (BoardItemDoneCheck() == 0) {
HuPrcVSleep();
}
rollType = -1;
BoardItemPrevSet(-1);
}
BoardPlayerSizeRestore(arg0);
rollResized = 0;
megaDoubleDiceF = 0;
if (_CheckFlag(0x1000BU) != 0) {
BoardTutorialHookExec(8, 0);
}
@ -1762,6 +1756,8 @@ void BoardPlayerIdleSet(s32 arg0)
BoardPlayerMotionShiftSet(arg0, 1, 0.0f, 8.0f, 0x40000001);
}
static void ExecMotBlend(omObjData *arg0);
void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) {
s16 sp1C;
f32 temp_f25;
@ -1792,7 +1788,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) {
}
if (arg2 > 0) {
var_r18 = GWPlayer[arg0].character;
temp_r3 = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, &BoardPlayerMotBlendExec);
temp_r3 = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, ExecMotBlend);
temp_r26 = OM_GET_WORK_PTR(temp_r3, bitcopy2);
temp_r26->field00_bit0 = 0;
temp_r26->unk_02 = arg2;
@ -1843,7 +1839,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) {
}
}
void BoardPlayerMotBlendExec(omObjData* arg0) {
static void ExecMotBlend(omObjData* arg0) {
f32 sp48;
f32 var_f27;
bitcopy2* temp_r30;
@ -1900,13 +1896,13 @@ typedef struct bitcopy3 {
s16 unk_06[5];
} bitcopy3;
void BoardDiceDigit2DInit(s32 arg0, s32 arg1) {
void BoardRollCreate(s32 arg0, s32 arg1) {
omObjData* temp_r3;
s32 var_r30;
bitcopy3* temp_r31;
temp_r3 = omAddObjEx(boardObjMan, 0x105, 0, 0, -1, &UpdateDiceDigit2D);
temp_r31 = OM_GET_WORK_PTR(temp_r3, bitcopy3);;
temp_r3 = omAddObjEx(boardObjMan, 0x105, 0, 0, -1, &UpdateRoll);
temp_r31 = OM_GET_WORK_PTR(temp_r3, bitcopy3);
temp_r31->field00_bit0 = 0;
temp_r31->field00_bit1 = 1;
temp_r31->unk_01 = 0;
@ -1924,14 +1920,14 @@ void BoardDiceDigit2DInit(s32 arg0, s32 arg1) {
HuSprPosSet(temp_r31->unk_04, var_r30, 288.0f, 240.0f);
HuSprAttrSet(temp_r31->unk_04, var_r30, 4);
}
diceDigit2DObj = temp_r3;
rollObj = temp_r3;
}
void BoardDiceDigit2DUpdateEnable(s32 arg0) {
void BoardRollUpdateSet(s32 arg0) {
bitcopy3* temp_r31;
if (diceDigit2DObj != 0) {
temp_r31 = OM_GET_WORK_PTR(diceDigit2DObj, bitcopy3);
if (rollObj != 0) {
temp_r31 = OM_GET_WORK_PTR(rollObj, bitcopy3);
temp_r31->field00_bit0 = 1;
}
}
@ -1940,8 +1936,8 @@ void BoardDiceDigit2DShowSet(s32 arg0) {
s32 var_r30;
bitcopy3* temp_r31;
if (diceDigit2DObj != 0) {
temp_r31 = OM_GET_WORK_PTR(diceDigit2DObj, bitcopy3);
if (rollObj != 0) {
temp_r31 = OM_GET_WORK_PTR(rollObj, bitcopy3);
for (var_r30 = 0; var_r30 < 2; var_r30++) {
if (arg0 != 0) {
@ -1956,11 +1952,11 @@ void BoardDiceDigit2DShowSet(s32 arg0) {
HuSprAttrSet(temp_r31->unk_04, var_r30, 4);
}
}
UpdateDiceDigitSprite(diceDigit2DObj);
UpdateRollSprite(rollObj);
}
}
static void UpdateDiceDigitSprite(omObjData* arg0) {
static void UpdateRollSprite(omObjData* arg0) {
Vec sp1C;
s32 sp14[2];
f32 spC[2] = { 320.0f, 256.0f };
@ -1994,17 +1990,17 @@ static void UpdateDiceDigitSprite(omObjData* arg0) {
}
}
static void UpdateDiceDigit2D(omObjData* arg0) {
static void UpdateRoll(omObjData* arg0) {
f32 var_f30;
bitcopy3* temp_r30;
temp_r30 = OM_GET_WORK_PTR(diceDigit2DObj, bitcopy3);
temp_r30 = OM_GET_WORK_PTR(rollObj, bitcopy3);
if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) {
if (temp_r30->unk_04 != -1) {
HuSprGrpKill(temp_r30->unk_04);
temp_r30->unk_04 = -1;
}
diceDigit2DObj = NULL;
rollObj = NULL;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
}
@ -2020,7 +2016,7 @@ static void UpdateDiceDigit2D(omObjData* arg0) {
var_f30 -= 90.0f;
}
}
UpdateDiceDigitSprite(arg0);
UpdateRollSprite(arg0);
}
void BoardPlayerBtnDownWait(s32 arg0, u32 arg1) {
@ -2231,7 +2227,7 @@ void BoardBowserSuitPlayerModelKill(void) {
}
}
void UpdateBowserSuit(omObjData* arg0) {
static void UpdateBowserSuit(omObjData* arg0) {
s16 temp_r30;
bitcopy3* temp_r31;
@ -2350,7 +2346,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam)
BoardModelAlphaSet(sp2E, sp2C);
HuPrcVSleep();
}
temp_r17 = BoardRollTypeGet();
temp_r17 = BoardItemPrevGet();
if(temp_r17 == 0 || temp_r17 == 1 || temp_r17 == 2 || temp_r17 == 3 || temp_r17 == 10) {
BoardCameraTargetPlayerSet(player);
BoardPlayerIdleSet(player);
@ -2359,11 +2355,11 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam)
while(!BoardItemDoneCheck()) {
HuPrcVSleep();
}
rollType = -1;
BoardItemPrevSet(-1);
}
if(rollResized) {
if(megaDoubleDiceF) {
BoardPlayerSizeRestore(player);
rollResized = 0;
megaDoubleDiceF = 0;
}
if(sp128 != -1) {
HuAudFXPlay(boardSparkSfxTbl[GWPlayer[sp128].character]);
@ -2432,7 +2428,7 @@ static void RemoveSparkSpace(s32 player)
}
}
static void SetRollPlayerSize(s32 player)
static void SetPlayerSizeAuto(s32 player)
{
s32 auto_size = BoardPlayerAutoSizeGet(player);
if(auto_size != 0) {
@ -2450,14 +2446,13 @@ static void SetRollPlayerSize(s32 player)
BoardPlayerResizeAnimExec(player, auto_size);
BoardPlayerSizeSet(player, auto_size);
HuPrcSleep(30);
rollResized = 1;
megaDoubleDiceF = 1;
}
}
s32 BoardRollResizeCheck(void)
s32 BoardMegaDoubleDiceCheck(void)
{
return rollResized;
return megaDoubleDiceF;
}
void BoardPlayerResizeAnimExec(s32 player, s32 size)
@ -2850,7 +2845,7 @@ void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) {
material = hsfData->material;
var_r29 = playerMatCopy[arg0];
if (arg1 != 0) {
temp_r28 = &lbl_8013993C[GWPlayer[arg0].character][0];
temp_r28 = &eyeMatTbl[GWPlayer[arg0].character][0];
for (var_r25 = 0; var_r25 < hsfData->materialCnt; var_r25++, material++, var_r29++) {
var_r24 = 1;

View file

@ -41,7 +41,6 @@ typedef struct {
float unk08;
} DiceDigitWork;
s32 BoardRollResizeCheck(void);
static void RollMain(void);
static void DiceCreate(s32 arg0);
@ -129,7 +128,7 @@ s32 BoardRollExec(s32 arg0) {
numDice = 1;
diceSize = 0;
maxRoll = 0xA;
switch (BoardRollTypeGet()) {
switch (BoardItemPrevGet()) {
case 0:
numDice = 1;
break;
@ -149,7 +148,7 @@ s32 BoardRollExec(s32 arg0) {
} else if (BoardPlayerSizeGet(arg0) == 2) {
diceSize = 2;
maxRoll = 10;
if (BoardRollResizeCheck() != 0) {
if (BoardMegaDoubleDiceCheck() != 0) {
numDice = 2;
}
}
@ -226,7 +225,7 @@ static void RollMain(void) {
temp_r25 = BoardPlayerSameTeamFind(temp_r26);
var_r27 += BoardPlayerItemCount(temp_r25);
}
if (BoardRollTypeGet() != -1 || var_r27 == 0 || _CheckFlag(0x10009) || BoardRollResizeCheck()) {
if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(0x10009) || BoardMegaDoubleDiceCheck()) {
var_r29 = 0x90004;
} else {
var_r29 = 0x90002;
@ -296,7 +295,7 @@ static void RollMain(void) {
}
destMode = var_r30;
GWPlayer[rollPlayer].roll = var_r30;
BoardDiceDigit2DInit(rollPlayer, 1);
BoardRollCreate(rollPlayer, 1);
if (_CheckFlag(0x1000B)) {
BoardTutorialHookExec(6, 0);
}
@ -389,7 +388,7 @@ static void DoInput(s32 arg0) {
var_r30 = BoardPlayerSameTeamFind(rollPlayer);
var_r31 += BoardPlayerItemCount(var_r30);
}
if (var_r31 == 0 || BoardRollTypeGet() != -1 || BoardRollResizeCheck() || _CheckFlag(0x10009)) {
if (var_r31 == 0 || BoardItemPrevGet() != -1 || BoardMegaDoubleDiceCheck() || _CheckFlag(0x10009)) {
if (_CheckFlag(0x10009) && GWBoardGet() == 5 && *sp8 == 0x200 && var_r31 != 0) {
HuAudFXPlay(4);
}
@ -910,7 +909,7 @@ static s32 GetBtnRoll(s32 arg0) {
var_r31 = HuPadBtnDown[var_r29];
return var_r31;
}
if (_CheckFlag(0x10009) || BoardRollTypeGet() != -1) {
if (_CheckFlag(0x10009) || BoardItemPrevGet() != -1) {
return 0x100;
}
var_r31 = GetComBtnRoll(arg0);
@ -918,7 +917,7 @@ static s32 GetBtnRoll(s32 arg0) {
}
static s32 GetComBtnRoll(s32 arg0) {
if (BoardRollTypeGet() != -1 || BoardPlayerItemCount(arg0) == 0 || BoardRollResizeCheck() || _CheckFlag(0x10009)) {
if (BoardItemPrevGet() != -1 || BoardPlayerItemCount(arg0) == 0 || BoardMegaDoubleDiceCheck() || _CheckFlag(0x10009)) {
return 0x100;
}
if (BoardComUseItemCheck(arg0)) {

View file

@ -671,7 +671,7 @@ void BoardStarShowNext(s32 arg0) {
HuPrcSleep(18);
}
BoardStatusItemSet(0);
if (GWBoardGet() == 5 && BoardRollTypeGet() != 9 && boardStarGiveHook) {
if (GWBoardGet() == 5 && BoardItemPrevGet() != 9 && boardStarGiveHook) {
boardStarGiveHook();
}
BoardSpaceStarMove();
@ -753,7 +753,7 @@ void BoardStarShowNext(s32 arg0) {
BoardWinCreate(3, var_r30, -1);
BoardWinWait();
BoardWinKill();
if (GWBoardGet() == 5 && BoardRollTypeGet() != 9 && boardStarShowNextHook) {
if (GWBoardGet() == 5 && BoardItemPrevGet() != 9 && boardStarShowNextHook) {
boardStarShowNextHook();
}
BoardAudSeqFadeOut(1, 1000);

View file

@ -1096,7 +1096,7 @@ static void ItemUseProc(void) {
BoardDataAsyncWait(var_r24);
}
HideItemWindow();
BoardRollTypeSet(itemUsed);
BoardItemPrevSet(itemUsed);
if (itemUsed != -1) {
switch (itemUsed) {
case 13:

View file

@ -2,6 +2,7 @@
#include "game/hsfanim.h"
#include "game/hsfformat.h"
#include "game/hsfload.h"
#include "game/sprite.h"
#include "ext_math.h"
#include "string.h"

View file

@ -903,8 +903,8 @@ void BoardPlayerIdleSet(void);
void BoardPlayerMotBlendSet(void);
void BoardPlayerMotBlendCheck(void);
void BoardPlayerRankCalc(void);
void BoardRollTypeGet(void);
void BoardRollTypeSet(void);
void BoardItemPrevGet(void);
void BoardItemPrevSet(void);
void BoardPlayerItemRemove(void);
void BoardPlayerItemFind(void);
void BoardPlayerItemAdd(void);
@ -918,8 +918,8 @@ void BoardPlayerPosLerpStart(void);
void BoardPlayerMoveToAsync(void);
void BoardPlayerDiceJumpStart(void);
void BoardPlayerDiceJumpCheck(void);
void BoardDiceDigit2DInit(void);
void BoardDiceDigit2DUpdateEnable(void);
void BoardRollCreate(void);
void BoardRollUpdateSet(void);
void BoardDiceDigit2DShowSet(void);
void BoardPlayerBtnDownWait(void);
void BoardPlayerAutoSizeSet(void);
@ -1920,8 +1920,8 @@ extern void _kerjmp_BoardPlayerIdleSet(void);
extern void _kerjmp_BoardPlayerMotBlendSet(void);
extern void _kerjmp_BoardPlayerMotBlendCheck(void);
extern void _kerjmp_BoardPlayerRankCalc(void);
extern void _kerjmp_BoardRollTypeGet(void);
extern void _kerjmp_BoardRollTypeSet(void);
extern void _kerjmp_BoardItemPrevGet(void);
extern void _kerjmp_BoardItemPrevSet(void);
extern void _kerjmp_BoardPlayerItemRemove(void);
extern void _kerjmp_BoardPlayerItemFind(void);
extern void _kerjmp_BoardPlayerItemAdd(void);
@ -1935,8 +1935,8 @@ extern void _kerjmp_BoardPlayerPosLerpStart(void);
extern void _kerjmp_BoardPlayerMoveToAsync(void);
extern void _kerjmp_BoardPlayerDiceJumpStart(void);
extern void _kerjmp_BoardPlayerDiceJumpCheck(void);
extern void _kerjmp_BoardDiceDigit2DInit(void);
extern void _kerjmp_BoardDiceDigit2DUpdateEnable(void);
extern void _kerjmp_BoardRollCreate(void);
extern void _kerjmp_BoardRollUpdateSet(void);
extern void _kerjmp_BoardDiceDigit2DShowSet(void);
extern void _kerjmp_BoardPlayerBtnDownWait(void);
extern void _kerjmp_BoardPlayerAutoSizeSet(void);
@ -3845,10 +3845,10 @@ asm void _kerent(void) {
b BoardPlayerMotBlendCheck
entry _kerjmp_BoardPlayerRankCalc
b BoardPlayerRankCalc
entry _kerjmp_BoardRollTypeGet
b BoardRollTypeGet
entry _kerjmp_BoardRollTypeSet
b BoardRollTypeSet
entry _kerjmp_BoardItemPrevGet
b BoardItemPrevGet
entry _kerjmp_BoardItemPrevSet
b BoardItemPrevSet
entry _kerjmp_BoardPlayerItemRemove
b BoardPlayerItemRemove
entry _kerjmp_BoardPlayerItemFind
@ -3875,10 +3875,10 @@ asm void _kerent(void) {
b BoardPlayerDiceJumpStart
entry _kerjmp_BoardPlayerDiceJumpCheck
b BoardPlayerDiceJumpCheck
entry _kerjmp_BoardDiceDigit2DInit
b BoardDiceDigit2DInit
entry _kerjmp_BoardDiceDigit2DUpdateEnable
b BoardDiceDigit2DUpdateEnable
entry _kerjmp_BoardRollCreate
b BoardRollCreate
entry _kerjmp_BoardRollUpdateSet
b BoardRollUpdateSet
entry _kerjmp_BoardDiceDigit2DShowSet
b BoardDiceDigit2DShowSet
entry _kerjmp_BoardPlayerBtnDownWait