player checkFlg inline fix, player_pushpull cleanup

This commit is contained in:
LagoLunatic
2025-04-16 16:50:11 -04:00
parent be81e109e9
commit 38a6e76657
6 changed files with 56 additions and 49 deletions
+3 -3
View File
@@ -424,7 +424,7 @@ public:
void onNoResetFlg0(daPy_FLG0 flag) { mNoResetFlg0 |= flag; }
void offNoResetFlg0(daPy_FLG0 flag) { mNoResetFlg0 &= ~flag; }
bool checkNoResetFlg0(daPy_FLG0 flag) const { return mNoResetFlg0 & flag; }
u32 checkNoResetFlg0(daPy_FLG0 flag) const { return mNoResetFlg0 & flag; }
bool getCutAtFlg() const { return checkNoResetFlg0(daPyFlg0_CUT_AT_FLG); }
void onPushPullKeep() { onNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP); }
void offPushPullKeep() { offNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP); }
@@ -442,7 +442,7 @@ public:
void onNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 |= flag; }
void offNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 &= ~flag; }
bool checkNoResetFlg1(daPy_FLG1 flag) const { return mNoResetFlg1 & flag; }
u32 checkNoResetFlg1(daPy_FLG1 flag) const { return mNoResetFlg1 & flag; }
bool checkEquipDragonShield() const { return checkNoResetFlg1(daPyFlg1_EQUIP_DRAGON_SHIELD); }
void onNpcCallCommand() { onNoResetFlg1(daPyFlg1_NPC_CALL_COMMAND); }
void onNpcCall() { onNoResetFlg1(daPyFlg1_NPC_CALL_COMMAND); }
@@ -467,7 +467,7 @@ public:
void onResetFlg0(daPy_RFLG0 flag) { mResetFlg0 |= flag; }
void offResetFlg0(daPy_RFLG0 flag) { mResetFlg0 &= ~flag; }
bool checkResetFlg0(daPy_RFLG0 flag) const { return mResetFlg0 & flag; }
u32 checkResetFlg0(daPy_RFLG0 flag) const { return mResetFlg0 & flag; }
bool getRopeGrabRightHand() const { return checkResetFlg0(daPyRFlg0_ROPE_GRAB_RIGHT_HAND); }
bool getGrabUpEnd() const { return checkResetFlg0(daPyRFlg0_GRAB_UP_END); }
bool getAutoJumpLand() const { return checkResetFlg0(daPyRFlg0_AUTO_JUMP_LAND); }
+1 -1
View File
@@ -1634,7 +1634,7 @@ public:
BOOL procHammerFrontSwing();
BOOL procHammerFrontSwingEnd_init();
BOOL procHammerFrontSwingEnd();
int setPushPullKeepData(dBgW::PushPullLabel);
BOOL setPushPullKeepData(dBgW::PushPullLabel);
BOOL procPushPullWait_init(int);
BOOL procPushPullWait();
BOOL procPushMove_init();
+1 -1
View File
@@ -807,7 +807,7 @@ BOOL daPy_lk_c::dProcDead_init() {
}
int iVar4 = checkShipRideUseItem(0);
u32 uVar2 = checkModeFlg(ModeFlg_SWIM);
u32 uVar3 = mNoResetFlg0 & daPyFlg0_UNK100;
u32 uVar3 = checkNoResetFlg0(daPyFlg0_UNK100);
if (uVar2 != 0) {
swimOutAfter(FALSE);
}
+23 -16
View File
@@ -1273,7 +1273,7 @@ BOOL daPy_lk_c::draw() {
}
link_root_joint->entryIn();
if (checkMaskDraw()) {
entryDLSetLight(mpYamuModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpYamuModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
j3dSys.setModel(mpCLModel);
j3dSys.setTexture(mpCLModelData->getTexture());
@@ -1317,23 +1317,23 @@ BOOL daPy_lk_c::draw() {
mpCLModelData->getJointNodePointer(0x14)->getMesh()->getShape()->show(); // cl_hana joint
mpCLModelData->getJointNodePointer(0x29)->getMesh()->getShape()->show(); // cl_back joint
if (!r24) {
entryDLSetLight(mpHandsModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpHandsModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
if (checkNoResetFlg1(daPyFlg1_CASUAL_CLOTHES) && !checkCaughtShapeHide() && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
entryDLSetLight(mpKatsuraModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpKatsuraModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
if (checkFreezeState() && checkMaskDraw()) {
entryDLSetLight(mpYamuModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpYamuModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
if (dComIfGs_getSelectEquip(2) == dItem_POWER_BRACELETS_e) {
entryDLSetLight(mpPringModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpPringModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
if (checkMasterSwordEquip() && !checkCaughtShapeHide() && !checkDemoShieldNoDraw()) {
updateDLSetLight(mpPodmsModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
updateDLSetLight(mpPodmsModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
}
if (checkEquipHeavyBoots()) {
entryDLSetLight(mpHbootsModels[0], mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpHbootsModels[1], mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpHbootsModels[0], checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
entryDLSetLight(mpHbootsModels[1], checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
tevStr.mFogColor.r = origFogR;
@@ -1361,11 +1361,11 @@ BOOL daPy_lk_c::draw() {
}
if (!r24 && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
if (checkSwordEquip() && !checkDemoSwordNoDraw(TRUE)) {
entryDLSetLight(mpEquippedSwordModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpEquippedSwordModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
}
if (dComIfGs_getSelectEquip(1) != dItem_NONE_e && !checkCaughtShapeHide() && !checkDemoShieldNoDraw()) {
entryDLSetLight(mpEquippedShieldModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpEquippedShieldModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
dComIfGd_setList();
drawMirrorLightModel();
@@ -1382,7 +1382,7 @@ BOOL daPy_lk_c::draw() {
mpEquipItemModel->setAnmMtx(4, hookshot->getMtxTop());
}
}
entryDLSetLight(mpEquipItemModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpEquipItemModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
if (mpSwordModel1 != NULL) {
if (checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000) || checkFinalMasterSwordEquip()) {
updateDLSetLight(mpSwordModel1, 0);
@@ -2843,9 +2843,9 @@ void daPy_lk_c::cancelNoDamageMode() {
BOOL daPy_lk_c::commonProcInit(daPy_PROC proc) {
ProcInitTableEntry& procInit = mProcInitTable[proc];
s32 temp_r29;
BOOL temp_r29;
BOOL resetDemoAnime = FALSE;
s32 temp_r28;
BOOL temp_r28;
if (mCurProc == daPyProc_SLIP_e) {
mDoAud_seStop(JA_SE_LK_RUN_SLIP, 0);
@@ -2892,14 +2892,22 @@ BOOL daPy_lk_c::commonProcInit(daPy_PROC proc) {
returnKeepItemData();
temp_r28 = checkModeFlg(ModeFlg_SWIM) >> 0x12; // TODO fakematch? fixes regalloc
if (checkModeFlg(ModeFlg_SWIM)) {
temp_r28 = TRUE;
} else {
temp_r28 = FALSE;
}
// TODO: is this an inline?
if (checkModeFlg(ModeFlg_HANG | ModeFlg_ROPE | ModeFlg_SWIM | ModeFlg_CAUGHT)) {
m34C2 = 0xA;
}
temp_r29 = (checkModeFlg(ModeFlg_MIDAIR) >> 1) ^ 1; // TODO fakematch? fixes regalloc
if (checkModeFlg(ModeFlg_MIDAIR)) {
temp_r29 = FALSE;
} else {
temp_r29 = TRUE;
}
mCurProc = proc;
mCurProcFunc = procInit.mProcFunc;
@@ -5018,7 +5026,6 @@ void daPy_lk_c::setWaterY() {
/* 8011AC78-8011AD9C .text autoGroundHit__9daPy_lk_cFv */
void daPy_lk_c::autoGroundHit() {
/* Nonmatching - srwi uVar4 */
u32 uVar4 = checkNoResetFlg0(daPyFlg0_UNK80000000);
offNoResetFlg0(daPyFlg0_UNK80000000);
if (mTinkleHoverTimer == 0) {
+27 -27
View File
@@ -14,20 +14,22 @@
#include "d/actor/d_a_player_main.h"
/* 801514B0-80151644 .text setPushPullKeepData__9daPy_lk_cFQ24dBgW13PushPullLabel */
int daPy_lk_c::setPushPullKeepData(dBgW::PushPullLabel param_0) {
if (param_0 != dBgW::PPLABEL_NONE) {
BOOL daPy_lk_c::setPushPullKeepData(dBgW::PushPullLabel pp_label) {
if (pp_label != dBgW::PPLABEL_NONE) {
if (dComIfGs_getSelectEquip(2) == dItem_POWER_BRACELETS_e) {
cLib_onBit<dBgW::PushPullLabel>(param_0, dBgW::PPLABEL_HEAVY);
cLib_onBit<dBgW::PushPullLabel>(pp_label, dBgW::PPLABEL_HEAVY);
}
if (mProcVar0.m3570) {
cLib_onBit<dBgW::PushPullLabel>(param_0, dBgW::PPLABEL_UNK4);
cLib_onBit<dBgW::PushPullLabel>(pp_label, dBgW::PPLABEL_UNK4);
}
}
fopAc_ac_c* pp_actor = dComIfG_Bgsp()->PushPullCallBack(mPolyInfo, this, shape_angle.y, param_0);
fopAc_ac_c* pp_actor = dComIfG_Bgsp()->PushPullCallBack(mPolyInfo, this, shape_angle.y, pp_label);
if (pp_actor == NULL) {
return 0;
return FALSE;
}
if (param_0 != dBgW::PPLABEL_NONE) {
if (pp_label != dBgW::PPLABEL_NONE) {
if (pp_actor->shape_angle.y != m34D4) {
cXyz local_28 = current.pos - m370C;
mDoMtx_trans(mDoMtx_stack_c::now, m370C.x, m370C.y, m370C.z);
@@ -42,7 +44,7 @@ int daPy_lk_c::setPushPullKeepData(dBgW::PushPullLabel param_0) {
}
m370C = pp_actor->current.pos;
m34D4 = pp_actor->shape_angle.y;
return true;
return TRUE;
}
/* 80151644-801517C0 .text procPushPullWait_init__9daPy_lk_cFi */
@@ -50,7 +52,7 @@ BOOL daPy_lk_c::procPushPullWait_init(int param_0) {
commonProcInit(daPyProc_PUSH_PULL_WAIT_e);
mProcVar0.m3570 = param_0;
mVelocity = 0.0f;
if ((param_0 == 0) || (mEquipItem == daPyItem_NONE_e)) {
if (param_0 == 0 || mEquipItem == daPyItem_NONE_e) {
if (checkEquipAnime()) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
}
@@ -86,13 +88,13 @@ BOOL daPy_lk_c::procPushPullWait() {
);
m34D6 = 0;
}
} else if ((spActionButton()) && (checkResetFlg0(daPyRFlg0_UNK8))) {
} else if (spActionButton() && checkResetFlg0(daPyRFlg0_UNK8)) {
if (mProcVar0.m3570 != 0) {
s16 sVar1 = cLib_addCalcAngleS(&shape_angle.y, m34D4, 3, 0x800, 0x100);
current.angle.y = shape_angle.y;
f32 dVar2 = cLib_addCalc(&current.pos.x, m370C.x, 0.5f, 10.0f, 1.0f);
dVar2 += cLib_addCalc(&current.pos.z, m370C.z, 0.5f, 10.0f, 1.0f);
if (((!sVar1) && (dVar2 < 5.0f)) && (checkNoUpperAnime())) {
if (sVar1 == 0 && dVar2 < 5.0f && checkNoUpperAnime()) {
current.pos.x = m370C.x;
current.pos.z = m370C.z;
mProcVar0.m3570 = 0;
@@ -120,14 +122,13 @@ BOOL daPy_lk_c::procPushPullWait() {
BOOL daPy_lk_c::procPushMove_init() {
if (!setPushPullKeepData(dBgW::PPLABEL_NONE)) {
return false;
} else {
commonProcInit(daPyProc_PUSH_MOVE_e);
setSingleMoveAnime(
ANM_WALKPUSH, daPy_HIO_pushpull_c0::m.field_0x8, 0.0f, -1, daPy_HIO_pushpull_c0::m.field_0xC
);
mProcVar0.m3570 = 1;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
}
commonProcInit(daPyProc_PUSH_MOVE_e);
setSingleMoveAnime(ANM_WALKPUSH, daPy_HIO_pushpull_c0::m.field_0x8, 0.0f, -1, daPy_HIO_pushpull_c0::m.field_0xC);
mProcVar0.m3570 = 1;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
return true;
}
@@ -136,7 +137,7 @@ BOOL daPy_lk_c::procPushMove() {
dComIfGp_setRStatus(0x11);
int direction = getDirectionFromShapeAngle();
setFrontWallType();
if ((!checkResetFlg0(daPyRFlg0_UNK8)) || (!spActionButton() && (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)))) {
if (!checkResetFlg0(daPyRFlg0_UNK8) || (!spActionButton() && !checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP))) {
checkNextMode(0);
} else {
if (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)) {
@@ -164,14 +165,13 @@ BOOL daPy_lk_c::procPushMove() {
BOOL daPy_lk_c::procPullMove_init() {
if (!setPushPullKeepData(dBgW::PPLABEL_NONE)) {
return false;
} else {
commonProcInit(daPyProc_PULL_MOVE_e);
setSingleMoveAnime(
ANM_WALKPULL, daPy_HIO_pushpull_c0::m.field_0x10, 0.0f, -1, daPy_HIO_pushpull_c0::m.field_0x14
);
mProcVar0.m3570 = 1;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
}
commonProcInit(daPyProc_PULL_MOVE_e);
setSingleMoveAnime(ANM_WALKPULL, daPy_HIO_pushpull_c0::m.field_0x10, 0.0f, -1, daPy_HIO_pushpull_c0::m.field_0x14);
mProcVar0.m3570 = 1;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
return true;
}
@@ -180,7 +180,7 @@ BOOL daPy_lk_c::procPullMove() {
dComIfGp_setRStatus(0x11);
int direction = getDirectionFromShapeAngle();
setFrontWallType();
if ((!checkResetFlg0(daPyRFlg0_UNK8)) || (!spActionButton() && (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)))) {
if (!checkResetFlg0(daPyRFlg0_UNK8) || (!spActionButton() && !checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP))) {
checkNextMode(0);
} else {
if (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)) {
+1 -1
View File
@@ -1746,7 +1746,7 @@ BOOL daPy_lk_c::procCutReverse_init(daPy_ANM param_0) {
return true;
}
s32 uVar2 = checkNoResetFlg0(daPyFlg0_UNK4);
BOOL uVar2 = checkNoResetFlg0(daPyFlg0_UNK4) ? TRUE : FALSE;
commonProcInit(daPyProc_CUT_REVERSE_e);
if ((uVar2) != 0) {
onNoResetFlg0(daPyFlg0_UNK4);