diff --git a/include/d/actor/d_a_hookshot.h b/include/d/actor/d_a_hookshot.h index dff10b96f..211d9f780 100644 --- a/include/d/actor/d_a_hookshot.h +++ b/include/d/actor/d_a_hookshot.h @@ -6,6 +6,7 @@ #include "d/d_cc_d.h" #include "d/d_bg_s_lin_chk.h" #include "d/d_bg_s_gnd_chk.h" +#include "f_op/f_op_actor_mng.h" class daHookshot_shape : public J3DPacket { public: @@ -18,25 +19,34 @@ class daHookshot_c : public fopAc_ac_c { public: typedef BOOL (daHookshot_c::*ProcFunc)(); + enum Mode { + Mode_Wait = 0, + Mode_Shot = 1, + Mode_Return = 2, + Mode_Pull = 3, + }; + int getChainCnt() { return mChainCnt; } cXyz getMoveVec() const { return mMoveVec; } fpc_ProcID getCarryActorID() const { return mCarryActorID; } - void getHookAngle() {} + const csXyz* getHookAngle() { return &mHookAngle; } MtxP getMtxTop() { return mMtx; } - void getObjHookFlg() const {} - void getSightHit() const {} - void getObjSightCrossPos() {} - void onObjHookFlg() {} - void offObjHookFlg() {} - void checkPull() {} - void checkReturn() {} - void checkShipRideFlg() const {} - void checkShot() {} - void checkWait() {} - void setObjSightCrossPos(const cXyz*) {} - void setCarryOffset(const cXyz*) {} - void setReturn() {} - void setShot() {} + u32 getSightHit() const { return const_cast(&mSightCps)->ChkAtHit(); } + const cXyz* getObjSightCrossPos() { return &mObjSightCrossPos; } + void setObjSightCrossPos(const cXyz* pos) { mObjSightCrossPos = *pos; } + void setCarryOffset(const cXyz* offset) { mCarryOffset = *offset; } + + bool checkWait() { return fopAcM_GetParam(this) == Mode_Wait; } + bool checkShot() { return fopAcM_GetParam(this) == Mode_Shot; } + void setShot() { fopAcM_SetParam(this, Mode_Shot); } + bool checkReturn() { return fopAcM_GetParam(this) == Mode_Return; } + void setReturn() { fopAcM_SetParam(this, Mode_Return); } + bool checkPull() { return fopAcM_GetParam(this) == Mode_Pull; } + + BOOL getObjHookFlg() const { return mObjHookFlg; } + void onObjHookFlg() { mObjHookFlg = TRUE; } + void offObjHookFlg() { mObjHookFlg = FALSE; } + bool checkShipRideFlg() const { return mShipRideFlg; } daHookshot_c() {} BOOL draw(); @@ -49,28 +59,26 @@ public: BOOL hookshot_delete(); cPhs_State create(); -public: +private: /* 0x290 */ daHookshot_shape mShape; /* 0x2A0 */ bool m2A0; /* 0x2A1 */ u8 m2A1; - /* 0x2A2 */ u8 m2A2; + /* 0x2A2 */ bool mShipRideFlg; /* 0x2A3 */ u8 m2A3; /* 0x2A4 */ s16 m2A4; /* 0x2A6 */ u16 m2A6; /* 0x2A8 */ int mChainCnt; /* 0x2AC */ u32 mMtrlSndId; - /* 0x2B0 */ int m2B0; - /* 0x2B4 */ s16 m2B4; - /* 0x2B6 */ s16 m2B6; - /* 0x2B8 */ s16 m2B8; + /* 0x2B0 */ BOOL mObjHookFlg; + /* 0x2B4 */ csXyz mHookAngle; /* 0x2BA */ csXyz m2BA; /* 0x2C0 */ cXyz mMoveVec; - /* 0x2CC */ cXyz m2CC; + /* 0x2CC */ cXyz mObjSightCrossPos; /* 0x2D8 */ dBgS_RopeLinChk mLinChk; /* 0x344 */ dBgS_ObjGndChk mGndChk; /* 0x398 */ dCcD_Stts mStts; - /* 0x3D4 */ dCcD_Cps mCps; - /* 0x50C */ cXyz m50C; + /* 0x3D4 */ dCcD_Cps mSightCps; + /* 0x50C */ cXyz mCarryOffset; /* 0x518 */ fpc_ProcID mCarryActorID; /* 0x51C */ Mtx mMtx; /* 0x54C */ ProcFunc mCurrProcFunc; diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h index f7c75bd05..892bd997f 100644 --- a/include/d/actor/d_a_player_main.h +++ b/include/d/actor/d_a_player_main.h @@ -257,7 +257,10 @@ public: static u8 m_morf_frame; static void onMabaFlg() { m_maba_flg = 1; } - static void offMabaFlg() { m_maba_flg = 0; } + static void offMabaFlg() { + m_maba_flg = 0; + m_maba_timer = 1; + } static void decMabaTimer() { cLib_calcTimer(&m_maba_timer); } static void decMorfFrame() { cLib_calcTimer(&m_morf_frame); } static void getEyeMoveFlg() {} diff --git a/src/d/actor/d_a_hookshot.cpp b/src/d/actor/d_a_hookshot.cpp index 5231652f6..8200dc0ed 100644 --- a/src/d/actor/d_a_hookshot.cpp +++ b/src/d/actor/d_a_hookshot.cpp @@ -113,13 +113,13 @@ static BOOL daHookshot_Draw(daHookshot_c* i_this) { void daHookshot_rockLineCallback(fopAc_ac_c* hookshot_actor, dCcD_GObjInf* objInf, fopAc_ac_c* collided_actor, dCcD_GObjInf*) { daHookshot_c* i_this = (daHookshot_c*)hookshot_actor; f32 f31 = objInf->GetAtHitPosP()->abs2(i_this->current.pos); - f32 f1 = i_this->m2CC.abs2(i_this->current.pos); + f32 f1 = i_this->getObjSightCrossPos()->abs2(i_this->current.pos); if (f1 > f31) { - i_this->m2CC = *objInf->GetAtHitPosP(); + i_this->setObjSightCrossPos(objInf->GetAtHitPosP()); if (fopAcM_CheckStatus(collided_actor, fopAcStts_UNK80000_e | fopAcStts_UNK200000_e | fopAcStts_UNK10000000_e)) { - i_this->m2B0 = 1; + i_this->onObjHookFlg(); } else { - i_this->m2B0 = 0; + i_this->offObjHookFlg(); } } } @@ -127,12 +127,12 @@ void daHookshot_rockLineCallback(fopAc_ac_c* hookshot_actor, dCcD_GObjInf* objIn /* 800F13E8-800F14CC .text procWait_init__12daHookshot_cFi */ BOOL daHookshot_c::procWait_init(BOOL playSe) { daPy_lk_c* link = daPy_getPlayerLinkActorClass(); - fopAcM_SetParam(this, 0); + fopAcM_SetParam(this, Mode_Wait); mCurrProcFunc = &daHookshot_c::procWait; mChainCnt = 0; current.pos = link->getHookshotRootPos(); mCarryActorID = fpcM_ERROR_PROCESS_ID_e; - m2B0 = 0; + mObjHookFlg = FALSE; if (playSe) { mDoAud_seStart(JA_SE_LK_HS_WIND_UP_FIN, &link->current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); } @@ -148,61 +148,61 @@ BOOL daHookshot_c::procWait() { mMtx[0][3] = current.pos.x; mMtx[1][3] = current.pos.y; mMtx[2][3] = current.pos.z; - m2B0 = 0; + mObjHookFlg = FALSE; - if (fopAcM_GetParam(this) == 1) { + if (fopAcM_GetParam(this) == Mode_Shot) { int angleY = link->getBodyAngleY() + link->shape_angle.y; int angleX = link->getBodyAngleX(); mMoveVec.x = cM_ssin(angleY) * cM_scos(angleX); mMoveVec.y = -cM_ssin(angleX); mMoveVec.z = cM_scos(angleY) * cM_scos(angleX); - mCps.ResetAtHit(); - mCps.OffAtNoTgHitInfSet(); - mCps.SetAtHitCallback(NULL); + mSightCps.ResetAtHit(); + mSightCps.OffAtNoTgHitInfSet(); + mSightCps.SetAtHitCallback(NULL); cXyz r1_3C = current.pos - mMoveVec * 60.0f; mLinChk.Set(&r1_3C, ¤t.pos, this); m2A0 = true; if (dComIfG_Bgsp()->LineCross(&mLinChk)) { if (dComIfG_Bgsp()->ChkPolyHSStick(mLinChk)) { - fopAcM_SetParam(this, 3); - m2A2 = 0; + fopAcM_SetParam(this, Mode_Pull); + mShipRideFlg = false; mCurrProcFunc = &daHookshot_c::procPlayerPull; cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinChk); - m2B4 = cM_atan2s(triPla->GetNP()->y, triPla->GetNP()->absXZ()); - m2B6 = cM_atan2s(-triPla->GetNP()->x, -triPla->GetNP()->z); - m2B8 = 0; + mHookAngle.x = cM_atan2s(triPla->GetNP()->y, triPla->GetNP()->absXZ()); + mHookAngle.y = cM_atan2s(-triPla->GetNP()->x, -triPla->GetNP()->z); + mHookAngle.z = 0; mMoveVec = cXyz::Zero; } else { - fopAcM_SetParam(this, 2); + fopAcM_SetParam(this, Mode_Return); mCurrProcFunc = &daHookshot_c::procReturn; } } else { mMoveVec *= 7.0f; - mCps.SetStartEnd(r1_3C, current.pos); - mCps.SetR(5.0f); - mCps.CalcAtVec(); - dComIfG_Ccsp()->Set(&mCps); + mSightCps.SetStartEnd(r1_3C, current.pos); + mSightCps.SetR(5.0f); + mSightCps.CalcAtVec(); + dComIfG_Ccsp()->Set(&mSightCps); // Using the inline breaks the match. // dComIfG_Ccsp()->SetMass(&mCps, 1); - g_dComIfG_gameInfo.play.mCcS.SetMass(&mCps, 1); + g_dComIfG_gameInfo.play.mCcS.SetMass(&mSightCps, 1); m2A3 = 0; mCurrProcFunc = &daHookshot_c::procShot; } } else { - mCps.OnAtNoTgHitInfSet(); - m2CC.set( + mSightCps.OnAtNoTgHitInfSet(); + mObjSightCrossPos.set( current.pos.x + cM_ssin(link->shape_angle.y) * 1500.0f * cM_scos(link->getBodyAngleX()), current.pos.y - cM_ssin(link->getBodyAngleX()) * 1500.0f, current.pos.z + cM_scos(link->shape_angle.y) * 1500.0f * cM_scos(link->getBodyAngleX()) ); - mCps.SetStartEnd(current.pos, m2CC); - mCps.SetR(5.0f); - mCps.CalcAtVec(); - mCps.SetAtHitCallback(daHookshot_rockLineCallback); - dComIfG_Ccsp()->Set(&mCps); + mSightCps.SetStartEnd(current.pos, mObjSightCrossPos); + mSightCps.SetR(5.0f); + mSightCps.CalcAtVec(); + mSightCps.SetAtHitCallback(daHookshot_rockLineCallback); + dComIfG_Ccsp()->Set(&mSightCps); } return TRUE; @@ -296,8 +296,8 @@ cPhs_State daHookshot_c::create() { gravity = -5.0f; mStts.Init(10, 0xFF, this); - mCps.Set(l_at_cps_src); - mCps.SetStts(&mStts); + mSightCps.Set(l_at_cps_src); + mSightCps.SetStts(&mStts); int roomNo = dComIfGp_roomControl_getStayNo(); tevStr.mRoomNo = roomNo; diff --git a/src/d/actor/d_a_player_food.inc b/src/d/actor/d_a_player_food.inc index c273d43a6..366613a90 100644 --- a/src/d/actor/d_a_player_food.inc +++ b/src/d/actor/d_a_player_food.inc @@ -88,8 +88,7 @@ BOOL daPy_lk_c::procFoodThrow_init() { current.angle.y = shape_angle.y; mVelocity = 0.0f; - daPy_matAnm_c::m_maba_flg = 0; - daPy_matAnm_c::m_maba_timer = 1; + daPy_matAnm_c::offMabaFlg(); setSingleMoveAnime( ANM_ESAMAKI, daPy_HIO_food_c0::m.field_0x4, diff --git a/src/d/actor/d_a_player_hook.inc b/src/d/actor/d_a_player_hook.inc index 7e4c25bff..5b7317ee1 100644 --- a/src/d/actor/d_a_player_hook.inc +++ b/src/d/actor/d_a_player_hook.inc @@ -19,25 +19,24 @@ /* 8014AB5C-8014ABA0 .text checkHookshotReturn__9daPy_lk_cFv */ BOOL daPy_lk_c::checkHookshotReturn() { daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); - - if ((mEquipItem != dItem_HOOKSHOT_e) || (hookshot == NULL)) { - return false; - } else { - return (fopAcM_GetParam(hookshot) == 3) || (fopAcM_GetParam(hookshot) == 2); - } -} - -/* 8014ABA0-8014ABF4 .text setHookshotCarryOffset__9daPy_lk_cFUiPC4cXyz */ -BOOL daPy_lk_c::setHookshotCarryOffset(fpc_ProcID param_0, const cXyz* param_1) { - daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); - if (mEquipItem != dItem_HOOKSHOT_e || hookshot == NULL) { return false; } - if (param_0 != hookshot->mCarryActorID) { + + return hookshot->checkPull() || hookshot->checkReturn(); +} + +/* 8014ABA0-8014ABF4 .text setHookshotCarryOffset__9daPy_lk_cFUiPC4cXyz */ +BOOL daPy_lk_c::setHookshotCarryOffset(fpc_ProcID carryActorID, const cXyz* offset) { + daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); + if (mEquipItem != dItem_HOOKSHOT_e || hookshot == NULL) { return false; } - hookshot->m50C = *param_1; + if (carryActorID != hookshot->getCarryActorID()) { + return false; + } + + hookshot->setCarryOffset(offset); return true; } @@ -56,7 +55,6 @@ void daPy_lk_c::setHookshotModel() { /* 8014ACCC-8014B02C .text setHookshotSight__9daPy_lk_cFv */ void daPy_lk_c::setHookshotSight() { - /* Nonmatching - floats */ cXyz sp50( cM_ssin(shape_angle.y) * cM_scos(mBodyAngle.x), -cM_ssin(mBodyAngle.x), @@ -67,29 +65,32 @@ void daPy_lk_c::setHookshotSight() { sp38 = mHookshotRootPos + sp50 * 1500.0f; sp44 = mHookshotRootPos - sp50 * 60.0f; mRopeLinChk.Set(&sp44, &sp38, this); + daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); BOOL r30 = dComIfG_Bgsp()->LineCross(&mRopeLinChk); mSightPacket.onDrawFlg(); - if (r30 || hookshot->mCps.ChkAtHit()) { + if (r30 || hookshot->getSightHit()) { BOOL r3; if (r30 && mHookshotRootPos.abs2(current.pos) > mRopeLinChk.GetCross().abs2(current.pos)) { mSightPacket.setPos(&mHookshotRootPos); r3 = FALSE; } else if (!r30) { - mSightPacket.setPos(&hookshot->m2CC); + mSightPacket.setPos(hookshot->getObjSightCrossPos()); r3 = TRUE; - } else if (!hookshot->mCps.ChkAtHit()) { + } else if (!hookshot->getSightHit()) { mSightPacket.setPos(&mRopeLinChk.GetCross()); r3 = FALSE; - } else if (mRopeLinChk.GetCross().abs2(mHookshotRootPos) > hookshot->m2CC.abs2(mHookshotRootPos)) { - mSightPacket.setPos(&hookshot->m2CC); + } else if (mRopeLinChk.GetCross().abs2(mHookshotRootPos) > + hookshot->getObjSightCrossPos()->abs2(mHookshotRootPos)) + { + mSightPacket.setPos(hookshot->getObjSightCrossPos()); r3 = TRUE; } else { mSightPacket.setPos(&mRopeLinChk.GetCross()); r3 = FALSE; } - if ((r3 && hookshot->m2B0) || (!r3 && dComIfG_Bgsp()->ChkPolyHSStick(mRopeLinChk))) { + if ((r3 && hookshot->getObjHookFlg()) || (!r3 && dComIfG_Bgsp()->ChkPolyHSStick(mRopeLinChk))) { if (mSightPacket.getLockFlg()) { mSightPacket.incFrame(); if (mSightPacket.checkSEFrame()) { @@ -117,66 +118,64 @@ void daPy_lk_c::freeHookshotItem() { if (hookshot == NULL) { return; } - if (fopAcM_GetParam(hookshot) == 0) { + if (hookshot->checkWait()) { return; } - fopAcM_SetParam(hookshot, 2); + hookshot->setReturn(); } /* 8014B05C-8014B2B8 .text checkNextActionHookshotReady__9daPy_lk_cFv */ BOOL daPy_lk_c::checkNextActionHookshotReady() { - /* Nonmatching - sbss */ static JGeometry::TVec3 eff_scale(1.0f, 1.0f, 0.0f); static JGeometry::TVec3 eff_dscale(0.2f, 0.2f, 0.2f); static JGeometry::TVec3 eff_pscale(0.4f, 0.4f, 0.4f); daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); - if (fopAcM_GetParam(hookshot) == 0) { - if (((itemButton()) && (mEquipItem == getReadyItem())) && (m355C == 0)) { + if (hookshot->checkWait()) { + if (itemButton() && mEquipItem == getReadyItem() && m355C == 0) { m355E = 1; - } else { - if ((!itemButton()) && (m355E != 0)) { - m355E = 0; - fopAcM_SetParam(hookshot, 1); - mVelocity = 0.0f; - daPy_matAnm_c::m_maba_flg = 0; - daPy_matAnm_c::m_maba_timer = 1; - seStartOnlyReverb(JA_SE_LK_HS_SHOOT); - voiceStart(41); - resetFootEffect(); - if (m34B8 != 2) { - m34B8 = 2; - } - current.angle.y = shape_angle.y + 0x4000; - onModeFlg(ModeFlg_00000001); - m3598 = 0.0f; - setBlendAtnMoveAnime(daPy_HIO_basic_c0::m.field_0xC); - mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.0f); - mFrameCtrlUnder[UNDER_MOVE1_e].setRate(0.0f); - mFrameCtrlUpper[UPPER_MOVE0_e].setRate(daPy_HIO_atnMove_c0::m.field_0x24); - mFrameCtrlUpper[UPPER_MOVE1_e].setRate(0.0f); - mFrameCtrlUpper[UPPER_MOVE2_e].setRate(0.0f); - return true; + } else if (!itemButton() && m355E != 0) { + m355E = 0; + hookshot->setShot(); + mVelocity = 0.0f; + daPy_matAnm_c::offMabaFlg(); + seStartOnlyReverb(JA_SE_LK_HS_SHOOT); + voiceStart(41); + resetFootEffect(); + if (m34B8 != 2) { + m34B8 = 2; } + current.angle.y = shape_angle.y + 0x4000; + onModeFlg(ModeFlg_00000001); + m3598 = 0.0f; + setBlendAtnMoveAnime(daPy_HIO_basic_c0::m.field_0xC); + mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.0f); + mFrameCtrlUnder[UNDER_MOVE1_e].setRate(0.0f); + mFrameCtrlUpper[UPPER_MOVE0_e].setRate(daPy_HIO_atnMove_c0::m.field_0x24); + mFrameCtrlUpper[UPPER_MOVE1_e].setRate(0.0f); + mFrameCtrlUpper[UPPER_MOVE2_e].setRate(0.0f); + return true; } } else { - if (fopAcM_GetParam(hookshot) == 1) { - if ((itemTrigger()) && (mEquipItem == getReadyItem())) { - fopAcM_SetParam(hookshot, 2); + if (hookshot->checkShot()) { + if (itemTrigger() && mEquipItem == getReadyItem()) { + hookshot->setReturn(); } return true; } - if (fopAcM_GetParam(hookshot) == 2) { + if (hookshot->checkReturn()) { return true; } - if (fopAcM_GetParam(hookshot) == 3) { + if (hookshot->checkPull()) { procHookshotFly_init(); return true; } } + if (m355C > 0) { m355C--; } + return cancelItemUpperReadyAnime(); } @@ -219,7 +218,7 @@ BOOL daPy_lk_c::procHookshotSubject() { } daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); - if (fopAcM_GetParam(hookshot) == 0) { + if (hookshot->checkWait()) { dComIfGp_setDoStatus(7); } @@ -229,13 +228,11 @@ BOOL daPy_lk_c::procHookshotSubject() { mSightPacket.offDrawFlg(); - if (checkNextMode(0) == 0 && fopAcM_GetParam(hookshot) == 0 && setBodyAngleToCamera() && - fopAcM_GetParam(hookshot) == 0) - { + if (checkNextMode(0) == 0 && hookshot->checkWait() && setBodyAngleToCamera() && hookshot->checkWait()) { setHookshotSight(); } - if (fopAcM_GetParam(hookshot) == 0) { + if (hookshot->checkWait()) { dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK40000_e); } else { dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40000_e); @@ -258,7 +255,7 @@ BOOL daPy_lk_c::procHookshotMove_init() { current.angle.y = shape_angle.y + 0x4000; } daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); - if (fopAcM_GetParam(hookshot) == 0) { + if (hookshot->checkWait()) { setActAnimeUpper(LKANM_BCK_HOOKSHOTWAIT, UPPER_MOVE2_e, 1.0f, 0.0f, -1, -1.0f); setBlendAtnMoveAnime(daPy_HIO_basic_c0::m.field_0xC); } @@ -271,9 +268,10 @@ BOOL daPy_lk_c::procHookshotMove() { if (!checkItemModeActorPointer()) { return true; } + daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); mSightPacket.offDrawFlg(); - if (fopAcM_GetParam(hookshot) == 0) { + if (hookshot->checkWait()) { if (mpAttnActorLockOn != NULL) { setSpeedAndAngleAtnActor(); } else if (m355E == 0 && !mpAttention->Lockon()) { @@ -294,7 +292,7 @@ BOOL daPy_lk_c::procHookshotMove() { } else { offModeFlg(ModeFlg_00000001); } - if (fopAcM_GetParam(hookshot) == 0) { + if (hookshot->checkWait()) { setBlendAtnMoveAnime(fVar1); setBodyAngleXReadyAnime(); } @@ -304,7 +302,6 @@ BOOL daPy_lk_c::procHookshotMove() { /* 8014B74C-8014B854 .text procHookshotFly_init__9daPy_lk_cFv */ BOOL daPy_lk_c::procHookshotFly_init() { - /* Nonmatching - floats */ daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); commonProcInit(daPyProc_HOOKSHOT_FLY_e); for (int i = 0; i < 3; i++) { @@ -334,11 +331,11 @@ BOOL daPy_lk_c::procHookshotFly() { } daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor(); - if (fopAcM_GetParam(hookshot) != 3) { - if ((hookshot->m2A2 != 0) && (procShipJumpRide_init())) { + if (!hookshot->checkPull()) { + if (hookshot->checkShipRideFlg() && procShipJumpRide_init()) { return true; } - if ((!mAcch.ChkGroundHit()) && (changeFrontWallTypeProc())) { + if (!mAcch.ChkGroundHit() && changeFrontWallTypeProc()) { voiceStart(10); return true; } diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 9275b23d6..a13bed6d8 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -628,7 +628,6 @@ void daPy_lk_c::setTextureScrollResource(J3DAnmTextureSRTKey* btk, int r31) { } daPy_matAnm_c::setMorfFrame(3); daPy_matAnm_c::offMabaFlg(); - daPy_matAnm_c::setMabaTimer(1); daPy_matAnm_c::setMabaTimer(75.0f + cM_rndF(30.0f)); } @@ -2283,9 +2282,9 @@ BOOL daPy_lk_c::commonProcInit(daPy_PROC proc) { m35EC = 0.0f; if (mEquipItem == dItem_SKULL_HAMMER_e) { - mSwordAnim.changeBckOnly(getItemAnimeResource(0x97)); + mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_HAMMERDAM)); } else if (checkBowItem(mEquipItem) && !checkBowAnime()) { - mSwordAnim.changeBckOnly(getItemAnimeResource(0xD)); + mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_ARROWRELORDA)); } m35E8 = 0.0f; @@ -2365,7 +2364,6 @@ BOOL daPy_lk_c::procCall_init() { commonProcInit(daPyProc_CALL_e); mVelocity = 0.0f; daPy_matAnm_c::offMabaFlg(); - daPy_matAnm_c::setMabaTimer(1); setSingleMoveAnime(ANM_YOBU, 1.0f, 0.0f, -1, daPy_HIO_basic_c0::m.field_0xC); current.angle.y = shape_angle.y; if (mEquipItem == daPyItem_BOKO_e) { diff --git a/src/d/actor/d_a_player_pushpull.inc b/src/d/actor/d_a_player_pushpull.inc index d0705ae12..22ecb75bd 100644 --- a/src/d/actor/d_a_player_pushpull.inc +++ b/src/d/actor/d_a_player_pushpull.inc @@ -54,8 +54,7 @@ BOOL daPy_lk_c::procPushPullWait_init(int param_0) { if (checkEquipAnime()) { resetActAnimeUpper(UPPER_MOVE2_e, -1.0f); } - daPy_matAnm_c::m_maba_flg = 0; - daPy_matAnm_c::m_maba_timer = 1; + daPy_matAnm_c::offMabaFlg(); setSingleMoveAnime( ANM_WAITPUSHPULL, daPy_HIO_pushpull_c0::m.field_0x0, 0.0f, -1, daPy_HIO_pushpull_c0::m.field_0x4 ); diff --git a/src/d/actor/d_a_player_ship.inc b/src/d/actor/d_a_player_ship.inc index 874840a3e..5b8f53ab3 100644 --- a/src/d/actor/d_a_player_ship.inc +++ b/src/d/actor/d_a_player_ship.inc @@ -274,8 +274,7 @@ void daPy_lk_c::initShipCraneAnime() { m3570 = 2; m3574 = 2; } - daPy_matAnm_c::m_maba_flg = 0; - daPy_matAnm_c::m_maba_timer = 1; + daPy_matAnm_c::offMabaFlg(); setSingleMoveAnime(dVar1, 1.0f, 0.0f, -1, 10.0f); } diff --git a/src/d/actor/d_a_player_tact.inc b/src/d/actor/d_a_player_tact.inc index 8d69e4a9f..b30bdd253 100644 --- a/src/d/actor/d_a_player_tact.inc +++ b/src/d/actor/d_a_player_tact.inc @@ -244,7 +244,6 @@ BOOL daPy_lk_c::procTactWait_init(int r30) { commonProcInit(daPyProc_TACT_WAIT_e); daPy_matAnm_c::offMabaFlg(); - daPy_matAnm_c::setMabaTimer(1); setSingleMoveAnime(ANM_WAITTAKT, daPy_HIO_tact_c0::m.mAnmRate, 0.0f, -1, daPy_HIO_tact_c0::m.field_0x4); setActAnimeUpper(LKANM_BCK_WAITTAKT, UPPER_MOVE1_e, daPy_HIO_tact_c0::m.mAnmRate, 0.0f, -1, -1.0f); mAnmRatioUpper[UPPER_MOVE1_e].setRatio(0.0f); @@ -782,7 +781,6 @@ BOOL daPy_lk_c::procTactPlayOriginal_init() { dComIfGp_setPlayerStatus1(0, daPyStts1_WIND_WAKER_CONDUCT_e); m34D0 = 0; daPy_matAnm_c::offMabaFlg(); - daPy_matAnm_c::setMabaTimer(1); setSingleMoveAnime(ANM_WAITTAKT, daPy_HIO_tact_c0::m.mAnmRate, 0.0f, -1, daPy_HIO_tact_c0::m.field_0x4); m3570 = dComIfGp_event_getTactFreeMStick(m34D0); diff --git a/src/d/actor/d_a_player_whide.inc b/src/d/actor/d_a_player_whide.inc index 09e553cb8..a0a9e5a43 100644 --- a/src/d/actor/d_a_player_whide.inc +++ b/src/d/actor/d_a_player_whide.inc @@ -319,8 +319,7 @@ BOOL daPy_lk_c::procWHideReady() { cLib_addCalc(¤t.pos.x, m370C.x, 0.25f, 10.0f, 4.0f); cLib_addCalc(¤t.pos.z, m370C.z, 0.25f, 10.0f, 4.0f); if (!cLib_addCalcAngleS(&shape_angle.y, m34D4, 2, 0x2000, 0x800)) { - daPy_matAnm_c::m_maba_flg = 0; - daPy_matAnm_c::m_maba_timer = 1; + daPy_matAnm_c::offMabaFlg(); procWHideWait_init(); } } diff --git a/src/d/actor/d_a_race_item.cpp b/src/d/actor/d_a_race_item.cpp index f3fb8d278..89cc614ac 100644 --- a/src/d/actor/d_a_race_item.cpp +++ b/src/d/actor/d_a_race_item.cpp @@ -224,8 +224,8 @@ BOOL daRaceItem_c::execute() { if (hitObj->ChkAtType(AT_TYPE_BOOMERANG)) { cLib_onBit(field_0x645, (u8)0x01); } else if (hitObj->ChkAtType(AT_TYPE_HOOKSHOT)) { - cXyz pos(0.0f, dItem_data::getH(m_itemNo) / 2.0f, 0.0f); - daPy_getPlayerActorClass()->setHookshotCarryOffset(fopAcM_GetID(this), &pos); + cXyz offset(0.0f, dItem_data::getH(m_itemNo) / 2.0f, 0.0f); + daPy_getPlayerActorClass()->setHookshotCarryOffset(fopAcM_GetID(this), &offset); } } }