mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 13:23:27 -04:00
player checkFlg inline fix, player_pushpull cleanup
This commit is contained in:
@@ -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); }
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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(¤t.pos.x, m370C.x, 0.5f, 10.0f, 1.0f);
|
||||
dVar2 += cLib_addCalc(¤t.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)) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user