From 6aeaaef643db58fd2ed26d78eada3a33666f6a3b Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Fri, 11 Apr 2025 15:02:53 -0400 Subject: [PATCH] Added enum for Link's movement direction --- docs/coding_guidelines.md | 2 +- docs/decompiling.md | 2 +- include/d/actor/d_a_player_main.h | 21 ++- src/d/actor/d_a_player_battle.inc | 2 +- src/d/actor/d_a_player_boomerang.inc | 8 +- src/d/actor/d_a_player_bow.inc | 8 +- src/d/actor/d_a_player_climb.inc | 194 +++++++++++++-------------- src/d/actor/d_a_player_crawl.inc | 2 +- src/d/actor/d_a_player_dproc.inc | 2 +- src/d/actor/d_a_player_grab.inc | 4 +- src/d/actor/d_a_player_hammer.inc | 8 +- src/d/actor/d_a_player_hang.inc | 2 +- src/d/actor/d_a_player_hook.inc | 12 +- src/d/actor/d_a_player_ladder.inc | 16 +-- src/d/actor/d_a_player_main.cpp | 8 +- src/d/actor/d_a_player_pushpull.inc | 18 +-- src/d/actor/d_a_player_rope.inc | 37 +++-- src/d/actor/d_a_player_ship.inc | 6 +- src/d/actor/d_a_player_swim.inc | 133 +++++++++--------- src/d/actor/d_a_player_sword.inc | 110 ++++++++------- src/d/actor/d_a_player_vomit.inc | 13 +- src/d/actor/d_a_player_weapon.inc | 16 +-- src/d/actor/d_a_player_whide.inc | 73 +++++----- 23 files changed, 341 insertions(+), 356 deletions(-) diff --git a/docs/coding_guidelines.md b/docs/coding_guidelines.md index b540d2e74..e944df7ac 100644 --- a/docs/coding_guidelines.md +++ b/docs/coding_guidelines.md @@ -54,7 +54,7 @@ If a translation unit isn't fully decompiled yet, then there's no way to know if Avoid unnecessary includes, especially in header files. clangd will give you a warning saying "Included header is not used directly (fix available)" if you aren't using a header at all. -Forward declaring types where possible will reduce compile times. So instead of putting all the includes in a actor's header file, like so: +Forward declaring types where possible will reduce compile times. So instead of putting all the includes in an actor's header file, like so: ```cpp #include "d/d_path.h" diff --git a/docs/decompiling.md b/docs/decompiling.md index eee8695e8..51a6aa55c 100644 --- a/docs/decompiling.md +++ b/docs/decompiling.md @@ -159,7 +159,7 @@ The macro to use in this case is `JUT_ASSERT`, which handles checking a conditio JUT_ASSERT(0x181, modelData != NULL); ``` -Note that any variables used in an debug assertion must have their names match the assertion string exactly, like the `modelData` local variable in this case. This can sometimes even give you the official name of a member variable. Defines like `NULL` or `FALSE` work a bit differently and show up as their value (zero) in the assertion strings, instead of appearing the way the programmer actually wrote them. +Note that any variables used in a debug assertion must have their names match the assertion string exactly, like the `modelData` local variable in this case. This can sometimes even give you the official name of a member variable. Defines like `NULL` or `FALSE` work a bit differently and show up as their value (zero) in the assertion strings, instead of appearing the way the programmer actually wrote them. Other than those two macros, there's another common case that can cause code to look very different in Ghidra compared to how it was originally written: **inline functions**. These are used all over the place in TWW's codebase, and they're important to get right for several reasons, but as there are thousands of them we can't go over all of them individually in this guide. Instead, let's go over what the workflow for finding them on your own will look like. diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h index 1ca4f7ddb..f666983a6 100644 --- a/include/d/actor/d_a_player_main.h +++ b/include/d/actor/d_a_player_main.h @@ -888,6 +888,17 @@ public: /* 0x40 */ BTN_R = (1 << 6), }; + /** + * Moving direction calculated from an angle + */ + enum daPy_lk_DIR { + /* 0x0 */ DIR_FORWARD, + /* 0x1 */ DIR_BACKWARD, + /* 0x2 */ DIR_LEFT, + /* 0x3 */ DIR_RIGHT, + /* 0x4 */ DIR_NONE, + }; + typedef BOOL (daPy_lk_c::*ProcFunc)(); void seStartOnlyReverb(u32); @@ -1351,9 +1362,9 @@ public: void setClimbShapeOffset(); int getClimbDirectionFromAngle(); void changeClimbMoveProc(int); - int setMoveBGCorrectClimb(); - BOOL checkBgCorrectClimbMove(cXyz*, cXyz*); - BOOL checkBgClimbMove(); + BOOL setMoveBGCorrectClimb(); + void checkBgCorrectClimbMove(cXyz*, cXyz*); + void checkBgClimbMove(); void procClimbUpStart_init_sub(); BOOL procClimbUpStart_init(); BOOL procClimbUpStart(); @@ -1369,7 +1380,7 @@ public: void getWHideNextPos(cXyz*, cXyz*); BOOL checkWHideBackWall(cXyz*); BOOL checkWHideFrontFloor(cXyz*); - BOOL checkWHideModeChange(cXyz*); + int checkWHideModeChange(cXyz*); int changeWHideEndProc(cXyz*); BOOL procWHideReady_init(cM3dGPla*, cXyz*); BOOL procWHideReady(); @@ -2025,7 +2036,7 @@ public: /* 0x3490 */ dAttList_c* mpAttnEntryZ; /* 0x3494 */ char* m3494; /* 0x3498 */ LIGHT_INFLUENCE mLightInfluence; - /* 0x34B8 */ u8 m34B8; + /* 0x34B8 */ u8 mDirection; /* 0x34B9 */ u8 mFrontWallType; /* 0x34BA */ u8 m34BA; /* 0x34BB */ u8 mCurrItemHeapIdx; diff --git a/src/d/actor/d_a_player_battle.inc b/src/d/actor/d_a_player_battle.inc index d4323748a..7432b72af 100644 --- a/src/d/actor/d_a_player_battle.inc +++ b/src/d/actor/d_a_player_battle.inc @@ -246,7 +246,7 @@ BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* enemy) { local_38.z = 0.5f * (current.pos.z + (enemy->current.pos.z - enemy->getBtBodyR() * cM_scos(enemy->shape_angle.y))); daPy_ANM anm; - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { m34D4 = -0x7FF0; anm = ANM_MROLLL; } else { diff --git a/src/d/actor/d_a_player_boomerang.inc b/src/d/actor/d_a_player_boomerang.inc index dd3d11e8c..100347126 100644 --- a/src/d/actor/d_a_player_boomerang.inc +++ b/src/d/actor/d_a_player_boomerang.inc @@ -203,10 +203,10 @@ BOOL daPy_lk_c::procBoomerangMove_init() { } commonProcInit(daPyProc_BOOMERANG_MOVE_e); - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { current.angle.y = shape_angle.y + 0x4000; } else { - m34B8 = 3; + mDirection = DIR_RIGHT; current.angle.y = shape_angle.y + -0x4000; } setActAnimeUpper(LKANM_BCK_BOOMWAIT, UPPER_MOVE2_e, daPy_HIO_boom_c0::m.field_0x18, 0.0f, -1, -1.0f); @@ -231,8 +231,8 @@ BOOL daPy_lk_c::procBoomerangMove() { f32 fVar1 = -1.0f; if (std::fabsf(mVelocity) < 0.001f) { onModeFlg(ModeFlg_00000001); - if (m34B8 != 3) { - m34B8 = 3; + if (mDirection != DIR_RIGHT) { + mDirection = DIR_RIGHT; fVar1 = daPy_HIO_basic_c0::m.field_0xC; } } else { diff --git a/src/d/actor/d_a_player_bow.inc b/src/d/actor/d_a_player_bow.inc index 351b24bd0..313091f07 100644 --- a/src/d/actor/d_a_player_bow.inc +++ b/src/d/actor/d_a_player_bow.inc @@ -285,10 +285,10 @@ BOOL daPy_lk_c::procBowMove_init() { } commonProcInit(daPyProc_BOW_MOVE_e); - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { current.angle.y = shape_angle.y + 0x4000; } else { - m34B8 = 3; + mDirection = DIR_RIGHT; current.angle.y = shape_angle.y + -0x4000; } if (!checkBowAnime()) { @@ -314,8 +314,8 @@ BOOL daPy_lk_c::procBowMove() { f32 fVar1 = -1.0f; if (std::fabsf(mVelocity) < 0.001f) { onModeFlg(ModeFlg_00000001); - if (m34B8 != 3) { - m34B8 = 3; + if (mDirection != DIR_RIGHT) { + mDirection = DIR_RIGHT; fVar1 = daPy_HIO_basic_c0::m.field_0xC; } current.angle.y = shape_angle.y + -0x4000; diff --git a/src/d/actor/d_a_player_climb.inc b/src/d/actor/d_a_player_climb.inc index 0f1490d41..2384efd98 100644 --- a/src/d/actor/d_a_player_climb.inc +++ b/src/d/actor/d_a_player_climb.inc @@ -21,21 +21,20 @@ f32 daPy_lk_c::getClimbMoveAnmSpeed() { /* 80135B74-80135DA0 .text setClimbShapeOffset__9daPy_lk_cFv */ void daPy_lk_c::setClimbShapeOffset() { - /* Nonmatching - floats */ cXyz local_40; cXyz local_4c; cXyz local_58; cXyz local_64; s16 uVar3 = m34EC; - s16 uVar4 = shape_angle.y; + s32 uVar4 = shape_angle.y; uVar3 += uVar4; f32 fVar4 = cM_ssin(uVar3); f32 fVar3 = cM_scos(uVar3); - f32 fVar2 = cM_ssin((s32)uVar4 & 0xffffU); + f32 fVar2 = cM_ssin((s32)uVar4); local_58.x = current.pos.x + 20.5f * fVar2; local_58.y = current.pos.y - 62.5f; - f32 fVar1 = cM_scos((int)(uint)uVar4 & 0xffffU); + f32 fVar1 = cM_scos(uVar4); local_58.z = current.pos.z + 20.5f * fVar1; local_40.set(local_58.x - fVar4 * 50.0f, local_58.y, local_58.z - fVar3 * 50.0f); local_4c.set(local_58.x + fVar4 * 50.0f, local_58.y, local_58.z + fVar3 * 50.0f); @@ -69,18 +68,14 @@ void daPy_lk_c::setClimbShapeOffset() { int daPy_lk_c::getClimbDirectionFromAngle() { s16 angle = m34E8 - shape_angle.y; if (abs(angle) > 0x7000) { - return 1; + return DIR_BACKWARD; + } else if (angle >= 0x1000) { + return DIR_LEFT; + } else if (angle <= -0x1000) { + return DIR_RIGHT; + } else { + return DIR_FORWARD; } - - if (angle >= 0x1000) { - return 2; - } - - if (angle <= -0x1000) { - return 3; - } - - return 0; } /* 80135E14-80135E98 .text changeClimbMoveProc__9daPy_lk_cFi */ @@ -89,8 +84,8 @@ void daPy_lk_c::changeClimbMoveProc(int param_0) { sVar1 = m34EC; if (mStickDistance > 0.05f) { - m34B8 = getClimbDirectionFromAngle(); - if ((m34B8 == 0) || (m34B8 == 1)) { + mDirection = getClimbDirectionFromAngle(); + if (mDirection == DIR_FORWARD || mDirection == DIR_BACKWARD) { procClimbMoveUpDown_init(param_0); } else { procClimbMoveSide_init(param_0); @@ -100,50 +95,50 @@ void daPy_lk_c::changeClimbMoveProc(int param_0) { } /* 80135E98-80136154 .text setMoveBGCorrectClimb__9daPy_lk_cFv */ -int daPy_lk_c::setMoveBGCorrectClimb() { - /* Nonmatching - floats */ - if ((dComIfG_Bgsp()->ChkPolySafe(mPolyInfo)) && (dComIfG_Bgsp()->ChkMoveBG(mPolyInfo))) { +BOOL daPy_lk_c::setMoveBGCorrectClimb() { + if (dComIfG_Bgsp()->ChkPolySafe(mPolyInfo) && dComIfG_Bgsp()->ChkMoveBG(mPolyInfo)) { dComIfG_Bgsp()->MoveBgTransPos(mPolyInfo, true, ¤t.pos, ¤t.angle, &shape_angle); } if (checkNoResetFlg1(daPyFlg1_VINE_CATCH)) { return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); - } else { - if ((mCurProc == daPyProc_CLIMB_DOWN_START_e) && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > 0.01f)) { - return 0; - } - cXyz local_1c; - cXyz local_28; - local_1c.set(current.pos.x, current.pos.y + 30.0f, current.pos.z); - local_28.set( - current.pos.x + cM_ssin(shape_angle.y) * 80.0f, local_1c.y, current.pos.z + cM_scos(shape_angle.y) * 80.0f - ); - mLinkLinChk.Set(&local_1c, &local_28, this); - if ((((!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) || (dComIfG_Bgsp()->GetWallCode(mLinkLinChk) != 1)) || - (std::fabsf(dComIfG_Bgsp()->GetTriPla(mLinkLinChk)->GetNP()->y) > 0.05f)) || - ((mCurProc == daPyProc_CLIMB_MOVE_UP_DOWN_e || (mCurProc == daPyProc_CLIMB_MOVE_SIDE_e)) && - (current.pos.y - 15.0f < mAcch.GetGroundH()))) - { - return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); - } else { - cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk); - s16 uVar6 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z); - if (cLib_distanceAngleS(uVar6, shape_angle.y) <= 0x549f) { - return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); - } else { - current.pos.x = mLinkLinChk.GetCrossP()->x + 20.5f * cM_ssin(uVar6); - current.pos.z = mLinkLinChk.GetCrossP()->z + 20.5f * cM_scos(uVar6); - s16 sVar1 = shape_angle.y; - shape_angle.y = uVar6 + 0x8000; - current.angle.y += (s16)(shape_angle.y - sVar1); - m34EC += (s16)(sVar1 - shape_angle.y); - } - } } + + if (mCurProc == daPyProc_CLIMB_DOWN_START_e && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > 0.01f)) { + return 0; + } + cXyz local_1c; + cXyz local_28; + local_1c.set(current.pos.x, current.pos.y + 30.0f, current.pos.z); + local_28.set( + current.pos.x + cM_ssin(shape_angle.y) * 80.0f, local_1c.y, current.pos.z + cM_scos(shape_angle.y) * 80.0f + ); + mLinkLinChk.Set(&local_1c, &local_28, this); + if ((!dComIfG_Bgsp()->LineCross(&mLinkLinChk) || dComIfG_Bgsp()->GetWallCode(mLinkLinChk) != 1 || + std::fabsf(dComIfG_Bgsp()->GetTriPla(mLinkLinChk)->GetNP()->y) > 0.05f) || + ((mCurProc == daPyProc_CLIMB_MOVE_UP_DOWN_e || mCurProc == daPyProc_CLIMB_MOVE_SIDE_e) && + current.pos.y - 15.0f < mAcch.GetGroundH())) + { + return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); + } + + cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk); + s16 uVar6 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z); + if (cLib_distanceAngleS(uVar6, shape_angle.y) <= 0x549f) { + return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); + } + + current.pos.x = mLinkLinChk.GetCrossP()->x + 20.5f * cM_ssin(uVar6); + current.pos.z = mLinkLinChk.GetCrossP()->z + 20.5f * cM_scos(uVar6); + s16 sVar1 = shape_angle.y; + shape_angle.y = uVar6 + 0x8000; + current.angle.y += (s16)(shape_angle.y - sVar1); + m34EC += (s16)(sVar1 - shape_angle.y); + return 0; } /* 80136154-80136200 .text checkBgCorrectClimbMove__9daPy_lk_cFP4cXyzP4cXyz */ -BOOL daPy_lk_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) { +void daPy_lk_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) { mLinkLinChk.Set(i_startPos, i_endPos, this); if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { cM3dGPla* tri_plane = dComIfG_Bgsp()->GetTriPla(mLinkLinChk); @@ -154,8 +149,7 @@ BOOL daPy_lk_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) { } /* 80136200-80136588 .text checkBgClimbMove__9daPy_lk_cFv */ -BOOL daPy_lk_c::checkBgClimbMove() { - /* Nonmatching - floats */ +void daPy_lk_c::checkBgClimbMove() { cXyz local_5c; cXyz local_68; @@ -196,9 +190,8 @@ BOOL daPy_lk_c::checkBgClimbMove() { local_5c.set(current.pos.x + (25.0f * dVar7), local_68.y + 30.0f, current.pos.z + (25.0f * dVar6)); mGndChk.SetPos(&local_5c); dVar3 = dComIfG_Bgsp()->GroundCross(&mGndChk); - cM3dGPla* triPla; - if (((C_BG_MIN_HEIGHT != dVar3) && (triPla = dComIfG_Bgsp()->GetTriPla(mGndChk), triPla->GetNP()->y >= 0.5f)) && - (dVar3 >= (local_68.y - 30.0f))) + if (C_BG_MIN_HEIGHT != dVar3 && dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y >= 0.5f && + dVar3 >= local_68.y - 30.0f) { dVar4 = 3.0f; current.pos.x = local_5c.x - (dVar4 * dVar7); @@ -251,42 +244,39 @@ BOOL daPy_lk_c::procClimbUpStart_init() { /* 80136708-8013680C .text procClimbUpStart__9daPy_lk_cFv */ BOOL daPy_lk_c::procClimbUpStart() { - /* Nonmatching - floats */ if (setMoveBGCorrectClimb()) { return true; + } + + if (m3570 == 0) { + if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff) { + procLadderUpStart_init_sub(); + } } else { - if (m3570 == 0) { - if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff) { - procLadderUpStart_init_sub(); + J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; + m34C2 = 5; + if (frameCtrl.getRate() < 0.01f) { + dComIfGp_setDoStatus(6); + if (m34D4 == 0) { + setLadderFootSe(); + m34D4 = 1; } - } else { - J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; - m34C2 = 5; - if (frameCtrl.getRate() < 0.01f) { - dComIfGp_setDoStatus(6); - if (m34D4 == 0) { - setLadderFootSe(); - m34D4 = 1; - } - if (doTrigger()) { - m34C2 = 0; - procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); - } else { - changeClimbMoveProc(1); - } + if (doTrigger()) { + m34C2 = 0; + procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); } else { - if (frameCtrl.checkPass(9.0f)) { - setLadderFootSe(); - } + changeClimbMoveProc(1); } + } else if (frameCtrl.checkPass(9.0f)) { + setLadderFootSe(); } } + return true; } /* 8013680C-8013693C .text procClimbDownStart_init__9daPy_lk_cFs */ BOOL daPy_lk_c::procClimbDownStart_init(s16 param_0) { - /* Nonmatching - floats */ commonProcInit(daPyProc_CLIMB_DOWN_START_e); gravity = 0.0f; speed.y = 0.0f; @@ -308,26 +298,24 @@ BOOL daPy_lk_c::procClimbDownStart_init(s16 param_0) { /* 8013693C-80136A34 .text procClimbDownStart__9daPy_lk_cFv */ BOOL daPy_lk_c::procClimbDownStart() { - /* Nonmatching - floats */ if (setMoveBGCorrectClimb()) { return true; - } else { - J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; - m34C2 = 5; - if (frameCtrl.getRate() < 0.01f) { - dComIfGp_setDoStatus(6); - if (doTrigger()) { - m34C2 = 0; - procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); - } else { - changeClimbMoveProc(1); - } - } else { - if (frameCtrl.checkPass(26.0f) || frameCtrl.checkPass(36.0f) || frameCtrl.checkPass(43.0f)) { - setLadderFootSe(); - } - } } + + J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; + m34C2 = 5; + if (frameCtrl.getRate() < 0.01f) { + dComIfGp_setDoStatus(6); + if (doTrigger()) { + m34C2 = 0; + procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54); + } else { + changeClimbMoveProc(1); + } + } else if (frameCtrl.checkPass(26.0f) || frameCtrl.checkPass(36.0f) || frameCtrl.checkPass(43.0f)) { + setLadderFootSe(); + } + return true; } @@ -339,26 +327,26 @@ BOOL daPy_lk_c::procClimbMoveUpDown_init(int param_0) { dVar3 = getLadderMoveAnmSpeed(); commonProcInit(daPyProc_CLIMB_MOVE_UP_DOWN_e); current.angle.y = shape_angle.y; - if (m34B8 == 1) { + if (mDirection == DIR_BACKWARD) { dVar3 *= -1.0f; } if (param_0 != 0) { m3570 = 0; - if (m34B8 == 0) { + if (mDirection == DIR_FORWARD) { dVar2 = ANM_LADDERLTOR; } else { dVar2 = ANM_LADDERRTOL; } } else { m3570 = 1; - if (m34B8 == 0) { + if (mDirection == DIR_FORWARD) { dVar2 = ANM_LADDERRTOL; } else { dVar2 = ANM_LADDERLTOR; } } setSingleMoveAnime(dVar2, dVar3, 0.0f, -1, daPy_HIO_ladder_c0::m.field_0x2C); - if (m34B8 == 0) { + if (mDirection == DIR_FORWARD) { setTextureAnime(10, 0); } else { setTextureAnime(11, 0); @@ -414,12 +402,12 @@ BOOL daPy_lk_c::procClimbMoveSide_init(int param_0) { m3570 = param_0; if (param_0 != 0) { dVar2 = ANM_FCLIMBSLIDELUP; - if (m34B8 == 3) { + if (mDirection == DIR_RIGHT) { dVar4 *= -1.0f; } } else { dVar2 = ANM_FCLIMBSLIDERUP; - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { dVar4 *= -1.0f; } } diff --git a/src/d/actor/d_a_player_crawl.inc b/src/d/actor/d_a_player_crawl.inc index cf69b193b..798622dfb 100644 --- a/src/d/actor/d_a_player_crawl.inc +++ b/src/d/actor/d_a_player_crawl.inc @@ -236,7 +236,7 @@ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) { commonProcInit(daPyProc_CRAWL_MOVE_e); if (var_r29 != 0) { f32 dVar4 = getCrawlMoveAnmSpeed(); - if (getDirectionFromShapeAngle() == 1) { + if (getDirectionFromShapeAngle() == DIR_BACKWARD) { dVar4 *= -1.0f; } current.angle.y = shape_angle.y; diff --git a/src/d/actor/d_a_player_dproc.inc b/src/d/actor/d_a_player_dproc.inc index 68da53e6d..0b0daee9f 100644 --- a/src/d/actor/d_a_player_dproc.inc +++ b/src/d/actor/d_a_player_dproc.inc @@ -1275,7 +1275,7 @@ BOOL daPy_lk_c::dProcLookWait_init() { mVelocity = 0.0f; setBlendMoveAnime(daPy_HIO_basic_c0::m.field_0xC); current.angle.y = shape_angle.y; - m34B8 = 4; + mDirection = DIR_NONE; initShipRideUseItem(iVar1, 0); return true; } diff --git a/src/d/actor/d_a_player_grab.inc b/src/d/actor/d_a_player_grab.inc index 23f30bf36..26541fc1b 100644 --- a/src/d/actor/d_a_player_grab.inc +++ b/src/d/actor/d_a_player_grab.inc @@ -235,8 +235,8 @@ BOOL daPy_lk_c::checkNextActionGrab() { dComIfGp_setDoStatus(9); } else { if (mpAttention->Lockon()) { - int iVar4 = getDirectionFromShapeAngle(); - if ((mStickDistance <= 0.05f) || (mStickDistance > 0.05f && (iVar4 == 0 || (iVar4 == 1)))) { + int direction = getDirectionFromShapeAngle(); + if ((mStickDistance <= 0.05f) || (mStickDistance > 0.05f && (direction == DIR_FORWARD || (direction == DIR_BACKWARD)))) { dComIfGp_setDoStatus(14); } } else { diff --git a/src/d/actor/d_a_player_hammer.inc b/src/d/actor/d_a_player_hammer.inc index 9756a05bf..062c12c7a 100644 --- a/src/d/actor/d_a_player_hammer.inc +++ b/src/d/actor/d_a_player_hammer.inc @@ -67,20 +67,20 @@ BOOL daPy_lk_c::procHammerSideSwing() { m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame(); if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) { mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } else { if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_ham_c0::m.field_0x10) { f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; + u8 orig_direction = mDirection; mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; if (checkNextMode(1)) { return true; } mVelocity = dVar4; - m34B8 = uVar1; + mDirection = orig_direction; } if (changeCutReverseProc(ANM_CUTREL)) { setHammerQuake(NULL, NULL, -1); diff --git a/src/d/actor/d_a_player_hang.inc b/src/d/actor/d_a_player_hang.inc index 9de3e027b..88cbb88a0 100644 --- a/src/d/actor/d_a_player_hang.inc +++ b/src/d/actor/d_a_player_hang.inc @@ -229,7 +229,7 @@ BOOL daPy_lk_c::procHangStart() { (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_wallCatch_c0::m.field_0x50)) && (mStickDistance > 0.05f || m3570 != 0)) { - if (getDirectionFromShapeAngle() == 0 || m3570 != 0) { + if (getDirectionFromShapeAngle() == DIR_FORWARD || m3570 != 0) { procHangClimb_init(daPy_HIO_wallCatch_c0::m.field_0x2C); } } else { diff --git a/src/d/actor/d_a_player_hook.inc b/src/d/actor/d_a_player_hook.inc index 5b7317ee1..b733330cc 100644 --- a/src/d/actor/d_a_player_hook.inc +++ b/src/d/actor/d_a_player_hook.inc @@ -142,8 +142,8 @@ BOOL daPy_lk_c::checkNextActionHookshotReady() { seStartOnlyReverb(JA_SE_LK_HS_SHOOT); voiceStart(41); resetFootEffect(); - if (m34B8 != 2) { - m34B8 = 2; + if (mDirection != DIR_LEFT) { + mDirection = DIR_LEFT; } current.angle.y = shape_angle.y + 0x4000; onModeFlg(ModeFlg_00000001); @@ -248,10 +248,10 @@ BOOL daPy_lk_c::procHookshotMove_init() { } commonProcInit(daPyProc_HOOKSHOT_MOVE_e); - if (m34B8 == 3) { + if (mDirection == DIR_RIGHT) { current.angle.y = shape_angle.y + -0x4000; } else { - m34B8 = 2; + mDirection = DIR_LEFT; current.angle.y = shape_angle.y + 0x4000; } daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); @@ -284,8 +284,8 @@ BOOL daPy_lk_c::procHookshotMove() { f32 fVar1 = -1.0f; if (std::fabsf(mVelocity) < 0.001f) { onModeFlg(ModeFlg_00000001); - if (m34B8 != 2) { - m34B8 = 2; + if (mDirection != DIR_LEFT) { + mDirection = DIR_LEFT; fVar1 = daPy_HIO_basic_c0::m.field_0xC; } current.angle.y = shape_angle.y + 0x4000; diff --git a/src/d/actor/d_a_player_ladder.inc b/src/d/actor/d_a_player_ladder.inc index 364d39a25..6d986f5f4 100644 --- a/src/d/actor/d_a_player_ladder.inc +++ b/src/d/actor/d_a_player_ladder.inc @@ -37,7 +37,7 @@ void daPy_lk_c::setLadderFootSe() { int daPy_lk_c::changeLadderMoveProc(int param_0) { cXyz local_2c; cXyz local_38; - BOOL iVar5; + int direction; cLib_addCalc(¤t.pos.x, m370C.x, 0.5f, 0.5f, 0.05f); cLib_addCalc(¤t.pos.y, m370C.y, 0.5f, 0.5f, 0.05f); @@ -51,10 +51,10 @@ int daPy_lk_c::changeLadderMoveProc(int param_0) { local_2c.z = current.pos.z; if (iVar2 < 0x4000) { local_2c.y = 50.0f + (125.0f + current.pos.y); - iVar5 = false; + direction = DIR_FORWARD; } else { local_2c.y = current.pos.y - 50.0f; - iVar5 = true; + direction = DIR_BACKWARD; } local_38.x = local_2c.x + cM_ssin(shape_angle.y) * 50.0f; local_38.z = local_2c.z + cM_scos(shape_angle.y) * 50.0f; @@ -67,7 +67,7 @@ int daPy_lk_c::changeLadderMoveProc(int param_0) { procLadderDownEnd_init(param_0); } } else { - procLadderMove_init(param_0, iVar5, &m370C); + procLadderMove_init(param_0, direction, &m370C); } } return false; @@ -307,13 +307,13 @@ BOOL daPy_lk_c::procLadderDownEnd() { } /* 80133BB4-80133E28 .text procLadderMove_init__9daPy_lk_cFiiP4cXyz */ -BOOL daPy_lk_c::procLadderMove_init(int param_0, int param_1, cXyz* param_2) { +BOOL daPy_lk_c::procLadderMove_init(int param_0, int direction, cXyz* param_2) { int uVar3 = checkModeFlg(ModeFlg_MIDAIR) ? true : false; float dVar4 = getLadderMoveAnmSpeed(); commonProcInit(daPyProc_LADDER_MOVE_e); if (uVar3 == 0) { - if (param_1 == 0) { + if (direction == DIR_FORWARD) { m370C.y = param_2->y + 37.5f; } else { dVar4 *= -1.0f; @@ -351,8 +351,8 @@ BOOL daPy_lk_c::procLadderMove_init(int param_0, int param_1, cXyz* param_2) { } setSingleMoveAnime(anm, dVar4, 0.0f, -1, daPy_HIO_ladder_c0::m.field_0x2C); - m34B8 = param_1; - if (param_1 == 0) { + mDirection = direction; + if (direction == DIR_FORWARD) { setTextureAnime(10, 0); } else { setTextureAnime(0xb, 0); diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 32f21b3f1..77f444745 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -1137,13 +1137,13 @@ void daPy_lk_c::setDoStatus() { /* 80108A9C-80108B08 .text getDirectionFromAngle__9daPy_lk_cFs */ int daPy_lk_c::getDirectionFromAngle(s16 angle) { if (abs(angle) > 0x6000) { - return 1; + return DIR_BACKWARD; } else if (angle >= 0x2000) { - return 2; + return DIR_LEFT; } else if (angle <= -0x2000) { - return 3; + return DIR_RIGHT; } else { - return 0; + return DIR_FORWARD; } } diff --git a/src/d/actor/d_a_player_pushpull.inc b/src/d/actor/d_a_player_pushpull.inc index ea85d032f..5d9bb1221 100644 --- a/src/d/actor/d_a_player_pushpull.inc +++ b/src/d/actor/d_a_player_pushpull.inc @@ -101,10 +101,10 @@ BOOL daPy_lk_c::procPushPullWait() { } if (m3570 == 0) { if (mStickDistance > 0.05f) { - int iVar1 = getDirectionFromShapeAngle(); - if (iVar1 == 0) { + int direction = getDirectionFromShapeAngle(); + if (direction == DIR_FORWARD) { procPushMove_init(); - } else if (iVar1 == 1) { + } else if (direction == DIR_BACKWARD) { procPullMove_init(); } } else { @@ -135,18 +135,18 @@ BOOL daPy_lk_c::procPushMove_init() { /* 80151A1C-80151B38 .text procPushMove__9daPy_lk_cFv */ BOOL daPy_lk_c::procPushMove() { dComIfGp_setRStatus(0x11); - int iVar1 = getDirectionFromShapeAngle(); + int direction = getDirectionFromShapeAngle(); setFrontWallType(); if ((!checkResetFlg0(daPyRFlg0_UNK8)) || (!spActionButton() && (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)))) { checkNextMode(0); } else { if (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)) { if (mStickDistance > 0.05f) { - if (iVar1 == 0) { + if (direction == DIR_FORWARD) { setPushPullKeepData(dBgW::PP_UNK1_e); return true; } - if (iVar1 == 1) { + if (direction == DIR_BACKWARD) { return procPullMove_init(); } } @@ -180,14 +180,14 @@ BOOL daPy_lk_c::procPullMove_init() { BOOL daPy_lk_c::procPullMove() { /* Nonmatching - floats */ dComIfGp_setRStatus(0x11); - int iVar1 = getDirectionFromShapeAngle(); + int direction = getDirectionFromShapeAngle(); setFrontWallType(); if ((!checkResetFlg0(daPyRFlg0_UNK8)) || (!spActionButton() && (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)))) { checkNextMode(0); } else { if (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)) { if (mStickDistance > 0.05f) { - if (iVar1 == 1) { + if (direction == DIR_BACKWARD) { f32 dVar4 = cM_ssin(shape_angle.y); f32 dVar5 = cM_scos(shape_angle.y); cXyz local_3c; @@ -217,7 +217,7 @@ BOOL daPy_lk_c::procPullMove() { } return true; } - if (iVar1 == 0) { + if (direction == DIR_FORWARD) { return procPushMove_init(); } } diff --git a/src/d/actor/d_a_player_rope.inc b/src/d/actor/d_a_player_rope.inc index 7e94befdf..739f0ed8b 100644 --- a/src/d/actor/d_a_player_rope.inc +++ b/src/d/actor/d_a_player_rope.inc @@ -235,8 +235,8 @@ int daPy_lk_c::throwRope() { daPy_HIO_rope_c0::m.field_0x48, daPy_HIO_rope_c0::m.field_0x8, -1.0f); setPriTextureAnime(0x48, 0); mVelocity = 0.0f; - if (m34B8 != 3) { - m34B8 = 3; + if (mDirection != DIR_RIGHT) { + mDirection = DIR_RIGHT; } current.angle.y = shape_angle.y + -0x4000; onModeFlg(ModeFlg_00000001); @@ -765,7 +765,6 @@ BOOL daPy_lk_c::procRopeHangWait_init(int param_0) { BOOL daPy_lk_c::procRopeHangWait() { /* Nonmatching */ bool bVar1; - int iVar2; s16 unaff_r29; float dVar4; @@ -784,21 +783,21 @@ BOOL daPy_lk_c::procRopeHangWait() { current.pos.z = mRopePos.z; s16 r30 = 0; if (mStickDistance > 0.05f) { - iVar2 = getDirectionFromAngle(m34DC); + int direction = getDirectionFromAngle(m34DC); if (spActionButton()) { - if (iVar2 == 0) { + if (direction == DIR_FORWARD) { if (abs((int)m34D4) <= 0x80) { procRopeUp_init(); } bVar1 = true; unaff_r29 = 0; - } else if (iVar2 == 1) { + } else if (direction == DIR_BACKWARD) { if (abs((int)m34D4) <= 0x80) { procRopeDown_init(); } bVar1 = true; unaff_r29 = 0; - } else if (iVar2 == 2) { + } else if (direction == DIR_LEFT) { s16 r5 = 512.0f * mStickDistance; if (r5 > m34D4) { s16 r0 = 64.0f * mStickDistance; @@ -810,7 +809,7 @@ BOOL daPy_lk_c::procRopeHangWait() { } else { unaff_r29 = r5; } - } else { + } else { // DIR_RIGHT s16 r5 = -512.0f * mStickDistance; if (r5 < m34D4) { s16 r0 = 64.0f * mStickDistance; @@ -829,7 +828,7 @@ BOOL daPy_lk_c::procRopeHangWait() { setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x2C); } - } else if ((iVar2 == 0) || (iVar2 == 1)) { + } else if ((direction == DIR_FORWARD) || (direction == DIR_BACKWARD)) { procRopeSwingStart_init(); } unaff_r29 = 0; @@ -939,15 +938,15 @@ BOOL daPy_lk_c::procRopeUp() { current.pos.x = mRopePos.x; current.pos.z = mRopePos.z; if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) { - int iVar1 = getDirectionFromAngle(m34DC); + int direction = getDirectionFromAngle(m34DC); if (mStickDistance <= 0.05f) { procRopeHangWait_init(0); } else { if (!spActionButton()) { procRopeSwingStart_init(); - } else if (iVar1 == 1) { + } else if (direction == DIR_BACKWARD) { procRopeDown_init(); - } else if (iVar1 == 0) { + } else if (direction == DIR_FORWARD) { if (m35A0 <= current.pos.y) { if (!specialRopeHangUp()) { procRopeHangWait_init(0); @@ -1017,15 +1016,15 @@ BOOL daPy_lk_c::procRopeDown() { mRopePos = pfVar2->current.pos; current.pos.x = mRopePos.x; current.pos.z = mRopePos.z; - int iVar1 = getDirectionFromAngle(m34DC); + int direction = getDirectionFromAngle(m34DC); if (mStickDistance <= 0.05f) { procRopeHangWait_init(1); } else { if (!spActionButton()) { procRopeSwingStart_init(); - } else if (iVar1 == 0) { + } else if (direction == DIR_FORWARD) { procRopeUp_init(); - } else if (iVar1 == 1) { + } else if (direction == DIR_BACKWARD) { m35A0 += 1.5f; if (m35A0 > daPy_HIO_rope_c0::m.field_0x40) { m35A0 = daPy_HIO_rope_c0::m.field_0x40; @@ -1112,10 +1111,10 @@ BOOL daPy_lk_c::procRopeMove_init() { return false; } commonProcInit(daPyProc_ROPE_MOVE_e); - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { current.angle.y = shape_angle.y + 0x4000; } else { - m34B8 = 3; + mDirection = DIR_RIGHT; current.angle.y = shape_angle.y + -0x4000; } if (fopAcM_GetParam(mActorKeepEquip.getActor()) == 0) { @@ -1147,8 +1146,8 @@ BOOL daPy_lk_c::procRopeMove() { f32 fVar1 = -1.0f; if (std::abs(mVelocity) < 0.001f) { onModeFlg(ModeFlg_00000001); - if (m34B8 != 3) { - m34B8 = 3; + if (mDirection != DIR_RIGHT) { + mDirection = DIR_RIGHT; fVar1 = daPy_HIO_basic_c0::m.field_0xC; } } else { diff --git a/src/d/actor/d_a_player_ship.inc b/src/d/actor/d_a_player_ship.inc index 72582469a..8ec4311dd 100644 --- a/src/d/actor/d_a_player_ship.inc +++ b/src/d/actor/d_a_player_ship.inc @@ -212,8 +212,8 @@ void daPy_lk_c::setShipAttnetionBodyAngle() { setShapeAngleToAtnActor(); } else { if (mStickDistance > 0.05f) { - int iVar1 = getDirectionFromAngle(m34DC); - if (iVar1 == 2) { + int direction = getDirectionFromAngle(m34DC); + if (direction == DIR_LEFT) { s16 r5 = 512.0f * mStickDistance; if (r5 > m34DA) { s16 r0 = 64.0f * mStickDistance; @@ -225,7 +225,7 @@ void daPy_lk_c::setShipAttnetionBodyAngle() { } else { r30 = r5; } - } else if (iVar1 == 3) { + } else if (direction == DIR_RIGHT) { s16 r5 = -512.0f * mStickDistance; if (r5 < m34DA) { s16 r0 = 64.0f * mStickDistance; diff --git a/src/d/actor/d_a_player_swim.inc b/src/d/actor/d_a_player_swim.inc index e85b0337f..17d771d08 100644 --- a/src/d/actor/d_a_player_swim.inc +++ b/src/d/actor/d_a_player_swim.inc @@ -30,7 +30,7 @@ void daPy_lk_c::setSpeedAndAngleSwim() { if (mStickDistance > 0.05f) { oldAngleY = shape_angle.y; - if (getDirectionFromShapeAngle() == 1) { + if (getDirectionFromShapeAngle() == DIR_BACKWARD) { mSwimTailEcallBack[0].onEnd(); mSwimTailEcallBack[1].onEnd(); @@ -226,7 +226,7 @@ BOOL daPy_lk_c::changeSwimOutProc() { } if (checkSwimFallCheck()) { - if (mCurProc == daPyProc_SWIM_MOVE_e && m34B8) { + if (mCurProc == daPyProc_SWIM_MOVE_e && mDirection != DIR_FORWARD) { current.pos.y += m35C4; } @@ -234,39 +234,37 @@ BOOL daPy_lk_c::changeSwimOutProc() { return procFall_init(1, l_HIO_wallCatch_c0.m.field_0x54); } - else { - if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && pcVar1->mNormal.y >= 0.5f && m35D0 - mAcch.GetGroundH() < l_HIO_swim_c0.m.field_0x24 - 5.0f)) { - current.pos.y = m35D0; - if (mCurProc == daPyProc_SWIM_MOVE_e && m34B8) { - current.pos.y += m35C4; - } + if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && pcVar1->mNormal.y >= 0.5f && m35D0 - mAcch.GetGroundH() < l_HIO_swim_c0.m.field_0x24 - 5.0f)) { + current.pos.y = m35D0; - swimOutAfter(TRUE); - - return checkNextMode(0); - } - else { - if (dComIfGp_getItemTimeCount() <= 0 && startRestartRoom(5, 0xC9, -1.0f, 0)) { - voiceStart(0x21); - mFrameCtrlUnder[0].mRate = 0.0f; - onNoResetFlg1(daPyFlg1_UNK40000000); - } - return FALSE; + if (mCurProc == daPyProc_SWIM_MOVE_e && mDirection != DIR_FORWARD) { + current.pos.y += m35C4; } + + swimOutAfter(TRUE); + + return checkNextMode(0); } + + if (dComIfGp_getItemTimeCount() <= 0 && startRestartRoom(5, 0xC9, -1.0f, 0)) { + voiceStart(0x21); + mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.0f); + onNoResetFlg1(daPyFlg1_UNK40000000); + } + return FALSE; } /* 8013D530-8013D638 .text setSwimMoveAnime__9daPy_lk_cFQ29daPy_lk_c8daPy_ANM */ void daPy_lk_c::setSwimMoveAnime(daPy_ANM swimMoveAnm) { - f32 startFrame = mFrameCtrlUnder[0].getFrame(); - f32 endFrame = startFrame * mFrameCtrlUnder[0].getEnd(); + f32 startFrame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame(); + f32 endFrame = startFrame * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd(); f32 rate = (std::fabsf(mVelocity) * (l_HIO_swim_c0.m.field_0x54 - l_HIO_swim_c0.m.field_0x50) / mMaxNormalSpeed) + l_HIO_swim_c0.m.field_0x50 + (getSwimTimerRate() * l_HIO_swim_c0.m.field_0x74); setSingleMoveAnime(swimMoveAnm, rate, 0.0f, -1, l_HIO_swim_c0.m.field_0x58); - mFrameCtrlUnder[0].setFrame(endFrame * mFrameCtrlUnder[0].getEnd()); - mAnmRatioUnder[0].getAnmTransform()->setFrame(mFrameCtrlUnder[0].getFrame()); + mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(endFrame * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd()); + mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame()); } /* 8013D638-8013D6B8 .text getSwimTimerRate__9daPy_lk_cFv */ @@ -416,7 +414,7 @@ BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) { gravity = 0.0f; setSingleMoveAnime(ANM_SWIMWAIT, (float)(getSwimTimerRate() * l_HIO_swim_c0.m.field_0x70) + l_HIO_swim_c0.m.field_0x40, 0.0f, -1, l_HIO_swim_c0.m.field_0x44); mFrameCtrl->setFrame(fVar2 * mFrameCtrl->getEnd()); - mAnmRatioUnder[0].getAnmTransform()->setFrame(mFrameCtrl->getFrame()); + mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrl->getFrame()); dComIfGp_setPlayerStatus0(0, daPyStts0_SWIM_e); if (checkNoResetFlg0(daPyFlg0_UNK100)) { @@ -435,9 +433,6 @@ BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) { /* 8013DCDC-8013DE8C .text procSwimWait__9daPy_lk_cFv */ BOOL daPy_lk_c::procSwimWait() { - fopAc_ac_c* talkEventPartner; - short targetAngleY; - setSpeedAndAngleSwim(); m34D4 += (short)((cM_rndF(0.3f) + 0.85f) * l_HIO_swim_c0.m.field_0x2); m35C4 = cM_ssin(m34D4) * l_HIO_swim_c0.m.field_0x4C + l_HIO_swim_c0.m.field_0x48; @@ -445,37 +440,37 @@ BOOL daPy_lk_c::procSwimWait() { if (changeSwimOutProc()) { return TRUE; } - else { - if (!checkNoResetFlg0(daPyFlg0_UNK100)) { - if (changeSwimUpProc()) { - return TRUE; - } - } - else { - current.pos.y = m35D0; - } - if (checkNextModeSwim()) { + + if (!checkNoResetFlg0(daPyFlg0_UNK100)) { + if (changeSwimUpProc()) { return TRUE; } - else { - if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) { - talkEventPartner = fopAcM_getTalkEventPartner(this); - if (talkEventPartner) { - targetAngleY = cLib_targetAngleY(¤t.pos, &talkEventPartner->eyePos); - cLib_addCalcAngleS(&shape_angle.y, targetAngleY, l_HIO_turn_c0.m.field_0x6, l_HIO_turn_c0.m.field_0x8, l_HIO_turn_c0.m.field_0xA); - current.angle.y = shape_angle.y; - } - } + } + else { + current.pos.y = m35D0; + } - mFrameCtrlUnder[0].setRate((float)(getSwimTimerRate() * l_HIO_swim_c0.m.field_0x70) + l_HIO_swim_c0.m.field_0x40); + if (checkNextModeSwim()) { + return TRUE; + } - if (mStickDistance > 0.05f) { - procSwimMove_init(TRUE); - } - - setSwimTimerStartStop(); + if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) { + fopAc_ac_c* talkEventPartner = fopAcM_getTalkEventPartner(this); + if (talkEventPartner) { + short targetAngleY = cLib_targetAngleY(¤t.pos, &talkEventPartner->eyePos); + cLib_addCalcAngleS(&shape_angle.y, targetAngleY, l_HIO_turn_c0.m.field_0x6, l_HIO_turn_c0.m.field_0x8, l_HIO_turn_c0.m.field_0xA); + current.angle.y = shape_angle.y; } } + + mFrameCtrlUnder[UNDER_MOVE0_e].setRate((getSwimTimerRate() * l_HIO_swim_c0.m.field_0x70) + l_HIO_swim_c0.m.field_0x40); + + if (mStickDistance > 0.05f) { + procSwimMove_init(TRUE); + } + + setSwimTimerStartStop(); + return TRUE; } @@ -484,14 +479,14 @@ BOOL daPy_lk_c::procSwimMove_init(BOOL param_1) { commonProcInit(daPyProc_SWIM_MOVE_e); if (!param_1) { - mFrameCtrlUnder[0].setFrame(0.0f); + mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(0.0f); } gravity = 0.0f; setSwimMoveAnime(ANM_SWIMING); - m34B8 = 0; + mDirection = DIR_FORWARD; if (checkNoResetFlg0(daPyFlg0_UNK100)) { if (mEquipItem != daPyItem_NONE_e) { @@ -514,40 +509,38 @@ BOOL daPy_lk_c::procSwimMove_init(BOOL param_1) { /* 8013DF60-8013E250 .text procSwimMove__9daPy_lk_cFv */ BOOL daPy_lk_c::procSwimMove() { - int iVar1; daPy_ANM anm; setSpeedAndAngleSwim(); J3DFrameCtrl* mFrameCtrl = mFrameCtrlUnder; + int direction; if (!mpAttention->Lockon()) { - iVar1 = 0; + direction = DIR_FORWARD; + } + else if (mStickDistance > 0.05f) { + direction = getDirectionFromShapeAngle(); } else { - if (mStickDistance > 0.05f) { - iVar1 = getDirectionFromShapeAngle(); - } - else { - iVar1 = 0; - } + direction = DIR_FORWARD; } - if (m34B8 != iVar1) { - m34B8 = iVar1; + if (mDirection != direction) { + mDirection = direction; float fVar1 = m35C4; - if (m34B8 == 0) { + if (mDirection == DIR_FORWARD) { anm = ANM_SWIMING; m35C4 = l_HIO_swim_c0.m.field_0x5C; } else { m35C4 = -80.0f; - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { anm = ANM_ATNDLS; } - else if (m34B8 == 3) { + else if (mDirection == DIR_RIGHT) { anm = ANM_ATNDRS; } else { @@ -558,7 +551,7 @@ BOOL daPy_lk_c::procSwimMove() { m_old_fdata->getOldFrameTransInfo(0)->mTranslate.y -= m35C4 - fVar1; setSwimMoveAnime(anm); - if (m34B8) { + if (mDirection != DIR_FORWARD) { setTextureAnime(3, 0); onModeFlg(ModeFlg_00000100); offModeFlg(ModeFlg_00000400); @@ -573,7 +566,7 @@ BOOL daPy_lk_c::procSwimMove() { mFrameCtrl[0].setRate((std::fabsf(mVelocity) * (l_HIO_swim_c0.m.field_0x54 - l_HIO_swim_c0.m.field_0x50)) / mMaxNormalSpeed + l_HIO_swim_c0.m.field_0x50 + (float)(getSwimTimerRate() * l_HIO_swim_c0.m.field_0x74)); } - if (m34B8 == 1) { + if (mDirection == DIR_BACKWARD) { mFrameCtrl[0].setRate(mFrameCtrl[0].getRate() * 0.5f); } @@ -603,7 +596,7 @@ BOOL daPy_lk_c::procSwimMove() { if (mStickDistance <= 0.05f) { procSwimWait_init(TRUE); } - else if ((!m34B8 && mFrameCtrl->checkPass(20.0f)) || (m34B8 && mFrameCtrl->checkPass(0.0f))) { + else if ((mDirection == DIR_FORWARD && mFrameCtrl->checkPass(20.0f)) || (mDirection != DIR_FORWARD && mFrameCtrl->checkPass(0.0f))) { seStartOnlyReverb(JA_SE_LK_SWIM); } diff --git a/src/d/actor/d_a_player_sword.inc b/src/d/actor/d_a_player_sword.inc index 1c1798286..680f606bb 100644 --- a/src/d/actor/d_a_player_sword.inc +++ b/src/d/actor/d_a_player_sword.inc @@ -371,40 +371,36 @@ void daPy_lk_c::setJumpCutAtParam() { /* 80155970-801559F0 .text getCutDirection__9daPy_lk_cFv */ int daPy_lk_c::getCutDirection() { - int iVar1; - s16 sVar2; - + int direction; if (mStickDistance <= 0.05f) { - iVar1 = 4; + direction = DIR_NONE; } else { + s16 angle; if (mpAttnActorLockOn != NULL) { - sVar2 = fopAcM_searchActorAngleY(this, mpAttnActorLockOn); - sVar2 = m34E8 - sVar2; + angle = m34E8 - fopAcM_searchActorAngleY(this, mpAttnActorLockOn); } else { - sVar2 = m34E8 - m34DE; + angle = m34E8 - m34DE; } - iVar1 = getDirectionFromAngle(sVar2); + direction = getDirectionFromAngle(angle); } - return iVar1 + 1; + return direction + 1; } /* 801559F0-80155C3C .text changeCutProc__9daPy_lk_cFv */ int daPy_lk_c::changeCutProc() { - u32 bVar1; - if (m34C5 == 5 && changeSpecialBattle()) { m34C4 = 0; return true; } m34C4++; - int iVar4 = getCutDirection() - 1; + int direction = getCutDirection() - 1; short sVar2; if (mpAttention->Lockon() || mStickDistance <= 0.05f) { sVar2 = shape_angle.y; } else { sVar2 = m34E8; } - bVar1 = m34C4; + u32 bVar1 = m34C4; if (bVar1 > 4) { mCutCount = bVar1 - 2; } else { @@ -413,17 +409,17 @@ int daPy_lk_c::changeCutProc() { bVar1 = m34C4; if (bVar1 == 4) { - if (iVar4 == 3 || iVar4 == 0) { + if (direction == DIR_RIGHT || direction == DIR_FORWARD) { procCutEA_init(); } else { procCutEB_init(); } } else if (bVar1 < 4) { - if (iVar4 == 0) { + if (direction == DIR_FORWARD) { procCutF_init(sVar2); - } else if (iVar4 == 3) { + } else if (direction == DIR_RIGHT) { procCutR_init(sVar2); - } else if (iVar4 == 4) { + } else if (direction == DIR_NONE) { if (mpAttention->Lockon()) { procCutA_init(sVar2); } else { @@ -433,19 +429,19 @@ int daPy_lk_c::changeCutProc() { procCutL_init(sVar2); } } else if (bVar1 == 6) { - if (iVar4 == 0) { + if (direction == DIR_FORWARD) { procCutTurn_init(1); - } else if (iVar4 == 4) { + } else if (direction == DIR_NONE) { procCutExB_init(); - } else if (iVar4 == 3) { + } else if (direction == DIR_RIGHT) { procCutExMJ_init(1); } else { procCutExMJ_init(0); } } else if (bVar1 < 6) { - if (iVar4 == 0) { + if (direction == DIR_FORWARD) { procCutExMJ_init(1); - } else if (iVar4 == 3) { + } else if (direction == DIR_RIGHT) { procCutKesa_init(); } else { procCutExA_init(); @@ -580,21 +576,21 @@ BOOL daPy_lk_c::procCutA() { m3522 = daPy_HIO_cutA_c0::m.field_0x0; if (frameCtrl.getRate() < 0.01f) { mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } if (frameCtrl.getFrame() > daPy_HIO_cutA_c0::m.field_0xC) { f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; + u8 orig_direction = mDirection; mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; if (checkNextMode(1)) { return true; } mVelocity = dVar4; - m34B8 = uVar1; + mDirection = orig_direction; } if (changeCutReverseProc(ANM_CUTRER)) { return true; @@ -684,21 +680,21 @@ BOOL daPy_lk_c::procCutF() { m3522 = daPy_HIO_cutF_c0::m.field_0x0; if (frameCtrl.getRate() < 0.01f) { mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } if (frameCtrl.getFrame() > daPy_HIO_cutF_c0::m.field_0xC) { f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; + u8 orig_direction = mDirection; mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; if (checkNextMode(1)) { return true; } mVelocity = dVar4; - m34B8 = uVar1; + mDirection = orig_direction; } if (changeCutReverseProc(ANM_CUTRER)) { return true; @@ -783,21 +779,21 @@ BOOL daPy_lk_c::procCutR() { m3522 = daPy_HIO_cutR_c0::m.field_0x0; if (frameCtrl.getRate() < 0.01f) { mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } if (frameCtrl.getFrame() > daPy_HIO_cutR_c0::m.field_0xC) { f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; + u8 orig_direction = mDirection; mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; if (checkNextMode(1)) { return true; } mVelocity = dVar4; - m34B8 = uVar1; + mDirection = orig_direction; } if (changeCutReverseProc(ANM_CUTRER)) { @@ -884,21 +880,21 @@ BOOL daPy_lk_c::procCutL() { m3522 = daPy_HIO_cutL_c0::m.field_0x0; if (frameCtrl.getRate() < 0.01f) { mVelocity = 0.0f; - m34B8 = 2; + mDirection = DIR_LEFT; checkNextMode(0); return true; } if (frameCtrl.getFrame() > daPy_HIO_cutL_c0::m.field_0xC) { f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; + u8 orig_direction = mDirection; mVelocity = 0.0f; - m34B8 = 2; + mDirection = DIR_LEFT; if (checkNextMode(1)) { return true; } mVelocity = dVar4; - m34B8 = uVar1; + mDirection = orig_direction; } if (changeCutReverseProc(ANM_CUTREL)) { return true; @@ -985,7 +981,7 @@ BOOL daPy_lk_c::procCutEA() { m34D0--; } else { mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } @@ -1069,7 +1065,7 @@ BOOL daPy_lk_c::procCutEB() { m34D0--; } else { mVelocity = 0.0f; - m34B8 = 2; + mDirection = DIR_LEFT; checkNextMode(0); return true; } @@ -1407,18 +1403,18 @@ BOOL daPy_lk_c::procCutTurn() { if ((int)m34D0 > 0) { m34D0--; } else { - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } } else { if (frameCtrl.getFrame() > daPy_HIO_cutTurn_c0::m.field_0x10) { - u8 uVar1 = m34B8; - m34B8 = 3; + u8 orig_direction = mDirection; + mDirection = DIR_RIGHT; if (checkNextMode(1)) { return true; } - m34B8 = uVar1; + mDirection = orig_direction; } else { if (frameCtrl.getFrame() > 17.0f) { m32E4.end(); @@ -1632,7 +1628,7 @@ BOOL daPy_lk_c::procCutTurnMove_init() { mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getFrame()); } m3598 = 1.0f; - m34B8 = 0; + mDirection = DIR_FORWARD; if (dComIfGs_isEventBit(0xb20)) { bVar1 = true; @@ -1676,42 +1672,42 @@ BOOL daPy_lk_c::procCutTurnMove() { } else if (swordButton()) { f32 dVar8 = 0.0f; if (mStickDistance > 0.05f) { - s32 uVar5 = getDirectionFromAngle(m34E8 - m34E6); + int direction = getDirectionFromAngle(m34E8 - m34E6); daPy_ANM dVar6 = (daPy_ANM)0xffff; cLib_addCalcAngleS(¤t.angle.y, m34E8, 4, 12000, 0x2000); f32 in_f30; - if (((u32)m34B8 == 0) || ((u32)m34B8 == 1)) { - if (uVar5 == 2 || uVar5 == 3) { + if ((mDirection == DIR_FORWARD) || (mDirection == DIR_BACKWARD)) { + if (direction == DIR_LEFT || direction == DIR_RIGHT) { dVar6 = ANM_CUTTURNPWLR; in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x24; mVelocity *= 0.5f; - } else if (m34B8 != uVar5) { + } else if (mDirection != direction) { mVelocity *= 0.5f; } - } else if (uVar5 == 0 || uVar5 == 1) { + } else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) { dVar6 = ANM_CUTTURNPWFB; in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x1C; mVelocity *= 0.5f; - } else if (m34B8 != uVar5) { + } else if (mDirection != direction) { mVelocity *= 0.5f; } - if (m34B8 == uVar5) { + if (mDirection == direction) { dVar8 = daPy_HIO_move_c0::m.field_0x14 * mStickDistance; } else { - m34B8 = (u8)uVar5; + mDirection = direction; } if (dVar6 != (daPy_ANM)0xffff) { setSingleMoveAnime(dVar6, 0.0f, 0.0f, -1, in_f30); } } setNormalSpeedF(dVar8, 0.5f, 2.0f, 0.25f); - if (m34B8 == 0) { + if (mDirection == DIR_FORWARD) { dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x18; - } else if (m34B8 == 1) { + } else if (mDirection == DIR_BACKWARD) { dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x18; - } else if (m34B8 == 3) { + } else if (mDirection == DIR_RIGHT) { dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x20; - } else { + } else { // DIR_LEFT dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x20; } f32 dVar7 = mVelocity / mMaxNormalSpeed; diff --git a/src/d/actor/d_a_player_vomit.inc b/src/d/actor/d_a_player_vomit.inc index 1ce95d30b..3b44dea43 100644 --- a/src/d/actor/d_a_player_vomit.inc +++ b/src/d/actor/d_a_player_vomit.inc @@ -98,8 +98,8 @@ BOOL daPy_lk_c::procVomitWait() { procVomitJump_init(0); } else { if (mStickDistance > 0.05f) { - int iVar1 = getDirectionFromAngle(m34DC); - if (iVar1 == 2) { + int direction = getDirectionFromAngle(m34DC); + if (direction == DIR_LEFT) { s16 r5 = 512.0f * mStickDistance; if (r5 > m34D4) { s16 r0 = 64.0f * mStickDistance; @@ -111,7 +111,7 @@ BOOL daPy_lk_c::procVomitWait() { } else { r30 = r5; } - } else if (iVar1 == 3) { + } else if (direction == DIR_RIGHT) { s16 r5 = -512.0f * mStickDistance; if (r5 < m34D4) { s16 r0 = 64.0f * mStickDistance; @@ -210,13 +210,12 @@ BOOL daPy_lk_c::procVomitJump() { cLib_addCalc(&mVelocity, daPy_HIO_vomit_c0::m.field_0x20, 0.5f, 2.0f, 0.1f); } else { f32 fVar2; - s32 iVar3; if (!checkFanGlideProc(1)) { if (mStickDistance > 0.05f) { - iVar3 = getDirectionFromShapeAngle(); - if (iVar3 == 0) { + int direction = getDirectionFromShapeAngle(); + if (direction == DIR_FORWARD) { fVar2 = 1.0f; - } else if (iVar3 == 1) { + } else if (direction == DIR_BACKWARD) { fVar2 = -1.0f; } else { fVar2 = 0.0f; diff --git a/src/d/actor/d_a_player_weapon.inc b/src/d/actor/d_a_player_weapon.inc index 9c53a3a8c..b6662ddbb 100644 --- a/src/d/actor/d_a_player_weapon.inc +++ b/src/d/actor/d_a_player_weapon.inc @@ -88,20 +88,20 @@ BOOL daPy_lk_c::procWeaponNormalSwing() { m34D0--; } else { mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } } else if (frameCtrl.getFrame() > daPy_HIO_cutBoko_c0::m.field_0x1C) { f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; + u8 orig_direction = mDirection; mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; if (checkNextMode(1)) { return true; } mVelocity = dVar4; - m34B8 = uVar1; + mDirection = orig_direction; } if (changeCutReverseProc(ANM_CUTRER)) { return true; @@ -174,19 +174,19 @@ BOOL daPy_lk_c::procWeaponSideSwing() { } if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) || (mActorKeepEquip.getActor() == NULL)) { mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; checkNextMode(0); return true; } else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_cutBoko_c0::m.field_0x50) { f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; + u8 orig_direction = mDirection; mVelocity = 0.0f; - m34B8 = 3; + mDirection = DIR_RIGHT; if (checkNextMode(1)) { return true; } mVelocity = dVar4; - m34B8 = uVar1; + mDirection = orig_direction; } if (changeCutReverseProc(ANM_CUTREL)) { return true; diff --git a/src/d/actor/d_a_player_whide.inc b/src/d/actor/d_a_player_whide.inc index 5ec4f3f72..c6159e1e6 100644 --- a/src/d/actor/d_a_player_whide.inc +++ b/src/d/actor/d_a_player_whide.inc @@ -33,7 +33,7 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) { sVar1 = daPy_HIO_wall_c0::m.field_0x8; fVar6 = daPy_HIO_wall_c0::m.field_0x60; fVar3 = daPy_HIO_wall_c0::m.field_0x58; - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { dVar5 = ANM_WALLWR; } else { dVar5 = ANM_WALLWL; @@ -45,7 +45,7 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) { sVar1 = daPy_HIO_wall_c0::m.field_0xA; fVar6 = daPy_HIO_wall_c0::m.field_0x64; fVar3 = daPy_HIO_wall_c0::m.field_0x5C; - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { dVar5 = ANM_WALLWRDW; } else { dVar5 = ANM_WALLWLDW; @@ -72,7 +72,7 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) { } /* 801371E0-80137608 .text getWHideModePolygon__9daPy_lk_cFP4cXyzP4cXyzP4cXyzi */ -cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* param_2, int param_3) { +cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* param_2, int direction) { if (param_0 != NULL) { mLinkLinChk.Set(param_0, param_1, this); if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { @@ -103,14 +103,14 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par return NULL; } - if (param_3 == 4) { + if (direction == DIR_NONE) { f31 = 49.9f; } else { f31 = 99.8f; } s16 sVar7 = uVar3; cXyz local_48; - if (param_3 != 3) { + if (direction != DIR_RIGHT) { local_3c.set( param_2->x + (f31 * triPla->GetNP()->z) + (triPla->GetNP()->x * 1.25f), param_2->y, @@ -129,7 +129,7 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par } } - if (param_3 != 2) { + if (direction != DIR_LEFT) { local_3c.set( param_2->x - (f31 * triPla->GetNP()->z) + (triPla->GetNP()->x * 1.25f), param_2->y, @@ -148,8 +148,8 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par } } - if (param_3 != 4) { - if (param_3 == 2) { + if (direction != DIR_NONE) { + if (direction == DIR_LEFT) { sVar7 = sVar7 - shape_angle.y; param_2->x += daPy_HIO_wall_c0::m.field_0x54 * triPla->GetNP()->z; param_2->z -= daPy_HIO_wall_c0::m.field_0x54 * triPla->GetNP()->x; @@ -217,12 +217,12 @@ BOOL daPy_lk_c::checkWHideFrontFloor(cXyz* param_0) { } /* 80137828-80137914 .text checkWHideModeChange__9daPy_lk_cFP4cXyz */ -BOOL daPy_lk_c::checkWHideModeChange(cXyz* param_0) { +int daPy_lk_c::checkWHideModeChange(cXyz* param_0) { if (!checkNoResetFlg0(daPyFlg0_UNK10000)) { if (!checkWHideFrontFloor(param_0)) { dComIfGp_setRStatus(0); } else if (spActionButton()) { - return true; + return 1; } } else { cXyz local_18; @@ -234,7 +234,7 @@ BOOL daPy_lk_c::checkWHideModeChange(cXyz* param_0) { if (checkModeFlg(ModeFlg_00000001) && mCurProc != daPyProc_WHIDE_PEEP_e) { setTextureAnime(mAnmDataTable[ANM_WALL].mTexAnmIdx, 0); } - return false; + return 0; } /* 80137914-80137A00 .text changeWHideEndProc__9daPy_lk_cFP4cXyz */ @@ -353,14 +353,13 @@ BOOL daPy_lk_c::procWHideWait() { cXyz cStack_24; cXyz cStack_3c; cXyz cStack_48; - int iVar1; getWHideBasePos(&cStack_3c); if (changeWHideEndProc(&cStack_3c)) { return true; } - iVar1 = checkWHideModeChange(&cStack_3c); + int iVar1 = checkWHideModeChange(&cStack_3c); if (iVar1 == 1) { setSingleMoveAnime( ANM_WALLDW, @@ -388,22 +387,22 @@ BOOL daPy_lk_c::procWHideWait() { if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() && dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f) { - iVar1 = getDirectionFromCurrentAngle(); - if (iVar1 == 3 || iVar1 == 2) { - if (iVar1 == 3) { + int direction = getDirectionFromCurrentAngle(); + if (direction == DIR_RIGHT || direction == DIR_LEFT) { + if (direction == DIR_RIGHT) { current.angle.y = shape_angle.y + -0x4000; - m34B8 = 3; + mDirection = DIR_RIGHT; } else { current.angle.y = shape_angle.y + 0x4000; - m34B8 = 2; + mDirection = DIR_LEFT; } getWHideNextPos(&cStack_3c, &cStack_48); - iVar1 = checkWHideBackWall(&cStack_48); - if (iVar1 != 0 && (!checkNoResetFlg0(daPyFlg0_UNK10000) || checkWHideFrontFloor(&cStack_48))) { + BOOL iVar1 = checkWHideBackWall(&cStack_48); + if (iVar1 && (!checkNoResetFlg0(daPyFlg0_UNK10000) || checkWHideFrontFloor(&cStack_48))) { return procWHideMove_init(); } - if (iVar1 == 0) { + if (!iVar1) { cStack_48 += (cStack_48 - cStack_3c) * 0.25f; mLinkLinChk.Set(&cStack_3c, &cStack_48, this); if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { @@ -420,7 +419,7 @@ BOOL daPy_lk_c::procWHideWait() { /* 80138074-801380F0 .text procWHideMove_init__9daPy_lk_cFv */ BOOL daPy_lk_c::procWHideMove_init() { commonProcInit(daPyProc_WHIDE_MOVE_e); - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { current.angle.y = shape_angle.y + 0x4000; } else { current.angle.y = shape_angle.y + -0x4000; @@ -451,23 +450,23 @@ BOOL daPy_lk_c::procWHideMove() { cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk); s16 sVar8 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z); f32 fVar2; - if (checkWHideModeChange(&acStack_24)) { + if (checkWHideModeChange(&acStack_24) != 0) { fVar2 = 0.0f; } else if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() && dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f) { - int iVar6 = getDirectionFromCurrentAngle(); - if (iVar6 == 1) { + int direction = getDirectionFromCurrentAngle(); + if (direction == DIR_BACKWARD) { current.angle.y -= -0x8000; mVelocity *= 0.5f; - if (m34B8 == 2) { - m34B8 = 3; + if (mDirection == DIR_LEFT) { + mDirection = DIR_RIGHT; } else { - m34B8 = 2; + mDirection = DIR_LEFT; } setBlendWHideMoveAnime(2.0f); } - if (iVar6 == 0 || iVar6 == 1) { + if (direction == DIR_FORWARD || direction == DIR_BACKWARD) { fVar2 = daPy_HIO_move_c0::m.field_0x14; fVar2 *= mStickDistance; } else { @@ -486,7 +485,7 @@ BOOL daPy_lk_c::procWHideMove() { } cXyz cStack_3c; - triPla = getWHideModePolygon(&acStack_24, &cStack_30, &cStack_3c, m34B8); + triPla = getWHideModePolygon(&acStack_24, &cStack_30, &cStack_3c, mDirection); if (triPla != NULL) { return procWHideReady_init(triPla, &cStack_3c); } @@ -501,7 +500,7 @@ BOOL daPy_lk_c::procWHideMove() { } cXyz cStack_48; - if (sVar8 != shape_angle.y && getWHideModePolygon(NULL, NULL, &cStack_48, m34B8) != NULL) { + if (sVar8 != shape_angle.y && getWHideModePolygon(NULL, NULL, &cStack_48, mDirection) != NULL) { if ((s16)(current.angle.y - shape_angle.y) > 0) { current.angle.y = sVar8 + 0x4000; } else { @@ -531,7 +530,7 @@ BOOL daPy_lk_c::procWHidePeep_init() { fVar3 = daPy_HIO_wall_c0::m.field_0x48; fVar2 = daPy_HIO_wall_c0::m.field_0x2C; sVar4 = daPy_HIO_wall_c0::m.field_0x4; - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { dVar2 = ANM_WALLPR; } else { dVar2 = ANM_WALLPL; @@ -541,7 +540,7 @@ BOOL daPy_lk_c::procWHidePeep_init() { fVar3 = daPy_HIO_wall_c0::m.field_0x4C; fVar2 = daPy_HIO_wall_c0::m.field_0x30; sVar4 = daPy_HIO_wall_c0::m.field_0x6; - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { dVar2 = ANM_WALLPRDW; } else { dVar2 = ANM_WALLPLDW; @@ -569,7 +568,7 @@ BOOL daPy_lk_c::procWHidePeep() { } if (std::fabsf(dVar3) < 0.01f) { - if (m34B8 == 2) { + if (mDirection == DIR_LEFT) { dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40_e); } else { dComIfGp_setPlayerStatus0(0, daPyStts0_UNK20_e); @@ -581,13 +580,13 @@ BOOL daPy_lk_c::procWHidePeep() { } } - if (checkWHideModeChange(&cStack_38)) { + if (checkWHideModeChange(&cStack_38) != 0) { if (dVar3 > 0.0f) { mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3); } } else if (mStickDistance > 0.05f) { - int iVar1 = getDirectionFromCurrentAngle(); - if ((iVar1 != 0 && dVar3 > 0.0f) || (iVar1 == 0 && dVar3 < 0.0f)) { + int direction = getDirectionFromCurrentAngle(); + if ((direction != DIR_FORWARD && dVar3 > 0.0f) || (direction == 0 && dVar3 < 0.0f)) { mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3); } } else if (dVar3 > 0.0f) {